Николай @koHgpaT
User
Декодирование капчи на Python
12 min
82KTranslation
Это перевод и форма повествования от первого лица сохранена. Автор — Бен Бойтер, бакалавр информационных технологий в Университете Чарльза Стерта (CSU).

Большинство людей не в курсе, но моей диссертацией была программа для чтения текста с изображения. Я думал, что, если смогу получить высокий уровень распознавания, то это можно будет использовать для улучшения результатов поиска. Мой отличный советник доктор Гао Джунбин предложил мне написать диссертацию на эту тему. Наконец-то я нашел время написать эту статью и здесь я постараюсь рассказать о всем том, что узнал. Если бы только было что-то подобное, когда я только начинал…
Как я уже говорил, я пытался взять обычные изображения из интернета и извлекать из них текст для улучшения результатов поиска. Большинство моих идей было основано на методах взлома капчи. Как всем известно, капча — это те самые всех раздражающее штуки, вроде «Введите буквы, которые вы видите на изображении» на страницах регистрации или обратной связи.
Капча устроена так, что человек может прочитать текст без труда, в то время, как машина — нет (привет, reCaptcha!). На практике это никогда не работало, т. к. почти каждую капчу, которую размещали на сайте взламывали в течение нескольких месяцев.
У меня неплохо получалось — более 60% изображений было успешно разгадано из моей небольшой коллекции. Довольно неплохо, учитывая количество разнообразных изображений в интернете.

Большинство людей не в курсе, но моей диссертацией была программа для чтения текста с изображения. Я думал, что, если смогу получить высокий уровень распознавания, то это можно будет использовать для улучшения результатов поиска. Мой отличный советник доктор Гао Джунбин предложил мне написать диссертацию на эту тему. Наконец-то я нашел время написать эту статью и здесь я постараюсь рассказать о всем том, что узнал. Если бы только было что-то подобное, когда я только начинал…
Как я уже говорил, я пытался взять обычные изображения из интернета и извлекать из них текст для улучшения результатов поиска. Большинство моих идей было основано на методах взлома капчи. Как всем известно, капча — это те самые всех раздражающее штуки, вроде «Введите буквы, которые вы видите на изображении» на страницах регистрации или обратной связи.
Капча устроена так, что человек может прочитать текст без труда, в то время, как машина — нет (привет, reCaptcha!). На практике это никогда не работало, т. к. почти каждую капчу, которую размещали на сайте взламывали в течение нескольких месяцев.
У меня неплохо получалось — более 60% изображений было успешно разгадано из моей небольшой коллекции. Довольно неплохо, учитывая количество разнообразных изображений в интернете.
+54
10 критически важных event ID для мониторинга
4 min
309KRecovery Mode

Рэнди Франклин Смит (CISA, SSCP, Security MVP) имеет в своем арсенале очень полезный документ, рассказывающий о том, какие события (event IDs) обязательно должны отслеживаться в рамках обеспечения информационной безопасности Windows. В этом документе изложена крайне полезная информация, которая позволит Вам “выжать” максимум из штатной системы аудита. Мы подготовили перевод этого материала. Заинтересованных приглашаем под кат.
+20
Аспирантура в Японии — опыт поступления и личные впечатления
10 min
60KКонничива, дорогие читатели.
Тема обучения в магистратуре и аспирантуре в Японии на хабре поднималась уже неоднократно. Автор упомянутых постов, уважаемый rg_software, преподает в University of Aizu, где я сейчас работаю над получением степени PhD. В предлагаемом вашему вниманию посте я постарался, во-первых, осветить вопрос поступления в аспирантуру и получения стипендии от японского правительства, и, во-вторых, изложить личные впечатления от без малого года пребывания на гостеприимной японской земле.
(На фото — вход в университетскую столовую)

Тема обучения в магистратуре и аспирантуре в Японии на хабре поднималась уже неоднократно. Автор упомянутых постов, уважаемый rg_software, преподает в University of Aizu, где я сейчас работаю над получением степени PhD. В предлагаемом вашему вниманию посте я постарался, во-первых, осветить вопрос поступления в аспирантуру и получения стипендии от японского правительства, и, во-вторых, изложить личные впечатления от без малого года пребывания на гостеприимной японской земле.
(На фото — вход в университетскую столовую)

+99
GNU/Linux и устройство на Rockchip 2918
26 min
49KСначала немного предыстории. Небольшое продолжение истории с медиаплеером GV2B, описанным мной ранее ту/т. Напомню, что изначально бокс покупался не как Android приставка к телевизору, а как более мощная замена Raspberry Pi, на который я оставил заявку ещё в апреле, но приедет который только в августе. А GV2B оказался у меня в руках через 8 дней после заказа, всего за $100 и с полным комплектом кабелей (что всего на $5 дороже, чем комплект Raspberry Pi с зарядкой, шнурами и корпусом).
Успокою злопыхателей из моего предыдущего поста, что Youtube и другие приложения, установленные с Play, заработали замечательно, и больше никаких недостатков у устройства обнаружено не было.
Совсем недавно появилось пара топиков, в которых рассказывалось, как на ARM устройства удалось поставить Puppy Linux, Arch Linux и Ubuntu. Это уникальная особенность Allwinner A10, недооценить которую тяжело, но всё-таки система физически запускается с SD карты, а не встроенного флеша. Я начал активнее работать над вопросом, и наткнулся аж на три способа прошить что-либо во флеш память устройства, что обнадёживает и, возможно открывает лазейку для заливки туда полноценного GNU/Linux. Самонадеянно замечу, что это уже следующий шаг за банальным запуском чуть допиленного образа с SD карты.
— Установить на устройство ядро Linux. Желательно самое новое. Либо самое новое из тех, которое содержит все драйвера, специфические для устройства;
— Поставить GNU;
— Поставить окружение рабочего стола;
— Сделать резервную копию, чтобы устройство можно было вернуть в изначальное состояние, если что пойдёт не так;
— Хорошенько повеселиться со сложной задачей (сравнимо с установкой первых версий USB загрузчиков на Wii и прохождению NetHack или Dwarf Fortress).
Устройство GV-2B от неизвестного китайского производителя, на базе Rockchip 2918 (сокращённо RK29) (CPU ARM Cortex A8 1ГГц + GPU Vivante GC800 600МГц), с 4ГБ флеш памяти, 512МБ оперативной памяти и неплохим количеством разьёмов.
SD карта 16ГБ class 10.
PC с Arch Linux.
Клавиатура.
Монитор.
Шнур HDMI-DVI для подключения монитора.
Куча USB шнуров, переходников итп.
Наверняка многие из читателей сделали бы то, что описано в топике или хотя бы какую-то определённую часть, быстрее и лучше, но никаких упоминаний о таком подвиге я в просторах сети не нашёл. Топик содержит много практики и совсем немного теории, лишь самое необходимое, чтобы понять о чём идёт речь и что происходит (признаюсь честно, мне и самому теории в описанных областях явно не хватает). С академической точки зрения тянет на трёхчасовую лабораторную работу. Также хочу сказать, что впервые занимаюсь всем этим, если исключить подключение диска с предварительно установленным на настольком компьютере Ubuntu к PC104 x86-совместимому одноплатнику.
Успокою злопыхателей из моего предыдущего поста, что Youtube и другие приложения, установленные с Play, заработали замечательно, и больше никаких недостатков у устройства обнаружено не было.
Совсем недавно появилось пара топиков, в которых рассказывалось, как на ARM устройства удалось поставить Puppy Linux, Arch Linux и Ubuntu. Это уникальная особенность Allwinner A10, недооценить которую тяжело, но всё-таки система физически запускается с SD карты, а не встроенного флеша. Я начал активнее работать над вопросом, и наткнулся аж на три способа прошить что-либо во флеш память устройства, что обнадёживает и, возможно открывает лазейку для заливки туда полноценного GNU/Linux. Самонадеянно замечу, что это уже следующий шаг за банальным запуском чуть допиленного образа с SD карты.
Цель
— Установить на устройство ядро Linux. Желательно самое новое. Либо самое новое из тех, которое содержит все драйвера, специфические для устройства;
— Поставить GNU;
— Поставить окружение рабочего стола;
— Сделать резервную копию, чтобы устройство можно было вернуть в изначальное состояние, если что пойдёт не так;
— Хорошенько повеселиться со сложной задачей (сравнимо с установкой первых версий USB загрузчиков на Wii и прохождению NetHack или Dwarf Fortress).
Средства
Устройство GV-2B от неизвестного китайского производителя, на базе Rockchip 2918 (сокращённо RK29) (CPU ARM Cortex A8 1ГГц + GPU Vivante GC800 600МГц), с 4ГБ флеш памяти, 512МБ оперативной памяти и неплохим количеством разьёмов.
SD карта 16ГБ class 10.
PC с Arch Linux.
Клавиатура.
Монитор.
Шнур HDMI-DVI для подключения монитора.
Куча USB шнуров, переходников итп.
Предостережение и самобичевание
Наверняка многие из читателей сделали бы то, что описано в топике или хотя бы какую-то определённую часть, быстрее и лучше, но никаких упоминаний о таком подвиге я в просторах сети не нашёл. Топик содержит много практики и совсем немного теории, лишь самое необходимое, чтобы понять о чём идёт речь и что происходит (признаюсь честно, мне и самому теории в описанных областях явно не хватает). С академической точки зрения тянет на трёхчасовую лабораторную работу. Также хочу сказать, что впервые занимаюсь всем этим, если исключить подключение диска с предварительно установленным на настольком компьютере Ubuntu к PC104 x86-совместимому одноплатнику.
+27
Вникаем в метаклассы Ruby
6 min
53KTranslation

Примечание переводчика: данный пост является логическим развитием, а точнее «предысторией» поста Вникаем в include и extend и был подсказан в комментариях к нему пользователем murr, за что ему большое спасибо.
Классы и объекты в Ruby связаны между собой достаточно затейливо и не сразу можно понять что к чему. Из-за особого назначения классов очень легко потерять из вида тот факт, что классы — это тоже объекты Ruby. От «обычных» объектов их отличает два вещи: они служат образцом для создания новых объектов и они являются частью иерархии классов. Все верно, классы могут иметь экземпляры себя (объекты), суперклассы (родителей) и подклассы (детей).
Если классы — это объекты, то у них должен быть свой собственный класс. Классом всех классов (как объектов) в Ruby является класс Class:
# один из способов создать новый класс
Dog = Class.new
# общепринятый способ создания класса
class Dog
# какая-то реализация собачьего поведения
end
Dog.class
=> Class
+37
Порцию серверов пожалуйста, или как начать деплоить с Opscode Chef
5 min
11KБольшинство русских статей по (Opscode Chef), которые мне попадались, содержали выдержки из кукбука (cookbook) и рассказ «какая классная штука Шеф». И все. Мол, смотри как я могу! А что и как с ним делать — не понятно. На официальном сайте есть подробная вики. Но в ней, ИМХО, легко заблудиться. Простого руководства «как сделать элементарное чтобы работало» нашел только в виде видео, по мотивам которого родилась эта статья.
+14
Распределенные эволюционные вычисления
1 min
5.5KОдна из моих любимых тем в программировании – эволюционные вычисления и генетические алгоритмы в частности. Пару лет назад я поднимал эту (в целом уже заезженную) тему на Хабре, но сейчас глядя на то видео немного стыдно – слишком уж туманно и сумбурно было объяснение.
Сегодня я постараюсь объяснить генетические алгоритмы проще и нагляднее, а заодно рассказать вкратце о прототипе очень простого JavaScript-фреймворка для распределенных генетических вычислений degas.js. В двух словах – degas.js запускает генетический алгоритм в виде «треда» в браузере клиента используя web workers и обменивается информацией о полученных в ходе эволюции индивидуумах с сервером и другими клиентами с помощью web sockets. Сервер использует node.js.
Degas.js пока в супер-зародышевом состоянии, функционал еще примитивен, а код некрасив, но если кто-то захочет присоединиться к разработке – было бы здорово.
+29
CSS кнопки с помощью псевдо-элементов
5 min
47KTutorial
Translation

Здравствуйте, друзья. За последний месяц я экспериментировал с псевдо-элементами, особенно, с их использованием в создании кнопок. Таким образом, удалось создать крутые эффекты, которые раньше можно было сделать только со спрайтами.
В этом уроке я покажу как создать кнопку с изюминкой, используя только якорный тег и мощь CSS.
+222
Gimpbox — Однооконный Gimp
1 min
3.6K
Сегодня я хотел бы рассказать Вам о замечательном дополнении для Gimp'а под названием Gimpbox.
Многим уже порядком поднадоел многооконный режим Gimp'a и пока все в ожидании стабильного релиза 2.8 где разработчики обещали сделать возможность выбора между многооконным и однооконным режимом, китайские разработчики подумали как можно решить эту проблему малой кровью и сделали дополнение Gimpbox, смысл которого заключается в том что бы объединить все окна Gimp'а в одно окно как это сделано например в Adobe Photoshop, Paint.net и других редакторах.
Gimpbox является frontendом для Gimp'а, т.е. он будет работать только с уже установленным Gimp'ом.
Под катом инструкция по установки.
+102
Книга The art of Unit Testing with Examples in .NET
4 min
20K
+38
Красивые конфиги Django
3 min
19KTranslation
За то время, пока я занимаюсь внедрением проектов, написанных на Django, накопились простые приемы упрощающие деплой. Разберем settings.py, который был использован в одном из последних проектов. Полностью файл доступен на http://gist.github.com/214361
Начнем.
Локальные настройки позволяют иметь разные конфигурации одного проекта на разных машинах. В конце каждого моего файла settings.py есть подключение local_settings.py. Это позволяет переопределить любые значения переменных из settings.py. Например, на продакшн сервере я использую mysql, а на локальной машине — sqllite.
Начнем.
Локальные настройки:
Локальные настройки позволяют иметь разные конфигурации одного проекта на разных машинах. В конце каждого моего файла settings.py есть подключение local_settings.py. Это позволяет переопределить любые значения переменных из settings.py. Например, на продакшн сервере я использую mysql, а на локальной машине — sqllite.
try:
from local_settings import *
except ImportError:
pass
+40
Django приложение на Google App Engine
4 min
7.4KО Google App Engine не слышал уже наверное только ленивый. Использование фреймворка Django совместно с GAE дает в руки разработчика удобные инструменты для быстрого создания веб-приложений.
В этом туториале рассказывается, как создать простое Django приложение с использованием этой платформы. Предполагается, что у вас уже есть аккаунт в Google App Engine.
В этом туториале рассказывается, как создать простое Django приложение с использованием этой платформы. Предполагается, что у вас уже есть аккаунт в Google App Engine.
+21
WhoIsMafia — новый вид online развлечения
5 min
2.1K
Наверняка некоторые из вас помнят мой пост двухнедельной давности, в котором я показывал, как можно организовать многопользовательскую видеоконференцию используя peer-to-peer технологию Flash-платформы. Сегодня я представляю на суд общественности не просто концет — теперь уже стартап. Знакомьтесь.
WhoIsMafia.com — сервис, позволяющий играть в популярнейшую салонную игру Мафия не выходя из дома. Мало того — не выходя из браузера. Для этого достаточно иметь Flash Player 10.1+, вэбкамеру и хотя бы двух-мегабитный безлимитный канал. Что из себя представляет сервис, технические подробности и игровые тонкости можно прочитать под катом.
+98
Founder Institute: стартап в 10 шагов за 2000$
3 min
1.1K
Большинство предпринимателей видят переход от идеи до стартапа сложным и дорогим. К счастью для них, основатель акселератора стартапов Founder Institute Адео Рези (Adeo Ressi), представил план из десяти простых шагов для достижения поставленной цели. И хотя нет универсального рецепта для всех стартапов, Рези считает, что его шаблон поможет любому предпринимателю приблизиться к собственному технологическому бизнесу менее чем за 2000$.
+32
Дедок рекомендует или сравниваем различные способы деплоймента Django-приложений
3 min
9.4K
Данный фреймворк имеет удобный встроенный веб-сервер, на котором можно без проблем отлаживать ваше приложение, но для реального боевого использования он естественно не годится.
+19
Шестнадцать из тридцати сравнительно новых и бесплатных шрифтов
5 min
8.9K![[Smashing Magazine]](https://habrastorage.org/getpro/habr/post_images/d2f/899/f25/d2f899f2592d5a2e0cbd6559b3084dc4.png)
Но у читателя Хабрахабра всякая западная подборка, начинающаяся с круглого числа, должна вызывать естественное недоверие: не прибавили ли к ней
Во-первых, выпишем оттуда названия шрифтов по порядку в столбик да пронумеруем:
1) PironКак видно,
2) St Ryde
3) Nobile
4) Mr Jones Book
5) Pigiarniq Inuktitut
6) St Marie
7) Code
8) VAL Stencil
9) akaDora
10) Arcus
11) Crimson Text
12) Acid
13) Real Origami
14) Quadranta
15) Balonez Fantasia
16) Juice
17) Geomancy Typeface
18) Prociono
19) Edelsans
20) Neu Eichmass
21) Ingleby
22) Ibarra
23) Notice 1: Packaging Symbols
24) Notice 2: Navigation symbols
25) Notice 3: Cloth Symbols
26) Glyphyx
27) Free Symbol Signs Collection
28) Rally Character Set
29) Oblik Serif Bold
30) Paranoid
31) 01.BASE
Во-вторых, из «тридцати» представленных шрифтов шесть («Notice 1: Packaging Symbols», «Notice 2: Navigation symbols», «Notice 3: Cloth Symbols», «Glyphyx», «Free Symbol Signs Collection», «Rally Character Set») являются попросту сборниками монохромных значков, а не символов
Соответственно, настоящий интерес должна вызывать оставшаяся половина шрифтов, их добрая половина; их названия я выделю в списке полужирным шрифтом, а их скриншоты перенесу на Хабрахабр для удобства дальнейшего пристального вглядывания да любования (первый над хабракатом, а остальные под ним, чтобы
![[Ingleby]](https://habrastorage.org/getpro/habr/post_images/4ef/b12/61e/4efb1261ec674d092dd99c507fb56690.jpg)
Ingleby — прекрасная антиква (со вкусными очертаниями буквы «a», например), которую разработал David Engelby. Идёт в четырёх начертаниях (обычное, курсивное, полужирное, полужирный курсив). Бесплатно для всех видов использования, но требует упоминания автора шрифта.
Шрифт лежитна dafont.com — это, насколько я понял, не очень полезно, потому что сайт не поддерживает многопоточное скачивание шрифтов (а значит, и докачку после обрыва).
+88
Будущее построения архитектуры Java EE приложений становится яснее
1 min
3.6KTranslation
Известный JavaEE архитектор-фрилансер недавно опубликовал свое видение будущего в построении архитектуры корпоративных приложений. Далее идет вольный перевод.

Java EE 6 и Spring 3 оказались очень похожи — как минимум архитектура и дизайн отличаются лишь в деталях. Не вижу отличий и в процессе разработки, где JPA и SessionBean-ы в Glassfish можно заменить технологиями Spring.
Spring также идет со своим сервером приложений, который с 7 октября 2008 является open source сервером с коммерческой поддержкой. Если вам понадобится получить патчи старых версий Spring — вам будет необходимо преобрести коммерческую поддержку от SpringSource/VMWare. Для серьезных проектов вы будете вынуждены преобрести два пакета поддержки — для сервера приложений от вендора и один от SpringSource, хотя этом случае одновременное использование Java EE 5/6 опровдать сложно. В перспективе я вижу два возможных варианта:
Я считаю, что будущее корпоративной Java очень чистое — мы полностью используем либо Spring, либо стек Java EE, но не эти технологии вместе.
См. также Oracle опубликовал планы развития Glassfish

Java EE 6 и Spring 3 оказались очень похожи — как минимум архитектура и дизайн отличаются лишь в деталях. Не вижу отличий и в процессе разработки, где JPA и SessionBean-ы в Glassfish можно заменить технологиями Spring.
Spring также идет со своим сервером приложений, который с 7 октября 2008 является open source сервером с коммерческой поддержкой. Если вам понадобится получить патчи старых версий Spring — вам будет необходимо преобрести коммерческую поддержку от SpringSource/VMWare. Для серьезных проектов вы будете вынуждены преобрести два пакета поддержки — для сервера приложений от вендора и один от SpringSource, хотя этом случае одновременное использование Java EE 5/6 опровдать сложно. В перспективе я вижу два возможных варианта:
- Развертывание Spring-а на проприетарный tc сервер
- Развертывание Java EE 6 приложений без Spring-а
Я считаю, что будущее корпоративной Java очень чистое — мы полностью используем либо Spring, либо стек Java EE, но не эти технологии вместе.
См. также Oracle опубликовал планы развития Glassfish
+2
Библиотека для вывода изображений в командную строку
1 min
9K
Fabulous — замечательная библиотека, позволяющая выводить красивый цветной текст, картинки, фигуры прямо в окно терминала!
Для того, чтобы установить библиотеку, выполните в терминале:
sudo apt-get install gcc python-imaging python-setuptools
sudo easy_install -U fabulous
Или просто скачать в архиве:


После установки можете попробовать несколько примеров, выполнив такой код:
python -m fabulous.demo - выводит в терминал примерно первое изображение
python -m fabulous.rotating_cube
— пример вращающегося кубаpython -m fabulous.image obama.jpg
— после такого вызова в терминале появится следующее изображение (как видите, чтобы вывести изображение, достаточно одной строки):
+51
Наши на Django Dash
2 min
741В субботу, 14 августа, в 8:00 по Москве начнётся соревнование DjangoDash, и скромная русская команда e-Legion решила поучаствовать в этом мероприятии. Кстати, в конкурсе участвует и, например, широко известный в узких кругах джангистов Malcolm Tredinnick (да, я тоже не понял почему команда с двумя участниками называется «три слепые мыши»).
+42
Information
- Rating
- Does not participate
- Location
- Улан-Удэ, Бурятия, Россия
- Date of birth
- Registered
- Activity