Обновить

Разработка

Сначала показывать
Период
Уровень сложности

Два способа разработки программного обеспечения, или Одна ночь из жизни программиста Миши

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


«Две тропинки идут рядом: путь жизни и путь смерти… Люди не идут никаким путём, ни путём жизни, ни путем смерти. Вихрь носит их, как солому.»
Густав Майринк, «Голем»

В офисе было тихо и темно, лишь стук клавиш и редкие щелчки мыши нарушали едва различимое жужжание кулера, да широкоформатный монитор освещал измождённое лицо regular developer'а Миши. Сторонний наблюдатель мог бы подумать, что идёт обычная рабочая ночь с пятницы на субботу. Так оно и было для тысяч других разработчиков по всему миру, но только не для Миши. Поставив очередную пустую бутылку под стол, он внезапно почувствовал, что граница, отделяющая его от гордого титула «senior developer», не так уж и далека.

«Я встаю не раньше полудня, работаю до двух часов ночи и выпиваю за раз до трёх литров пива. Наверное, я становлюсь профессионалом», — подумал Миша, и в этот самый момент почувствовал на себе чей-то тяжёлый взгляд. То, что он увидел, подняв глаза от монитора, заставило его замереть от ужаса. Две фигуры в серых балахонах стояли по обоим сторонам его стола. Лица, скрытые низко надвинутыми капюшонами, смотрели сурово, и в то же время безразлично. Страшно было пошевелить хотя бы пальцем или вздохнуть, а сознание отчаянно отказывалось верить в реальность происходящего — ведь Миша узнал этих двоих. Старшие коллеги рассказывали ему, что всякий раз, когда кто-нибудь подбирается к мистической грани между простым разработчиком и старшим, к нему приходят эти двое, чтобы посвятить в свои мрачные тайны.

Миша сглотнул и тихо спросил дрожащим голосом:

— Тим-лид Коля? Проджект-менеджер Изя? Рабочий день уже давно закончился, что вы здесь делаете? И к чему весь этот маскарад?
Читать дальше →

Яндекс.Пробки. А туда ли вы едете?

Время на прочтение4 мин
Количество просмотров55K
В прошлой статье была затронута тема информационной безопасности такой крупной компании, как Google.
Настало время посмотреть в сторону отечественного производителя, а именно, компании Яндекс и её сервиса карт.
С чего все началось. Стоял я, значит, как-то в пробке и думал, что заставляет всех людей ездить теми или иными маршрутами. Ответ очевиден: много чего.
Однако не последнюю роль определенно играет наличие пробок и разного рода дорожных ситуаций (ДТП, ремонт полотна, камеры).
Кроме того, эти факторы учитывают и все современные навигаторы при прокладке маршрута.
Что ж, попробуем повлиять на дорожную обстановку, хотя бы виртуально…


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

Настоящее письмо Деду Морозу

Время на прочтение1 мин
Количество просмотров1.8K
Мой друг вчера показал письмо своего сынишки Деду Морозу.
Я был впечатлен широтой пожеланий :)

Data Mining в онлайн играх

Время на прочтение11 мин
Количество просмотров32K
АионВо всех онлайн сервисах и играх самая большая доля аудитории уходит прямо на старте – в первые же минуты и часы знакомства с продуктом. Этой теме уже посвящены сотни книг и статей с самыми различными гипотезами успеха и причин лояльности аудитории – уникальность, простота, юзабилити, бесплатность, обучение или инструкция, эмоциональность, и еще множество факторов считаются крайне важными.

Мы захотели узнать, почему уходят игроки и можно ли предсказать их уход. Предмет исследования – ММОРПГ Аион, однако наши результаты оказались применимы к широкому кругу игр и онлайн сервисов.
Заглянуть в будущее

Масштабируемые JavaScript приложения

Время на прочтение22 мин
Количество просмотров40K
Более месяца назад в статье FAQ по JavaScript: задавайте вопросы был задан вопрос «Подскажите примеры хорошего подхода организации JS кода к сайту на достаточно высоком уровне. Как можно узнать подробнее практики реализации например gmail?».

Пришло время ответить на данный вопрос. Я немного затянул т.к. хотел рассказать доклад на одноименную тему на Я.Субботнике. Доклад был очень коротким многие важные моменты пришлось выкинуть. Статья — более-менее полная версия.

Эта статья о том, как сделать крупное веб-приложение расширяемым и поддерживаемым: архитектура, подходы, правила.
Читать дальше →

WebSockets — полноценный асинхронный веб

Время на прочтение7 мин
Количество просмотров347K
Пару недель назад разработчики Google Chromium опубликовали новость о поддержке технологии WebSocket. В айтишном буржунете новость произвела эффект разорвавшейся бомбы. В тот же день различные очень известные айтишники опробовали новинку и оставили восторженные отзывы в своих блогах. Моментально разработчики самых разных серверов/библиотек/фреймворков (в их числе Apache, EventMachine, Twisted, MochiWeb и т.д.) объявили о том, что поддержка ВебСокетов будет реализована в их продуктах в ближайшее время.
Что же такого интересного сулит нам технология? На мой взгляд, WebSocket — это самое кардинальное расширение протокола HTTP с его появления. Это не финтифлюшки, это сдвиг  парадигмы HTTP. Изначально синхронный протокол, построенный по модели «запрос — ответ», становится полностью асинхронным и симметричным. Теперь уже нет клиента и сервера с фиксированными ролями, а есть два равноправных участника обмена данными. Каждый работает сам по себе, и когда надо отправляет данные другому. Отправил — и пошел дальше, ничего ждать не надо. Вторая сторона ответит, когда захочет — может не сразу, а может и вообще не ответит. Протокол дает полную свободу в обмене данными, вам решать как это использовать.

Я считаю, что веб сокеты придутся ко двору, если вы разрабатываете:
— веб-приложения с интенсивным обменом данными, требовательные к скорости обмена и каналу;
— приложения, следующие стандартам;
— «долгоиграющие» веб-приложения;
— комплексные приложения со множеством различных асинхронных блоков на странице;
— кросс-доменные приложения.

Заинтриговал? Давайте посмотрим подробнее

Гений 21 века. Чем сейчас занимается Фабрис Беллар

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров59K
Некоторые программисты настолько хорошо известны, что не нуждаются в особом представлении. Наверное, Фабрис Беллар — самая яркая звезда современности. Автор мультимедийного комбайна FFmpeg, эмулятора QEMU и десятков других полезных программ — абсолютный гений и пример программиста 100х, который в одиночку принёс больше пользы миру, чем многие корпорации с сотнями разработчиков. В общем, все знают Фабриса — про него ещё была статья на Хабре двенадцать лет назад…

… Но по просьбам молодых читателей мы решили вернуться к этой теме. Оно и к лучшему, ведь Фабрис многое сделал за это десятилетие, особенно в области нейросетей.
Читать дальше →

Flipper Zero — приехали экраны, стартуем массовое производство | Новые функции

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


Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем. Предыдущие посты [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21]

Good news everyone! Нам наконец доставили LCD-экраны. Это значит, что у нас есть все необходимые компоненты для начала массового производства Флипперов. Сейчас у нас есть 60k экранов, и этого хватит, чтобы произвести Флипперы, заказанные бэкерами на Кикстартере, а также часть предзаказов, сделанных на нашем сайте. Внутри истории о том, что мы делали все это время, а также план по производству и доставке.

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

jQuery File Upload

Время на прочтение2 мин
Количество просмотров183K
Ура! Еще один, свеженький… чем он лучше других?



а) Новенький! Всегда, кто берется что-то делать, то обычно смотрит: есть ли в этом смысл, и если есть — делает это.
б) Красивенький! Можно не точить, а ставить из коробки. Основан на Bootstrap'е и иконках Glyphicons
в) Само собой мультиселект файлов, Drag&drop, прогрессбар и превьюшки фотографий.
г) Поддержка кросдоменного соединения, докачка и ресайз фоток на стороне клиента.
д) Готов для любой платформы сервера (PHP, Python, Ruby on Rails, Java, Node.js, и тому подобное.)

blueimp.github.com/jQuery-File-Upload

Поддержка браузеров:

github.com/blueimp/jQuery-File-Upload/wiki/Browser-support

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

iPhone 4 на CSS3 без использования картинок

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

Предисловие


Несколько недель назад в просторах интернета я увидел очень заинтересовавшую меня вещь — iOS иконки на CSS3 полностью без картинок. Первое что подумал — «Я тоже так могу»! А спустя еще 5 минут для себя четко решил — «challenge accepted». Но чтоб не повторяться я решил немножко усложнить задачу — сделать не только иконки, но и сам девайс.

Постановка задачи



Итак, в тот-же день я решил сделать iPhone4 на CSS3 абсолютно без картинок, base64, canvas или SVG и добавить еще некоторую изюминку — интерактивные возможности:
— включение/выключение;
— блокировка при включении и разблокировка как в реальном iPhone;
— анимация «slide to unlock» текста на экране блокировки;

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

Активацию Windows 7 доломали окончательно

Время на прочтение1 мин
Количество просмотров215K
Как известно, механизм активации Windows 7 был взломан ещё до официального выхода этой системы. Но старый метод требовал изменений в BIOS, что является весьма нетривиальной задачей.

Сейчас хакеры нашли вариант полного обхода механизма Windows Activation Technologies (WAT) без манипуляций с BIOS'ом и вообще без использования ключа активации.
Читать дальше →

Как Авито помогает мошенникам и усложняет жизнь обычным пользователям

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

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

Читать далее

Линус Торвальдс, Бьёрн Страуструп и Брендан Грегг контрибьютят в мой хобби-проект. Зачем?

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

Смотрите сами: вот проект, вот история коммитов.



Список контрибьюторов с главной страницы репозитория:



Ссылки на аватарках ведут на странички профилей реальных людей.


Всё на месте. Кроме плашечки "Verified" как здесь:





Знатоки Git и GPG, не торопитесь проматывать ленту: эта статья не про необходимость подписывать свои коммиты. Она про неявные допущения, которые мы делаем, пользуясь "интуитивно-понятными" монстрами GitHub и GitLab и доверяя им контроль доступа к нашим репозиториям.

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

Ближайшие события

Кош на комплексной плоскости

Время на прочтение6 мин
Количество просмотров66K
В какой-то из весенних дней этого года я ехал в троллейбусе и листал комикс о Коше. В одном из выпусков была такая фраза «НО! Её можно понять, она же фракталами в горизонт перетекает, я бы тоже замешкался...». После этого я посмотрел в окно и понял, что если мы возьмём два подходящих дробно-линейных преобразования комплексной плоскости a(z) и b(z), и рассмотрим систему итерированных функций для a(z), b(z), a−1(z), b−1(z), взяв в качестве начального множества картинку с Кошем, то Кош будет перетекать фракталами в горизонт!

И вот несколько дней назад у меня дошли руки, чтобы написать нужный скрипт на питоне. Результаты мне и моим друзьям понравились, и я решил написать эту хабрастатью.

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



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

Wireshark — приручение акулы

Время на прочтение10 мин
Количество просмотров1.1M


Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга.
Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.
Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org.
Установка в системе Windows тривиальна — next, next, next.
Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.

Зачем вообще нужны анализаторы пакетов?
Для того чтобы проводить исследования сетевых приложений и протоколов, а также, чтобы находить проблемы в работе сети, и, что важно, выяснять причины этих проблем.
Вполне очевидно, что для того чтобы максимально эффективно использовать снифферы или анализаторы трафика, необходимы хотя бы общие знания и понимания работы сетей и сетевых протоколов.
Так же напомню, что во многих странах использование сниффера без явного на то разрешения приравнивается к преступлению.

Начинаем плаванье


Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.
Читать дальше →

История одного взлома или как пытались увести всё, но не увели ничего

Время на прочтение6 мин
Количество просмотров13K
Цель данного топика придать огласке действия мошенников пытавшихся обмануть не не только простых пользователей, но и навредить честным людям, которые вывели их на чистую воду. Злоумышленники боятся огласки и известности, так как это сильно навредит их планам. Публикую этот пост по просьбе друга и основателя проекта macpages.me Наиля Янгазова. Далее повествование идет от его имени.

Предисловие


У меня есть моя основная почта на сервисе MobileMe, который кстати будущим летом уже станет историей. Я был наивен и никогда не использовал сложные, сгенерированные пароли в сети и все было здорово. Однако, в конце 2010 года, работая за компьютером неожиданно получаю сообщение о восстановлении пароля на почте, процедуру сам не заказывал. Естественно, понимаю, что почту хотят увести, но успеваю перед злоумышленником по этой ссылке сам сменить пароль. С тех пор я использую только пароли, сгенерированные софтом, например 1Password на Mac.

Все было нормально до последнего времени — на почте был уникальный пароль с спецсимволами, буквами разного регистра и длиною не менее 10 символов. Подбором такой взломать не каждый ботнет сможет. К тому же такой пароль не был один на все аккаунты — почту, твиттер, панель для домена и т.п.

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

Визуализация графов. Метод связывания ребер

Время на прочтение7 мин
Количество просмотров58K
Иногда полезно представить граф в графической форме, так чтобы была видна структура. Можно привести десятки примеров, где это может пригодиться: визуализация иерархии классов и пакетов исходного кода какой-нибудь программы, визуализация социального графа (тот же Twitter или Facebook) или графа цитирования (какие публикации на кого ссылаются) и т.д. Но вот незадача: количество ребер в графе зачастую настолько велико, что нарисованный граф просто невозможно разобрать. Взгляните на эту картинку:



Это граф зависимостей некой программной системы. Он представляет собой дерево разбиения на пакеты (серые шарики — пакеты, белые — классы), на которое поверх наложены ребра зависимости одних классов от других. Чтобы не рисовать стрелки направления, ребра нарисованы в виде градиентных линий, где зеленый — это начало, а красный — конец ребра. Как видите, граф настолько визуально перегружен, что архитектуру программы невозможно проследить.
Под катом описание метода, решающего эту проблему.
Читать дальше →

Архитектура и платформа проекта Одноклассники

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

Архитектура и платформа проекта Одноклассники


В этом посте расскажем о накопленном за 5 лет опыте по поддержанию высоконагруженного проекта. Надеемся, что коллегам-разработчикам будет интересно узнать, что и как мы делаем, какие проблемы и трудности у нас возникают и как мы справляемся с ними.

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

Пару слов о велосипедах

Время на прочтение1 мин
Количество просмотров3.8K
Более 10-ти лет назад профессор математики Stan Wagon изобрел велосипед с квадратными «колесами», который может плавно ехать по поверхности, представляющей собой инвертированную цепную линию. Наверняка этот баян ролик уже все видели.

Проанализировав текущее положение дел в сайтостроительстве, без труда можно опознать в незамысловатом изобретении всемилюбимого ослика:

ie6 vs new browsers