Category: it

Category was added automatically. Read all entries about "it".

Thinker

Распознавание текста в линуксе — 2018

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

Лучшее, что сейчас есть из бесплатного — это по-прежнему gscan2pdf + cuneiform
Текст распознаёт cuneiform, а gscan2pdf — это просто графический интерфейс к нему, с разными дополнительными плюшками.
Чтобы поставить всё это себе, просто скажите

$ sudo apt-get install gscan2pdf cuneiform

Итак, вы отсканировали текст в PDF. (Это, кстати, можно сделать прямо внутри Gscan2PDF.)
Открываете Gscan2PDF. И дальше:

Open → Tools → OCR → <настройки> → Start OCR → Save As PDF

Настраиваемые параметры — это:
* язык текста (ведь русский распознаётся совсем не так, скажем, как болгарский)
* движок распознавания (я использую cuneiform, но можно, например, tesseract)
* можно распознавать не весь текст, а только выделенные области

Всё, у вас есть сохранённый PDF-файл с текстом внутри. Можно копипастить оттуда текст или, если, например, надо перевести на другой язык, можно просто скормить файл гугло-переводчику (лучший быстрый перевод текста на сегодня).

Если же вам надо то же самое из командной строки, то можно напрямую вызвать cuneiform. Общая схема:

$ cuneiform [--dotmatrix] [--fax] [--singlecolumn] [-f format] [-l language] [-o output] input

Реальный пример использования — давайте распознаем немецкий текст в одну колонку:

$ cuneiform --singlecolumn -f text -l ger -o output input

Результат уже вполне приличный.
Thinker

Линуксы-хуинуксы: Solus

Уже много лет на всех компьютерах, до которых я могу дотянуться, стоит Дебиан (ну кроме макбука). И вот подвернулся случай попробовать что-то новенькое – решил потыкать одного из кандидатов на дистрибутив будущего: Solus. Если очень коротко: неплохая попытка, но пока сырее петербуржского климата.

Установка
Ставится с флэшки за 5 минут, всё железо сразу заработало – уже хорошо. Жирный минус: нельзя при установке добавить русский язык. Ну точнее можно, но тогда вам придётся… нет, всё-таки нельзя.

Настройка
Я поставил его с модненьким окружением рабочего стола Budgie.
Сразу после установки есть более или менее всё, что обычно бывает в современном Гноме: браузер Firefox, Libre-офис, проигрыватель Rhythmbox, Transmission, даже всякий gparted. Короче, на первый взгляд жить можно, но когда начинаешь пользоваться, везде оказываются недоделки. Я поставил себе целью иметь следующий набор работающий программ: офис, VLC, браузеры Firefox и Chrome[ium], Telegram, Skype, просмотрщик PDF, что-то для сканирования, заметки Tomboy (или gnote) и dropbox. И ещё русскую раскладку клавиатуры с переключением по Caps Lock. Ну, поехали.

Общие замечания
В Солусе свой менеджер пакетов. Ни на что не похожий, называется eopkg. Сейчас пересобрано довольно много пакетов, и репозитории активно пополняются. Но если какой-то пакет ещё не пересобрали, то вам придётся решать проблему самостоятельно (проще всего, как мне кажется, прямо из исходников через ./configure && make && sudo make install).

Для простых людей есть Software Center – простой и понятный способ установки чего угодно, в том числе Third Party. Например, оттуда можно поставить Skype или pyCharm. Почти всё из списка выше сразу заработало. Не работает только переключение раскладки по Caps Lock и принтер.

С железом тоже всё интересно. Довольно много (как пишут) железа просто работает. Но вот у меня есть принтер с проприетарными драйверами для USB-соединения - и шиш с маслом! Пока не понял, как решать проблему.

Tomboy / gnote
Tomboy - это простые заметки, программа с удивительной судьбой. Её написал один какой-то чувак (Alex Graveley) на C# с 2004 по 2007. С тех пор её поддерживают другие люди в рамках open source, но код и функциональность изменилась за это время не сильно. Код оказался настолько удачный, что несмотря на си-шарп и mono, Tomboy до сих пор входит в GNOME. За последние 10 лет было несколько попыток переписать эту прекрасную программу на что-то более удобное. Самым удачным оказался вариант gnote на чистом С++. Но есть и другие интересные попытки: например, tomboy next generation на ПАСКАЛЕ! Активно развивается, надо заметить.

Ну, в общем, gnote работает, а вот Томбоя нет. Я попытался его собрать из исходников, прямо из гитхаба, но не получилось. Застрял на каком-то компоненте mono. Буду ещё пробовать.


Итого
Firefox – OK (preinstalled)
Chrome – OK (software center)
Skype – OK (software center)
VLC – OK (software center)
Telegram – OK (downloaded binary from telegram.org)
fbreader – OK (software center)
gnote – OK (software center)
переключение раскладки по Caps Lock – NO!
МФУ Brother – NO!
Но в целом впечатления хорошие.
Thinker

Лицензия JetBrains

Друзья, не нужна ли кому образовательная лицензия на продукты JetBrains? Действует до 15 августа, можно использовать несколько продуктов с одним ключом одновременно. Дали за решение задачек на stepic.org (в прошлый раз дали на курсе по Haskell, в этот раз за python), но прямо сейчас мне не надо, а потом может ещё дадут.
Thinker

Спуск полос в одну строчку

В одной строке кода shell-сценария больше духа UNIX,
чем в десяти тысячах строк кода на С!

Мастер Фу


Если нужно по-быстрому сделать спуск полос в PDF-файле, то можно воспользоваться следующим простым скриптом.

Допустим, ваша будущая книжка будет содержать 40 страниц (или любое другое число, которое делится нацело на четыре) и будет иметь формат A5, сделанный из страниц исходного формата A4.

0. У вас в системе должны быть установлены пакеты ghostscript и psutils.
1. Создаём файл, скажем, makebook.sh со следующим содержимым:
#!/bin/bash
pdftops $1 - | psbook -s 40 | psnup -P a4 -p a4 -m 0 -b 1 -2 | ps2pdf - `echo $1 | sed -e "s/\.\(\w*\)/_imposed.\1/g"`;

2. Запускаем его в командной строке, подавая аргументом нужный PDF-файл:
$ ./makebook.sh foo.pdf

3. На выходе получаем файл foo_imposed.pdf, в котором рядом с первой страницей напечатана 40-я, рядом со второй — 39-я и т.д.
4. Если нужно сделать книжки другого размера, то можно поиграться с параметрами psnup. Я делал таким образом A4 → A5, A5 → A5, A4 → A6. Причём это работает со всеми PDF-файлами независимо от происхождения. Даже с теми, которые сделаны, например, не к столу будет сказано, в MS-Word.
Thinker

Настройка русской раскладки в LXDE

Уже 4 года я пользуюсь преимущественно LXDE — незатейливым окружением линуксового рабочего стола. Один из первых вопросов новоиспечённого пользователя этой штуки: как тут включить русскую раскладку клавиатуры? А второй: как добавить приложение в автостарт?
Collapse )
P.S. Всё гарантированно работает в Debian Squeeze. В других я не проверял.
Facepalm

scons + multibib [+disser] (обновлено)

Пропатчил scons, так что теперь он корректно обрабатывает LaTeX-файлы, использующие пакет multibib.
Правда, я проверил только в одмом месте: на автореферате, который делается при помощи набора макросов disser (у меня версия диссера — 1.18). Если вы проверите ещё где-то, то буду очень вам благодарен.

Заслал разработчикам, может, со временем добавят.

Патч лежит тут, его надо применить к файлу /usr/lib/scons/SCons/Tool/tex.py (о том, как это правильно сделать, написано в man patch).

Upd: ответ разработчика: I will look at this later. What version of scons were you using? Version 2.1.0 supports bibunits which sounds similar.
Я использую версию 2.0 из Debian stable.
Thinker

asymptote — незабываемые рисунки в ТеХе

Мотивация
Когда-то давно я написал в ТеХе бакалаврскую работу. Когда через пару лет мне зачем-то потребовалось снова ею воспользоваться, я обнаружил, что картинки, вставленные в ТеХ-файл, бесследно исчезли. Начисто. ТеХ-исходник ещё удалось откопать в каком-то старом письме, а остальное пропало навсегда. С тех самых пор я вставляю рисунки прямо в тело своего теховского файла.
Collapse )
Thinker

CAPTCHA своими руками

Дал своим студентам очередное домашнее задание по программированию на питоне: написать кэпчу. Но требуется еще 3-4 задания. Нет ли у тебя, мой уважаемый читатель, идей какой-то не сложной и, главное, нескучной кэпчи?

К обсуждению принимаются любые идеи, чем бредовее, тем интересней.

Что получится — расскажу в конце семестра.