A shelter from pigs on the wing
DMZ
дневник заведен 09-08-2004
постоянные читатели [32]
3 CaHuTaPa, 517design, Arde, Art`Is, aviabaza, BlackDrago, CyberJoe, DeadMorozz, Depeche Mode, DMZ, d_r, Ewige, glv12 Marla Zinger, goldenandy, Grimble, Hydralisk, Jude, Katrine Himitsu, Leave-me-alone, MISTIK, My3a, Nash, Nicholas Hawkwood, Pingvin, Riskoff, VorteX DrAgON, Wolfram, Букля_, достало, Муть, Рика, Эль
закладки:
цитатник:
дневник:
местожительство:
Красноярск, Россия, Сибирь
интересы [24]
программирование, C++, Depeche Mode, Star Wars, perl, DVD, JavaScript, FAR, lost, 80е, Half Life 2, долго спать, Miami Vice, веб-роботы, кентаврицы
антиресы [9]
грибы, грейпфрутовый сок, мёртвые люди, табличка обед, долго спать
Четверг, 12 Июля 2012 г.
06:30
Разработчики — птицы гордые. Пока конкурс не объявишь, они ничего не напишут.

Например, для Linux долгое время был всего один RSS-клиент с поддержкой Google Reader. Это Liferea. Правда с этой самой синхронизацией у нее так и остаются проблемы. Если читать ленты с другого устройства, то на отдельно взятой локальной машине не все прочитанное синхронизируется. Кроме того архитектура у них вышла не расширяемая. Нормальный сервис чтения типа pocket/instapaper не подключишь.

Есть еще поделка read-me, но это совсем ничего приличного.

И тут, значит, Canonical объявляет конкурс для разработчиков. И на свет появляется LightRead. Liferea пока не перегнали, но для приложения которому всего пара недель отроду выглядит достойно и красиво. Но качество синхронизации еще надо будет проверить.

Среда, 28 Марта 2012 г.
06:04
deadbeef 0.5.2 наконец-то научился сохранять плейлисты и позицию при критическом завершении работы. Теперь для идеала мне нужен только встроенный простой файловый браузер, чтобы не таскать каждый раз папки из Наутилуса. Другие linux-плееры в этом случае хотят стать комбайнами и организовать медиа-библиотеку, что на работе, в ситуации с частым обновлением (с удалением прослушанного), совершенно не нужно.

Понедельник, 4 Июля 2011 г.
05:24
Как показывает опыт, проще за 20 минут поднять с нуля виртуалку с Ubuntu-ой, чем пытаться настроить Windows для веб-разработки (хотя и такое возможно). Многоядерные процессоры с виртуализацией и дешевая оперативная память здесь очень даже к месту.

Понедельник, 28 Марта 2011 г.
17:14 Привет, UTC+8
Стрелки стрелками, но отмена перехода на зимнее время таит в себе еще один нюанс: теперь пояса в России сдвигаются. Если раньше Красноярск был в UTC+7 (с поправкой на DST, когда надо), то теперь он окопался в UTC+8.

И по всем правилам, Windows должна получить соответвующее исправление через Windows Update, а всякие эти ваши Линуксы обновить пакет tzdata. Если до октября никто не не обновится, то придется руками в настройках системы выставлять UTC+8 и снимать галку с перевода стрелок.


Как видно, пояс поменяли, а время не изменилось. А вот переводить сами стрелки на час вперед-назад в компьютерах не надо. Если время синхронизировано с интернетом, то оно переведется обратно. Поэтому менять надо только пояс.

В Линуксах есть файлик типа /usr/share/zoneinfo/Asia/Krasnoyarsk, где в бинарной форме записаны все переводы стрелок на 500 лет вперед. В Дебиане руками его не поправишь, но наверняка можно какой-то программой. Можно, но не нужно. Уверен, что за полгода нужный патч протолкнут.

А пока радуемся жизни.

Понедельник, 21 Марта 2011 г.
08:51
XFCE — если потратить полчаса на обживание — становится пригодной для жизни. И это рекорд среди всех других DE. Плюс она поддерживает апплеты с панелей Gnome. Так, что если Gnome 3 окажется УГ, то есть куда бежать.

Из того что не получилось:

  • нет настроек системного Proxy, как в Gnome. Конечно, переменная окружения спасает, но Chrome исключения берет из системных настроек, а тут их нет и он всюду пытается лезть через прокси. Кажется так
Вторник, 22 Февраля 2011 г.
08:11 DOC / RTF / ODT / ... -> HTML / PDF / DOC / ODT / RTF / ...
Немного рабочих моментов и полезного кода. Может кому пригодится.

Конвертируем все что угодно в что-то другое с помощью OpenOffice/LibreOffice. Понадобилось тут автоматизировать наконец это дело.

Первая рабочая версия. Дальше уже можно пилить по вкусу.

Принцип работы — uno. Первый раз слышу. Похоже на COM в Windows. Запускает OpenOffice в фоне и общается с ним по TCP.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# Copyright (C) 2011 DMZ <dmz @the-island.ru>
# Licensed under the GNU LGPL v2.1 - or any later version.
 
from ooutils import oo_properties as oop, OORunner
from optparse import OptionParser, OptionValueError
import sys
import re
import os
 
from unohelper import systemPathToFileUrl
from com.sun.star.beans import PropertyValue
 
# http://wiki.services.openoffice.org/wiki/Framework/Article/Filter/FilterList_OOo_3_0
CONVERT = {
    'html': 'HTML (StarWriter)',
    'xhtml': "XHTML Writer File",
    'rtf': "Rich Text Format",
    'doc': "MS Word 97",
    'odt': "StarOffice XML (Writer)",
    'pdf': "writer_pdf_Export",
}
 
def read_format(option, opt, value, parser):
    value = value.lower()
    if value not in CONVERT:
        formats = ', '.join(CONVERT.keys())
        raise OptionValueError(
            'Формат вывода не поддерживается. Доступные форматы: %s' % formats)
    setattr(parser.values, option.dest, CONVERT[value])
 
if __name__ == '__main__':
    parser = OptionParser()
    parser.add_option('-i', '--input', dest='input')
    parser.add_option('-o', '--output', dest='output')
    parser.add_option('-f', '--format', action='callback', type='string',
        callback=read_format, dest='format', default=CONVERT['html'])
    (options, args) = parser.parse_args()
 
    if not options.input:
        print >>sys.stderr, u"Укажите месторасположение входящего файла (-i)"
        sys.exit(1)
 
    if not options.output:
        print >>sys.stderr, u"Укажите месторасположение итогового файла (-o)"
        sys.exit(1)
 
    odir = os.path.dirname(options.output)
    if not os.path.isdir(odir):
        print >>sys.stderr, u"Путь для сохранения (%s) не существует" % odir
        sys.exit(1)
 
    if not os.path.isfile(options.input):
        print >>sys.stderr, u"%s: Указанный файл не существует" % options.input
        sys.exit(1)
 
    oor = OORunner()
    desktop = oor.connect()
 
    document = desktop.loadComponentFromURL(systemPathToFileUrl(options.input),
        "_blank", 0, oop(ReadOnly=True, Hidden=True))
 
    print u"Сохраняем документ в %s" % options.output
 
    document.storeToURL(systemPathToFileUrl(options.output),
        oop(Overwrite=True, FilterName=options.format))
 
    document.close(True)
    oor.shutdown()
ooutils можно взять тут и сохранить в отдельный файл (положить или в папку со скриптом или в питоновские пути)

Фикс для нахождения LibreOffice (amd64):

1
2
3
4
# Find OpenOffice.
    _oopaths=(
        ('/usr/lib64/libreoffice/program', '/usr/lib64/libreoffice/program'),
     )
Пример:

1
python o2o.py -i document.odt -o document.pdf -f pdf
Четверг, 4 Ноября 2010 г.
19:49 До чего дошел прогресс
Хотите консоль рута в ваш новый любимый жидкокристаллический телевизор LG? Забирайте.

Среда, 13 Октября 2010 г.
13:44

Если нечем заняться, то можно что-нибудь сломать, а потом целый день чинить
Народная мудрость

Пока на работе относительное затишье, перелез с Debian на Ubuntu (10.10, с пылу, с жару)

Хоть Debian был и testing, но он все равно какой-то уж очень стабильный, что на десктопе (даже рабочем) не сильно то и нужно. Вообще такое чередование Windows дома / Linux на работе здорово прочищает мозги по поводу привязанности к чему-то одному. А с непродуктивными привязанностями нужно бороться.

Понедельник, 9 Августа 2010 г.
06:14 Access Point
2.6.32-5 + hostpad из testing + D-Link DWA-520 = точка доступа с WPA2

На USB поднять так ничего за этот год я и не смог. Инструкция по подъему на ath5k есть тут. Но с ядром и hostapd указанными выше не пришлось пересобирать модули. Только конфиг написать и настроить dhcpd

Среда, 21 Июля 2010 г.
11:00 DockBarX
Мне нравится панель задач в Windows 7. С группировкой, возможностью оставить одни значки и pinning-ом. Захотелось раздобыть подобное и под Linux.

Возможно что-то такое уже есть и в KDE4, но после тормозов KDE4 на 2Gb оперативы я перелез на Gnome. Да и даже после того, как на работе выдали 4 гига я так там и остался и решать задачу пришлось в его окружении.

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


Еще слева есть замечательный синий график. Он показывает загрузку процессора (это уже стандартный гномовский). Но он умеет показывать iowait — самый неприятный вид загрузки процессора, единственный, который кладет систему до такого уровня, что она не реагирует ни на что. Обычно при интенсивном своппинге или работе с жетским диском. Сразу видно, что лучше убрать руки с клавиатуры и подождать, пока она очнется. Под windows сильно не хватает подобного, чтобы было на виду.

Четверг, 15 Июля 2010 г.
21:30 BluRay, XBMC, Linux


Совершенно упустил из виду, но с конца января появился более-менее приличный способ смотреть BluRay диски в Linux. Хотя возможность открывать m2ts файлы с незащищенных дисков появилась еще давно, диски с защитой просто так не поддавались.

В основе всего лежит программа makemkv. Которая по словам автора, распознает и спокойно обходит защиту всех дисков. Но самый смак в том, что для этого не надо копировать диск на винт, снимая защиту по пути. В программу встроен UPNP-сервер для потокового вещания сырого BD-потока.

В итоге

  • Запускаем makemkvcon
  • Ожидаем готовности
  • Запускаем какой-нибудь UPNP-клиент. Даже по сети. Правда, уже нужна гигабитка, так как поток на BD-диске достигает десятков Mbps
  • ???
  • ПРОФИТ!
А так как всеми любимый медиацентр XBMC несет в себе такой нам нужный UPNP-клиент, то почему бы им и не воспользоваться?

А чтобы каждый раз не запускать сервер ручками, один добрый человек написал под это дело xbmc-аддон, для запуска того самого сервера и старта воспроизведения фильма через встроенный UPNP-клиент.

И все закрутилось. И самое главное: в едином интерфейсе.

Диски с защитой действительно читаются.  Из последнего под рукой ничего не было (я теперь перед покупкой смотрю на зону на blu-ray.com и обхожу стороной защищенные диски), так что поставил на пробу «The Princess Bride» выпущенный еще весной 2009 года. И он спокойно проигрался без каких-то видимых тормозов.

Оффтопик про тормоза и железо.

В данный момент HTPC у меня состоит из Athlon X2 250 + nVidia GT240.

GT240 (на чипе GT215!) — это очень даже отличная карточка:

  • Стоит не дорого (по сравнению с другими карточками на этом чипе).
  • Под Linux-ом поддержка VDPAU на самом сильном уровне (лучше чем у ION)
  • А под виндой без проблем идут почти все игры в 1280x720
  • PhysX дополнительно к третьему пункту
  • Малые габариты
  • Есть даже с пассивным охлаждением (увы, в нашем городе не нашел)
VDPAU под Linux-ом в последних дровах допилена почти до идеального состояния. XBMC умеет VDPAU. В итоге, просмотр BluRay-диска на этой конфигурации съедает 15-20% на каждом ядре процессора и не-уверен-сколько графического процессора. В инфе есть какая-то строчка vcpu: 5%. Но я точно не знаю, что она означает.

Без VDPAU, просмотр 1080-рипа уже грузит процессор до 50-70%.

Конец оффтопика.

Что требуется, чтобы завести все это?

  • BD-ROM (хотя можно открывать и образы дисков)
  • Ядро не сильно старой версии, чтобы понимало файловую систему на BD-дисках
  • Скомпилировать makemkv
  • Установить аддон (скачать zip-файл и воспользоватся автоматическим инсталятором в XBMC)
  • Купить напитков или еды. Или ничего не покупать. Тут у каждого свои вкусы.
Какие проблемы могут ожидать на пути?

  • XBMC на amd64 до сих пор страдает мелкими глюками во третьестепенных вещах.
  • Например в том же UPNP-плеере. До версии ~30000 он похоже не работает
  • Так что ставим его из ppa:team-xbmc-svn/ppa
  • В текущем билде в него вложена 32-битная библиотека Питона, вместо нужной 64-битной.
  • Пришлось ставить старую версию, вытаскивать оттуда папку и Питоном, ставить новую версию и запихивать Питон обратно
  • Найти в конец треда версию аддона под новый XBMC
  • На i386, говорят, все работает как по маслу.
  • По умолчанию makemkv выбирает самый длинный тайтл на диске. На диске с «Шерлоком Холмсом» таковым, например, оказалась версия с комментариями режиссера. Это когда вы ничего не подозревая смотрите кино, и тут ВНЕЗАПНО, на экран выходит живой Гай Ричи и начинает махать руками, комментируя происходящее. Или показывать какое-нибудь документальное видео в окошечке.
  • Но всегда есть возможность выбрать нужный тайтл руками.
  • Нет поддержки меню. Хотя под Linux-ом даже DVD-меню так никто толком не поддерживает.
  • О BD-Live и речи нет
  • Бывают глюки с субтитрами.
А в целом, все работает отлично. С диска летит честный 1920x1080 без всякого пережатия. XBMC поддерживает DTS-HD, Dolbie TrueDigital уже давно. VC1 тоже не проблема абсолютно.

Но самое главное: чтение защищенных дисков, чего мой standalone-плеер делать не умеет (и это лечится только паяльником).

Жаль, что нормального (читай коммерческого) BD-плеера под Linux в ближайшее время ждать не приходится. Я бы и денег за него заплатил бы раз такое счастье. Тот же Power DVD стоит намного дешевле железного плеера.

Пятница, 18 Июня 2010 г.
10:53
Пока Pixar продолжает штамповать шедевры — надо смотреть


Ну и по древней традиции имена релизов Debian именуются героями Toy Story. Так как один из первых мэйнтейнеров работал в Pixar

Вот это — Debian 5.0 Lenny:


А это Debian 6.0 Squeeze:


А Debian unstable Sid никогда не будет выпущен. Потому что он вечно unstable


Среда, 9 Июня 2010 г.
08:24
Я все таки запилил на хабр статью о скробблинге музыки из mpd через официальный клиент. Так что можно ставить плюсики или минусики

07:04 nouveu vs. nvidia
Ядро 2.6.32 тащит с собой новый открытый драйвер для nVidia — nouveu. И он конфликтует с родным от nVidia. Если хочется пользоваться проприетарным, то nouveu надо добавить руками в blacklist

Но я это понял где-то минут через полчаса

На рабочей 7600GS nouveu в два раза медленнее согласно glxgears

Воскресенье, 30 Мая 2010 г.
23:11 GEdit
GEdit — отличный редактор кода под Linux

Сперва меня, конечно, подсадили на NetBeans, так как у на тут пытается родиться мега-проект на GWT. Но NetBeans под Python пока не так круто заточен, как под Java

А вот если накачать сотню плагинов под маленький стандартный GEdit, а потом внимательно посмотреть и оставить нужные, то получается отличный маленький, домашний монстр.

То что сейчас у меня есть в GEdit и чего нет в NetBeans: автодополнение вводимых строк

То, что было в NetBeans и не хватает в GEdit:  динамическая подсветка diff-ов между текущим кодом и старой версией

Еще не хватало встроенного SVN, но SVN из консоли не такой сложный в обращении.

Под виндой, после всего такого счастья трудно найти замену.

Вторник, 25 Мая 2010 г.
06:33 Opera
  • в Opera 10.53 починили некоторые нововведения 10.50, так что теперь можно пользоваться без проблем (с моими привычками)
  • прозрачность в панелях выглядит некрасиво. Остаюсь на непрозрачном скине пока. Но в нем нехватает некоторых новых элементов
  • прозрачные скины можно качать и под Linux. Но там они превращаются в мешанину цвета
  • Финальной ветки 10.5x под Linux так и нет. Так и живем на 10.10
  • Бета-ветка у меня неправильно рендерит шрифты
    • Зато HTML5/Video/WebM на YouTube работает
Пятница, 30 Апреля 2010 г.
08:56 We're going to Ubuntu
Debian — штука несомненно правильная и стабильная. Но иногда он уж очень стабильный. Это хорошо для серверов, но для десктопов как-то на мой вкус не очень. Иногда уж очень нужна новая версия софта, а в debian-е даже в experimental её так и нет.

А для HTPC это тем более важно и нужно. Вот понадобилась мне 23-я ALSA, а нету её. И не собирается ни под каким предлогом.

Так что попробу-ка я поставить на HTPC Ubuntu. Тот же Debian, но более экспериментальный и прогрессивный. Можно конечно и Gentoo какую-нибудь, но с ней возни намного больше. А с HTPC не хочется возиться, а даже хочется чтобы были какие-нибудь свистелки и перделки (типа загрузочного экрана) из коробки.


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

А потом накатываем: проприетарный драйвер nVidia, ALSA-у посвежее, acpupsd для поддержки УПСа, pm-utils для засыпания и просыпания, lirc для поддержки Майкрософтовского пульта, vlc для просмотра IPTV, nfs и samba для расшаривания дисков с контентом для других машин.

Вроде никого не забыл.

Ну а самое главное — это XBMC. Он рулит всем этим заместо DE. А когда в него запилят поддержку тв-тюнеров и IPTV, то он будет устраивать меня всем. А то от внешнего вида MythTV хочется достать чернил и плакать.

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


Под Debian он собирается руками, а под Ubuntu вроде есть репозитарий с ночными билдами. К тому же сейчас они допилят репозитарий плагинов и будет вообще круто. Плагины есть и сейчас (просмотр видео, фоток, музыки из интернет-источников, гуглькарты и пр.), но пока они ставятся практически руками, что не очень интересно.

Понедельник, 29 Марта 2010 г.
06:46 Прозрачная связка squid и tor
Дома я кушаю web через squid. Потому что у меня туда и баннерорезка прикручена и прочие полезные штуковины.

Но для доступа на некоторые сайты пришлось поднять tor

А чтобы каждый раз не менять прокси в настройках бразуера tor можно прикрутить к squid

Как поставить и настройть squid и tor написано в куче других мест

А тут только конфиг:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Создаем acl любым доступным способом. Я выбрал файл со списком доменов
 acl torhost dstdomain -i "/etc/squid/torhosts"
 # Немного параноидальной анонимности
 header_access UserAgent deny torhost
 header_access From deny torhost
 header_access Referer deny torhost
 # Магия
 # Родительский прокси на localhost:8118 таймаут 7 секунд
 cache_peer localhost parent 8118 7 no-query default
 # Пользоваться родительскими прокси разрешаем только torhost
 never_direct allow torhost
 # torhost разрешаем пользоваться только родительскими прокси
 always_direct deny torhost
 # Всем остальным разрешаем ходить напрямую
 always_direct allow all
Если используется больше чем один родительский прокси, то правила будут посложнее. Но я до этого додумаюсь, когда возникнет практическая необходимость.

Вторник, 23 Марта 2010 г.
07:02
На работе перелез с Rhythmbox на mpd. В качесте фронтенда пока Sonata.

Но опять возникла проблема с Last.FM. Скробблинг-то присутствует (а gmpc даже загружает инфу об исполнителях и теги с last.fm), но кнопочки «Love» ни у кого не оказалось.

И тут я подумал. Программист я или не программист? Единогласным голосованием было решено, что программист.

Немного codesearch.google.com и исходников соответствующего плагина для Rhythmbox и... демон, который посылает инфу от MPD к Last.FM клиенту готов!

Написано на Python. import antigravity mpd — уже половина дела.

Думаю потестить его немножко и запилить статью на Хабр

Среда, 17 Марта 2010 г.
13:06 Fancy Beeper vs. pcspkr
Надоел звук PC-спикера в XXI веке? Его можно эмулировать ALSA-ой.

Порядок примерно такой (на примере Debian):

  • rmmod pcspkr
  • blacklist pcspkr -> /etc/modules/blacklist
  • Качаем и устанавливаем Fancy Beeper из http://www.carcosa.net/jason/software/beep/
  • качаем http://www.funix.org/fr/linux/fichiers/functions в /etc/init.d/functions, если его там еще нет. Мне еще пришлось usleep 100000 заменить на sleep 6 в коде, так как в Дебиане usleep не нашлось. Да и что-то слишком большое время ожидания.
  • beepd.init из архива пришлось немного исправить (результат). Устанавливаем в /etc/init.d/beepd.
  • sudo update-rc.d beepd defaults 99
  • создаем /etc/beepd.conf из двух строчек:
BEEPD="/usr/local/sbin/beepd_aplay.py"
BEEP_SOUND="/usr/share/sounds/beep.wav"
  • Имя демона и звукового файла соответственно
  • Именно beepd_aplay.py запускает звук через ALSA. Тут можно написать и своего демона. Он должен делать две вещи: опрашивать /dev/beep и играть файл, который ему передается первым параметром
  • beepd_aplay.py и требуемый к нему daemonizer.py лежат в исходном архиве. Но код демона все равно потребовал допиливания (результат), чтобы он писал PID-файл под своим именем
  • Вроде ничего не забыл. Теперь можно наслаждаться нормальным сигналом и в рельной консоли
  • Можно и не мучится сильно, а написать свою обертку. Не так уж тут много.
  • PS. Настройка dmix, для одновременного вывода многопоточного звука в ALSA выходит за рамки этого списка

Закрыть