Как стать автором
Обновить
58
0
Ivan Velichko @iximiuz

Software Engineer

Отправить сообщение

Большой опрос по алгоритмам

Время на прочтение1 мин
Количество просмотров22K
Тема «нужны или не нужны алгоритмы современным разработчикам» на днях в очередной раз всплывала на Хабре и породила множество комментариев. В связи с этим предлагаю следующий опрос.

Сможете ли вы реализовать, пусть и не production ready, этот алгоритм, почти не подсматривая в спецификацию:

UPD: Касательно последнего опроса — было бы очень интересно в комментариях услышать реальные интересные примеры из жизни.
Всего голосов 55: ↑44 и ↓11+33
Комментарии74

Знакомство с Nim: пишем консольную 2048

Время на прочтение6 мин
Количество просмотров22K

Хочется чего-то нового, быстрого, компилируемого, но при этом приятного на ощупь? Добро пожаловать под кат, где мы опробуем язык программирования Nim на реализации очередного клона игры 2048. Никаких браузеров, только хардкор, только командная строка!

В программе:

Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии41

Сбор и визуализация метрик приложения в Graphite и Graph-Explorer

Время на прочтение9 мин
Количество просмотров65K
Зачастую возникает необходимость отслеживать различные параметры работы приложения/сервиса. Например, интерес представляет количество запросов в секунду, среднее время ответа сервера, количество ответов сервера с различным HTTP-статусом (технические метрики), количество регистраций пользователей в час, количество платежных транзакций в минуту (бизнес-метрики) и пр. Без системы сбора метрик разработка и сопровождение продукта происходит практически вслепую.



Данная статья является руководством по настройке системы сбора и анализа метрик приложения на базе Graphite и vimeo/graph-explorer.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии11

Реализация Sunburst Chart на JavaScript и HTML5 Canvas

Время на прочтение7 мин
Количество просмотров18K

Всем привет! Сегодня хотелось бы рассказать про то, как можно сделать собственные графики на js + canvas буквально в пару сотен строк кода. А заодно вспомнить школьный курс геометрии.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии14

Web-разработка на Python глазами PHP-программиста

Время на прочтение7 мин
Количество просмотров176K

Введение



В статье хотелось бы поднять вопросы отличия использования Python для web-разработки по сравнению с оной на PHP. Надеюсь, статья не приведет к холиварам, так как она вовсе не о том, какой язык лучше или хуже, а исключительно о технических особенностях Python.
Читать дальше →
Всего голосов 77: ↑62 и ↓15+47
Комментарии95

Концепт AngularJS service для именованных соединений socket.io

Время на прочтение5 мин
Количество просмотров13K
Доброго времени суток, друзья!

В процессе работы над одним сервисом, фронтенд которого построен на AngularJS, возникла необходимость общаться с сервером socket.io по разным логическим каналам. При этом было желание обойтись всего одним реальным физическим соединением с сервером и иметь в коде приложения отдельные объекты подключений для каждого канала. Что из этого получилось, можно посмотреть под катом.


Читать дальше →
Всего голосов 22: ↑16 и ↓6+10
Комментарии4

Внешний сервис голосования aka like-dislike feature

Время на прочтение3 мин
Количество просмотров6.1K
Добрый день, Хабрасообщество!

В процессе реализации одного моего проекта (с блекджеком и всеми остальными social прелестями), пришлось реализовывать функциональность голосования (like, like/dislike, rating, etc) пользователей за некоторые сущности предметной области проекта.

Disclaimer: к моему величайшему сожалению далее будут лишь рассуждения о функциях некоторого абстрактного внешнего сервиса голосовалок и ни строки кода или полезных ссылок, но мне нужно получить обратную связь знающих людей.

Поискав в Google готовые решения, не удалось найти ничего подходящего. В основном решения (плагины для различных web-фреймворков) сводятся к добавлению дополнительных полей в существующие таблицы (или объекты коллекций в случае MongoDB), в которые пишется количество лайков/дислайков, а также кто из пользователей уже проголосовал. Такие решения имеют значительные недостатки, так как с одной стороны не обладают достаточной гибкостью, позволяющей легко модифицировать алгоритмы голосования (что очень важно для нового проекта в процессе поиска правильной модели), а с другой стороны требуют модификации существующего кода и, что еще хуже, уровня хранения данных, для добавления функциональности голосования.
Читать дальше →
Всего голосов 17: ↑11 и ↓6+5
Комментарии13

Разрабатываем модуль PHP на C++. Часть 1: экскурс в мир Zend Engine 2

Время на прочтение12 мин
Количество просмотров14K
Доброго времени суток, уважаемое Харбасообщество!

Под катом изложена некоторая информация касательно написания расширений для PHP c использованием C++, почерпнутая мной из различных источников (по большей части англоязычных) и ковыряния исходников Zend Engine 2 во время разработки одного модуля для собственных нужд. Так как объем ее достаточно велик, далее я старался быть краток.

Итак, в этой части:

А вот до C++ в этой части мы так и не доберемся… =)

Маленький дисклеймер: содержимое статьи не есть истина в первой инстанции, не основывается на официальной документации (а есть ли она?) и является моим субъективным взглядом на ZE 2. Тем не менее, в свое время я был бы рад найти нечто подобное на просторах Рунета, дабы сэкономить время на начальных этапах разработки.

Читать дальше →
Всего голосов 81: ↑78 и ↓3+75
Комментарии38

Расширяем возможности PHPMailer

Время на прочтение11 мин
Количество просмотров42K
Добрый день!
Наверное все, кому приходилось отправлять почту из кода на PHP через SMTP, знакомы с классом PHPMailer.
В статье я расскажу о том, как можно в несколько строк кода научить PHPMailer принимать в качестве дополнительного параметра IP адрес сетевого интерфейса, с которого мы хотим осуществить отправку. Естественно, что эта возможность будет полезна только на серверах с несколькими белыми IP адресами. А в качестве небольшого дополнения мы отловим достаточно неприятного жучка из кода PHPMailer`а.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии9

Много текста про практику работы с PHPUnit/DbUnit

Время на прочтение9 мин
Количество просмотров27K
Доброго времени суток, друзья!
Хочу поделиться опытом по борьбе с PHPUnit/DbUnit в связке с MySQL. Далее небольшая предыстория.

Краткая предыстория


В процессе написания одного веб-приложения возникла необходимость тестировать код на PHP, интенсивно взаимодействующий с БД MySQL. В проекте в качестве фреймворка модульного тестирования использовался порт xUnit — PHPUnit. В результате было принято решение писать тесты для модулей, непосредственно взаимодействующих с базой, подцепив плагин PHPUnit/DbUnit. Дальше я расскажу о тех трудностях, которые возникли при написании тестов и о том, каким способом я их преодолел. В ответ же хотелось бы получить комментарии знающих людей относительно корректности моих решений.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии31

Итеративный подход к решению инженерных задач

Время на прочтение5 мин
Количество просмотров8.8K
Ну вот, дожил и я до того дня, когда меня потянуло написать в этот блог.
Доброго времени суток, хабрачеловек!

Так уж сложилось, что многие из обитающих на славном Хабре жителей так или иначе связаны с разработкой. Под разработкой я здесь подразумеваю чуть более широкий и абстрактный термин, чем написание программ. Разработка — это прежде всего созидательные действия, творческий процесс. На входе этого процесса — мысль, идея, а на выходе — осязаемый продукт, детище разработчика. Конечным продуктом может быть все, что угодно: сайт, дизайн, программа, хитроумный девайс, умный дом и пр.

Привыкнув к некоторой самостоятельности в своих действиях и не брезгуя принимать решения я зачастую сам создаю себе проблемы ставлю себе задачи, которые потом приходится решать. Этим, собственно, и зарабатываю на хлеб с маслом. Заимев за плечами некоторое множество успешно решенных задач и потратив на это кучу времени, пришла банальная мысль, что каждый раз сталкиваешься с одной и той же последовательностью шагов по их решению, при прохождении которых наступаешь на одни и те же грабли. Потерев в очередной раз ушибленный лоб, мои руки решили наконец положить конец такому положению вещей и начали что-то судорожно записывать в склерозник. В итоге родился хитроумный план по борьбе с шишками на лбу, который за последние несколько месяцев сэкономил мне некоторое количество человеко-часов. Подробности по катом.
Читать дальше →
Всего голосов 34: ↑28 и ↓6+22
Комментарии23

Странное поведение dev server при использовании GAE Plugin для Eclipse Indigo (3.7)

Время на прочтение2 мин
Количество просмотров663
Доброго всем времени суток!
Недавно занялся разработкой своего первого приложения на Google App Engine и моментально столкнулся с забавной проблемой — эмулятор сервера GAE, входящий в пакет GAE SDK для Java отказывался применять изменения в коде проекта. Далее описание проблемы и то, как я от нее избавился. Возможно это сэкономит кому-нибудь время
Читать дальше →
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

MBR для флешки своими руками или как сделать из одного устройства три

Время на прочтение8 мин
Количество просмотров112K
Мое почтение читающему!
Топик мог бы получиться просто катастрофически огромным, поэтому перейдем сразу к делу. Впереди вас ждет рассказ, о том, как можно одну флешку сделать одновременно загрузочной как для ОС семейства Windows, так и *nix, а также сделать из нее live-usb. Заранее прошу прощения за жаргон, не сторонник, но так короче.

Аннотация


Как-то пришлось много раз подряд устанавливать на одну и ту же машину кучу разных операционных систем, как от товарищей господ из Майкрософт, так и любимых всеми нами *nix`ов. При этом инсталляторы вновь устанавливаемых ОСей периодически терли загрузчики ранее установленных, так что приходилось их восстанавливать вручную, загружаясь с live-usb. Но самое ужасное, что при всем при этом под рукой была всего одна флешка (и еще 15 компьютеров правда, но толку от них было мало, так как разбирать их по причинам гарантии в надежде на лишний жесткий диск было нельзя). Флешка к счастью была большого объема. Вот тут-то и возникла идея сделать из одной флешки две, а лучше три (хотя можно и 4) разных девайса.

Немного теории


Как сделать из одной флешки несколько с целью последующей установки на нее одновременно нескольких установщиков ОС и еще live-операционки? Ответ очевиден — сделать на флешке несколько разделов!
Читать дальше →
Всего голосов 193: ↑181 и ↓12+169
Комментарии78

Об алгоритме взлома WPA-PSK

Время на прочтение8 мин
Количество просмотров152K
Доброго времени суток, уважаемое Хабросообщество!
В данном топике хотелось бы рассмотреть некоторые тонкие вопросы, связанные с атаками на сети Wi-Fi в режиме разделяемого ключа WPA-PSK (если говорить более просто — WPA-PSK — режим без выделенного сервера аутентификации, который используют большинство пользователей Wi-Fi, например, при создании подключения по сети типа компьютер-компьютер).

К чему все это?


На бескрайних просторах интернета можно найти как описание способов такой атаки, так и скачать программы полуавтоматического ее проведения (яркий пример aircrack-ng). Но вот программы эти в большинстве своем представляются пользователю в виде некоего черного ящика, который при этом хорошо если работает в соответствии с руководством по его эксплуатации.

Недавняя статья на Хабре, посвященная одной из таких программ, упоминающая в себе использование радужных таблиц (возможно ли это?) для ускорения атаки, и подтолкнула меня к написанию данного топика. Надеюсь информация окажется полезной, так как аналогов в сети я не встречал ни на отечественном, ни на вражеских языках.
Читать дальше →
Всего голосов 86: ↑83 и ↓3+80
Комментарии28

Информация

В рейтинге
Не участвует
Откуда
Amsterdam, Noord-Holland, Нидерланды
Зарегистрирован
Активность