Posts

Showing posts from March, 2010

Котлеты и конфиги - раздельно

Оказывается, не только меня достает множество жужжащих мух среди котлет... то есть пользовательских данных. Ссылка: libetc What is libetc ? On my system I had way too much dotfiles: % ls -d ~/.* | wc -l 421 For easier maintenance I wrote libetc. It is a LD_PRELOAD-able shared library that intercepts file operations: if a program tries to open a dotfile in $HOME, it is redirected to $XDG_CONFIG_HOME (as defined by freedesktop). You can then store all your config files in $XDG_CONFIG_HOME instead of using zillions dotfiles in $HOME If $XDG_CONFIG_HOME is not defined, the dotfiles are stored in $HOME/.config/

О Tokyo Cabinet

В ходе дискуссии на тему SQLite речь зашла о сабже, вот я и решил пару тестов прогнать, а заодно глянуть, что полезного можно нагуглить. Введение в мир СУБД без поддержки SQL для тех, кто совсем "не в теме": Alternatives to SQL Databases Краткий обзор: Tokyo Cabinet: Beyond Key-Value Store Видеопрезентация: Tokyo Cabinet in One Hour Обзор от автора: Tokyo Cabinet: a modern implementation of DBM Спецификация: Fundamental Specifications of Tokyo Cabinet Version 1 Презентация от автора по токиокабинет и важному к ней дополнению - сетевому серверу Tokyo Tyrant: Tokyo Cabinet and Tokyo Tyrant Presentation На сайте автора описаны также модуль полнотекстового поиска и вики на основе токиокабинет. Привожу тест для тех, кто плачет, что токиокабинет у него тормозит - посмотрите, что означает второй параметр и да будет вам просветление. Результат получен на ноутбуке с обычным для такового жестким диском - проще говоря, хреновым, на десктопе будет существенно шустрее. $ tch

Починка надувного матраса Intex

Дело было так - мой кот, прыгнув с окна на край матраса, внезапно обнаружил, что под его лапами - о, ужас - что-то зашевелилось! В ответ ласковый и пушистый зверь выпустил все свои 18 остро наточенных гарпунов и поспешил спрыгнуть с погибающей жертвы. Матрас сказал "пш-ш-ш" и весело засвистел выходящим воздухом. Высказав вслед коту все, что я о нем думаю, я занялся спасением сдувающихся. Беглый осмотр выявил как минимум 3 "очага поражения". Первое, с чего я начал, это хорошенько надул матрас и заклеил отверстия скотчем :-) Сей метод оказался на удивление действенным, но только на не слишком продолжительное время - примерно часов на 6, после чего приходилось хорошенько подкачивать. Через несколько дней раны матраса, как ни странно, сами собой частично затянулись. Для полного излечения я решил прибегнуть к помощи товарища-велосипедиста, который и поделился со мной ремкомплектом. Долго ли коротко ли, я наконец добрался забежать к нему и забрать сей чудодейственный комп

New linux kernel 2.6.33

Итак, ставлю сабж в дебиане из experimental. Мне предложено перейти на использование меток или идентификаторов устройств вместо наименований. Соглашаюсь, установщик радостно рапортует, что переписаны следующие конфиги: /etc/fstab, /boot/grub/menu.lst, /etc/initramfs-tools/conf.d/resume, /etc/uswsusp.conf Что получили - /dev/cdrom не изменился, своп у меня лежал в файле /swap и там остался, упоминания /dev/mapper/что-то-там сохранились неизменными, а все устройства вида /dev/что-то-там подключены по идентификаторам. Вроде все ок, но не оставляет ощущение подвоха. И так оно и есть - конфиг /etc/crypttab не преобразован. "Нафига мне эта самодеятельность". Простейший способ узнать UUID для устройств следующий: $ ls -l /dev/disk/by-uuid/ Впрочем, для любителей извращений есть и другие способы, требующие установки дополнительных утилит. Теперь правим /etc/crypttab ручками. Ну, вроде все готово к перезагрузке. В ближайшие дни я перезагружаться не планирую (ибо оно мне неза

Создание прототипов

Вариантов много, например, сервис gomockingbird.com , статья о нем здесь: Когда картинка красноречивее 1024 слов – прототипирование с MockingBird . Сам попробовал - достаточно удобно, альтернативы не смотрел, поскольку вполне устраивает названный сервис.

zlib-enabled FTS3 for SQLite 2.6.23

Выложил свои патчи для zlib-сжатия в модуле полнотекстового поиска FTS3 для SQLite, теперь база данных с полнотекстовым индексом примерно вчетверо компактнее. Патч брать здесь: http://sqlite.mobigroup.ru/src/vinfo/d3d9906674 и функции сжатия/распаковки здесь: http://sqlite.mobigroup.ru/src/dir?name=ext/compress Или качать последнюю версию моей сборки деб-пакета SQLite. Имеется одна неприятность - запрос count(*) выполняется медленно, т.к. приводит к распаковке всего контента базы, так уж в эскулайт работает интерфейс виртуальных таблиц. Решения пока не нашел, но есть обходной путь - обращаться напрямую к таблице %_content: sqlite> select count(*) from file_text; 8430 CPU Time: user 0.508032 sys 0.012000 sqlite> select count(*) from file_text_content; 8430 CPU Time: user 0.004000 sys 0.000000 С учетом размеров современных электронных библиотек считаю, что сжатие критически необходимо, потому и выкладываю патч с вышеназванной недоработкой.

Как скачать видеоролик из liveinternet.ru

Озадачили меня поиском композиции, звучавшей однажды в 80-х и где были слова "Случайные взгляды не знают преграды" и "Какая награда случайному взгляду? Случайному взгляду - награда - любовь!" Гугление привело меня сюда: Ирина Понаровская - Случайные взгляды Замечательно, но хотелось бы сохранить ролик. Повторное гугление решило вопрос: сайт videosaver.ru съел вышеприведенную ссылку (именно ссылку, которая отображается в адресной строке браузера и начинается с http://) и выдал ссылку "скачать файл". Вуаля! Upd. А вот вдогонку ссылка на неофициальный сайт Понаровской .

Как скачать музыку из "Мой Мир"

Задали мне тут дома вопрос, как бы скачать музыку из Моего Мира. Во избежание дальнейших вопросов на эту же тему описываю решение: 1. Зайти на страницу просмотра композиции. Для этого в списке композиций ткнуть мышкой на нужную и попадете на страницу с единственной композицией и комментариями к ней. 2. В адресную строку браузера нужно ввести нижеприведенную команду вместо того, что там отображается сейчас. javascript:document.write("<html><body><a href='"+document.getElementById ("the_player").getAttribute('url')+"'>"+document.getElementById ("the_player").getAttribute ('title')+"</a></body></html>"); 3. Нажать клавишу Enter. 4. Страница браузера очистится и на ней появится единственная строчка текста, содержащая название композиции. Правой клавишей мышки кликните на ней и выберите в контекстном меню "Сохранить как" или аналогичный пункт (название пункта ме

Распределенные базы данных

Предупреждение: написано в стиле заметок на полях и воспроизводит ход размышлений автора, у читателей процесс размышления, равно как и наличие этого самого процесса и его результаты, могут отличаться! Посещавшие меня мысли о распределенных базах данных и их применимости начинают обретать законченные черты, а значит, самое время сделать соответствующую реализацию. Поскольку я уже знаю ответ на вопросы "что, как, зачем", то можно погуглить для ознакомления с уже существующими реализациями и лежащими в их основе концепциями. Основная идея состоит в том, что распределенная БД отнюдь не предполагает и не требует распределенную СУБД. Посмотрим на это утверждение с такой стороны - информация первична, а способ ее представления - вторичен. Например, из споры можно "восстановить" бактерию, а бактерии вовсе незачем раздуваться до размеров материка, когда можно просто превратить себя в спору и с попутным ветром этот материк перелететь, после чего "ожить". А дальш

Google Gears под linux

Сабж живет здесь: gears.google.com . О нем знает вики . См. линки в вики и узнаете много нового. Но в линуксе не ставится, грязно ругаясь: "Google Gears" could not be installed because it is not compatible with your Firefox build type (Linux_x86-gcc3) . Грязно - это потому что сабж собран в 32-бит версии, но выдает себя за 64-битного. Или правим версию целевой платформы в install.rdf, или для iceweasel 3.5.8 работающий сабж можно взять здесь: wget "http://gears.googlecode.com/issues/attachment?aid=-8070727757150286122&name=gears-linux-new.xpi" Результат можно проверить, посмотрев примеры .

Коллекции электронных книг

$ aptitude show calibre Описание: e-book converter and library management Calibre is meant to be a complete e-library solution. It includes library management, format conversion, news feeds to ebook conversion as well as e-book reader sync features. Calibre is primarily a ebook cataloging program. It manages your ebook collection for you. It is designed around the concept of the logical book, i.e. a single entry in the database that may correspond to ebooks in several formats. It also upports conversion from a dozen different ebook formats to LRF and EPUB. A graphical interface to the conversion software can be accessed easily by just clicking the "Convert E-books" button. Supported input formats are: MOBI, LIT, PRC, EPUB, ODT, HTML, CBR, CBZ, RTF, TXT, PDF and LRS. Calibre has a modular device driver design that makes adding support for different e-reader devices easy. At the moment, it has support for the SONY PRS 500/505/700 and the iPhone (with the stanza read

Капча

___ / _ \ | | | | | | | | | |_| | \___/ _____ | __ \ | | | | | | | | | |__| | |_____/ ______ | ____| | |__ | __| | |____ |______| /\ / \ / /\ \ / ____ \ /_/ \_\ _____ | __ \ | | | | | | | | | |__| | |_____/ ______ | ____| | |__ | __| | | |_| ___ / _ \ | (_) | \__, | / / /_/ _____ | __ \ | | | | | | | | | |__| | |_____/ # Random Number in Tcl # http://wiki.tcl.tk/13120 # hex and decimal values in Tcl # http://www.wellho.net/resources/ex.php4?item=t202/hddh # hex and decimal values in javascript # http://javascript.about.com/library/blh2d.htm # captcha generation see in fossil # <input type="button" value="Fill out captcha" onclick="document.getElementById('u').value='anonymous'; document.getElementById('p').value='b0b67076';"/>> namespace eval captcha {} set ::captcha::symbols { " ___ / _ \\ | | | | | | | | | |_| | \\___/ " " _

Мини-сервер

Последнее время появились разные варианты, что радует. Сам я по старинуе - использую Linksys NSLU2 (debian lenny), но современные аналоги способны на много большее, вероятно, вскоре их можно будет ставить на хостинги как специализированные серверы. Не успел я еще приобрести и опробовать SheevaPlug, как уже анонсирован его улучшенный вариант - GuruPlug Server — новая версия ультракомпактного Linux сервера размером с зарядное устройство . Здесь смотреть всю линейку в продаже: GuruPlug Server Вот и еще одно устройство того же класса: Сервер в форме блока питания с Ubuntu Linux Жаль только, что ноутбук на процессорах ARM пока остается мечтой. Что-то где-то анонсировано, но вживую - отсутствует. Впрочем, не так давно (а ведь лет 5 уже пролетело, вот дела) и Linksys NSLU2 был прорывом в своей области.

О торрентах

Как известно, бесплатно и без разрешения правообладателя скачивать фильмы, музыку и проч. произведения - незаконно. А делается это, по словам газеты Комменсант , вот где: Torrents.ru Zaycev.net Torrentino.ru Tfile.ru Tvigle.ru Разумеется, вы об этих ресурсах должны знать только для того, чтобы ненароком оттуда что-нибудь не скачать. Внимательно прочитайте правила использования трэкеров, т.к. незнание закона не освобождает от ответственности, так что лучше знать, в чем именно может (потенциально) состоять ваше нарушение. От себя добавлю, остерегайтесь еще и ресурса kinozal.tv Последний, кстати, посещаем весьма квалифицированными и интеллегентными грешниками ;-) Torrents.ru в силу известных причин куда-то переехал, но продолжает работать. Кому интересно, гуглите.