Задача: нужно поставить Market на андроидный виртуальный девайс. Широкоизвестная в узких кругах процедура с копирование файла system.img больше не работает, пришлось искать новый способ.
Для работы Market на девайсе должен быть установлен Google Services Framework, это библиотека для работы с гуглоаккаунтами, нужна практически для всех гугловых приложений. В составе SDK уже есть образы, включающие gsf.
Приложения для андроида распространяются в виде файлов с расширением apk, внутри такого файла лежат бинарные и текстовые ресурсы приложения, манифест со всякой технической информацией о пакете, а также скомпилированный код собственно приложения. И в какой-то момент неизбежно возникает желание расковырять чужой пакет, чтобы вытащить оттуда картинку, например, или посмотреть, как устроены макеты интерфейсов.
Вот этим мы и займёмся. Традиционно здесь всё рассказывается в контексте линукса, с остальными операционками разбирайтесь сами, хотя принцип ровно такой же.
Задача: есть PDF, в котором очень широкие поля, плюс куча мусора на них типа «Украдено в Хилтоне», поэтому нужно поля по максимум отрезать. Можно, конечно, рыть интернеты в поисках подходящей программы, но за короткий срок этого сделать не удалось.
Всё решилось совершенно неожиданным путём: ставим пакет python-pypdf, пишем простейший питоновский скрипт и получаем ровно что нужно.
Собираем пакет с гимпом (девелоперскую ветку 2.7) для дебиана. Хоть способ и не совсем правильный и каноничный, но зато быстрый и работающий (quick and dirty). Сразу отмечу, что никакие зависимости в итоговый пакет не прописываются!
Обновление от 23 апреля 2012 г.: gegl обновлён до версии 0.2
Обновление от 14 мая 2012 г.: номер версии обновлён до 2.8
Ставим нужные пакеты для сборки, включая git:
sudo apt-get build-dep gimp
sudo aptitude install git
sudo aptitude install libtool ruby gtk-doc-tools libdbus-1-dev libtiff4-dev
Для сборки на 64-битной системе нужно также поставить пакет ia32-libs-dev.
Создаём новый пустой каталог (например, /home/user/gimp-build), в котором и будем всё собирать. Выкачиваем для начала гимп и сопутствующие библиотеки из git (довольно длительный процесс, так что запасаемся терпением), команды запускаем внутри каталога /home/user/gimp-build:
git clone git://git.gnome.org/babl
git clone git://git.gnome.org/gegl
git clone git://git.gnome.org/gimp
Включаем микрофон или ещё какой источник звука к линейному/микрофонному входу.
Затем выбираем в alsamixer, например, нужный источник в capture device.
Запускаем собственно программу:
ffmpeg -f alsa -ac 2 -i hw:0 -acodec libmp3lame -ab 32k -ac 2 -f rtp rtp://192.168.1.2:5000
С аргументами можно играться, вещание нормально ловится, задержка минимальная.
vlc -vvv alsa://hw:0,0 --sout '#transcode{acodec=mpga,ab=128,channels=2,samplerate=44100}:std{access=http,mux=ts,dst=192.168.0.100:8080}'
Базовые команды и некоторые скрипты и конфиги для редактора VIm. Дырявая память заставила это всё написать.
Спасибо лору.
convmv --notest -r -f cp-1252 -t cp-850 /path/to/unzipped/files
convmv --notest -r -f cp-866 -t utf-8 /path/to/unzipped/files
-
Подготовка файлов. Создаём каталоги
resиocr, разбираем PDF на страницы:pdftoppm -png file.pdf res/out -
Подготовка страниц; нужно увеличить разрешение, подкорректировать яркость и контрастность для лучшего распознавания:
cd res FILES=`ls *.png` cd .. for f in $FILES; do convert -geometry 1000x -modulate 90 -gamma 0.9 -contrast -fx G res/$f ocr/$f.tif done -
Распознавание
cuneiform out-014-g.tif -o out-014-g.tif.txt
Примечания
- без корректировки яркости и контрастности результат распознавания был ужасным;
- вывод в PNG почему-то вызывал сегфолт у
cuneiform.