Взлом звуковой CAPTCHA на примере сайта Digg.com
4 min
5.7KВведение
Многие владельцы новостных сайтов сталкиваются с потребностью размещения обратных ссылок на свою статью в популярных сервисах таких как, например Digg.com (один из крупнейших новостных аггрегаторов). Но проблема в том, что необходимо вручную заходить на сайт и добавлять ссылку каждый раз, либо перекладывать этот процесс на плечи посетителей. Естественно хотелось автоматизировать этот процесс.Сайт Digg.com предоставляет довольно мощный API, который позволяет выполнять многие вещи: комментировать, голосовать за новость, поиск и т.д… Но он не позволяет главного — публиковать свою новость. В принципе нас ни что не ограничивает написать скрипт для автоматического добавления новостей со своего источника. Единственно препятствие — это Captсha, ей мы и займемся.
+163
Протокол MQV — старый добрый Диффи-Хеллман, но не совсем
4 min
12KВот уже более 30 лет протокол распределения ключей Диффи-Хеллмана радует глаз простого криптомана своей простотой и надежностью. Для тех, кто эти последние 30 лет провел за занятиями более веселыми, нежели изучение криптографических протоколов, поясняю.
Протокол Диффи-Хеллмана был опубликован в 1976 году и послужил началом эры асимметричной криптографии. Суть его до гениального проста: Алиса и Боб хотят получить общий ключ для симметричной криптосистемы. Для этого они, договорившись, выбирают два больших числа g и p. Эти числа известны им обоим и держать их в секрете не имеет никакого смысла. Затем Алиса в тайне генерирует большое секретное число a, а Боб — большое число b. А далее за дело берется простая арифметика. Алиса посылает Бобу число
.
Боб в свою очередь высылает Алисе
.
Протокол Диффи-Хеллмана был опубликован в 1976 году и послужил началом эры асимметричной криптографии. Суть его до гениального проста: Алиса и Боб хотят получить общий ключ для симметричной криптосистемы. Для этого они, договорившись, выбирают два больших числа g и p. Эти числа известны им обоим и держать их в секрете не имеет никакого смысла. Затем Алиса в тайне генерирует большое секретное число a, а Боб — большое число b. А далее за дело берется простая арифметика. Алиса посылает Бобу число
. Боб в свою очередь высылает Алисе
.+27
Десять советов начинающим программистам
5 min
110KПредисловие
Хорошо, когда работаешь с человеком, который отлично знает толк в своём деле. А что, если случается работать с коллегой, опыт которого не столь большой. Особенно это касается профессионально-личностных качеств. Невольно приходится подсказывать, местами помагать ему, а где-то даже откровенно учить. Все мы когда-то начинали. Все эти действия требуют немалых усилий, которые можно было бы применить по прямому назначению — в разработке проекта, но без подготовки новых специалистов будет тяжелее.
Так вот, чтобы минимизировать эти затраты, давайте «создадим» хорошего, а возможно и идеального начинающего программиста, с высоким потенциалом и светлыми горизонтами.
Предлагаемые здесь десять советов не претендуют на оригинальность и, в основном, базируются на моем небольшом пятилетнем опыте разработок. Итак, начнем.
1. Будьте самостоятельными
Если у вас есть какой-то вопрос, и вы не знаете как с ним поступить, то вначале постарайтесь исследовать его самостоятельно. Не ждите постоянной помощи от коллег — у них и без вас работы хватает. Используйте всю мощь поисковых систем, специализированных ресурсов (например, stackoverflow), профессиональных блогов, форумов разработчиков, и конечно же хабра. Большинство типичных «граблей» можно обойти различными эффективными вариантами, а для решения базовых задач есть дюжины готовых решений. Просто пойдите и возьмите.
+72
Удлинение урлов — занятие бессмысленное и беспощадное
2 min
4.7KНе знаю кто как проводит эти выходные, а у меня возникло сильное желание сделать что-то поистине бесполезное для человечества. Недолго перебирая варианты, остановился на одном.
Уверен, что если есть сервисы которые укорачивают ссылки, то должны были быть и те, которые удлиняют. Т.е. очень важно чтобы был соблюден баланс урлоизменяющих сервисов в природе. Последние были легко найдены: это и HugeUrl, и TitanUrl, и FreakingHugeUrl, и другие… Но что может более бесполезным, чем попытка сделать ненужную вещь лучше. Совершенного удлинителя я не нашел, один использует флэш, другой делает урлы не работающие в IE, третий делает слишком короткие урлы.
Поэтому прошу любить и жаловать мое видение сервиса делающего урлы бессмысленно длинными.
Уверен, что если есть сервисы которые укорачивают ссылки, то должны были быть и те, которые удлиняют. Т.е. очень важно чтобы был соблюден баланс урлоизменяющих сервисов в природе. Последние были легко найдены: это и HugeUrl, и TitanUrl, и FreakingHugeUrl, и другие… Но что может более бесполезным, чем попытка сделать ненужную вещь лучше. Совершенного удлинителя я не нашел, один использует флэш, другой делает урлы не работающие в IE, третий делает слишком короткие урлы.
Поэтому прошу любить и жаловать мое видение сервиса делающего урлы бессмысленно длинными.
+309
Убунту с яблочным вкусом: Ubuntu на Apple iMac
8 min
54K
1. Предыстория
Мне понадобилось купить компьютер. Так случается порой.
В моём случае ситуация была такова: я менял работу, а единственный компьютер, который у меня был — рабочий ноутбук, который, конечно же, пришлось отдавать.
Пару лет назад я (в очередной раз) пересел на Убунту, да так уже и не смог больше с неё слезть: чем дальше, тем больше к ней привязывался и тем сильнее раздражала и не нравилась Windows. Жене на нетбук, разумеется, — Ubuntu Netbook Edition. Я также поставил Убунту тёще (живущей за тысячи километров от меня), и, хоть прошло уже более года, никаких серьёзных проблем ни с компьютером, ни с тёщей не возникло. На рабочем ноутбуке основной системой является также Убунту, а для программ, которые необходимо запускать в Windows, используется бесплатный VMware Player (и Windows, шедшая с ноутом в комплекте).
Короче говоря, альтернатив этой системе я не рассматривал и ни разу не собирался.
+99
Kismet
7 min
94KKismet — это многофункциональная бесплатная утилита для работы с беспроводными сетями Wi-Fi. Пользователям она знакома в основном по статьям на тему взлома, где программа используется для обнаружения скрытых сетей или захвата пакетов. Взламывать чужие сети — плохо, а между тем Kismet — это гораздо больше чем отмычка в руках злоумышленника. В арсенале инженера информационной безопасности эта программа становится прекрасным инструментом для наблюдения и анализа эфира 802.11.
+81
Кубик Рубика на canvas
2 min
9.3K
Недавние посты об алгоритме сборки кубика 5×5 сподвигли меня написать эмулятор кубика на канвас. Автором статей про сборку предлагался свой кубик на OpenGL, но он мне многим не понравился. Надеюсь, с моим кому-нибудь удастся освоить алгоритм быстрее. Некоторые особенности и преимущества:- Кроссплатформенность, кроссбраузерность (IE за браузер не считаем), ненужность инсталлятора и прочие преимущества веб-приложения.
- Поддержка кубиков от 2×2 и до бесконечности (пока грани не станут сильно маленькими и рендеринг не начнёт жестоко тормозить). В интерфейс вынесено до 11×11, но в библиотеке ограничений нет.
- Псевдообъёмные грани для красоты.
- Бесконечный undo-буфер.
- Возможность замеса кубика (shuffle).
- Слои вращаются легко и интуитивно, быстро привыкаешь. Крутить весь кубик (мышкой с зажатым шифтом или правой кнопкой) не так легко, но тоже можно привыкнуть.
- Вся библиотека компактная, размещается в одном js-файле и не имеет никаких внешних зависимостей.
- Лицензия MIT, а также открытые и не очень страшные исходники позволяют вставить кубик на ваш сайт и доработать по вкусу.
+92
Делаем свои плагины для Chrome мультиязычными
2 min
2.2K
У вас есть плагин для Chrome на русском или на английском языке, но аудитория плагина намного шире и не только на выбранном вами языке? Тогда прошу подкат.
+34
Обратные вызовы и исключения С++
7 min
8.5KВведение
Как известно, многие С-библиотеки используют обратные вызовы для обеспечения какого-либо функционала. Так поступает, например, библиотека expat для реализации SAX модели. Обратный вызов или callback используется для возможности выполнить пользовательский код на стороне библиотеки. Пока такой код не несет побочных эффектов — все нормально, но как только на арене появляется С++, все, как всегда, становится нетривиальным.
+36
Из чего готовят Google Analytics Cookies
3 min
24K
Добрый день.
Недавно одни из наших заказчиков выразили желание получать дополнительную информацию о посетителях своего сайта, конкретнее — о людях, заполнивших контактную форму. Это крупная европейская компания и им хотелось бы «фильтровать» своих потенциальных клиентов. Поясню на примере — допустим, решают они организовать выставку своего оборудования в Венгрии и им нужно решить, кто из венгров, оставлявших им свои контакты, скорее всего стоящий клиент, а кто «мимо проходил».
Основными показателями «надежности» клиента для нас стали: число посещений сайта, время проведенное на сайте, количество просмотренных страниц. Всю эту информацию мы получили из Google Analytics Cookies.
Что же из себя представляют печеньки от Google?
+121
Как выучить любой язык за 3 месяца?
6 min
100KПеревод статьи Тима Ферриса из его блога.

(Учебник Дзюдо Окано Исао, который я использовал для изучения японской грамматики)
Изучение языка не должно быть сложным.
Принципы когнитивной нейронауки и управления временем могут быть применены для достижения свободного владения языком на разговорном уровне (в данном случае определяется как 95%+ процентов понимания и 100% выразительных возможностей) в течение 1-3 месяцев.

(Учебник Дзюдо Окано Исао, который я использовал для изучения японской грамматики)
Изучение языка не должно быть сложным.
Принципы когнитивной нейронауки и управления временем могут быть применены для достижения свободного владения языком на разговорном уровне (в данном случае определяется как 95%+ процентов понимания и 100% выразительных возможностей) в течение 1-3 месяцев.
+165
WTF is a SuperColumn? Введение в модель данных Cassandra
17 min
12KTranslation
Это перевод статьи, датированной 1м сентября 2009 года, следует это учесть при прочтении. — прим. пер.
В последний месяц или два команда инженеров Digg потратила совсем немного времени на изучение, тестирование и окончательное внедрение Cassandra в продакшен. Это был очень веcёлый проект, но до того, как веселье началось, нам пришлось потратить какое-то время на выяснение того, что же представляет собой модель данных Cassandra… фраза «WTF is a «super column»» («что за фигня этот суперстолбец?») была произнесена не один раз.
Если вы работали ранее с РСУБД (это касается почти всех), вы вероятно будете немного обескуражены некоторыми названиями при изучении модели данных Cassandra. Мне и моей команде в Digg потребовалось несколько дней обсуждений, прежде чем мы «врубились». Пару недель назад в списке рассылки разработчиков шёл процесс bikeshed-а на тему полностью новой схемы именования для разрешения неразберихи. На всём протяжении дискуссии я думал: «может, если будет несколько нормальных примеров, люди не будут так смущены названиями». Так, это моя попытка объяснения модели данных Cassandra; она предназначена для того, чтобы вы ознакомились, но не уходили в дебри, и, надеюсь, это поможет прояснить некоторые вещи.
В последний месяц или два команда инженеров Digg потратила совсем немного времени на изучение, тестирование и окончательное внедрение Cassandra в продакшен. Это был очень веcёлый проект, но до того, как веселье началось, нам пришлось потратить какое-то время на выяснение того, что же представляет собой модель данных Cassandra… фраза «WTF is a «super column»» («что за фигня этот суперстолбец?») была произнесена не один раз.
Если вы работали ранее с РСУБД (это касается почти всех), вы вероятно будете немного обескуражены некоторыми названиями при изучении модели данных Cassandra. Мне и моей команде в Digg потребовалось несколько дней обсуждений, прежде чем мы «врубились». Пару недель назад в списке рассылки разработчиков шёл процесс bikeshed-а на тему полностью новой схемы именования для разрешения неразберихи. На всём протяжении дискуссии я думал: «может, если будет несколько нормальных примеров, люди не будут так смущены названиями». Так, это моя попытка объяснения модели данных Cassandra; она предназначена для того, чтобы вы ознакомились, но не уходили в дебри, и, надеюсь, это поможет прояснить некоторые вещи.
+58
TabCandy — новая функция доступна для тестирования в Firefox 4 beta
1 min
1KНовая функция TabCandy пока находится в разработке, но уже доступна для тестирования.
TabCandy похожа на смесь Expose и Spaces из MacOsX. Например, при большом количестве открытых табов вы можете взглянуть на них «сверху». Помимо этого табы можно организовывать в группы, и сфокусировавшись на работе с одной группой, а остальный все еще будут открыты, просто не будут видны.
Для лучшего понимания посмотрите видео:
via
TabCandy похожа на смесь Expose и Spaces из MacOsX. Например, при большом количестве открытых табов вы можете взглянуть на них «сверху». Помимо этого табы можно организовывать в группы, и сфокусировавшись на работе с одной группой, а остальный все еще будут открыты, просто не будут видны.
Для лучшего понимания посмотрите видео:
via
+61
Электронная очередь абитуриентов
9 min
11K
Введение
Хочу рассказать об одной интересной задаче, которая возникла передо мной и моим коллегой в университете. Хоть сейчас и лето, но жизнь там не угасает ни на минуту. Все суетятся, обрабатывают документы, подсчитывают абитуриентов, если все обобщать – сезон поступления в ВУЗы. Учусь я на техническом факультете университета, причем, учусь неплохо, поэтому нам предложили написание электронной очереди для поступления абитуриентов. Не долго думая, я и мой коллега (и по группе и по работе) согласились. Причиной не желания воспользоваться уже какими-то готовыми продуктами для университета стала заоблачная цена данных разработок, которая составляла порядка 300т.р. Может и не много, но для нашего города цена высокая, наверное, поэтому и решили привлечь студентов своего университета, ко всему прочему это ещё и неплохой опыт работы в данной отрасли.
+177
Горячие клавиши в шелле
3 min
115KПосвящается B_dot, пост которого заставил заинтересоваться возможностями консоли плотнее.

В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.
Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).

Краткое вступление
В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.
Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).
+139
Революция начинается сегодня
3 min
2KTranslation
После нескольких лет разработки, тысяч часов и более миллиона долларов собственных средств, мы с гордостью представляем релиз MODx Revoution 2.0.
MODx Revolution это совершенно новый MODx. Он является самой сутью того, что делает MODx отличной платформой для создания разнообразных веб-сайтов и насыщенных приложений (RIA), позволяя делать Вам больше и делать это лучше.
MODx Revolution 2.0 стал еще более мощным. Он может обслуживать высоконагруженные сайты, а также позволяет управлять мульти-сайтами и поддоменами из одной инсталляции системы.
Список новых возможностей и улучшений в MODx Revolution слишком велик для того, чтобы перечислить здесь каждое из них. Поэтому озвучим лишь те, которые, на наш взгляд, вы полюбите. Больше вы сможете узнать, попробовав MODx в деле самостоятельно или обратившись к списку изменений.
Что нового?
MODx Revolution это совершенно новый MODx. Он является самой сутью того, что делает MODx отличной платформой для создания разнообразных веб-сайтов и насыщенных приложений (RIA), позволяя делать Вам больше и делать это лучше.
MODx Revolution 2.0 стал еще более мощным. Он может обслуживать высоконагруженные сайты, а также позволяет управлять мульти-сайтами и поддоменами из одной инсталляции системы.
Список новых возможностей и улучшений в MODx Revolution слишком велик для того, чтобы перечислить здесь каждое из них. Поэтому озвучим лишь те, которые, на наш взгляд, вы полюбите. Больше вы сможете узнать, попробовав MODx в деле самостоятельно или обратившись к списку изменений.
+26
Glippy — простой clipboard менеджер
1 min
4.5KЗдравствуйте, уважаемые хабражители. Совсем недавно я перешел на Ubuntu Linux и постепенно привыкаю к обилию хорошего и полезного софта для этого дистрибутива. И сегодня я хотел бы рассказать о небольшой и удобной программке — Glippy.
Glippy это простой менеджер буфера обмена для Gnome. Он очень прост и удобен и именно поэтому я его и выбрал(или потому что я другого просто не нашел).
Итак, Glippy висит в трее и следит за буфером обмена.

Glippy это простой менеджер буфера обмена для Gnome. Он очень прост и удобен и именно поэтому я его и выбрал
Итак, Glippy висит в трее и следит за буфером обмена.

+16
PhpVirtualBox позволяет вам управлять вашими виртуальными машинами через веб-интерфейс
1 min
8.6K
Опен-сорс веб-панелька phpVirtualBox поможет вам управлять вашими VirtualBox виртуальными машинами через ваш браузер. После установки веб-сервера запущенного с vboxwebsrv utility, вы сможете пользоваться веб-интерфейсом который мало чем отличается от программного.
phpVirtualBox может быть запущен на любой платформе.
+57
Information
- Rating
- Does not participate
- Location
- Brisbane, Queensland, Австралия
- Registered
- Activity
Specialization
Specialist
C#
C++
