Обновить

Разработка

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

Разработчик SearchFace о возможностях алгоритма

Время на прочтение2 мин
Количество просмотров107K
Всем привет, я один из разработчиков сервиса SearchFace и готов поговорить о нём в комментариях.



Из-за шумихи с иском ВК на второй план отошло то важное, ради чего мы запустили сервис — чтобы протестировать возможности поиска. А раз уж теперь сервис доступен широкой публике, хочется продемонстрировать всем, на что способны наши алгоритмы распознавания.
Читать дальше →

Одна из самых больших DDoS-атак в истории

Время на прочтение2 мин
Количество просмотров177K
На протяжении последней недели многие пользователи интернета в Европе столкнулись с задержками и кратковременной недоступностью множества сайтов. Их причина — бушевавшая всё это время DDoS-атака, достигавшая 300 гигабит в секунду — одна из самых крупных, возможно даже самая крупная за всю историю интернета. Масштаб атаки был таков, что её ощутили даже «киты», на которых стоит интернет — Tier-1-операторы и крупнейшие точки обмена трафиком европейских столиц.

Причиной атаки стал конфликт между организацией Spamhaus, составляющей списки распространителей спама, и голландским провайдером Cyberbunker. Конфликт разгорелся после того, как Spamhaus включила Cyberbunker в списки спамеров. Cyberbunker — один из самых радикально настроенных «абузоустойчивых» провайдеров. Его услугами пользовалась Пиратская Бухта. Штаб-квартира и серверы Cyberbunker расположены в пятиэтажном здании бывшего военного бункера НАТО — отсюда и название. Как утверждает Spamhaus, в ответ на включение в чёрный список Cyberbunker начал атаку.
Читать дальше →

Хак поиска кратчайшего пути в StarCraft

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

Один из ведущих разработчиков Warcraft и Starcraft Патрик Вайат периодически публикует воспоминания о своей работе в компании Blizzard в 90-е годы. Очень интересно посмотреть изнутри на процесс разработки игр, которые стали впоследствии культовыми. В последней заметке Патрик поведал замечательную историю, как пришлось впопыхах исправлять баги в StarCraft перед выпуском игры и что из этого получилось.

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

В новый микроскоп IBM видно межатомные связи в молекуле

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

Научно-исследовательское подразделение IBM Research в Цюрихе опубликовало картинки, которые удалось сгенерировать с помощью сканирующего атомно-силового микроскопа (АСМ). На изображениях можно различить отдельные атомы углерода в шарообразной молекуле C60. Видны даже химические связи между атомами, то есть перекрывающиеся электронные облака («размазанные» электроны, в терминологии Шрёдингера).

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

Обратная разработка коммерческой программы: кейген для Zuma Deluxe

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



Вступление

Здравствуйте, Хабралюди.
Судя по последним статьям в блоге Assembler, тема кейгенов становится здесь весьма популярной. Что ж, внесу и я свои пять копеек.
Наш сегодняшний подопытный — игра Zuma Deluxe, на которую я никак не мог отгуглить себе кейген (не подумайте, что я игроман: на всё данное исследование меня вдохновил тов. k_d с его самоиграйкой для Zuma). И сразу дисклеймер: данный взлом от начала и до конца проделан в образовательных целях и не имеет целью нести убытки компании PopCap Games.
Читать дальше →

Новый алгоритм для депикселизации графики

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

Сотрудник Microsoft Research Йоханнес Копф (Johannes Kopf) совместно с профессором Дани Лисчински опубликовали научную работу (зеркало) с описанием нового алгоритма депикселизации, который значительно превосходит все существующие методы. Разница в качестве действительно колоссальна.

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

Работаем с jQuery Templates

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

Введение


Плагин jQuery Templates – это «движок шаблонов», работающий на стороне клиента как расширение jQuery.

Этот плагин помогает показать в браузере данные, которые находятся в объектах и массивах JavaScript, избавляя вас от рутинных операций по созданию HTML-кода, экранированию специальных символов и т.п. Кроме того, он обладает очень интересными возможностями – например, позволяет обновлять созданный с его помощью HTML-код при изменении исходных данных.

Разумеется, jQuery Templates – не единственный и не первый «движок шаблонов», но у него есть большое преимущество перед альтернативными вариантами – поддержка со стороны jQuery Team. Это позволяет нам не бояться того, что этот плагин окажется заброшенным, и различные проблемы, возникающие при выходе новых версий браузеров, придется решать своими силами.

В этой статье я расскажу об основных возможностях jQuery Templates и продемонстрирую его работу в различных сценариях, а в последующих статьях я расскажу о функциях, не вошедших в основной код плагина (jQuery Templates Plus) и о расширении языка шаблонов.

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

Очередная китай-камера с бэкдором

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров38K

Как можно догадаться, на этот раз речь пойдёт об очередном поделии китайского IoT-гения, а именно о цифровой камере для третьего "глаза" микроскопа (можно ли назвать камеру для микроскопа IoT-ом?). Не знаю, может у них там сверху наказ такой: в каждую камеру по бэкдору совать (и чем больше, тем лучше), но это в самом деле треш.

За какую камеру ни возьмись: будь она для видеонаблюдения, либо, как в моём случае, для вывода картинки с микроскопа на монитор/смартфон - по факту вы получаете не только девайс, выполняющий свои основные функции, но и как "премиум-фичу" - потенциально следящее (конечно же, за Вами) устройство. Об одном таком девайсе я и хочу рассказать.

Читать далее

О, «Герои»? Дайте две! Как я писал очередной браузерный клон легендарной стратегии, в который уже почти* можно играть

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров36K


TL;DR для тех, кому некогда читать™:




Вот как всё начиналось

Достаточно одной К155ЛА3

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров69K

Продолжая тему легендарных микросхем, нельзя обойти вниманием замечательнейшую микросхему 7400, также известную на постсоветском пространстве, как К155ЛА3.

Давным-давно, когда деревья были большими, а я ещё учился в старших классах, на меня снизошло откровение от старших товарищей, что практически любое цифровое устройство можно собрать только на микросхемах К155ЛА3. Утверждение может показаться спорным, но ничто не мешает нам его проверить.

И поможет нам в этой проверке другое откровение: «Инверсия конъюнкции есть дизъюнкция инверсий». Заодно и разберёмся, что есть «конъюнкция», что есть «дизъюнкция», и причём здесь «инверсия».
И это совсем несложно

Как я проводил обратную разработку таинственного UDP-трафика в гостиничном номере

Время на прочтение3 мин
Количество просмотров35K
Всем привет! Я на какое-то время поселился в гостинице. Гостиница из современных, с умными телевизорами и всякими другими подключенными устройствами. Меня одолело любопытство, и я открыл Wireshark, как сделал бы на моем месте любой любитель покопаться в технике.

Я был очень удивлен, когда увидел большое количество UDP-трафика на порте 2046. Взглянул на него, но много толку это не дало – порт оказался не из стандартных, так что разбираться предстояло вручную.

Сначала я заподозрил, что эти данные нужны для стриминга телепередач на телевизоры, но размер пакета выглядел мелковатым, даже для единичного видеофрейма.
Читать дальше →

Мобильный телефон BuratinoPhone

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


Цель проекта — изучение основ разработки под Arduino, отработка технологий изготовления печатной платы, пайки элементов, изготовления корпуса в домашних условиях. Тем, кто захочет повторить или воспользоватся решениями для своих проектов, исходники можно скачать здесь Github.

KPHP от ВКонтакте

Время на прочтение1 мин
Количество просмотров149K
Буквально несколько минут назад Павел Дуров на своей странице ВКонтакте представил новый вариант PHP, названный KPHP.
Слово автору:

В конце мая, перед началом сезона отпусков, суточная посещаемость ВКонтакте достигла очередного рекорда — почти 50 млн. пользователей. Именно тогда мы завершили перевод всего кода ВКонтакте на компилируемый язык программирования, который разрабатывали более года, — KPHP. В результате практически все страницы сайта стали грузиться более чем 2 раза быстрее.

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

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

Руководство новичка по эксплуатации компоновщика

Время на прочтение32 мин
Количество просмотров220K
David Drysdale, Beginner's guide to linkers (http://www.lurklurk.org/linkers/linkers.html).

Цель данной статьи — помочь C и C++ программистам понять сущность того, чем занимается компоновщик. За последние несколько лет я объяснил это большому количеству коллег и наконец решил, что настало время перенести этот материал на бумагу, чтоб он стал более доступным (и чтоб мне не пришлось объяснять его снова). [Обновление в марте 2009: добавлена дополнительная информация об особенностях компоновки в Windows, а также более подробно расписано правило одного определения (one-definition rule).

Типичным примером того, почему ко мне обращались за помощью, служит следующая ошибка компоновки:
g++ -o test1 test1a.o test1b.o
test1a.o(.text+0x18): In function `main':
: undefined reference to `findmax(int, int)'
collect2: ld returned 1 exit status

Если Ваша реакция — 'наверняка забыл extern «C»', то Вы скорее всего знаете всё, что приведено в этой статье.
Читать дальше →

Используем хабракомментарии как машину Тьюринга

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

Как это вообще взбрело мне в голову?



У каждого хабракомментария есть свой адрес. Строение адреса коментария:
habrahabr.ru/blogs/gtd/135090/#comment_4486120
То что до "#" — это ссылка на топик, а после — якорь, указывающий положение комментария на странице.
Если в комментариях указывать ссылки на другие комментарии, а потом жмякать по ним, то страница будет прокручиваться до нужного места. Еще у самих коментариев есть пара стрелок ↑ ↓ позволяющих перемещаться между ответами на комментарии.
«Эй!» — подумал я, — «что-то в этом есть». Сначала я размышлял над пределом запутанности комментариев, если в них ставить ссылки друг на друга. Но потом понял что тут кроется вообще что-то из элементарного программирования, сильно похожее на машину Тьюринга. Но какой-то детали не хватало, а ссылки в содержании комментариев использовать не хотелось. На помощь пришло добавление в избранное!
Читать дальше →

Стив Джобс о флеш-технологии. Прикладная риторика

Время на прочтение9 мин
Количество просмотров6.1K
imageТак вышло, что я слежу за положением дел вокруг критики флеш со стороны Apple, поэтому не могу не обратить внимания на очередное открытое письмо Стива Джобса по поводу отказа поддерживать флеш.

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

Софи́зм (от греч. σόφισμα, «мастерство, умение, хитрая выдумка, уловка, мудрость») — ложное умозаключение, которое, тем не менее, при поверхностном рассмотрении кажется правильным.

Исторически с понятием «софизм» неизменно связывают идею о намеренной фальсификации. Задача софиста — представить наихудший аргумент как наилучший путём хитроумных уловок в речи, в рассуждении, заботясь не об истине, а об успехе в споре или о практической выгоде.

Главная цель ритора — не раскрытие истины, но чёткость и убедительность при помощи вероятного (εἰκός), для чего чрезвычайно полезны всякие софизмы.


В своём эссе Джобс выдвигает следующий тезис:

Apple блокирует флеш не по бизнес-мотивам, защищая свой App Store, а по причинам технологического характера
I wanted to jot down some of our thoughts on Adobe’s Flash products so that customers and critics may better understand why we do not allow Flash on iPhones, iPods and iPads. Adobe has characterized our decision as being primarily business driven – they say we want to protect our App Store – but in reality it is based on technology issues.


Посмотрим, какие доводы он приводит в доказательство этого тезиса.
Читать дальше →

Векторизуем изображение генетическим алгоритмом

Время на прочтение21 мин
Количество просмотров6.5K
Итак, на выходных мы должны весело отдохнуть, а потому попробуем векторизовать изображение генетическим алгоритмом.
Векторизованный доктор Хаус
Хочу знать как!

Как приручить AI-пиксель-арт

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров16K

За последние пару лет генеративные нейросети стали волшебной кисточкой для всего: концепт‑артов, иконок, иллюстраций, обложек, аватаров, спрайтов… Особенно — пиксель‑арта. В Midjourney, Stable Diffusion, Dall‑E, Image-1 и в других моделях можно просто вбить: «Pixel art goose with goggles in the style of SNES» — и получить шикарного пиксельного гуся за 10 секунд.

Но если ты пробовал вставить такого гуся в игру — ты уже знаешь боль.

Я решил вкопаться в эту тему поглубже и сделать open‑source‑инструмент, который автоматизирует превращение AI‑generated pixel art в pixel‑perfect pixel art.

Читать далее

Первоапрельская шутка, из-за которой меня едва не уволили

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров135K

Каждый хотя бы раз в жизни должен устроить одну великолепную шутку. В этой статье я расскажу о своей (кажется, срок исковой давности уже прошёл). История правдива, вырезаны только имена, чтобы защитить виновного.

На своей первой работе после колледжа я был программистом баз данных, несмотря на то, что мой диплом никак не был связан с компьютерами, да и сегодняшняя профессия тоже. Причина заключалась в том, что университет, в котором я работал, не мог предложить конкурентоспособную зарплату, но имел различные неденежные бонусы, плюс они готовы были обучать любого, обладавшего достаточными для работы знаниями. Я, только что выпустившийся студент Университета Калифорнии, вполне освоил работу как минимум с BSD/386 и SunOS, и, что более важно, имел отличные рекомендации от своего предшественника, получившего повышение. Меня наняли, и это стало их первой ошибкой.

Читать далее

Перестаньте молиться на принципы S.O.L.I.D

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

В мире разработки программного обеспечения существует множество "священных коров" — принципов и практик, которые принимаются как данность и редко подвергаются критическому анализу. Особенно показательна ситуация с принципами SOLID на русскоязычных ресурсах: достаточно открыть Хабр, чтобы найти 100500 статей о SOLID, и в каждой из них принципы интерпретируются по-разному.


Само существование такого количества "объяснительных" статей говорит о фундаментальной проблеме: если принципы требуют толкования, значит их названия не являются самодостаточными и интуитивно понятными. А если каждый разработчик понимает принципы по-своему, возникает вопрос — зачем вообще нужны принципы, которые не дают однозначного руководства к действию? Принципы SOLID, предложенные Робертом Мартином, давно стали одной из таких "священных коров". Однако пришло время честно признать: то, как мы используем SOLID сегодня, часто противоречит изначальным идеям и в целом иногда может приносить больше вреда, чем пользы. Зависит от контекста.


SRP не SRP


Самый яркий пример искажения первоначального замысла — это интерпретация принципа единственной ответственности (SRP).

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