Отключаем насовсем использование инкрементальных обновлений метаинформации (pdiff):
# echo 'Acquire::PDiffs "false";' > /etc/apt/apt.conf.d/50nopdiff
Одноразово можно так сделать:
# apt-get update -o Acquire::Pdiffs=false
Тема заметки: конвертация музыкальных файлов (flac, mp3, wav, ape).
Меньше слов, больше дела.
Все скрипты ниже даны исключительно для образовательных целей, последние их версии всегда на гитхабе (не копипастите их с этой страницы):
git clone https://github.com/sigsergv/music-tools.git
Проблема: при отправке письма через SMTP-сервер, в письмо добавляются заголовки, содержащие ip-адрес машины, с которой было отправлено письмо, выглядит это обычно так:
Received: from your.home-address.tld
by mx.mailserver.tld with ESMTPS id ID1.1.2.3.4.5.6.7
(version=TLSv1/SSLv3 cipher=OTHER);
Здесь your.home-address.tld
— это как раз домашний адрес (с которого письмо отправлялось), а mx.mailserver.tld
— адрес почтового сервера. Exim по умолчанию использует такой формат заголовка.
Цель: настроить SMTP-сервер исходящей почты, чтобы исключить из заголовка Receieved адрес домашней машины.
Рабочее окружение: Debian, Exim4
Решил детально поисследовать редактор Sublime Text 2, который в последнее время стал сильно популярен в интернетах. В целом программа хорошая, вполне вполне сгодится как профессиональный текстовый редактор. Отлично подойдёт для программиста-на-всём (код раскрашивает, скобки подсвечивает).
Начальная конфигурация вполне удобная, хоткеи отторжения не вызывают, но требуют привыкания после Eclipse, например. Впрочем, все хоткеи настраиваемые.
Огромные возможности по настройке — всё делается через текстовые конфиги прямо в самом редакторе. Можно писать расширения на питоне. И этих расширений уже настрогал огромное количество.
Это была вводная часть, а сейчас про мой опыт работы и настройки редактора (будет расширяться со временем).
Дропбокс некоторые свои функции реализует через браузер, для этого он генерит спецссылки и открывает их в браузере. При этом алгоритм определения, какой именно браузер открывать, не особо прозрачный и понятный (речь пойдёт только о дебиане/убунте).
- Сначала dropbox ищет исполнимый файл
x-www-browser
, если таковой есть, то ссылка передаётся ему аргументом командной строки. Поиск файла идёт сначала в/usr/lib/dropbox/
, а затем в каталогах из переменной окружения$PATH
. - Затем проверяется значение переменной окружения
$BROWSER
, если там что есть, то оно запускается (со ссылкой в первом аргументе). - Затем пытается запустить
/usr/bin/sensible-browser
- Затем (непонятно зачем) —
/usr/bin/x-terminal-emulator
Чтобы в дебиане ссылки открывались в браузере, который указан в переменной окружения $BROWSER
:
update-alternatives --remove-all x-www-browser
Всё вышенаписанное получено эмпирическим путём и не обязательно соответствует реальной логике работы программы.
Задача: нужно поставить Market (а теперь он называется Play) на андроидный виртуальный девайс. Широко известная в узких кругах процедура с копирование файла system.img
больше не работает, пришлось искать новый способ.
Для работы Market на девайсе должен быть установлен Google Services Framework (gsf), это библиотека для работы с гуглоаккаунтами, нужна практически для всех гугловых приложений. В составе SDK уже есть образы с включённым gsf, именно на виртуальный девайс, основанный на таком образе, мы и будем ставить маркет.
Обновлено 2015-09-17: исправлены ссылки на программы
Приложения для андроида распространяются в виде файлов с расширением apk, внутри такого файла лежат бинарные и текстовые ресурсы приложения, манифест со всякой технической информацией о пакете, а также скомпилированный код собственно приложения. И в какой-то момент неизбежно возникает желание расковырять чужой пакет, чтобы вытащить оттуда картинку, например, или посмотреть, как устроены макеты интерфейсов.
Вот этим мы и займёмся. Традиционно здесь всё рассказывается в контексте линукса, с остальными операционками разбирайтесь сами, хотя принцип ровно такой же.
Задача: есть PDF, в котором очень широкие поля, плюс куча мусора на них типа «Украдено в Хилтоне», поэтому нужно поля по максимум отрезать. Можно, конечно, рыть интернеты в поисках подходящей программы, но за короткий срок этого сделать не удалось.
Всё решилось совершенно неожиданным путём: ставим пакет python-pypdf
, пишем простейший питоновский скрипт и получаем ровно что нужно.
Внимание! Gimp 2.8 уже официально выпущен, поэтому статья уже неактуальна.
Собираем пакет с гимпом (девелоперскую ветку 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
С аргументами можно играться, вещание нормально ловится, задержка минимальная.