Я несколько раз сталкивался с тем, что даже неглупые в общем-то люди делают совершенно непростительные ошибки. Например, открывают всему интернету порт, на котором крутится база данных. Часто так бывает у начинающих DevOps, которые всю жизнь писали код, а теперь в их обязанности входит еще и настройка серверов. В сети есть хорошие туториалы по базовой настройке фаервола в Linux и других *nix, но часто это простыни на множество экранов. Так что, надеюсь, этот более лаконичный туториал кому-нибудь пригодится.

Как мы совсем недавно уже выясняли, есть целый ряд проблем, которые можно решить запихиванием приложений в Docker-контейнеры, в том числе десктопных приложений. Никакой хакер не поломает вас через браузер. Настроенную систему можно быстро разложить у нового сотрудника или на своем новом ноуте. Всякий мусор, необходимый только одной программе, можно изолировать от остальной системы и снести одной командой. Никаких конфликтов зависимостей. Можно попытаться обновить программу, и если что-то в новой версии сломалось, просто перезапустить контейнер без коммита. Можно даже запускать браузер на одной машине, IDE на другой, а рулить всем этим с ноутбука, пробросив на него X11! Самое интересное, что запускать GUI приложения в Docker оказалось на удивление просто.

Постоянные читатели этого блога, скорее всего, уже пару-тройку раз в своей жизни настраивали OpenVPN. Но думается, что новичкам данная заметка будет интересна и полезна. Из нее вы узнаете, как за пять минут поднять собственный VPN сервер, а также зачем он, собственно, нужен. Ну хорошо, учитывая время на регистрацию в каком-нибудь Amazon’е, DigitalOcean, VDSina или FastVDS и оплату VDS, пожалуй, потребуется не пять минут, а «целых» пятнадцать.

На этих выходных я решил, что что-то больно давно не ставил апдейтов. Ну и решил поставить. Помимо прочего apt-get закачал новую версию JVM. Что интересно, непосредственная установка происходит где-то в недрах пакета oracle-java8-installer, в postinst или вроде того. Поэтому apt-get неправильно определяет объем трафика, необходимый для скачивания апдейтов. Однако поведать я хотел не об этом.

Если вдруг вы все пропустили, сообщаю, что в октябрьском конкурсе по ФП была занятная задачка про генерацию криптографических ключей. На сам конкурс я забил, а вот описанный метод шифрования показался мне очень интересным. Почему-то ранее мне не доводилось о нем слышать.

Темы восьмого выпуска: куда движется проект OpenBSD, как выглядит разработка проекта и как стать коммитером, разрушение мифов о Яндексе, обсуждаем алгоритмы искусственного интеллекта и машинного обучения, а также некоторые другие темы. Предыдущие выпуски: седьмой, шестой, пятый, четвертый.

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

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

Продолжаем ломать капчу. На предыдущем шаге мы с вами произвели сбор и предварительный анализ данных. В результате сложилось некоторое понимание того, как работает исследуемая капча, а также образовалось множество примеров изображений с известными кодами на них. Следующим шагом мы нарежем нашу капчу на буквы.

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