LINUX.ORG.RU

Сообщения Tayler

 

Бэкпортирование сразу десятка библиотек

Задача следующая. Есть программа (если что, с исходниками), которая зависит (сильно, не оторвать) от Gtk 3.14 (Debian Jessie). Есть Debian Wheezy, на которой нужно запустить этот софт.
(на самом деле Astra, ага, актуальная версия отечественного Linux собрана на базе oldoldstable, ну хоть не на базе Mandrake, и на том спасибо!)

Сейчас собрали из исходников Gtk3 посвежее в /opt, попутно еще с десяток библиотек, от harfbuzz до cairo. На первый взгляд работает.
Но напрягает, что собрано все из ванильных сорцов, без дебиановских патчей. Никак это дело стандартным образом не автоматизировано, поддерживать будет тяжело.

А как прямее, автоматизированней и надежней решать такую проблему?

  • Классический бэкпорт: пересобрать deb-пакеты из Jessie. Боязно что-то поломать в системе, т.к. там и fontconfig, и, glib нужны свежие для Gtk.
  • Пересобрать deb-пакеты из Jessie в тот же /opt, реально, стоит копать в эту сторону?
  • Как я понимаю, AppImage и распиаренные в новостях аналоги не подойдут мне? Они для портабельности между дистрибутивами примерно аналогичной свежести?
  • Debootstrap? В теории возможно, но слишком overhead. Плюс программе нужен прозрачный доступ к файловой системе хоста.

 , , , ,

Tayler ()

Завернуть трафик по UDP-порту через отдельную сеть незаметно для программ

Господа, пардон, не знаю даже какие доки курить и в какую сторону, новые для меня дебри. Предполагаю, что iptabels и nat нужен мне. Ситуация...

Сейча есть две машины, работают в одной подсети 10.a.b.* через свитч, на каждой машине по программе. Программы общаются исключительно по UDP, через несколько портов, все просто:

 _____________                                  _____________ 
|   Машина 1  |                                |   Машина 2  |
| программа 1 |                                | программа 2 |
|             |                                |             |
| IP 10.a.b.c |eth0                        eth0| IP 10.a.b.d |
|все UDP порты|<-----> тупо через свитч <----->|все UDP порты|
|в т.ч.на 8000|                                |в т.ч.на 8000|

Но тут встала задача. Нужно мне определенные особенные пакеты, которые уходят с Машины 1 на порт 8000 Машины 2 не слать напрямую, а перенаправлять на некий девайс с IP 172.16.k.m. (он подключен на eth1 Машины 1). Далее эти пакеты будут девайсом шифроваться, идти по каналу (даже я не знаю, что за канал физически), на другом конце расшифровываться другим девайсом таким же и попадать на Машину 2 уже с IP 172.16.x.y второго девайса (порты девайсы сохраняют сами при передаче):

 _____________                                  _____________ 
|   Машина 1  |                                |   Машина 2  |
| программа 1 |                                | программа 2 |
|             |                                |             |
| IP 10.a.b.c |eth0                        eth0| IP 10.a.b.d |
|все UDP порты|<-----> тупо через свитч <----->|все UDP порты|
|             |                                |             |
|             |                                |             |
|IP 172.16.k.l|eth1__________ ?? __________eth1|IP 172.16.x.z|
| пакеты на   |-->|девайс IP:|->|девайс IP:|-->| пакеты на   |
|UDP-порт 8000|   |172.16.k.m|  |172.16.x.y|   |UDP-порт 8000|

Сделать все необходимо без модификации программ, бубном Линуксоадмина. Т.е. на Машине 1 мне нужно правило, по которому UDP-пакеты, улетающие наружу к 10.a.b.d:8000 должны перенаправляться на 172.16.k.m:8000. На второй Машине пакеты, которые пришли от 172.16.x.y на локальный адрес 172.16.x.z:8000 должны модифицироваться так, как будто они пришли напрямую с первой Машины через обычный свитч на локальный адрес 10.a.b.d:8000.

 , ,

Tayler ()

Утилита подстветки изменений значений от строки к строке

День добрый.

Есть текстовый лог в формате CSV.

В столбцах — счетчики (в том числе времени), показания от датчиков, идентификаторы состояний в виде одной буквы.
(Очевидно, очень похоже на NMEA).

Все значения обычно (но не всегда) либо монотонно растут (счетчики), либо незначительно колеблются вокруг какой-то константы (датчики).

Есть ли такая готовая утилита, которая бы подсветила разницу между строками,
да так, что если значение изменилось незначительно, то подсветила бы бледно/зеленым/etc,
а если значение изменилось значительно, то ярко/красным/etc.

В идеале, если катать губу, утилита вообще должна понимать поведение полей по статистике, например,
«ага, обычно этот счетчик растет раз в 5 строк, а здесь не растет уже 6 строк, надо подсветить красным сей факт».

 , , ,

Tayler ()

Ремонт квартиры фирмой по договору

Господа, делал ли кто-нибудь в Москве ремонт квартиры в фирме?
Так называемый косметический (ламинат, обои, розетки и т.п), без перепланировки.

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

Кто-нибудь связывался, как впечатление?
Или все по-старинке делаете и рекомендуете: сами, либо молдоване?

PS. На профильных форумах сплошь спам, верю только безкорыстным ЛОРовцам.

 , ,

Tayler ()

Не грузится mo-файл

Не знаю уже, куда копать. Есть несколько еще библиотек на вала (по сути на Си), где все настроено похоже и все работает.

Есть одна не рабочая библиотека, назовем ее libanon.
Библиотека зависит от GLib, собираю с помощью CMake. Опции сборки получены через (gettext явно как-то не подключаю):

pkg_check_modules( GLIB2 REQUIRED gio-2.0 glib-2.0 gobject-2.0 gmodule-2.0 gthread-2.0 )

Компилятору Си также передаю флаги:

-DGETTEXT_PACKAGE=\«libanon\» -DG_LOG_DOMAIN=\«libanon\»

Если флаги не передать, то сборка фейлится, так как не объявлен GETTEXT_PACKAGE. Все логично тут.

Внутри библиотеки есть весь (?) необходимый код:

#include <glib/gi18n-lib.h>
...
bindtextdomain («libanon», «po»);
_tmp2_ = _ («Some text»);

Перевод «Some text» прописан в po-файле, собран mo-файл и лежит он в

./po/ru/LC_MESSAGES/libanon.mo

Собираю тестовую программу, смотрю вывод:

strace ./bin/anon_test 2>&1 | grep --color '\.mo'

И вижу, как грузятся mo-файлы glib, libc, других моих аналогичных libanon библиотек, но mo-файл libanon не упоминается в выводе, даже нет попыток его открыть.

 , ,

Tayler ()

Скроллинг пальцем по документу в GNOME Yelp

День добрый.

Мужики, подскажите работает ли в Yelp'е на GTK-3 скроллинг пальцем прямо по документу (ну как на телефонах), чтобы не целиться пальцем в скроллбар.
Нагуглил только мокапы гномовские, но не понятно, допилили они это дело или нет.

Может у кого завалялся девайс с настроенным тачскрином (который корректно определяется как тачскрин).
Конкретно интересует Yelp 3.4.2 из Debian Wheezy, но буду признателен любой информации по Yelp'у.

 , , ,

Tayler ()

Как отрендерить текст заданной ширины

День добрый.

Дан текст (небольшой, но произвольной длины, скажем 2 или 4 буквы), дан шрифт (установленный в системе, доступный по названию, не моноширинный, векторный, например ttf).

Как отрендерить этот текст, чтобы он по ширине занимал заданное количество пикселей?
Т.е. программа должна подобрать кегль (высоту букв), кернинг оставить дефолтный.

Желательна консольная программа. Желательно, чтобы сразу в png рендерила.

 , ,

Tayler ()

Руководство по созданию нехудожественных текстов

Господа, а может кто посоветовать книги/статьи по созданию нехудожественных текстов?

Что-то вроде этого: Глава «Простота» из книги Уильяма Зинсера «Как писать хорошо».

Из описания к той же книге:

Уильям Зинсер, самый авторитетный преподаватель писательского ремесла из ныне живущих, в 30-м юбилейном издании своей книги, впервые выходящей на русском, обстоятельно рассказывает, как писать любые тексты на любую тему - о людях, о путешествиях, о себе, о технике, о спорте, об искусстве. Поясняет, какими правилами писатель должен руководствоваться, какими методами пользоваться и как относиться к своему труду, чтобы максимально приблизить его к совершенству.
Помните: то, что вы пишете, зачастую является единственным шансом отрекомендовать себя тому, в чьей помощи, деньгах или доброй воле вы нуждаетесь. И если ваше послание вычурно, напыщенно или туманно, таким же читатель представит себе и вас. У него просто не будет иного выбора. Так что научиться писать хорошо в ваших же интересах.

 

Tayler ()

Вывод звука в джек микрофона

Мужики, I need help.

Есть нищенетбук Packard Bell Dot SE:

Тип процессора: Atom
Модель процессора: N450
'lshw | grep -i audio' пишет:
описание: Audio device
продукт: N10/ICH 7 Family High Definition Audio Controller
Вопрос. У нетбука два аудиоджека (наушкики и микрофон). Можно ли выводить звук через джек микрофона?

В инете пишут зависит от карточки, некоторые умеют, некоторые нет, некоторые только моно выводят через джек микрофона. А это поделие умеет выводить? Я, каюсь, не осилил нагуглить.
Попробовал hda_analyzer поставить, типа GUI к низкоуровневым настройкам HDA, думал методом тыка попробую. Но там такой GUI, что лучше уж консоль право же.

 

Tayler ()

Клавиатура с com-портом

День добрый, ЛОР, нужна помощь.

Есть экзотическая клавиатура с RS-232 портом.
Нужно подключить ее к обычной PC-шке с (современным, для примера Ubuntu) Linux на борту.
У производителя в документации написано, что клавиатура передает на порт стандартные AT SCAN коды.
Клавиатура 100% рабочая, т.к. с железкой, с которой она совместима, она нормально работает.


Итак, по порядку, в какую сторону я копал:
1) AT SCAN коды — это считай обычный PS/2 протокол (по крайне мере обратная совместимость присутствует).
Например из этого дока: http://www.computer-engineering.org/ps2keyboard/ :
> The PS/2 keyboard was originally an extension of the AT device.
Т.е. с поддержкой протокола команд не должно быть проблем.

2) Пробовал с помощью minicom читать с RS-232 порта (9600 бод, нечетность, стоп и т.п. выставлял согласно документации производителя). В момент нажатий клавиш читаются некие символы (понятно, что не буквы 1 в 1, она же SCAN-коды выдает, а не plain ascii).
Но т.к. что-то выдает, то я заключаю, что клавиатура действительно (на железячном уровне, на уровне сигналов) имеет стандартный RS-232.
А не PS/2 (они же совсем разные, см. http://ts.psc.ru/su.hardw.pc.periferal FAQ/20.html).

3) Пробовал приаттачить с помощью inputattach,
вот манул: https://wiki.archlinux.org/index.php/Serial_input_device_to_kernel_input
Пытался завести с параметром: -ps2ser PS/2 via serial keyboard
В выводе «xinput list» появляется новая клавиатура в «raw mode»
(обычная клавиатура в том же списке значится как «translated mode»).
Но: глухо, не работает.
Для самоуспокоения перепробовал все модели клавиатур, что умеет inputattach, также глухо.

4) К своему стыду не разобрался как можно ручками в Ubunt'е указать порт клавиатуры для иксов.
Поэтому стряхнул пыль с виртуалки с древним Red Hat 7 и прописал там в старом добром XF86Config'е в лоб, по аналогии с мышью, девайс клавиатуры:
> Option «Device» «/dev/ttyS0»
Также глухо.

Вот как-то так.
Не знаю куда дальше копать.
Может можно как-то убедиться что она именно AT SCAN коды выдает?
Может можно как-то драйверу клавиатуры (на уровне ведра?) устройство указать?

 , ,

Tayler ()

Отечественные процессоры

День добрый.

Наверняка есть на ЛОРе специалисты (из НИИ или просто интересующиеся), которые могут просветить по поводу состояния дел в этой области.
Как я понимаю, у нас два разработчика универсальных ЦПУ:
1) НИИСИ (МИПСы, топовый — Комдив-64, 350 МГц).
2) МЦСТ (Эльбрус-S, VLIW, 90 нм, 500 МГц, а также Спарки — выпускаемый R500S, 130 нм, 2 ведра, 500 Мгц и только прошедший гос. испытания R1000, 90 нм, 4 ведра, 1 Ггц).

Так, больше никого с сопоставимой производительностью?

И вот у меня два вопроса:
1) Если не считать экзотику (VLIW, который не понятно как сравнивать с остальными), то сейчас топовый отечественный ЦПУ — Спарк R1000?
2) А что с производством? Все перечисленное — на Тайване?
Вроде бы технологии есть (на том же Ангстреме), но универсальные ЦПУ у нас не делают?

 ,

Tayler ()

[СПВ][NASDAQ] Как купить акции RedHat/Google/...

Всем привет. Вопрос нетривиальный, но может есть и такие СПВ на ЛОРе, на худой конец подскажите ресурс, где можно с большой вероятностью получить подробный ответ)

Есть желание купить акции, к примеру RedHat, на длительный срок (от года и больше), не с целью спекуляции, а с целью инвестирования/сохранения капитала (т.е. например в случае брокера нежелательна абонентская плата, предпочтительна плата только за редкие транзакции) вне привязки к устойчивости отечественной финансовой системы.
Как известно, у нас в РФ простому гражданину фактически запрещено напрямую покупать акции на зарубежных биржах.
Что посоветует ЛОР?

Из вариантов:
1) Финам или БКС. Самый простой вариант: можно тупо приехать в офис в Москве и подписать договор, они сами являются налоговым агентом (если я правильно понял), небольшой порог вхождения (по деньгам). Жирный минус: собственно торговля идет через их мутных кипрских дочек.
2) Американский интернет-брокер. Плюс: можно выбрать достаточно авторитетного брокера, на первый взгляд американское законодательство достаточно серьезно защищает инвестора, порог вхождения небольшой. Минусы: все действия осуществляются через Инет (напрягает, что нет никаких договоров бумажных, выписок, т.е. акции — это просто запись в БД), нужно разбираться с налогами.
3) Представитель зарубежного брокера в России. С этим пока не разобрался толком, особенно с ролью в этой схеме российского представителя. Если счет открывается у зарубежного брокера, говорит ли это о полной защите от банкротства или самоуправства отечественного представителя.

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

Tayler ()

[решено][android][зонд] Проблема с (не)переходом на зимнее время на HTC Tattoo

Сразу говорю, решение я откопал, но решил на форум написать, потому как гуглится оно с трудом, особенно на русском языке, так что может кому пригодится. Писать для блога подробный пост нет времени и сил(

Итак: Вообще для рутованных девайсов несколько решений есть здесь (пара в посте и еще пара в комментах): http://habrahabr.ru/blogs/android/130808/ Казалось бы и рутануть не проблема, со всеми этими «Root in one click». Однако же при записи новых timezone-баз (любым из описанных на хабре способов) под рутом на файловую систему /system tattoo ведет себя неадекватно: ругается на «not enough space», хотя место есть. При попытках удаления старых файлов ругается «directory not empty», хотя это именно файлы, а не каталоги 0\ Если файлы все же удается удалить или перезаписать (маленькие иногда удается перезаписать), при перезагрузке они появляются вновь. Более того: удаленные системные приложения вроде HTC Footprints также появляются после перезагрузки.

Обновлять прошивку на кастомную (и ловить новые тормоза и глюки) не хотелось и не хочется.

В итоге выяснилось, что китайскими умельцами из HTC в ядро встроен особый зонд, который не дает нормально писать в файловую систему, монтированную на /system, дабы нуб или скорее кул хацкер ее не запорол. Решается загрузкой модуля «insmod ./tattoo-hack.ko». Модуль можно взять здесь: http://forum.xda-developers.com/showthread.php?t=716282 , см. «1.3 Tools you need». После загрузки модуля и до перезагрузки телефона на эту файловую систему можно нормально писать, удалять файлы и все сохраняется.

Вот такой зонд. Да, ССЗБ и все такое, да вот только альтернатив особо не вижу. HTC со своим Sens'ом реально удобен «из коробки», радовал адекватностью (после нокии) не первый год. Пока вот Медведев не осчастливил своей инициативой...

Tayler ()

[СПВ][Не нужно?] Поляризованные линзы

День добрый, вопрос к СПВ!

  • Сломались очки солнцезащитные старые и есть сейчас возможность взять со скидкой что-нибудь из полароидов поляризованных, стоит брать вообще?
  • Особенно интересуют отзывы водителей, реально «полностью избавляют от бликов», «нейтрализуют слепящий свет» и «улучшают контрастность»? Прям заметная разница?
  • Есть разница в моделях именно линз или можно тупо из самых бюджетных выбирать, лишь бы поляризованных?
Tayler ()

[Пятница][СПВ] Вспомнить игру на Денди

Бэн, это Данила, ай нид хэлп! Кто застал игровой олдскул, помогите вспомнить название/найти игру!

Описание: Игра на денди. Платформер с неким космическим самолетом, отдаленно напоминающем МиГ-29. Можно было рубиться вдвоем, сразу два самолета на экране. Летишь в каких-то пещерах (приходится облетать стены и пр.). Были довольно детально прорисованные боссы (например помню что-то вроде летающего мозга), боссы потом еще смачно и постепенно взрывались. По-моему игра была японская, с текстами из иероглифов.

И главная особенность, что отличало эту игру от остальных леталок-платформеров: по уровням чередовался вид, один уровень — вид сбоку на самолеты, следующий — вид сверху, и так далее по очереди.

Tayler ()

[libxml2][compressed document] Подскажите по парсингу зипованных xml-файлов

Из документации:

xmlParseFile ()
xmlDocPtr	xmlParseFile		(const char * filename)

parse an XML file and build a tree.
Automatic support for ZLIB/Compress
compressed document is provided
by default if found at compile-time.

filename:	the filename
Returns:	the resulting document tree if the file was wellformed, NULL otherwise.
Интересует строка: Automatic support for ZLIB/Compress compressed
document is provided by default if found at compile-time.


Каким должен быть пожатый xml, чтобы libxml2 его распарсил?
Просто gzip'ованный файл test.xml.gz?

А директории, чтобы сделать что-то вроде odf-файла (архив с xml-ми),
libxml2 встроенными средствами не умеет?

Tayler ()

Русский ман в нелокализованном дистре

Реквестирую олдовых линуксоидов, кто разбирается в тонкостях локализации!

Есть ман на русском (в UTF-8). Less показывает его нормально:

less /usr/local/share/man/man1/bla.1
При этом man вместо русских показывает знаки вопроса:
man bla
w3mman bla
Не кажет как в голой консоли, так и в эмуляторе терминала.

Собственно вопрос: как с наименьшими телодвижениями научить man показывать русские маны на нелокализованной (скажем, свежеустановленной английской бубунте) системе.

Такой финт не прокатил:

LANG="ru_RU.UTF-8" LC_ALL="ru_RU.UTF-8" man bla
Локаль в системе:
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Tayler ()

Mime-типы для Гнома из /etc/magic

Нужно было для пары довольно нетривиальных типов файлов написать их разбор для утилиты file. Написал, все ок, все работает. Mime-тип прописал, как завещает man magic. Упрощенно что-то вроде этого:

# /etc/magic


# Тестовый тип
# ----------------------------------------------------
#
# Текстовый заголовок:
0		string	test		Test type file
# Mime-тип:
!:mime	application/test_file
# Идентификатор:
>&0		pstring	x	Test ID: %s
А теперь, т.к. правила для определения файлов уже написаны, захотелось прикрутить их к Гному, чтобы тот же наутилус их определял.
И вот тут я не вкурил. Что, обязательно писать эти гребаные xml-и?
Гном не умеет подхватывать /etc/magic? Никаких нет конвертеров?

Tayler ()

[Wii Эмулятор][WiiMote] Работает под Линуксом? Может есть альтернативы?

Вот есть контроллер WiiMote: http://ru.wikipedia.org/wiki/Wiimote
Есть эмулятор Dolphin: http://en.wikipedia.org/wiki/Dolphin_%28emulator%29
Заявлено: Dolphin is an open-source Nintendo ... Wii ... emulator for ... Linux. It is ... the only emulator capable of running commercial Wii games. Dolphin is able to accept input from ... Wii Remote.

Кому-нибудь удавалось реально это дело под Линуксом завести? Много не требую, хотя бы теннис простой и другие простые спортивные игры.

Что хочется: хочется простых «недиванных» игр. И чтобы контроллер можно было и к ноуту, и на работе подцепить. Т.е. не хочется к приставке привязываться, понятно (для кэпов!), что тупо купить Вии — самый простой и однозначно работающий вариант)

Есть ли какие альтернативы: PlayStation Move и эмулятор PS3?
Игр, управляемых например с Андроида я так понимаю нет (хотя ведь технически возможность существует).

ЛОР, помоги! Мне кажется тема-то интересная: действительно нескучно размяться во время работы например.

Tayler ()

[Ubuntu][Chromium][Не Gnome!] Хочу кнопки слева в компактном режиме хромого

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

В ключе /apps/metacity/general/button_layout гномореестра прописал: close,minimize:menu. Если зайти в Гноме, все работает как нужно (кнопки две и слева). В IceWM все равно три кнопки и справа.

Как заставить хромиум в IceWM-е вести себя как в Гноме?
Помоги, ЛОР! Включить системный заголовок окна в хромиуме чур не предлагать!

Tayler ()

RSS подписка на новые темы