Как стать автором
Обновить
55
0
eudj1n @eudj1n

Разработчик

Отправить сообщение

Как я дообучал Tesseract и что из этого получилось

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

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

Инструкция от разработчиков https://tesseract-ocr.github.io/tessdoc/Home.html не всегда сразу понятна и очевидна, поэтому и появилась мысль записать свой опыт в эту статью.

У меня на компьютере стоит Linux Mint 20.2 Cinnamon, поэтому все действия происходят в этой системе и я не могу гарантировать, что все получится точно так же в Windows или Mac.

Для начала необходимо установить бибилиотеку tesseract на компьютер. Делается это достаточно просто. Сначала проверю версию, которая уже установлена (как правило в комплекте с Linux уже есть пакет tesseract). В терминале набираем

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии6

Как обойти SMS-идентификацию при подключении к публичным Wi-Fi сетям?

Время на прочтение4 мин
Количество просмотров95K
В 2014 году начали свое действие постановления правительства РФ №758 №801, обязывающие владельцев публичных WiFi сетей настроить на роутерах идентификацию пользователей через паспортные данные, sms или портал гос. услуг. Нежелание владельцев кафе тратиться за Captive portal'ы поспособствовало некоторым провайдерам в распространении своих точек доступа с платной sms-авторизацией. У меня возникло желание проверить, можно ли подобную sms-авторизацию обойти.

image
Читать дальше →
Всего голосов 128: ↑118 и ↓10+108
Комментарии143

В Казахстане опасно использовать ЭЦП

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

В последнее время государство пытается максимально перенести все госуслуги в электронный формат. Активно выдаются адресные справки, и другие справки выдаются через Портал электронного правительства. Даже можно зарегистрировать брак пожениться через портал. На самом деле, очень удобно. Есть конечно же минусы, в основном — организационные, нормативные на уровне законов, на уровне реализации. Но это уже другой вопрос, главное очень хорошие начинания. Это все хорошо, но пост не про это.


Очевидно, чтобы пользоваться госуслугами, нужно как-то подтверждать свою личность. Для этого когда-то давно законодательно закрепили использование ЭЦП. Основная формулировка применения ЭЦП такая — ЭЦП приравнивается к собственноручной подписи. Многие не знают, но за передачу ключей ЭЦП (здесь и далее буду использовать термин — ключи ЭЦП. Все называют просто ЭЦП, а по факту это две пары ключей — для аутентификации и подписи). За передачу третьим лицам даже есть какая-то ответственность. Очевидно, что многим людям это без разницы, не понимают всей серьезности.


Вообще тема поста про NCALayer, прослойка между браузером и ключами ЭЦП. По безопасности — это уязвимый механизм использования ЭЦП.

Читать дальше →
Всего голосов 52: ↑48 и ↓4+44
Комментарии138

Использование VK Streaming API с оповещением в Telegram

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

Вконтакте запустил Streaming API, инструмент для получения публичных данных из ВКонтакте по заданным ключевым словам.

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

Давайте напишем бота для телеграмма с оповещением о записях в ВК.
Читать дальше →
Всего голосов 27: ↑22 и ↓5+17
Комментарии6

Стек, который позволил Medium обеспечить чтение на 2.6 тысячелетия

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

Предлагаю общественности мой перевод статьи Dan Pupius'а об архитектура сервиса Medium и используемых технологиях. Хочу особо отметить, что статья является переводом, поэтому местоимение "я", используемое в тексте далее относится к автору оригинального текста, а не к переводчику.


Фон


Medium это сеть. Это место, где обмениваются историями и идеями, которые важны — место, где вы развиваетесь, и где люди провели 1.4 миллиарда минут — 2.6 тысячелетия.


У нас более 25 миллионов уникальных читателей в месяц, и каждую неделю публикуются десятки тысяч постов. Но мы хотим, чтобы на Medium мерилом успеха было не количество просмотров, а точки зрения. Чтобы значение имело качество идеи, а не квалификация автора. Чтобы Medium был местом, где обсуждения развивают идеи, а слова по-прежнему важны.


Я руковожу инженерной командой. Раньше я работал инженером в Google, где я работал над Google+ и Gmail, а также был одним из со-основателей проекта Closure. В прошлой жизни я гонял на сноуборде, прыгал из самолёта и жил в джунглях.

Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии17

ES8 вышел и вот его основные новые возможности

Время на прочтение5 мин
Количество просмотров99K
Новые фичи восьмой редакции EcmaScript.

image

EcmaScript 8 или EcmaScript 2017 был официально выпущен комитетом TC39 в конце июня. Кажется, мы много говорили о EcmaScript в прошлом году и это было не просто так. На данный момент стандартом является выпуск новой спецификации раз в год. ES6 был опубликован в 2015, а ES7 в 2016, но кто-нибудь помнит, когда вышел ES5? Это было в 2009 году, до волшебного взлета JavaScript.
Всего голосов 47: ↑44 и ↓3+41
Комментарии104

Moby/Docker в продакшене. История провала

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

Обновление: у этой статьи появилось продолжение, переведённое @achekalin. В каком порядке читать — на ваше усмотрение: в этой статье можно получить удовольствие от обширной попоболи автора, а в продолжении — от сделанных им выводов.


Примечание переводчика: в предыдущей статье о подготовке к девопс-конференциям, Gryphon88 задал резонный вопрос: как отличить cutting-edge и хайп? Нижеследующая статья наполнена сочной незамутненной истерикой, которую так приятно читать с утра, попивая чашечку кофе. Минус в том, что она написана в ноябре 2016, но нетленка не стареет. Если после прочтения захочется добавки, есть комментарии на Hacker News. А у тебя, юзернейм, такой же ад? Пиши в комментариях. Итак, начнем.


В первый раз я встретился с Докером в начале 2015. Мы экспериментировали с ним, чтобы понять, для чего бы его можно употребить. В то время нельзя было запустить контейнер в фоне, не было команд чтобы посмотреть что запущено, зайти под дебагом или SSH внутрь контейнера. Эксперимент оказался быстрым, Докер был признан бесполезным и более похожим на альфу или прототип, чем на релиз.


Промотаем нашу историю до 2016. Новая работа, новая компания, и хайп вокруг докера поднялся безумный. Разработчики уже выкатили докер в продакшен, так что сбежать с него не удастся. Хорошая новость в том, что команда run наконец-то заработала, мы можем запускать и останавливать контейнеры. Оно шевелится!


У нас 12 докеризованных приложений, бегающих на проде прямо в момент написания этой заметки, размазанные на 31 хост на AWS (по одному приложению на хост, дальше объясню — почему).


Эта заметка рассказывает, как мы путешествовали вместе с Докером — путешествие полное опасностей и неожиданных поворотов.

Читать дальше →
Всего голосов 141: ↑132 и ↓9+123
Комментарии175

Альтернативы блокчейну для ведения защищённых реестров

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

Технология «блокчейн» прекрасна и перспективна. Всё в ней было бы совсем замечательно, если бы несколько досадных нюансов:

  1. Очень долго. Время добавления транзакции в цепочку биткоина, например, оценивается от минуты до получаса. В Ethereum добавляется быстрее, но в любом случае довести время до долей секунды невозможно. Нечего и думать о том, чтобы сделать добавление данных в блокчейн частью OLTP-транзакции.
  2. Майнинг — это очень ресурсоёмко. Он, собственно, и нужен для того, чтобы добавить в архитектуру вычислительную сложность.
  3. Очень дорого. Следствие ресурсоёмкости.
  4. Технология отвратительно масштабируется как вверх, так и вниз. Если нужно построить систему, которая будет регистрировать миллиарды записей ежедневно, блокчейн не годится. Также блокчейн будет стрельбой из пушки по воробьям, если его пытаться приспособить для надёжного логирования какой-нибудь мелкой ерунды.

Хотелось бы иметь технологию, которая бы одновременно и реестры позволяла вести непрошибаемо надёжным образом, и была бы как-то попроще и подешевле.
Но как?
Всего голосов 43: ↑41 и ↓2+39
Комментарии89

Возможности PostgreSQL для тех, кто перешел с MySQL

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

Крутой varanio буквально на прошлой неделе прочитал на DevConf забойный доклад для всех кто пересел на Посгрес с MySQL, но до сих пор не использует новую базу данных в полной мере. По мотивам выступления родилась эта публикация.


Мы рады сообщить, что подготовка к PG Day'17 Russia идет полным ходом! Мы опубликовали полное расписание предстоящего мероприятия. Приглашаем всех желающих прийти и похоливарить с Антоном лично



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


Почему вообще возникла идея такого доклада? Дело в том, что PostgreSQL сейчас явно хайповая технология, и многие переходят на эту СУБД. Иногда — по объективным причинам, иногда — просто потому что это модно.


Но сплошь и рядом складывается такая ситуация, когда какой-нибудь условный программист Вася вчера писал на MySQL, а сегодня вдруг начал писать на Посгресе. Как он будет писать? Да в целом также, как и раньше, используя лишь самый минимальный набор возможностей новой базы. Практика показывает, что проходят годы, прежде чем СУБД начинает использоваться более менее полноценно.

Читать дальше →
Всего голосов 59: ↑58 и ↓1+57
Комментарии139

Debian 9: что нового

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


17 июня 2017 года вышла в свет новая, девятая версия Debian под кодовым названием Stretch. Работа над Debian 9 длилась два с небольшим года, а если совсем точно — 26 месяцев. Она будет поддерживаться в течение ближайших пяти лет.

Новая версия посвящена памяти основателя проекта Debian Иэна Мёрдока, погибшего в конце 2015 года.


Выход новой версии одного из самых популярных дистрибутивов Linux — это очень важная новость. И в этой статье мы хотели бы рассказать обо всех реализованных нововведениях.

Кроме того, у нас есть ещё одна новость, не менее важная: образ Debian 9 уже доступен пользователям наших облачных сервисов — Vscale и Virtual Private Cloud, и вы можете познакомиться с ним поближе прямо сейчас.

Читать дальше →
Всего голосов 64: ↑61 и ↓3+58
Комментарии87

Опрос. Какой php-фреймворк вы используете?

Время на прочтение1 мин
Количество просмотров41K
Давно не делали опрос о популярности php-фреймворков. Это, конечно, не волшебный мир JavaScript, где всё меняется каждые полгода-год, но всё-таки и в php тоже постоянно идут изменения.

Выпускаются новые версии, что-то устаревает, что-то входит в моду и т.д. Один фреймворк более «компонентный» и лучше следует принципам SOLID, другой удобен для быстрого старта, третий имеет хорошее комьюнити.

Итак, опрос для тех, кто использует php в своей практике.
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии255

«Hello, (real) world!» на php в 2017 году

Время на прочтение8 мин
Количество просмотров76K
Вы наверняка думаете, что писать на php — это просто. И «hello, world» выглядит примерно так так:

<?php
echo 'Hello, world!';

Конечно, чего еще ожидать от языка с низким порогом входа. Ну да, именно так и было раньше. Много лет назад. Но теперь, в 2017 году никто так уже не делает. Давайте рассмотрим, почему, и попробуем построить наше более реалистичное hello-world приложение по шагам, а их, скажу сразу, получилось не мало.

Читать дальше →
Всего голосов 347: ↑260 и ↓87+173
Комментарии571

Не доверяйте SUDO, она может вас подвести

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

Всем доброго времени суток, в этой статье постараюсь описать некоторые способы обхода ограничений на исполнение команд в ОС Linux, советы по использованию которых можно часто встретить на различных форумах. Демонстрация будет проведена на примере задания Restricted shells с сайта Root-Me. Итак, начнём.
Читать дальше →
Всего голосов 99: ↑94 и ↓5+89
Комментарии8

Node.js, Express и MongoDB: API за полчаса

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


Вот, например, типичная задача: разработка REST API, серверной части некоего приложения. Обилие собственных возможностей Node и множество дополнительных модулей, которые способны помочь в решении этой задачи, способны завести новичка в тупик, вызванный богатством выбора. Основные вопросы здесь заключаются в подборе компонентов и в настройке их совместной работы.
Читать дальше →
Всего голосов 39: ↑30 и ↓9+21
Комментарии30

PHP 7.1.1 FPM vs Node.js 7.4.0 в качестве web backend сервера

Время на прочтение3 мин
Количество просмотров34K
Всем привет, решил поделиться с вами результатами синтетического теста производительности свежих версий PHP и Node.js.

Конфигурация сервера:

Простой VDS — 1 ядро процессора 2ГГц, 1Гб оперативы, 10Гб SSD.
ОС: Debian 8.6.
Так же произведены базовые настройки ядра, чтобы сервер в принципе мог обрабатывать большое кол-во соединений.

Испытуемые:

— PHP 7.1.1 FPM
— Node.js 7.4.0

Первый этап:

Тут операции, которые в основном использует backend. А именно: склеивание строк, сетевой ввод-вывод, арифметика и работа с массивами.
Читать дальше →
Всего голосов 48: ↑27 и ↓21+6
Комментарии128

Разработка архитектуры нового приложения для пассажиров Uber

Время на прочтение14 мин
Количество просмотров35K
— Здравствуйте. Скажите, сколько стоит сделать приложение типа Uber?

Менеджер по входящим заявкам нашей компании получает звонки с таким содержанием стабильно раз в неделю. Понимать его стоит, как правило, так: либо клиент хочет себе настолько же успешный аналог приложения для связи между пассажиром и водителем, либо Uber для ______ (вписать нужную отрасль).

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

Теперь у нас есть аргумент в защиту нашей позиции. Разработчики Uber опубликовали в блоге компании заметку про опыт переноса приложения с одной архитектуры на новую, собственную. Это очень масштабное мероприятие подтверждает, что Uber — далеко не элементарное приложение. Мы не могли пройти мимо этого материала и не перевести его.

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


Всего голосов 29: ↑26 и ↓3+23
Комментарии21

Подводные камни Bash

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


В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.


Читать дальше →
Всего голосов 143: ↑141 и ↓2+139
Комментарии63

React.js: собираем с нуля изоморфное / универсальное приложение. Часть 1: собираем стек

Время на прочтение22 мин
Количество просмотров195K
image

Лицо моей жены, когда она вычитывала эту статью


Я решил написать цикл статей, который и сам был бы счастлив найти где-то полгода назад. Он будет интересен в первую очередь тем, кто хотел бы начать разрабатывать классные приложения на React.js, но не знает, как подступиться к зоопарку разных технологий и инструментов, которые необходимо знать для полноценной front-end разработки в наши дни.


Я хочу с нуля реализовать, пожалуй, наиболее востребованный сценарий: у нас есть серверная часть, которая предоставляет REST API. Часть его методов требует, чтобы пользователь веб-приложения был авторизован.

Читать дальше →
Всего голосов 51: ↑46 и ↓5+41
Комментарии78

Главный разработчик сайта Kremlin.ru Артём Геллер о создании сервиса и работе с администрацией президента

Время на прочтение20 мин
Количество просмотров34K
Генеральный директор студии lab.AG Артём Геллер, работавший над новой версией президентского сайта Kremlin.ru, дал интервью изданию Smashing Magazine — в нём он рассказал о разработке ресурса, технических аспектах работы с администрацией президента, создании адаптивного интерфейса сайта, а также раскрыл некоторые детали проекта.

image
Читать дальше →
Всего голосов 90: ↑72 и ↓18+54
Комментарии180

Ломаем сбор мусора и десериализацию в PHP

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


Эй, PHP, эти переменные выглядят как мусор, согласен?
Нет? Ну, посмотри-ка снова…


tl;dr:
Мы обнаружили две use-after-free уязвимости в алгоритме сбора мусора в PHP:

  • Одна присутствует во всех версиях PHP 5 ≥ 5.3 (исправлена в PHP 5.6.23).
  • Вторая — во всех версиях PHP ≥ 5.3, включая версии PHP 7 (исправлена в PHP 5.6.23 и PHP 7.0.8).

Уязвимости могут удалённо применяться через PHP-функцию десериализации. Используя их, мы отыскали RCE на pornhub.com, за что получили премию в 20 000 долларов плюс по 1000 долларов за каждую из двух уязвимостей от комитета Internet Bug Bounty на Hackerone.
Читать дальше →
Всего голосов 68: ↑66 и ↓2+64
Комментарии4
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Астана, Акмолинская обл. (Целиноградская обл.), Казахстан
Дата рождения
Зарегистрирован
Активность