В современной разработке ваш код сильно отличается от кода на «боевом» сервере (production) после компиляции, минификации, объединения и разных оптимизаций. Тут-то и вступают в игру карты кода (source maps), показывая точное соответствие элементов готового рабочего кода проекта и вашего кода разработки. В этом вводном уроке мы возьмём простой проект и запустим его с помощью различных компиляторов JavaScript с целью посмотреть работу карт кода в браузере.
Алексей @Atorian
User
Node.js не подходит для типовых веб-проектов
6 min
104KTranslation
«Node.js не подходит для серьезных сайтов и веб-приложений, а только для написания небольших API».
This is bull*hit. I have to say it.
От переводчика: недавно на coderwall.com появилась интересная статья от Ionut-Cristian Florescu об использовании Node.js для создания обычных («типовых») веб-проектов. До ее прочтения я был полностью согласен с заголовком статьи, но сейчас мое мнение несколько поменялось. Позиция автора может быть спорной во многих моментах, но его аргументы достаточно интересны. Если у вас есть собственное мнение по этому поводу, оставляйте его в комментариях.
+73
10 самых популярных видео докладов с 404фест 2012
4 min
29KКак вы знаете, мы тут в своей Самаре каждый год проводим Фестиваль 404, куда приезжают разные люди и делятся опытом. Мы этот процесс записываем на видео и выкладываем совершенно бесплатно на свой канал youtube. Предлагаем подборку самых популярных видео докладов за прошлый год.
+39
Паттерн Стратегия на Javascript
7 min
34KTutorial
Translation
От переводчика:
Я собрался изучить новый для меня паттерн Стратегия, но не нашёл толкового русского описания его реализации на javascript. Статья на wiki пугает своей сложностью, а наглядность примера оставляет желать лучшего. По этому и взялся за перевод этой статьи, одновременно разбираясь, что же из себя представляет данный паттерн.
Спойлеры и текст, выделенный серым, являются моими комментариями.
Я собрался изучить новый для меня паттерн Стратегия, но не нашёл толкового русского описания его реализации на javascript. Статья на wiki пугает своей сложностью, а наглядность примера оставляет желать лучшего. По этому и взялся за перевод этой статьи, одновременно разбираясь, что же из себя представляет данный паттерн.
Спойлеры и текст, выделенный серым, являются моими комментариями.
Далее мы разберём примеры того, как я использую СТРАТЕГИЮ в Javascript, и как он используется реальной библиотекой, для разбиения её на небольшие части.
+20
Много бесплатных книг по программированию
7 min
345KTranslation
Списки книг
- 25 бесплатных книг по информатике
- Шпаргалки
- CodePlex: Список бесплатных книг
- Бесплатные технические книги
- Galileo Computing (Немецкий)
- How to Design Programs: An Introduction to Computing and Programming
- Microsoft Press: Бесплатные книги
- MindView Inc
- Проект O'Reilly's Open Books
- TechBooksForFree.com
- Theassayer.org
- Wikibooks: Программирование
- Неплохая подборка, редактируемая сообществом (JIghtuse)
- Книги на Русском (telteron)
Программирование графики
+182
Мозг программиста
6 min
61KСпасибо за статью habrahabr.ru/post/191210! Хорошую тему подняли.
Поделюсь и своим опытом. Ниже — идентичное содержание и первой, и заключительной лекции в программе подготовки стажеров.
В программировании, помимо ЭВМ, методик и софта с разных сторон, есть еще такой ключевой элемент, как программист.
Почему он самый главный? Потому что, как знают многие, большую часть решений можно создать без ЭВМ, без методик и без софта – карандашом на бумаге или вовсе в воображении. А без программиста создать программу нельзя. Потому что он, программист, как раз программу и создает.
О программисте, как о решающем факторе, и о его мозге, как об основном инструменте, мы сейчас поговорим.
Поделюсь и своим опытом. Ниже — идентичное содержание и первой, и заключительной лекции в программе подготовки стажеров.
В программировании, помимо ЭВМ, методик и софта с разных сторон, есть еще такой ключевой элемент, как программист.
Почему он самый главный? Потому что, как знают многие, большую часть решений можно создать без ЭВМ, без методик и без софта – карандашом на бумаге или вовсе в воображении. А без программиста создать программу нельзя. Потому что он, программист, как раз программу и создает.
О программисте, как о решающем факторе, и о его мозге, как об основном инструменте, мы сейчас поговорим.
+36
Наследование в Backbone.js
4 min
14KКоллеги, использующие Backbone.js! Вы задумывались, как работает наследование в этой библиотеке?
Знаете, как себя ведет
И наверняка знаете и помните, что у extend два опциональных параметра: proto props и static props.
Если хотя бы на один выше заданный вопрос вы ответили отрицательно — прошу под кат.
Постараюсь порадовать пошаговым исследованием, схемками, табличками и примерами.
Знаете, как себя ведет
Backbone.Model.extend({})
?И наверняка знаете и помните, что у extend два опциональных параметра: proto props и static props.
Если хотя бы на один выше заданный вопрос вы ответили отрицательно — прошу под кат.
Постараюсь порадовать пошаговым исследованием, схемками, табличками и примерами.
+5
Улучшенное наследование в CoffeeScript
3 min
5.4KCoffeeScript принёс в JS неплохую абстракцию классов, основанную на прототипах.
Реализовав известную модель наследования и дополнив её наследованием методов касса,
он позволяет легко строить иерархии классов, даже не зная о цепочках прототипов.
Но и эта модель может быть улучшена.
Реализовав известную модель наследования и дополнив её наследованием методов касса,
он позволяет легко строить иерархии классов, даже не зная о цепочках прототипов.
Но и эта модель может быть улучшена.
+6
Вышел test.it v1.1.0 — что дальше?
3 min
4.9KДобрый день хабр.
Вчера вышла версия 1.1.0 test.it — фреймворка для тестирования js кода.
Он, наконец, обзавёлся функционалом, отсутствие которого делало его неполноценным:
Кто не любит много слов — Сайт на котором можно увидеть код в действии, GitHub, Wiki
Вчера вышла версия 1.1.0 test.it — фреймворка для тестирования js кода.
Он, наконец, обзавёлся функционалом, отсутствие которого делало его неполноценным:
- Асинхронные тесты/группы
- Запуск отдельных тестов/групп
Кто не любит много слов — Сайт на котором можно увидеть код в действии, GitHub, Wiki
+6
Методы экспертных оценок
6 min
249KЗачастую необходимо выбрать среди множества альтернатив, при этом каждая обладает различными преимуществами. И как же выбрать лучшую, имея мнение десятков, а то и сотен экспертов?
+24
Теория цвета в цифрах
3 min
199KTutorial
Разные люди могут по-разному представлять один и тот же цвет по его названию. Например голубой цвет может на самом деле быть цветом морской волны или небесным. Гораздо точнее цвет определяется шестнадцатеричным кодом, всего существует 16777216 комбинаций. Поэтому дизайнеру может быть полезно распознавать цвет, просто взглянув на его hex-код.
Начнем с простого: рассмотрим обычный hex-код, где каждая из трех пар цифр контролирует один из цветов RGB — красный, зеленый, синий. Числа могут принимать значения цифр от 0 до 9 и букв от A до F.
Основы
Начнем с простого: рассмотрим обычный hex-код, где каждая из трех пар цифр контролирует один из цветов RGB — красный, зеленый, синий. Числа могут принимать значения цифр от 0 до 9 и букв от A до F.
+93
Абсолютное горизонтальное и вертикальное центрирование
5 min
311KTutorial
Translation
Сколько уже было сломано копий о задачу выравнивания элементов на странице. Предлагаю вашему вниманию перевод отличной статьи с решением этой проблемы от Стефана Шоу (Stephen Shaw) для Smashing Magazine — Absolute Horizontal And Vertical Centering In CSS.
Все мы знали о margin: 0 auto; для горизонтального центрирования, но margin: auto; не работало для вертикального. Это можно легко исправить, просто задав высоту и применив следующие стили:
Я не первый, кто предложил это решение, однако такой подход редко применяется при вертикальном выравнивании. В комментариях к статье How to Center Anything With CSS Simon ссылается на пример jsFiddle, где приводится отличное решение для вертикального центрирования. Вот еще несколько источников на эту тему.
Рассмотрим способ поближе.
Все мы знали о margin: 0 auto; для горизонтального центрирования, но margin: auto; не работало для вертикального. Это можно легко исправить, просто задав высоту и применив следующие стили:
.Absolute-Center {
margin: auto;
position: absolute;
top: 0; left: 0; bottom: 0; right: 0;
}
Я не первый, кто предложил это решение, однако такой подход редко применяется при вертикальном выравнивании. В комментариях к статье How to Center Anything With CSS Simon ссылается на пример jsFiddle, где приводится отличное решение для вертикального центрирования. Вот еще несколько источников на эту тему.
Рассмотрим способ поближе.
+100
Как узнать, что ваш PHP сайт был взломан
11 min
134KTranslation
Сайт моего друга недавно был взломан, на нем была запущена старая версия IP.Board, в которой есть уязвимость локального внедрения кода (local file inclusion). Этот пост не будет посвящен IP.Board или другому php коду, он покажет, как найти потенциально вредоносный php код на ваших серверах. Наконец, покажу пример того, что злоумышленники могут загрузить на взломанный сайт.
Что бы с чего-то начать, я бы хотел поделиться некоторыми записями из журнала доступа (access log) взломанного сайта моего друга.
Необходимо часто проверять журналы доступа на сервере, однако если вы не будете осторожны, URL такие как выше, которые на первый взгляд выглядят безобидно, могут пройти прямо мимо вас.
Два файла выше это загруженные взломщиком скрипты, как они туда попали, большой роли не играет, так как код на любых двух серверах, вероятно, будет различным. Тем не менее, в данном конкретном примере, уязвимость в устаревшей версии IP.Board была использована, и атакующие смогли добавить свои собственные скрипты в директории доступные для записи, такие как пользовательский каталог загрузки и каталог, в котором IP.Board хранит кэшированные изображения темы оформления. Это общий вектор атаки, много людей изменяют права на эти каталоги на 777 или дают им доступ на запись, подробнее об этом чуть позже.
Рассмотрим подробнее приведенные выше строки журнала, ничего не цепляет вас?
Обратите внимание, что в журнале доступа POST запросы, а не GET запросы.
Скорее всего, злоумышленники хотели сделать журнал доступа более неприметным, так как большинство журналов не сохраняют post данные.
Проверьте логи доступа
Что бы с чего-то начать, я бы хотел поделиться некоторыми записями из журнала доступа (access log) взломанного сайта моего друга.
IpreMOVED - - [01/Mar/2013:06:16:48 -0600] "POST /uploads/monthly_10_2012/view.php HTTP/1.1" 200 36 "-" "Mozilla/5.0"
IpreMOVED - - [01/Mar/2013:06:12:58 -0600] "POST /public/style_images/master/profile/blog.php HTTP/1.1" 200 36 "-" "Mozilla/5.0"
Необходимо часто проверять журналы доступа на сервере, однако если вы не будете осторожны, URL такие как выше, которые на первый взгляд выглядят безобидно, могут пройти прямо мимо вас.
Два файла выше это загруженные взломщиком скрипты, как они туда попали, большой роли не играет, так как код на любых двух серверах, вероятно, будет различным. Тем не менее, в данном конкретном примере, уязвимость в устаревшей версии IP.Board была использована, и атакующие смогли добавить свои собственные скрипты в директории доступные для записи, такие как пользовательский каталог загрузки и каталог, в котором IP.Board хранит кэшированные изображения темы оформления. Это общий вектор атаки, много людей изменяют права на эти каталоги на 777 или дают им доступ на запись, подробнее об этом чуть позже.
Рассмотрим подробнее приведенные выше строки журнала, ничего не цепляет вас?
Обратите внимание, что в журнале доступа POST запросы, а не GET запросы.
Скорее всего, злоумышленники хотели сделать журнал доступа более неприметным, так как большинство журналов не сохраняют post данные.
+55
Об одной малоизвестной уязвимости в веб сайтах
4 min
80KПервое правило безопасности при разработке Веб приложений гласит: —
Но недавно я с удивлением обнаружил, что есть одна переменная, приходящая от клиента, которую почти никто не фильтрует.
Речь пойдет о компрометации веб приложения через подмену значения
Не доверять данным пришедшим от клиента.Почти все это правило хорошо знают и соблюдают. Мы пропускаем через валидаторы данные форм, кукисы, даже URI.
Но недавно я с удивлением обнаружил, что есть одна переменная, приходящая от клиента, которую почти никто не фильтрует.
Речь пойдет о компрометации веб приложения через подмену значения
HTTP_HOST
и SERVER_NAME
.+90
Оцениваем идею вашего мобильного приложения
17 min
55KDisclaimer:
Данная статья представляет собой вольный художественный пересказ-перевод первой главы книги "App Savvy
Turning ideas into ipad and iphone apps customers really want"
Она может заинтересовать людей, которые только приходят в мир мобильной разработки, и думают, с чего им начать. Если вы опытный бизнесмен, уже имеющий стабильный доход от собственных мобильных приложений — скорее всего, она покажется вам бесполезной и очевидной.
Чтобы полностью оценить жизнеспособность идеи вашего приложения, сначала вы должны понять текущую ситуацию с приложениями в App Store, оценить стоимость запуска вашего приложения, и реалистично смотреть на возможность попадания вашего приложения в каталог App Store. Под «вами» и «вашей идеей» я подразумеваю не только лично вас, а всех людей — родственников, друзей и коллег — с которыми вы прорабатываете вашу идею. Оцениваете ли вы идею в одиночку, или с кем-то, я хочу предложить вам схему, следуя которой вы сможете получить более структурированную оценку вашего приложения. В конце статьи будут приведены ссылки на полезные ресурсы и инструменты, которые помогут вам оценить вашу идею.
Данная статья представляет собой вольный художественный пересказ-перевод первой главы книги "App Savvy
Turning ideas into ipad and iphone apps customers really want"
Она может заинтересовать людей, которые только приходят в мир мобильной разработки, и думают, с чего им начать. Если вы опытный бизнесмен, уже имеющий стабильный доход от собственных мобильных приложений — скорее всего, она покажется вам бесполезной и очевидной.
Оглавление
Введение
Стратегия
Глава 1: Оцениваем идею вашего мобильного приложения
Глава 2: Что должно быть в вашем приложении?
Глава 3: От идеи к концепту
Разработка
Глава 4: Поиск команды: вам нужна помощь
Глава 5: Получаем рабочее приложение
Глава 6: Улучшаем приложение перед тем, как добавить его в App Store
Запуск
Глава 7: Готовимся к загрузке приложения в App Store
Глава 8: Строим нашу маркетинговую стратегию
Глава 9: Оцениваем успех и обдумываем будущие разработки
Стратегия
Глава 1: Оцениваем идею вашего мобильного приложения
Глава 2: Что должно быть в вашем приложении?
Глава 3: От идеи к концепту
Разработка
Глава 4: Поиск команды: вам нужна помощь
Глава 5: Получаем рабочее приложение
Глава 6: Улучшаем приложение перед тем, как добавить его в App Store
Запуск
Глава 7: Готовимся к загрузке приложения в App Store
Глава 8: Строим нашу маркетинговую стратегию
Глава 9: Оцениваем успех и обдумываем будущие разработки
Чтобы полностью оценить жизнеспособность идеи вашего приложения, сначала вы должны понять текущую ситуацию с приложениями в App Store, оценить стоимость запуска вашего приложения, и реалистично смотреть на возможность попадания вашего приложения в каталог App Store. Под «вами» и «вашей идеей» я подразумеваю не только лично вас, а всех людей — родственников, друзей и коллег — с которыми вы прорабатываете вашу идею. Оцениваете ли вы идею в одиночку, или с кем-то, я хочу предложить вам схему, следуя которой вы сможете получить более структурированную оценку вашего приложения. В конце статьи будут приведены ссылки на полезные ресурсы и инструменты, которые помогут вам оценить вашу идею.
+12
test.it — не опять, а снова
11 min
9.1KTutorial
Добрый день хабр.
После моей статьи о test.it прошлавечность неделя. И как я не планировал растянуть этот срок хотя бы на месяц, но пришло время для новой публикации.
Картинка для привлечения внимания:
С того времени библиотека (во многом благодаря хабравчанам) обросла новым функционалом.
А ввиду того, что синтаксис, приведённый в прошлой статье, в текущей версии работает не полностью, откладывать эту статью ещё на 3 недели у меня нету права.
Кто не любит много слов — Сайт на котором можно увидеть код в действии, GitHub, Wiki
После моей статьи о test.it прошла
Картинка для привлечения внимания:
С того времени библиотека (во многом благодаря хабравчанам) обросла новым функционалом.
А ввиду того, что синтаксис, приведённый в прошлой статье, в текущей версии работает не полностью, откладывать эту статью ещё на 3 недели у меня нету права.
Кто не любит много слов — Сайт на котором можно увидеть код в действии, GitHub, Wiki
+25
Знакомство с Apache Mahout
5 min
26KTranslation
Привет.
Моя первая статья на Хабре показала, что не многие знают о библиотеке Mahout. (Может быть, конечно, я в этом ошибаюсь.) Да и ознакомительного материала по этой теме здесь нет. Поэтому я решил написать пост, рассказывающий о возможностях библиотеки. Пара проб пера показали, что лучшим введением в тему будут небольшие выдержки из книги “Mahout in Action” Owen, Anil, Dunning, Friedman. Поэтому я сделал вольный перевод некоторых мест, которые, как мне кажется, хорошо рассказывают об области применения Mahout.
Моя первая статья на Хабре показала, что не многие знают о библиотеке Mahout. (Может быть, конечно, я в этом ошибаюсь.) Да и ознакомительного материала по этой теме здесь нет. Поэтому я решил написать пост, рассказывающий о возможностях библиотеки. Пара проб пера показали, что лучшим введением в тему будут небольшие выдержки из книги “Mahout in Action” Owen, Anil, Dunning, Friedman. Поэтому я сделал вольный перевод некоторых мест, которые, как мне кажется, хорошо рассказывают об области применения Mahout.
+10
Семь навыков профессионального программиста
3 min
182KКаждый год мы обучаем под свои проекты и набираем в команду студентов. Хантим, конечно, не всех. «Мы на работу ходим, а нам деньги плотют» — это точно не к нам. За «звездами» тоже не охотимся. Ищем в первую очередь тех, кто хочет расти, развиваться, становиться «звездой», а мы можем им в этом помочь.
Одна из проблем нашего высшего образования в том, что в вузах учат много чему, и алгоритмам, и языкам программирования, и ООП, и даже паттернам проектирования. Но я еще ни разу не встречал, чтобы в вузах учили работать работу. Лабораторки не в счет. Спихнул – и забыл! Возможно, просто не везло.
В свое время, я сформулировал набор навыков, которыми, по моему мнению, должен владеть каждый профессиональный программист. Не только Мастер с большой буквы, но и студент, который претендует на то, чтобы за его работу ему платили деньги. И, если мы не смогли научить студента этим навыкам за три месяца его испытательного срока, то или мы взяли не того, или назначили никудышного наставника.
Итак, про семь навыков…
Одна из проблем нашего высшего образования в том, что в вузах учат много чему, и алгоритмам, и языкам программирования, и ООП, и даже паттернам проектирования. Но я еще ни разу не встречал, чтобы в вузах учили работать работу. Лабораторки не в счет. Спихнул – и забыл! Возможно, просто не везло.
В свое время, я сформулировал набор навыков, которыми, по моему мнению, должен владеть каждый профессиональный программист. Не только Мастер с большой буквы, но и студент, который претендует на то, чтобы за его работу ему платили деньги. И, если мы не смогли научить студента этим навыкам за три месяца его испытательного срока, то или мы взяли не того, или назначили никудышного наставника.
Итак, про семь навыков…
+55
Основные принципы разработки игр
10 min
72KЭта статья предназначена для людей, которые хотят заняться (либо недавно занялись) геймдевом, но не имеют практического опыта в этой сфере. Здесь я поделюсь своим собственным опытом и расскажу основное из разных сфер разработки игры от дизайна интерфейсов до монетизации. Конечно, каждая из рассматриваемых тем достойна отдельной статьи, а в некоторых случаях – это целая наука, по которой пишут книги, и раскрыть их полностью в рамках одной статьи невозможно. Я лишь остановлюсь на основных моментах, приведу несколько примеров, чтобы дать вам отправную точку для вашей работы, акцентировать ваше внимания на важных нюансах, чтобы сэкономить ваше время. Итак, приступим.
-1
Книги для тимлидов и руководителей проектов
2 min
171KКакими свойствами должен обладать хороший тимлид? Он, несомненно, должен быть технарем, иметь разносторонний опыт, уметь налаживать диалог внутри команды и с начальством, вести дискуссии и принимать решения, брать на себя ответственность, понимать бизнес-процессы, думать как заказчик и владелец бизнеса. Ну и быть немного психологом.
В отечественном IT я часто наблюдаю следующую картину: тимлидом часто становился лучший (?) разработчик из команды (aka 23-летний сеньор). А чтобы стать руководителем проекта (project manager) иногда достаточно просто знать английский и «павэрпойнт» на уровне пользователя. Это реалии отечественного аутсорсинга и с этим нужно как-то жить.
В итоге часто получается как-то так:
В отечественном IT я часто наблюдаю следующую картину: тимлидом часто становился лучший (?) разработчик из команды (aka 23-летний сеньор). А чтобы стать руководителем проекта (project manager) иногда достаточно просто знать английский и «павэрпойнт» на уровне пользователя. Это реалии отечественного аутсорсинга и с этим нужно как-то жить.
В итоге часто получается как-то так:
Потому что на десять сеньоров по статистике девять тупят.
+64
Information
- Rating
- Does not participate
- Location
- Севастополь, Республика Крым, Россия
- Date of birth
- Registered
- Activity