Top.Mail.Ru
? ?

Метка: linux

  • aLogcat — иногда отправляю отчёты разработчикам, логи при этом довольно полезны
  • ASTRO — неплохой файл-менеджер, особенно полезен из-за поломанной в HTC Desire Z галереи
  • Authenticator — двухфакторная аутентификация в gmail
  • Evernote — удобные облачные заметки: рецепты, todo-шки, readitlater-ы и т.п., даже бесплатная версия худо-бедно работает в оффлайне
  • Google Карта звездного неба — довольно фановая штука, по крайней мере когда небо не в облаках
  • HELiOS — возможность поставить будильник на «когда рассвет»
  • KeePassDroid — шифроблокнот для паролей
  • rsync backup for Android — rsync использую для синхронизации шифроблокнота на нескольких компах :)
  • QR Droid Private — QR-коды иногда попадаются
  • Sipdroid — SIP-звонилка для sipnet.ru и офисной телефонии
  • Skype — мерзкая тормозная и глючная прога, жрущая проц
  • SNTP Client — для синхронизации времени, т.к. без точного времени не работает Google Authenticator
  • Speed Test — клиент от speedtest.net
  • Tricorder — интерфейс к всяким датчикам на телефоне, например, чтоб сделать уровень или плохенький детектор проводки
  • ВКонтакте — убивалка времени в транспорте
  • Статус GPS — из полезного оно умеет форсированно стянуть данные A-GPS
  • Яндекс.Карты — навигация в городе + пробки
  • 2ГИС — навигация «для бедных», если нет связи, почти не пользуюсь
  • Яндекс.Маркет — удобнее, чем большая рожа «маркета» в браузере
  • Яндекс.Метро — киллер-фича: подсказывает, в какой вагон сесть, чтоб на пересадке потратить на 47 секунд меньше времени
  • Яндекс.Электрички — расписание в кармане, без интернета работало прошлым летом ой как плохо, сейчас, вроде, кеширование починили
  • ShareMyApps — Софтина, позволяющая быстро расшарить список установленных приложений, не умеет добавлять в список то, что уже идёт в firmware

А ещё в firmware идут: оффициальный twitter-клиент, soundhound (распозновалка песни по звуку), facebook-клиент, интерфейсы к gmail и google calendar, записная книжка со склеивалкой контактов (удобно склеить skype+twitter+phone в одного человека), google maps и какая-то оффлайновая навигация от HTC. Что забавно, за полгода я ещё не поставил на телефон ssh-клиент.

Если кто-то что-то ещё клёвое использует — советуйте! :-)

bash-WTF: `foo` != $(foo)

А я тут замечательный WTF в sh встретил.

Есть строчка /var/log/daemon/api/*.log и нужно получить из неё регулярку для sed - т.е. поэскейпить звёздочку и точку.
Очевидное решение:
$ log="/var/log/daemon/api/*.log"
$ echo "$log" | sed 's/[\.\*]/\\&/g'
/var/log/daemon/api/\*\.log


Но есть пара неочевидных тонкостей:
$ log="/var/log/daemon/api/*.log"
$ echo "$log" | sed 's/[\.\*]/\\&/g'
/var/log/daemon/api/\*\.log
$ relog=`echo "$log" | sed 's/[\.\*]/\\&/g'`; echo $relog
/var/log/daemon/api/&&log
$ relog=$(echo "$log" | sed 's/[\.\*]/\\&/g'); echo $relog
/var/log/daemon/api/\*\.log
$ relog=`echo "$log" | sed 's/[\.\*]/\\\\&/g'`; echo $relog
/var/log/daemon/api/\*\.log


Отсюда важный вывод, о котором стоит помнить - escaping внутри `foo` и $(foo) работает по-разному.
Проверено на sh из FreeBSD-8.2, bash-4.1.10, bash-4.2.8, dash-0.5.5.1-7.2ubuntu1.

UPD: Впрочем, в man bash этот факт описан. :)

Метки:

GSM-модем Huawei E171 в Linux

Модем вышел на рынок довольно давно и поддерживается usb_modeswitch. По-умолчанию он у меня представлялся как 12d1:1446, после переключения modeswitch'ем он превращается в 12d1:1436. В этот момент я на час затупил, т.к. usbserial не подхватывал данное устройство. Естественно, для того, чтоб устройство распозналось на старом ядре, достаточно написать options usbserial vendor=0x12d1 product=0x1436 в /etc/modprobe.conf.

После того, как появились заветные /dev/ttyUSB*, можно разлочить модем командой AT^CARDLOCK="123456". Генератор unlock-кодов для huawei лежит тут и тут. Ну и дать модему по мозгам командой AT^U2DIAG=0, чтоб он перестал быть чем-либо, кроме модема (idVendor:idProduct после этого сменится на 12d1:1001). Ну или можно дать по мозгам более другой циферкой, если хочется странного.

Собственно, всё вышесказанное справедливо и для более старого e1550.

Многие из вас знают, что память у меня дырявая, но мало кто представляет, насколько. Так вот есть у меня потребность хранить слабоструктурирванную информацию, а тут еще девайсов появилось несколько в эту тему полезных.

Вопрос первый: пароли.

Требуется нечто, что позволяет иметь закриптованный контейнер с паролями, который умеет синхронизироваться между большим linux и android.

Один из вариантов - keepass + dropbox. Данный вариант мне нравится мало, т.к. я плохо представляю себе, как работает dropbox. Как работает rsync я представляю, а вот dropbox - этакий черный ящик, который не ясно зачем пускать к себе на лэптоп. Плюс совершенно не ясно, как он отразиться на и без того небольшой батарейке андроида.

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

Итого, требования:

  • синхронизация между linux и android, хранение offline копий
  • шифрование контейнера с паролями по меньшей мере на android
  • хотелка - command-line интерфейс на большом linux либо возможность вытащить что-то из базы по простецкому API для python, perl и т.п.

Вопрос второй: заметки.

Как вы, возможно, помните, я люблю древовидные блокнитики от freemind, но совершенно очевидно, что для коротких заметок в стиле "чай, молоко, овсяные печеньки" и "402, HR" это излишество, а подобных заметок на телефоне довольно много.

Один из вариантов - evernote, но что-то десктопный клиент для linux (nevernote) жирный (60 мегабайт) и, вероятно, тормозной. Вебовый клиент тоже тормозит ощутимо.

Еще есть tasks в gmail, они неплохи, хоть и просты как топор, но пару раз уже заметки терялись, да и как с андроида до них достучаться - не ясно.

Вопрос, что есть еще? Хотелки:

  • синхронизация linux & android, а как же без неё
  • оффлайн-копии (я люблю отдельно git commit и отдельно git push, есть большая разница, когда заметка открывается 200 мс, а не 2000 мс)
  • платить 2$/месяц за хранение заметок мне не то чтоб критично, но не очень хочется без сильных на то аргументов. Это реверанс в сторону RememberTheMilk, где приложение для андроида доступно только для PRO пользователей. Платный gmail в год стоит всего в два раза дороже, а пользы от него не в два раза больше, а на порядок ;)
  • отправлять заметки с symbian устройств. Например, в evernote это возможно через интеграцию с twitter, а twitter можно интегрировать с jabber

Т.е. evernote всем неплох, но какой-то он тормознооооой. Какие есть альтернативы?

Метки:

Бывает. Случается такое, что skype перестаёт запускаться. И, казалось бы, skype не обновлялся, qt тоже за последний месяц не менялся и вдруг skype перестал запускаться. И выдаёт вот такую ошибку:

skype: symbol lookup error: /usr/lib/libQtDBus.so.4: undefined symbol: _ZN14QObjectPrivate15checkWindowRoleEv

Первая же мысль линуксоида понятна — нет какой-то библиотеки. Надо проверить ldd. И делается следующее:

$ ldd /usr/bin/skype | grep 'not found'

Но, увы, все библиотеки на месте. И тут большая часть linux-пользователей застревает. А следующий шаг - попытка зарезольвить символы.

$ ldd -r /usr/bin/skype | c++filt
        linux-gate.so.1 =>  (0x002e1000)
        libasound.so.2 => /usr/lib/libasound.so.2 (0x00808000)
        libXv.so.1 => /usr/lib/libXv.so.1 (0x00c3b000)
        libXss.so.1 => /usr/lib/libXss.so.1 (0x00304000)
        librt.so.1 => /lib/librt.so.1 (0x0066d000)
        libQtDBus.so.4 => /usr/lib/libQtDBus.so.4 (0x00b24000)
        libQtGui.so.4 => /opt/google/earth/free/libQtGui.so.4 (0x00c41000)
        libQtNetwork.so.4 => /opt/google/earth/free/libQtNetwork.so.4 (0x00110000)
        libQtCore.so.4 => /opt/google/earth/free/libQtCore.so.4 (0x00308000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x0023c000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00676000)
        libm.so.6 => /lib/libm.so.6 (0x00256000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0027c000)
        libc.so.6 => /lib/libc.so.6 (0x008ce000)
        libdl.so.2 => /lib/libdl.so.2 (0x00298000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x01701000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x0029c000)
        /lib/ld-linux.so.2 (0x00798000)
        libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0x00602000)
        libz.so.1 => /lib/libz.so.1 (0x002ac000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00a2b000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0x002c3000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0x002e2000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0x002cc000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00645000)
        libuuid.so.1 => /lib/libuuid.so.1 (0x002d6000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x002db000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x002fb000)
undefined symbol: qBadAlloc() (/usr/lib/libQtXml.so.4)
undefined symbol: QListData::detach_grow(int*, int)        (/usr/lib/libQtXml.so.4)
undefined symbol: QListData::detach(int)        (/usr/lib/libQtXml.so.4)
undefined symbol: QObjectPrivate::checkWindowRole()        (/usr/lib/libQtDBus.so.4)
undefined symbol: qBadAlloc() (/usr/lib/libQtDBus.so.4)
undefined symbol: QMetaType::registerTypedef(char const*, int)   (/usr/lib/libQtDBus.so.4)
undefined symbol: QListData::detach_grow(int*, int)        (/usr/lib/libQtDBus.so.4)
undefined symbol: QListData::detach(int)        (/usr/lib/libQtDBus.so.4)

Кто уже догадался в чём проблема — молодец. А я же лезу в google/codesearch в поисках qBadAlloc() и вижу, что по идее он должен бы быть определён в libQtCore.so.4. И тут всё становится ясно — свежеустановленная Земля Гугла (которая Google.Earth) переопределила системную libQtCore.so.4 своей версией. Системная, естественно, лежит на своём месте в /usr/lib — значит, это какая-то магия с ld.so. В данном случае магическим оказался файл /etc/ld.so.conf.d/googleearth.conf, который googleearth совершенно не нужен, т.к. запускающий скрипт устанавливает корректную переменную LD_LIBRARY_PATH.

После удаления /etc/ld.so.conf.d/googleearth.conf и skype и googleearth работают корректно. А в багтрекере убунты этот баг вообще к пакету qt4-x11 умудрились повесить. Чудаки.

OpenWRT @ D-Link DIR-320, pt.2

Да, если кого-то еще интересует работоспособность OpenWRT на D-Link DIR-320, про которую я писал почти год назад

Месяц назад я обновил прошивку, которую не трогал с февраля, и т.к. с mp3 и торрентами наигрался, то взял готовый imagebuilder для KAMIKAZE (bleeding edge, r23695) с ядром 2.6.34.7. Wi-Fi в режиме точки доступа теперь работает достаточно стабильно для серфинга & IP-телефонии.

Метки:

Спросил тут у меня Юра Поздняков: «ты знаком с какой-нибудь бесплатной онлайн таск трекинг системой?» Да, конечно, с тысячами их: bugzilla, trac, redmine, flyspray, mantis и т.д. и т.п. Поговорив еще пару минут, я выяснил, что на самом деле нужно совсем другое. Нужен инструмент, повзволяющий единственному разработчику проекта устаканить происходящее в голове, разбить задачи на подзадачи, расставить очерёдность выполнения задач — и более ничего.

10 лет назад Joel предлагал использовать Excel вместо MS Project как один из инструментов управления проектом — т.е. использовать более общий инструмент для частной задачи, вместо использования одного из специализированных решений. По словам самого Джоеля эта статья про Excel устарела минимум года три назад, но принцип, высказанный еще Кеном Томпсоном остаётся по прежнему актуальным. When in doubt, use brute force.

Я года два назад нашёл полностью меня устраивающий кроссплатформенный инструмент для этой задачи — freemind. В меру «трендовая» вещь с красивым названием «карты памяти», а по сути для меня это всего лишь удобный древовидный блокнот с внешными ссылками, открываемыми в браузере. Утилита сия заменила мне персональный багтракер и локальную wiki. Единственное существенное дополнение к freemind в моём арсенале борьбы с проблемой хранения слабоструктурированной информации за последние полтора года — google calendar, используемый для отслеживания событий, строго привязанных к дате и времени.

Осознав возможность таск трекинга без таск трекера, Юра ушёл просветлённый.

Метки:

OpenWRT @ D-Link DIR-320

7 месяцев назад я купил забавную железкуDIR-320, забавную тем, что на ней, как и на каждом первом SOHO-роутере, бегает linux и, более того, под которую несложно состряпать свою прошивку.

Увы, полгода назад ситуация с поддержкой DIR-320 ванильным ядром была довольно грустна: если хотелось сохранить работоспособного wi-fi, то требовалось ставить ядро 2.4, в котором довольно плохо поддерживался USB. Это «довольно плохо» выражалось в том, что в произвольные моменты времени подключенная через USB флэшка или винт «отваливались» и более в систему не возвращались без классического паса руками «выключить и снова включить».

В ядре 2.6 же в драйвере b43 на тот момент не было поддержки LP_PHY для чипа BCM4318, точнее, работа над ним только начиналась и реализация была помечена как BROKEN. Но и в настоящий момент поддержка железа тоже далека от идеала, на странице драйвера b43 отмечено, что режим точки доступа на чипах 4318 не поддерживается из-за больших потерь пакетов при высоких скоростях. Действительно, при попытке завести точку доступа на всех 54 мегабитах 802.11g клиент к точке даже не мог подключиться из-за потерь пакетов, но если ограничить аппетиты 11 мегабитами 802.11b, то связь хоть и достаточно паршиво, но работает — для серфинга хватает.

Другое занятное развлечение — упихать максимально возможный набор утилит в 3.5 мегабайта флэшки. У меня уместились:

  • busybox, включая wget, crond, telnetd, syslogd, dhcp-клиент и dhcp-сервер
  • dropbear — ssh-сервер для управления роутером, т.к. telnet используется только для первоначальной конфигурации
  • madplay и драйвера для usb-звуковухи, которые в сопряжении с wget дают возможность играть разнообразные mp3-потоки, включая Радио «Воруй-Убивай»
  • transmission и web-интерфейс к нему — легковесная качалка/раздавалка торрентов
  • hostapd для работы wi-fi в режиме точки доступа
  • openntpd для поддержания точного времени на маршрутизаторе — наличие точного времени очень полезно при чтении логов
  • unfsd + portmap — NFS-сервер
  • pppd с поддержкой PPPoE
  • nvram + mtd для обновления прошивки без неудобных манипуляций с начальным загрузчиком

Для более плотного утрамбовывания я выкинул httpd из busybox, заменил dnsmasq на связку из udhcpd (для DHCP-сервера) и скриптов для iptables, которые позволяют отдавать статические настройки DNS через DHCP, чем выйграл порядка 80 килобайт. Также я заменил «ядрёный» NFS-сервер на unfs3, тут выйгрыш составил более 200 кб. При сборке transmission я использовал статические версии openssl, curl и libevent, что дало еще порядка полумегабайта места. Конечно, в openwrt включён скрипт mklibs.py, оптимизирующий динамические версии библиотек, удаляя из них не используемый приложениями код, но в случае с transmission он по какой-то причине работал некорректно, приводя к segfault при запуске демона. Судя по информации, полученной скупыми отладочными утилитами, mklibs.py вырезает много лишнего из libnsl.so и librt.so. Статическая линковка же является более отработанной технологией и в случае, если библиотека используется только одним приложением, даёт даже более хорошие результаты чем использование mklibs.py, но, увы, uclibc и libm остаются не оптимизированными. Вероятно, размер прошивки можно уменьшить еще на ≈100 кб., совместив эти два метода.

Конечно, целый набор ложек дёгтя тоже имеет место. Памяти на маршрутизаторе всего 32 мегабайта и одновременный старт NFS-сервера и torrent-клиента приводят к неимоверным тормозам всего кроме самой маршрутизации, доводя LA до ≈5. Поэтому стоит написать какие-то скрипты, переключающие «режимы работы» роутера. Более того, эти скрипты вполне можно запускать с помощью ssh, web-браузера или кнопки на торце роутера. Другой неприятностью является далеко не идеальная работа wi-fi, но для нужд интернет-радио и просмотра фильма с NFS-сервера стабильности хватает. Третья — uClibc не поддерживает fallocate и, соответственно, быстрое выделение нефрагментированного участка диска на разделе с ext4, а eglibc без плясок с бубном не собирается. Других проблем я пока не обнаружил.

Если кому-то интересны мои конфиги — их можно взять по адресу http://darkk.net.ru/home/openwrt

Метки:

Synaptics touchpad, xorg-1.5 и hal.

Поломался у меня недавно Logitech'вский грызун и немедля я обнаружил, что последние обновления мира принесли на плоский диск грабли с работой тачпада — отвалился клик по прикосновению к тачпаду, отвалилась вертикальная и горизонтальная прокрутка. Всё вполне логично, gnome у меня нет, kde тоже отсутствует и поэтому все настройки тачпада остаются по-умолчанию, т.е. унылыми до невозможности.

Читать дальше...Свернуть )

Метки:

10 суток назад, 22го мая в 17:08:47 пришел последний понг от Acorp W400G, служивсего мне верой и правдой два с половиной года. «Позитроника» в Омске уже успешно загнулась, поэтому заморачиваться с гарантийным ремонтом сей железки я не стал и понёс на вскрытие к Басаеву (хорошее прозвище для радиолюбителя, да?). Вскрытие показало, что железку внутри перекоротило и годится она нынче только на запчасти и/или в качестве декоративного элемента интерьера. Время выбирать новый SOHO-роутер.

Если Gentoo больше не радует и не приносит счастья, при разруливании битых зависимостей в коктейле из x86, ~x86 и ~*, то можно спуститься на уровень ниже и купить роутер с поддержкой DD-WRT, что и было сделано. Выбор пал на вариант D-Link DIR-320. Дешево (1750 р.) и сердито. В комлпекте Wi-Fi, 4+1 Ethernet, 1 порт USB (по слухам даже 2.0) и 32 Мб оперативки.

Залив DD-WRT, я незамедлительно наступил на грабли, которыми чуть не брикнул роутер. Точнее, попытался залить прошивку, которая была на несколько килобайт больше, чем размер внутренней флэшки. Как оказалось, загрузчик прошивка не меняет, и это хорошо. Осталось только поправить работоспособность WPA2, прикрутить к USB что-нибудь помимо принтера... например, USB-колонки и mplayer и получить на выходе замечательный будильник с интернет-радио.

Может быть у кого остались в закладках другие интересные рецепты на базе DD-WRT?

Profile

Image
Imagedarkk
Leonid Evdokimov
Website

Syndicate

RSS Atom

Комментарии

Разработано LiveJournal.com
Designed by Tiffany Chow
Image