Search
Write a publication
Pull to refresh
32
0
Александр Стаханов @Sky3d

Разработчик

Send message

Паттерны проектирования

Reading time2 min
Views49K
Здравствуй хаброчеловек!

Так уж случилось, что с этого семестра в своем вузе я записался на спецкурс по паттернам проектирования. Курс проходит в виде семинаров, на которых ты (студент) должен рассказать чему научился за неделю (имеется ввиду, какие паттерны изучил и применил на практике).
Читать дальше →

Брюс Шнайер об алгоритмах подбора паролей

Reading time3 min
Views3K
Брюс Шнайер в своей авторской колонке в Wired рассказывает об атаке методом оффлайнового перебора паролей. Такой метод применяется очень часто, хотя в некоторых ситуациях он непригоден, например, для подбора пин-кода в банкомате.
Читать дальше →

Настольные игры для Windows Phone: разведка боем

Reading time5 min
Views2K
image Мне повезло работать в Саровском Технопарке – секретном месте на границе Нижегородской области и Мордовского заповедника, где среди снегов и умных девушек, которых не соблазнишь iPhone’ом, создает свои нетленные произведения свободный художник, мастер малых форм и адепт iOS-программирования PapaBubaDiop.

Здесь я получил благословление Папы Бубы на игрописание, а вместе с ним золотой запас исходных кодов игр «Чапаев» и «Башни» для iPhone. Всё это богатство было получено под обещание посеять доброе и вечное на полях Android и WP7.

Под хаброкатом привожу историю освоения небольшого, но активно удобряемого редмондским и эспоовским гигантами участка Windows Phone.
Читать дальше →

Карьера в IT

Reading time9 min
Views36K
Что является основным критерием карьерного успеха? Как попасть на желанную работу, если недостаточно опыта? В этой статье я попытался ответить на эти и другие вопросы, связанные с карьерой IT-специалиста.

Читать дальше →

Потокобезопасные события в C# или Джон Скит против Джеффри Рихтера

Reading time11 min
Views70K


Готовился я как-то к собеседованию по C# и среди прочего нашел вопрос примерно следующего содержания:
«Как организовать потокобезопасный вызов события в C# с учетом того, что большое количество потоков постоянно подписываются на событие и отписываются от него?»


Вопрос вполне конкретно и чётко поставлен, поэтому я даже не сомневался в том, что ответ на него можно дать также чётко и однозначно. Но я очень сильно ошибался. Оказалось, что это крайне популярная, избитая, но до сих пор открытая тема. А еще заметил не очень приятную особенность — в русскоязычных ресурсах этому вопросу уделяется очень мало внимания (и хабр не исключение), поэтому я решил собрать всю найденную и переваренную мной информацию по данному вопросу.
До Джона Скита и Джеффри Рихтера тоже дойдем, они то, собственно, и сыграли ключевую роль в моем общем понимании проблемы работы событий в многопоточной среде.

Особо внимательный читатель сможет найти в статье два комикса в стиле xkcd.
(Осторожно, внутри две картинки примерно по 300-400 кб)
Читать дальше →

Google Web Mercator: неоднозначная система координат

Reading time10 min
Views56K
Первого октября 2014 года американское Национальное Агентство Геопространственной Разведки (NGA) опубликовало отчет, в котором изложена критика системы координат Web Mercator, используемой во множестве картографических веб-сервисов. К документу прилагалось подробное разъяснение проблемы и рекомендации для партнеров NGA. Документ получил большой резонанс, но далеко не все статьи, основанные на этом отчете, отличались точностью и грамотностью изложения. Это касается, например, статьи на сайте ГИС Ассоциации, которую, по причине грубейших ошибок в терминологии, можно считать безграмотной. Поскольку именно с этой системой координат разработчики веб-сервисов сталкиваются чаще всего, я считаю, что есть смысл разобраться в проблеме.
Подробности

В чем нарисовать MindMap? Детальный обзор 6 самых популярных программ для рисования mindmap

Reading time5 min
Views600K

Структура обзора


1. Вступление;
2. Сравнение основных 5-х программ по популярности, цене, совместимости, наличию на разных платформах;
3. Подробное описание функционала и особенностей 5-х основных программ.

Введение


Mindmapping (рисование древовидных карт или ментальных карт) прочно вошел в жизнь многих людей именно с появлением соответствующего софта. Используя mindmap, делают техзадания, консультанты-аналитики делают проекты, дизайнеры придумывают концепции, тренера делают презентации, менеджеры составляют планы и т.д.

Целью этой статьи не является пропаганда mindmapping. У древовидного представления данных есть свои плюсы и свои ограничения. Обсуждение уже было в комментариях к публикации "+10 к интеллекту".

Эта публикация для тех, кто хочет выбрать удобный инструмент и узнать какие-то новые фишки, о которых еще не знал.
Читать дальше →

Добро пожаловать в сообщество российских Map Maker’ов

Reading time2 min
Views14K
Рады сообщить, что в России теперь работает Map Maker — онлайн-инструмент, который позволяет миллионам людей по всему миру вносить свой вклад в развитие и улучшение Google Карт. С его помощью можно добавлять малоизвестные маршруты или любимые места, наносить на карты дороги и обновлять уже существующие данные. Внесенные вами изменения после модерации появятся на Google Картах — как десктопных, так и мобильных, в сервисе Google Планета Земля, а также на других сайтах через API Google Карт.

Читать дальше →

15 шаблонизаторов для фронтенд-разработки

Reading time4 min
Views185K

Число JS-библиотек ни в коей мере не уменьшается; наоборот, оно растёт с каждым днём. Когда мы доходим до приложений JS, лучшим выбором оказываются шаблоны, чем полноценные библиотеки, потому что это приводит к более чистому базовому коду и лучшему процессу работы с ними.

Не так давно я писал, что вы могли бы попробовать написать свою библиотеку, когда придёт время. Шаблонизаторы же требуют несколько больших навыков и понимания языка, с которым вы работаете, поэтому лучше полагаться на любой шаблонизатор из имеющихся в списке ниже.
ICanHaz,Hogan,Handlebars,Mustache,Transp-cy,doT,Walrus,Chibi,templayed,ECT,Pithy,T,Nunjuck,Jade,Dust

Собеседование на должность JavaScript разработчика

Reading time4 min
Views288K


Недавно прочитал неплохой пост на тему поиска работы QA и подумал, что похожий пост был бы полезен для JavaScript разработчиков. В конечном счёте, веб движется вперед семимильными шагами, и соискателей на позицию JavaScript программиста хоть отбавляй (разумеется, хороших всегда меньше).
Читать дальше →

UI в Enterprise-приложении, или как мы делали удобную систему для создания карт

Reading time8 min
Views25K
Обычно мы рассказываем про то, как делаем внешние продукты или их отдельные фичи — сам 2ГИС, его графику и типографику или Этажи. При этом тема внутренних продуктов ещё ни разу не поднималась. Исправляем эту досадную оплошность на примере «Fiji» — продукта для отрисовки интерактивной карты.


Читать дальше →

Ликбез по картографическим проекциям с картинками

Reading time9 min
Views95K
Визуализация данных самого разного рода, имеющих некое географическое распределение, в последнее время получает все большее и большее распространение. Тут, на Хабре, статьи с картами встречаются чуть ли не каждую неделю. Карты в статьях очень разные, но роднит их одно: как правило, в них используются всего две картографические проекции, при том — не самые удачные из существующих. Мне бы хотелось дать несколько наглядных примеров проекций, которые выглядят более эстетично и лучше приспособлены для разных видов визуализации. В этой статье будут рассмотрены общемировые проекции и проекции большей части Земли, так как визуализация чего-либо на карте мира, пожалуй, является наиболее распространенной из подобных задач.

Стереографическая проекция
Картинок большого размера будет много

История создания iOS игры о быстрой реакции и стальных нервах

Reading time7 min
Views35K
В начале апреля я уволился с работы. От переизбытка свободного времени я решил написать игру для iOS. Игра про бедного кубика, которого постоянно преследуют другие геометрические фигуры. Настоящая драма. Кубику нужно продержаться как можно дольше без столкновений. Прототип игры был написан примерно за 8 часов. Всего разработка игры заняла 3,5 месяца. Чем я занимался все это время можно узнать ниже.


Читать дальше →

10 самых распространённых ошибок при программировании на JavaScript

Reading time10 min
Views156K


Сегодня JavaScript лежит в основе большинства современных веб-приложений. При этом за последние годы появилось большое количество JavaScript-библиотек и фреймворков для разработчиков Single Page Application (SPA), графики, анимации и даже серверных платформ. Для веб-разработки JavaScript используется повсеместно, и поэтому качество кода обретает всё большее значение.

На первый взгляд, этот язык может показаться довольно простым. Встраивание в веб-страницу базового функционала JavaScript — это не проблема для любого опытного разработчика, даже если он ранее не сталкивался с этим языком. Однако это обманчивое впечатление, поскольку JavaScript гораздо сложнее, мощнее и чувствительнее к нюансам, чем кажется поначалу. Немало тонкостей в этом языке приводит к большому количеству распространённых ошибок. Сегодня мы рассмотрим некоторые из них. На эти ошибки нужно обратить особое внимание, если вы хотите отлично программировать на JavaScript.
Читать дальше →

Ruby on Rails шаг за шагом. #1 Теория

Reading time5 min
Views55K
Ненадолго отставив серию статей о ЯП Ruby в сторону (1, 2, 3, 4, 5, 6, 7, 8, 9, 10), решил презентовать вам новый цикл о фрэймворке Rails. Набравшись некоторого опыта в «обучении» попробую вывести эту серию на уровень качества и продуманности несколько выше, чем прежде.

Целью первой части уроков по Ruby on Rails будет создание некоторого многопользовательского блога (аля Хабр). Также хочется отметить, что для этой первой части желательно иметь познание о Руби хотя бы на уровне трех-четырех капель. Хочется поскорей приступить к кодингу, но начинать все равно придется с теории.

Что такое Ruby on Rails (далее RoR)? Самый распространненый ответ – это базирующийся на ЯП Ruby (далее Руби) фрэймворк, который реализует шаблон (далее паттерн) MVC. Выделим два главных пункта из ответа:
  • Это фрэймворк на базе Ruby
  • Он реализует паттерн MVC
Разберем каждый отдельно.
Продолжаем

Язык программирования Swift. Русская версия

Reading time17 min
Views382K
imageПривет, Хабр! 2 июня все мы воочию могли наблюдать, как компания Apple начала творить революцию в стане Objective-C разработчиков, представив миру свой новый язык программирования – Swift. Вместе с этим, она выложила в открытый доступ небольшую документацию по языку, которую мы решили перевести, если на то будет спрос. Предлагаем вашему вниманию перевод первой главы. Если тема будет интересна, то мы продолжим публиковать перевод каждую неделю.
Читать дальше →

DI и IoC для начинающих

Reading time4 min
Views129K
Тема DI/IoC достаточно простая, но в сети очень сложно найти хорошее описание того, как это работает и зачем это нужно. Вот моя попытка, с использованием Unity. Хорошо ли объяснена тема – судить вам.

Читать дальше →

Тестирование. Начало

Reading time4 min
Views127K

Привет. В этой серии постов я попробую рассказать про тестирование кода на питоне, в частности проектов django. Мы рассмотрим модульное тестирование (юнит-тесты), статический анализ кода и некоторые подводные камни тестирования веб-сайтов.

Вводную часть о пользе тестирования опустим — код, покрытый тестами, становится мягким и шелковистым, про это только ленивый еще не читал / писал.
Читать дальше →

Какой должна быть хорошая карта — ориентиры на Яндекс.Картах

Reading time3 min
Views29K
Яндекс.Картами каждый день пользуются миллионы людей. И каждый из них по-своему — кто-то смотрит пробки, кто-то ищет организации, кто-то строит маршруты, и почти все используют карту для ориентирования. Как должна выглядеть карта, чтобы решать все эти разнообразные задачи? Какие карты хорошие, а какие плохие? Что должно быть нарисовано, а что нет? Подходов огромное множество. Вот, например, некоторые старые карты Москвы:

image

На этой карте XVII века аккуратно нарисован каждый домик в изометрической проекции, а важные объекты описаны в легенде. Вряд ли она использовалась жителями для ориентирования, скорее её рисовали путешественники для своих альбомов.

Сегодня на Яндекс.Картах появились значки объектов и подписи к ним, а также, например, обновился вид пешеходных улиц. Под катом мы расскажем о том, какие исследования и данные мы использовали для этого важного релиза.
Читать дальше →

Хранение иерархических данных в плоском виде

Reading time3 min
Views7.9K
На примере хранения дерева комментариев.

Многие наверняка сталкивались с проблемой хранения комментариев, по крайней мере задумывались об этом. Очевидным решением «в лоб» является ссылка на родительский комментарий и, как следствие, рекурсивные вызовы при необходимости отобразить дерево. Современные СУБД поддерживают иерархические запросы, но мне кажется, что это просто перенос проблемы за пределы области видимости, может быть я не прав. В любом случае я писал для Google Application Engine, там разговора об иерархических запросах не идёт вообще.

Мне очень не нравилась перспектива рекурсии и множество мелких запросов к базе, поэтому я стал изобретать какой-то способ получить все комментарии одним простым запросом. И такой способ я довольно быстро «изобрёл». Опросил нескольких знакомых, оказалось, что мало кто на эту тему задумывался, поэтому возьму на себя смелость описать что именно я реализовал.

Читать дальше →

Information

Rating
Does not participate
Location
Тула, Тульская обл., Россия
Date of birth
Registered
Activity