Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2011-01-31

bencoded

У меня тут торрентомашинка есть, сделанная из старого ноута. Однажды прекрасным зимним утром я заметил, что больше половины торрентов застопорены и не сидируются. rtorrent пишет для них Inactive: Tracker: [Could not parse bencoded data] и не раздает их, останавливает даже при принудительном старте.

Гугление показало, что причин тому может быть много, но не показало, как лечить.
Опытным путем я насчупал таблетку для моего случая: в списке торрентов переходим на дефектный, стрелкой вправо открываем его детализацию, в инфе смотрим хеш. На диске в папке с данными сессии rtorrent-а находим файл %хеш%.torrent;
останавливаем прогу (CTRL-Q), удаляем найденный файл, запускаем прогу.
После продолжительной процедуры проверки хеша торрент признается хорошим, годным и сидируется как положено.

На русском про рторрент wikibooks.org/wiki/RTorrent

2011-01-29

NVARCHAR vs VARCHAR

А также NCHAr vs CHAR. Вечный вопрос, что предпочесть, ЭН... или неЭН. Вечный потому, что у каждого из них есть как преимущества так и недостатки, а потребности у нас разные.

ЭН... хранит строки в юникоде а неЭН... в той кодировке, какую заказали при конфигурировании базы (обычно однобайтовой).
Длину полей можно заказывать и мерять как в байтах так и в символах в обоих случаях. Но, по любому, максимальная длина 4000 БАЙТ! А не символов.

Простое правило — если текст многоязыкий или содержит дополнительные символы, используйте юникод. Во всех остальных случаях — как хотите. Однобайтовые кодировки эффективнее, но можно напороться на кракозябры. Юникод тяжелее и поле вмещает меньше буков, да не каждая софтина (до сих пор!) умеет с ним обращаться.

Приложение
-- используемые у вас кодировка БД (неЭН...) и юникодная (для ЭН...)
select * from nls_database_parameters
where parameter = 'NLS_CHARACTERSET' or parameter = 'NLS_NCHAR_CHARACTERSET' ;

Кто не понял, это я про типы данных в Oracle.

asktom.oracle.com
download.oracle.com/docs/cd/A91202_01
download.oracle.com/docs/cd/B19306_01

2011-01-28

OOO

Вышел OpenOffice.org 3.3

Масса обновлений, среди которых комплект шрифтов Liberation.
Мне нравится.

На днях нарыл способ задействовать лишние кнопки на клаве. Лично меня интересовал вариант работы кнопки zoom в качестве мышиного колеса (scroll). Можно, только надо напильником доточить. Поскольку точить лень, рецепт подождет в заначке. А механизм в основе прост и крут:

All this is accomplished thanks to the Linux 2.4 (and above) Event Interface (CONFIG_INPUT_EVDEV), which currently evrouter depends on. The program parses input events, uses a user-specified ruleset to transform them to other events based on various conditions, and acts on them
bedroomlan.org/projects/evrouter

2011-01-27

18 фунтов

Книга, видимо, хороша. Но не за такие деньги. Может кто знает, где ее в е-виде можно добыть?

Книга стоит из разбора словосочетаний, построенных из слов, которые знают все (get, take, run и т.д.), но будучи составленными вместе со словами-связками, они могу радикально изменить смысл. Вы знаете что именно означает "pass away", "get on with", "come over"? или в чем разница между "heard of" или "heard about"? А носители шпарят подобными конструкциями в обычной речи налево и направо.

english-eggs.blogspot.com
amazon.co.uk/Practical-Everyday-English-Vocabulary-Intermediate


Для Plone-оводов, есть пара заметок о методах поднятия нагрузочной способности (о как!). А по простому — масштабирование кешированием, переводом в статику. И еще немного.

2011-01-26

FDO Toolbox

Замечательная штука, реально выручила.

После серии попыток использования шейпов в проекте на Топобейс, мы решили загрузить шейпы в Oracle-евую БД. Ибо ни так (напрямую) ни сяк (загрузив в репозиторий проекта в SDF) ни жопой об косяк (перекодировки) — вместо русских буков одни закорючки.
Полдня грузили шейпы в базу Топобейсовым булкопи (есть такая функция в ем — bulk copy). Вроде загрузилось, трупобейс клянется, что загрузил всё. Проверяем — половина таблиц пустая, половина прогружена наполовину :)
Сраньгосподня.

После чего взяли FDO Toolbox и за час-другой все залили в базу. По ходу проблема была ровно одна — в одном из шейпов попытались залить строковое поле в поле числового типа (трабла типа «самдурак»). Понятно — не получилось. Поправили и как по маслу, вжик и готово. Хотя про «вжик» это я погорячился, тулза тормозная, сотню тысяч записей грузить может более часу. И не использует многопроцессорность.


Первая из серии статей про работу с растрами в ГИС. Фактически — учебник.

2011-01-25

В копилку

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

Жизнь в Linux. Чем брутфорсить запароленные архивы, как поднять хостинг FTP за файерволлом, etc. youisbee.ru/head/25-linux

Самая полезная статья про Linux, и не иначе :) aitishnik.ru

Ремотный десктоп, бесплатно, работает через HTTP? ammyy.com/ru/admin_features
Правда трафик гонит через вражьи сервера.

Gitso — VNC с реверсным соединением (не админ подключается к раб.столу а наоборот). code.google.com/p/gitso/wiki/Howto


kwords: linux, RDP, VNC

2011-01-24

Оборотная сторона зеркала

На днях дочитал «Оборотная сторона зеркала» Конрада нашего Лоренца. Страшно рад. И тому, что больше не надо это читать (тяжкий труд местами :), и тому, что продрался через тяжеловесные пассажи, и тому (главное!), что удалось оттуда почерпнуть.

А в конце «Зеркала» Лоренц с полной уверенностью утверждает, что в наше время — впервые в мировой истории — появилась надежда достичь естественнонаучного понимания сложнейшей из всех живых систем — человеческого общества. "Человек как вид, — говорит он, — находится сейчас у поворота времен… мышление, доставленное нашей культуре ее естествознанием, дает ей возможность избежать гибели, постигшей все высокие культуры прошлого".

Для XXI века понадобится новое мировоззрение. Читатель, ищущий такое мировоззрение, способен читать серьезные книги, — пусть же он их прочтет.

А. И. Федоров

lib.rus.ec/b/161350


Питерцы делают ГИС Zulu. Похоже, вещь толковая, чтобы убедиться, можно посчупать.

2011-01-22

DBF

А что делать, если ничего распространеннее шейп-файлов не вылезло? А они, падлы, на дбф-ах.

Oracle великий и могучий. Какой самый простой способ загрузить данные из DBF в таблицу Oracle? Написать процедуру на PL/SQL:

Well, I looked up the dbase file format on the web and found some sample DBASE files (specifically at http://www.e-bachmann.dk/docs/xbase.htm ). I put together a "dbase_pkg" plsql package that in Oracle8.0 and up should be able to
load many DBASE files. It requires Oracle8.0 because I use a bfile to do binary file io which is required with dbase files.
The package I developed will load into an existing table a DBASE file. Optionally -- it will show you the insert it will use an print out a create table you might use to load into. It is not heavily "field tested" as yet -- should work in most cases, however I'm pretty much sure MEMO fields won't work since they are stored out of line in another file.

asktom.oracle.com

И ведь работает, проверено.

Но мало просто загрузить дбф в Oracle, надо сохранить ключ, а он в дбф (обычно) определяется через номер строки. Да поможет нам святой Сигизмунд прекрасный модуль к Python, чтение и запись файлов DBASE (DBF).
dbfpy.sourceforge.net

Пример использования — копирование таблицы с добавлением колонки и ее заполнением из счетчика:
Что еще надо для щастя?

kwords: dbf, dbase, oracle, python, etl, data import/load/migration

2011-01-20

Ненавижу тачпады

Повеселился:

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

rus-linux.net/ touchpad-v-Debian-Lenny

В смысле, раз — и отключил тачпад. Раз и... каким щелчком и какой мыши его включить? Если он отключен? Подтащить юсб-евую мышу с наклейкой «использовать при отключенном тачпаде»?

А вообще, полезная статья, пригодится при настройке тачпада.
А тачпады я ненавижу, потому как неудобно мне с ними. Пока видел только один удобный (на фоне других) тачинтерфейс — мой Булыжник на Андроид.


kwords: linux, tachpad, xorg.conf, synaptics

2011-01-19

Заморочки

Из наблюдений за сегодняшними заморочками.


Если вы используете remote desktop для headless virtualbox, и при этом рдесктопный коннект падает всю дорогу, примените лекарство — включите в клиенте RDP опцию «screen updates as bitmap» (опция -b для линуксового rdesktop).

Если вам по душе консоль и контроль, вероятно вы применяете top/htop для мониторинга процессов, памяти, времени ЦП. Тогда вам определенно стоит знать про iotop — контроль I/O дисков и про iftop — контроль сетевого трафика.

Люди, знайте, Autodesk Topobase — зло. Полдня сегодня потратил, пытаясь импортировать данные из шейп-файла в фичекласс топобейса. Попытки эти — яркий пример метода тыка, ибо документация обещает, что процедура легка и приятна — на практике хрен.
Сначала обнаружил, что для импорта нельзя использовать коннект самого топобейса, ибо он ридонли (это написано в форуме, в программе этого не сообщают никак). Потом пробовал разные варианты коннекта с Ораклом. Типичный результат — топобейс пять минут «импортирует» и выводит отчет — импортировано 0 обьектов, не желаете ли взглянуть на лог, хозяин? Лог пуст, как голова имбецила. Один раз получил жесткий вывал с сообщением «памяти не хватает». Какой именно памяти, я не понял, ибо ее было еще гиг свободной оперативы и 100 гиг на диске.
В сухом остатке — день прошел, импорт нет. Самое печальное — неясно, что делать дальше, ибо импортировать надо, а как — неизвестно.

2011-01-18

Трукрипт - рулит

Забавная реакция

Послесловие переводчика
Кошмар, пока переводил, мурашки бегали. Получается мы все беззащитны?
rus-linux.net/MyLDP/sec/vzlom-parolya-Windows-v-Ubuntu
с картинками: pmabox.com/iceland-blog/60-ubuntu-crack-a-hack-win7-user-passwords-a-files

на изложение достаточно тривиальных способов получения доступа к файлам пользователя винды. Монтирование виндового раздела диска загрузившись с LiveCD; прямая запись в файл реестра нового пароля учетки; подбор пароля брутфорсом.
Чтобы все это сделать, надо получить физический доступ к компу. А в этом случае реально работает только один способ — тотальное шифрование накопителя.

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

2011-01-16

connect/disconnect TTY1

SSH удобная штука, но вот задача, как этот секурный шелл зацепить за физический терминал? За TTY1 к примеру? Сижу я за ноутом, налаживаю, типа. Все наладил, крышку закрыл, он работает. А я с другого компа хочу глянуть, чекак. И на эту задачу есть струмент, Screen. Проще на примере:

screen -S tty1
This creates the session. Afterwards startup which program I'm working with (btdownloadcurses).
On another machine to connect all I have to do is ssh in. then to connect to the tty1 session I issue these commands.
screen -d tty1
This detaches the session where its not bound to a screen
Next I do
screen -r tty1
I should now be able to view the session remotely exactly as if I was standing at it.

ubuntuforums.org/ thread 264994

От себя добавлю, что если почитать «man screen», то выясняется, что удобнее командовать
screen -d -R tty1
Reattach a tty1 session and if necessary detach or even create it first

А клавиатурное комбо внутри скрина «^a d» — detach command for console закрывает скрин без отвала задач, аналог команды screen -d из другой консоли.
Короче, перед тем как на терминале запускать что либо, запустите скрин «screen -d -R tty1» и потом делайте что угодно, продолжить сможете через ssh через сеть.


Зарубка на память, регулирование скорости для отдельного торрента в программе rtorrent (libtorrent.rakshasa.no/wiki/RTorrentUserGuide)
вид кнопки
main_view -/+
peers_view 1/2


kwords: ssh, screen attach/detach, tty, terminal, console, rtorrent, torrent speed

2011-01-15

LED backlit

Внезапно оказалось, что на практике у LED подсветки (в ЖК дисплеях) есть ровно два неоспоримых преимущества перед другими способами:

экран можно сделать более тонким; он будет жрать меньше электричества.

xbitlabs.com/articles/monitors/display/lcd-monitor-buyers-guide-spring2010

Усе. Забавно, но по моим наблюдениям, обычно закон «чем мех дороже, тем он лучше» работает почти везде. Правда, более точная формулировка «чем лучше, тем дороже». В приложении к экранам, я наблюдаю своими глазками, что недорогие экраны на LED подсветке обладают отсутствием качественной картинки. Зато реально недорого, холодно и тонко.


спасибо Терракоту, на мои глаза попался еще один проект на базе Ушахиди.
Пример ГИС приложения, реально помогающего людям
holoda.info/page/index/1

Krusader кууль

Одна из функций, на которую я подсел в Total Commander, это «branch view with subdirs (Ctrl-B)». Выводит в панельку список всех файлов папки и подпапок. В Krusader ничего похожего нет, но при этом все толковые люди называеют его крутейным файлманагером, не уступающим ТК. Что странно.

Сегодня я понял, почему он крутейный, на примере реализации функции «бранч вью».

Открываем в Krusader нужную папку,
- Press Control+S (Find dialog)
- Press Enter (or click Search)
- Click Feed to listbox
- заполняем поле Query name
- ОК
krusader.org/...topic...10455

На выходе получаем результат эквивалентный ТоталКоммандерному. Но круче! Чем круче? Тем, что заполнив поле QueryName вы создали псевдопапку в псевдофайловой системе «virt:/» Крусадера. И всегда можете открыть эту папку, снова и снова, пока не удалите ее. По сути, хранимый запрос.
Крусадеру еще бы запись макросов добавить — убойная вещь бы получилась.


Смотрел фильму с Арнольдом, уже и не помню какую, может эту «Jingle All the Way (1996)», услышал, как он произносит слово «cool» - «кууль». Какая лапочка.


Бесплатный совет. Если вы расшарили папку самбой и одну из подпапок сделали как «мягкий» линк на другую папку, клиенты потеряют доступ к этой папке. До тех пор, пока вы не поправите конфиг самбы:
follow symlinks = yes
wide links = yes
unix extensions = no
superuser.com/questions/128716/ubuntu-latest-samba-version-symlinks-no-longer-work-on-share-mounted-in-window


kwords: krusader, total commander, branch view, ctrl-b, samba, symlink

2011-01-14

Файлообмен

Один из способов обмениваться файлами. Ведь всем надо так или иначе передать или принять от кого файл на сотню-другую мегабайт? А то и гигабайт.

Есть мнение, что поскольку почти все пользуются торрентами, для заявленой цели можно использовать возможности BitTorrent качалок. Современные программы (uTorrent, Asureus/Vuse) могут работать как трекеры и поддерживают DHT. А это значит, что вы можете на своей машине сделать торрент.файл и отправить его тому, кто хочет взять у вас файлы. При этом не нужно трекера, сервера — ничего, кроме одной из упомянутых программ и правильного интернета. Торрент файл маленький, его можно и по почте. А через этот торрент программа-приемник скачает данные, подключившись к программе-раздатчику.
Правильный интернет нужен тому, кто хочет файлы отдать и не хочет использовать какие-либо внешние трекеры (ибо он сам будет трекером). Что значит «правильный»? Это значит, что должна быть возможность прямого вывода в интернет хотя бы двух портов протокола TCP/IP. Тот, кто будет забирать у вас файлы, сначала будет пытаться подключится к вашей торрент-программе по порту трекера (http://servhost:trackerport/announce) а потом, при удаче, по порту протокола битторрент.
Поправка, похоже, тому кто хочет файло забрать, тоже нужен правильный интернет. Во всяком случае, сидя за прокси в сети Йоты, скачать файло не получилось.

Детали см.ниже.
вдохновившая меня на эксперимент статья korokithakis.net/tutorials/bittorrent
опровержение негативных мнений о DHT torrentfreak.com/common-bittorrent-dht-myths
торренты без трекера google.ru/search?q=trackerless+torrent


Что мне пришлось настроить в Asureus для включения своего трекера

включить режим трекера и указать свой адрес (зарегеный через DynDNS).

А это диалог создания торрент-файла, чего проще

просто указать, что используется свой трекер.

2011-01-12

биос и эволюция

Прочел сегодня у Лоренца страшное. Вернее, у него я прочел, по сути, очевидное, но выводы получаются страшные.

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

А потом я вычитал, что один из базовых эволюционных механизмов, позволяющий виду выжить — сохранение/ограждение своей группы/подвида от растворения в общей массе, имеет интересное развитие в применении к человеческим культурам. Это тот механизм, что заставляет выделять и сохранять свое племя, свой род из массы соседних. Это тот механизм, что позволил человечеству в целом выжить, сохраняя достаточно высокое разнообразие традиций/способов реакций на враждебное окружение. И это тот механизм, который в расплату за выживание человечества в целом берет межплеменной/национальной ненавистью и войнами.

А выводы получаются такие: глобализация — зло, глобальные коммуникации — зло, мультикультурализм — зло. Не в абсолюте, конечно, а в том виде как это сейчас видится.
А самое интересное — апокалипсис неизбежен. Это будет переход человечества на новый уровень взаимодействия упомянутых двух слоев, который поможет следующему человечеству подняться еще на ступень выше (перепрошивка биоса?). Но это будет совсем другое человечество.

...
В этологии оправдало себя правило начинать изучение некоторого вида животных с составления так называемой этограммы, т. е. с инвентаризации филогенетически программируемых форм поведения, присущих этому виду. Одна из причин, до сих пор еще препятствующих более глубокому пониманию человеческого поведения, состоит в том, что философская антропология, зашедшая в идеологический тупик, отказывается допустить у человека, хотя бы в виде возможности, существование врожденных структур поведения.
Это особенно плохо потому, что наследственные инварианты человеческого поведения, несомненно, играют важную роль в патологии кульгурного развития. Например, представляется вероятным, что регулярно повторяющаяся гибель высоких культур является, как это впервые осознал Освальд Шпенглер, следствием расхождения между скоростями развития филогенетически программированных норм поведения и норм поведения, определяемых традицией. Культурное развитие человека обгоняет его «природу», и, как это выразил Людвиг Клагес, дух может стать противником души. Было бы крайне важно больше узнать обо всех этих явлениях
...
...
Ввиду принципиальной возможности смешения культур возникает вопрос, каким образом они вообще могут в столь значительной мере сохранять свою «чистоту», как это действительно происходило в мировой истории, а отчасти происходит и сейчас. В разделе, посвященном ритуализации, нам придется подробнее рассмотреть, как уже при развитии мельчайших «субкультур» или "этнических групп" передаваемые традицией отдельные черты поведения превращаются в символы статуса. Обычай, манеры собственной группы считаются «благородными», а всех других групп, в том числе объективно равноценной конкурирующей группы — неблагородными, причем оценка их тем ниже, чем меньше их сходство со своей группой. Эмоциональное значение, придаваемое таким образом всем свойственным группе ритуализациям, и, параллельно этому, унижающая эмоциональная установка по отношению ко всем чуждым группе признакам поведения не только усиливают внутреннюю сплоченность группы, но и способствуют ее изоляции от других групп и тем самым независимости ее дальнейшего культурного развития. Это приводит к последствиям, аналогичным роли географической изоляции в изменении видов.
Относительно прочные преграды, создаваемые только что описанными процессами между двумя дивергентно развивающимися зародышами культуры, присущи всем культурам и, очевидно, необходимы для их высокого развития. ...
... Рога оленя и маховые перья аргус-фазана полезны своим носителям лишь в соревновании с собратьями по виду; тем не менее они оказывают чрезвычайно сильное селекционное давление: индивид, лишенный этих признаков, не имел бы никаких шансов произвести потомство.
Конкуренция людей внутри одной и той же культуры производит вредные воздействия, аналогичные последствиям внутривидового отбора. Ей серьезно противодействует лишь склонность человеческих культур к расщеплению и развитию в дивергирующих направлениях. Именно разнообразие культур имело решающее значение для высшего развития человечества. Оно привело к тому, что различные культуры вступали в соревнование друг с другом в различных областях и с различными средствами. Они ели разную пищу, пользовались разными орудиями и сражались разным оружием. Эта форма соревнования культур, преобладавшая в прежние времена, была одним из важнейших факторов, вырабатывавших у людей интеллект, подвижность ума, изобретательность и т. п. В высшей степени вероятно, что уже в раннюю эпоху такие факторы имели решающее значение для быстрого увеличения большого головного мозга, что бы ни думали философские антропологи о "гносеологической чудовищности" принципа приспособления.
Общее направление ... идущее от низшего к высшему, определяется разнообразием селекционного давления, многообразием требований, предъявляемых к организму. Где это многообразие уступает место одностороннему и чрезмерному селекционному давлению — как в упомянутом примере внутривидовой конкуренции животных, — там эволюция также отклоняется от направления, ведущего к созданию новых и высших форм. Такому селекционному давлению, во многом сходному с внутривидовым соревнованием животных, подвергается в наше время человечество. Границы между культурами размываются и исчезают, этнические группы во всем мире стремятся слиться в единую общечеловеческую культуру. Этот процесс на первый взгляд может показаться желательным, поскольку он способствует уменьшению взаимной ненависти наций. Но наряду с этим уравнивание всех народов имеет и другое, уничтожающее действие: если все люди всех культур сражаются одним и тем же оружием, конкурируют друг с другом с помощью одной и той же техники и пытаются перехитрить друг друга на одной и той же мировой бирже, то межкультурный отбор теряет свое творческое действие.

Прикольно, правда? Этология — это вам не жук накашлял.

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)