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

2011-03-31

Пакеты анализируем, фильтруем

netgraph, проективные и процедурные системы... Ну прям как детектив читаецца. А у нетграфа большое будущее, кстати.

Исходной задумкой было ответить на задаваемый на форумах многими, не понимающими netgraph, вопрос: зачем он нужен, если существуют счетчики netflow, демоны туннелей, и много других готовых вещей под задачи? Спрашивают, понятно, обычно пользователи других ОС, не понимающие, зачем такая фича нужна. Если отвечать на него кратко, то это разница в подходах Windows и Unix — в первом принято на каждый чих искать программу (потому что в базовой системе средств мало), а также есть тенденция программ тяготеть к комбайнам — запихнуть как можно больше функций в одно приложение. Но такой ответ вызовет встречные вопросы, ведь мы, вроде бы, уже на *nix-системе, да и программы, типа того же vtun, вовсе не комбайны...

Причина в том, что люди мало задумываются о том, как они делают те или иные вещи, в чем разница в организации, да часто и вообще не любят думать. Оригинал на http://www.intuit.ru/department/os/osunix/ дает развернутый ответ аж в трех лекциях, причем каждая еще и на нескольких html-страницах

nuclight.livejournal.com/127326

netgraph — это реализованный в ядре коммуникационный фреймворк общего назначения, и в использовании он не сложнее, чем длинная командная строка вида "prog1 | grep | sort | sed | prog2 | awk"
nuclight.livejournal.com/126612

2011-03-30

Непонятки

Странные сегодня события наблюдаю. Местами загадочные.

Зайдя на свой виндовый рабочий стол в офисе, увидел, что кто-то сожрал всю оперативку и кушает своп. Оказался виновным 4-й Огнелис при открытой вкладке со статьей из MSDN (вроде как эта). За ночь сожрал полтора гига. Браузерные войны продолжаются?

Пытался передать файл через XMPP, Pidgin. Скорость — давно забытые 500 килобит/сек. Бился и так и эдак, вплоть до передачи между двумя учетками на одном сервере по IBB — никак. При этом каналы многомегабитные и работают устойчиво, проверено. Прочел доступные материалы про протокол — понял все, кроме причины такой низкой скорости. Догадываюсь, что используется внешний прокси через икотный канал (для него как раз такие скорости характерны) но не могу проверить догадку и выяснить причину. Завтра буду пытать сисадмина.

И приятная странность. У поставщика липиздричества в наши дома, Мосэнергосбыта, есть полезный сайт. А на сайте есть раздел «Кабинет», для захода в который достаточно знать номер лицевого счета (написан на платежках) и номер счетчика (написан на счетчике). А в кабинете есть довольно много полезняшек. Рекомендую.
Электронная Россия в действии.


Если есть желание почитать про Jabber, подборочка:
developer.pidgin.im/wiki/ProtocolSpecificQuestions
developer.pidgin.im/wiki/SupportedXEPs
tkabber.jabe.ru
jabberworld.info
psi-im.org/wiki/FileTransfer

2011-03-29

LSB

Небольшое дополнение к автостарту rtorrent. Начиная со сквиза, в скриптах инициализации применяется новый механизм dependency based boot. Посему, скрипт /etc/init.d/rtorrent лучше поправить. Я добавил такой LSB заголовок:

### BEGIN INIT INFO
# Provides:          rtorrent
# Required-Start:    $network $local_fs
# Required-Stop:     $network $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Should-Start:      samba
# Should-Stop:       samba
# Short-Description: start rtorrent daemon
# Description:       Enable service rtorrent provided by daemon
### END INIT INFO

Кому интересно, почему так, читайте источники:
debian.org/LSBInitScripts/DependencyBasedBoot
debian.org/LSBInitScripts
LSB — Linux Standard Base

2011-03-28

Абстрагируйся

Сложились вместе сразу две заметки о питомцах фонда Apache.

1.
Команда разработчиков Open Source-проекта Apache Commons объявила о том, что французское космическое агентство CNES (Centre National d'Études Spatiales) выбрало её библиотеку Math для своего следующего проекта — Сириус (Sirius).
commons.apache.org/math
nixp.ru/news

2.
Why we move away from CouchDB
We were already aware of Riak before we started using CouchDB, but we weren’t sure about trusting a new product at this point, so we decided, after some benchmark, to go for CouchDB.
After the first couple of months, it was obvious that this was a bad choice.
Our main problems with CouchDB is scalability, versionning and stability.
peterbe.com/plog/zodb-and-couchdb

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

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

А еще мне вспомнилось, как когда-то грамотные вроде люди, на полном серьезе обсуждали недостатки Lotus Notes (нынче Domino) — неудобно работать с данными в стиле реляционных БД, медленно и возможности слабоваты по сравнению с... Целый отчет для руководства написали. Типа, негоже нам использовать групваре как СУБД, с обоснованием. Грустно это и смешно, причем одновременно.

2011-03-26

Карты от ESRI а движок от OpenLayers

Как бы некоторым не хотелось, а ESRI это самый мощный игрок на рынке ГИС. Несмотря на все недостатки, присущие решениям от ESRI, остальные еще хуже. Нет, конечно, если брать очень узкоспециализированные решения, типа отдельных библиотек или утилит, найдется немало давидов, побивающих голиафа. Но если сравнивать платформы (сервер, десктоп, тонкий клиент, наборы данных, фреймворки, ...), что сводится к набору решаемых (успешно) задач в рамках платформы, тут ESRI не побить никому. Имею мнение, хрен оспоришь.

К чему это я? А, вспомнил, вот:

Благодаря ребятам из Azavea Labs (azavea.com) у нас теперь есть возможность использовать новые тайловые кеши от AGS в проектах на OpenLayers. Ура, товарищи!

a new Layer for OpenLayers that is compatible with newer ESRI ArcGIS Server setups that use cached tile sets. (e.g. arcgis.com, arcgis online).

trac.osgeo.org/openlayers/changeset/11693

2011-03-24

Как не надо называть продукты

Или возможности НЛП.

Итак, собрамшись с силами, излагаю. А что я, собственно, излагаю? Видимо, досаду на собственную невнимательность и недоумение по поводу «а че, нельзя попроще?».

Захотелось мне установить APEX. Чтобы вывести в веб ораклевые таблички. Как водится, полез на сайт, нашел инструкцию по установке. Сижу читаю, ищу — что мне надо скачать, поставить, настроить.

Сходу начинаю спотыкаться о буквально через строчку рассыпаные конструкции, вида «... бла бла Oracle Application Express бла бла...». Ну реально, через строчку, если не чаще. Фактически, процентов 20 текста инструкции потрачено на названия. Ко второй странице мозг начинает фильтровать, выхватывая «...А...Е...» и в нем жестко прошивается конструкция «Oracle Applikation».

Ладно, читаю, пытаюсь в россыпях слов найти зерно. А именно — что мне нужно сделать, чтобы оно установилось. Выясняю, что нужен мне «Oracle HTTP Server» с модулем mod_plsql. Ладно, полез искать место, где оно лежит. По ходу поисков неоднократно вижу упоминание, что искомое упоминается в контексте «Oracle Database 11g or Oracle Application Server 10g», из чего делаю вывод, что мне нужен «Oracle Application Server», ибо у меня БД — десятка. Прошу отметить, опять, мазафака, повторяется конструкция «Oracle Application ...», только третье слово другое, не Express а Server. Вообще, ниче так названия, по типу «Магазин Круглосуточный Самообслуживания» вместо «Маркет Магнолия».

И вот сижу, продираюсь через обьемный текст, в котором вперемешку через строчку эти бесконечные «Оракл Аппликейшн...», и чую — беда, моск плавицца. Ладно, через полдня парсинга текста мозгом, вижу упоминание:
Oracle HTTP Server uses the mod_plsql plug-in to communicate with the Oracle Application Express engine within the Oracle database. The following products include appropriate versions of HTTP Server and mod_plsql:
* Oracle Database 10g Companion CD release 2
* Oracle Database 11g release 1 or 2
О. говорю себе. Бинго, компаньон CD. И лезу в секцию загрузок за этим компаньоном.

Залез, а там — пакетов тыщи и у всех сифилис и названия у всех — политкорректные, мягко говоря. Многословные и невнятные. Ну ладно, как-то вышел на Application Server, у которого несколько релизов и в каждом релизе содержится куча подпакетов да с названиями не совпадающими с таковыми у пакетов из других релизов. Возник вопрос — релиз 2 или 3? Подумав, что свежее — лучшее, выбрал R3. И понеслась.

Ну и на этом можно уже начать подводить итоги. Ибо всем уже должно быть понятно, что мне нужен был «Oracle Database 10g Companion CD release 2» и никакой другой. Компаньон релиз 2 к БД 10г. Тоже, кстати, названьице. Нет бы по простому, по пролетарски — диск 5 комплекта ODB10R2. Во, вспомнил: «Что уж это на самом деле? Чисто как в трамвае. Что вы мне жить не даете?!».
А я, грамотный, вместо того, чтобы искать его, правильного компаньона, будучи одурманен многочасовым курением текста, процентов на 30 состоящего из слов «Oracle Application (Server | Express)» и подобных, бессознательно полез в секцию загрузки где серверы приложений.

А дальше был потерян рабочий день, на попытки установить HTTP Сервер из двух разных компаньонов и понимание того факта, что состав и конфигурация (то Apache есть а модуля нет, то модуль есть а Apache нет и проч.) этих пакетов очень, очень сильно меняются не только от версии к версии, но и от релиза к релизу (что добавляет прелести процессу использования продуктов Оракл).
Так прошел день.

К концу дня я догадался еще раз посмотреть на текст, где упоминается версия сервера HTTP. Ну да, «Oracle Database 10g Companion CD release 2». Все верно. Бля. На тыщу повторений «Oracle Application ...» одно упоминание «Oracle Database ...». И Oracle Датабейс это не класс софта, это, блин, конкретное название конкретного пакета. И я это успешно пропустил мимо мозга.
К вопросу о неудачных названиях. Неудивительно, что я сходу полез в секцию, где про Аппликейшн ... вместо Датабейс.

А представьте, как было бы удобно, если бы названия были по типу этого APEX. Читаешь себе доку, а там «OAS ….. бла бла... ODB.... бла бла... OHTP... бла бла...» или типа того. Правда ведь, и читать легче и перепутать сложнее и мозги засираются меньше. Будьте проще и люди к вам потянутся.

Силы у него слабые

Чтобы силы были сильные, maxss хлебает компот. Рецепт:

режем толстыми дольками или ломтями апельсин, добавляем две палочки (или немного молодой, если нет палок) корицы. Наваливаем всё это в термос. Туда же упихиваем щедрыми ломтями лимон и куски (не тонюсенькие слайсы, а взрослые полноценные куски) имбирного корня. Плепорции соблюдаем как бог на душу положим, главное — чтобы вкусно.
Заливаем этот салат кипятком и оставляем в термосе на ночь. Можно варьировать смесь. Например, смешивать апльсин с имбирём, а лимон — с корицей.
Приходим на работу. Из сумки достаём термос. Открываем крышку. Раздётся запах. Кричим сотрудникам и прочим нахлебникам «От винта, пидарасы!» и начинаем прихлёбывать. И так весь день. Вместо воды.

maxss.info/2010/12

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

2011-03-23

kernel 2 6 38

Как говорил мой капитан при отправлении наряда в караул - «погода шепчет». Это он предупреждал, штоп не расслаблялись. Ибо были очень теплые весенние погоды и благорастворение в воздусях, которые приводили к повальному сну на постах и забиванию на службу.
Лично мне практической пользы мало, чиста почесать мозоль IT, ибо новшества вызывают интерес и сулят разное (погодой навеяло):

This release adds support for a automatic process grouping (called "the wonder patch" in the news), significant scalability improvements in the VFS, Btrfs LZO compression and read-only snapshots, support for the B.A.T.M.A.N. mesh protocol (which helps to provide network connectivity in the presence of natural disasters, military conflicts or Internet censorship), transparent Huge Page support (without using hugetblfs), automatic spreading of outcoming network traffic across multiple CPUs, support for the AMD Fusion APUs, many drivers and other changes.
kernelnewbies.org/Linux_2_6_38

если кому влом читать по аглицки (хотя таким по барабану сама новость?):

Линус Торвальдс анонсировал релиз Linux-ядра 2.6.38, в который вошли наработки по увеличению интерактивности выполнения десктоп-задач, значительно повышена масштабируемость VFS, в Btrfs обеспечена поддержка LZO-сжатия и создания доступных только на чтение снапшотов, интегрированы HugePage-патчи, добавлена поддержка процессоров AMD Fusion, добавлены новые драйверы и обеспечена поддержка mesh-протокола B.A.T.M.A.N.
citforum.ru/news/25882


Шпаргалки по установке HTTPD Apache2 на Debian
library.linode.com/web-servers/apache
mysql-apache-php.com
httpd.apache.org/docs/2.2/mod/quickreference
phpsuxx.blogspot.com/search/label/Apache2

2011-03-22

Психотропы и наркотики

А знаете ли вы, что настоящих наркотиков только три вида: табак, алкоголь и опиаты? Это те вещества, которые вызывают физическое привыкание. Из трех два легально продаются повсеместно. Я вот как-то и не задумывался, что за словом «наркотик» находится вполне конкретное (но усердно размываемое) смысловое поле. Зато теперь знаю, спасибо Сергею:
phago-lov.livejournal.com/13157
phago-lov.livejournal.com/13453
erowid.org/general/about

У него блог вообще полон баек из жизни, особенно с начала. Рекомендую, прочтете — не пожалеете.

2011-03-21

onReady

Практика использования события ready в JavaScript фреймворках показывает фигу частную неприменимость. В некоторых случаях таки приходится использовать старый добрый метод — разместить вызов инициализации скрипта в хвосте страницы.

... In practice, most browsers, and most OpenLayers components, work fine when initialized in a framework’s onready event. One layer in particular (OpenLayers.Layer.Vector) will not play nice with one particular browser (IE8) if initialized in a framework’s onready event. ...

azavea.com/blogs/labs/2011/02/jquery-vectors-and-ie8


2011-03-19

All Heil ASF, IBM, Watson

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

Watson is an artificial intelligence computer system capable of answering questions posed in natural language,... Watson was named for IBM's first president, Thomas J. Watson.
In 2011, as a test of its abilities, Watson competed on the quiz show Jeopardy!... Watson bested Brad Rutter, the biggest all-time money winner on Jeopardy!, and Ken Jennings, the record holder for the longest championship streak. Watson received the first prize of $1 million, while Ken Jennings and Brad Rutter received $300,000 and $200,000, respectively
wikipedia.org/wiki/Watson


Open Source-продукты Apache UIMA (реализация стандарта UIMA для работы с неструктурированным текстом) и Apache Hadoop (фреймворк для выполнения распределённых приложений, работающих на тысячах узлов и с петабайтами данных)
nixp.ru/news/Open-Source


"The success and influence of Watson clearly shows that open source in general, and specifically open source software developed and released by the ASF, is deeply entwined in all layers and aspects of technology," said ASF President Jim Jagielski.
prnewswire.com/news-releases/apache-innovation-bolsters-ibms-smartest-machine

IBM — наше всё.

2011-03-18

collection of questions and answers

Python, Pylons, Nginx и еще раз Python, и многое другое. Кому как, а мне очень интересно поглядеть под капот нетривиального сайта, поглядеть на применяемые решения и что из этого получилось.

They also looked at C#, Java, and Scala. Discounting Mono, C# would be a choice of more than just the language. It would require them to build on-top of a Microsoft stack. Python won over Java because it is more expressive and quicker to write code than Java. Scala was too new. Adam mentions speed and the lack of type-checking as drawbacks with Python, but they both already knew the language reasonably well. Where Python lacks speed for performance critical backend components, they opt to write them in C++. They saw Ruby as a close match to Python, but their experience with Python and lack of experience in Ruby, made Python the winner. Python 2.6, to be precise.

philwhln.com/quoras-technology-examined

Многабукаф в статье, но оно стоит прочтения. А еще там полно сцылок на не менее интересные статьи. Вмемориз.

Quora is a great example of a modern tech start-up. They are very small team who understand the technologies they are using very well. They have made considered choices in the technology they have selected and have a good vision of which components would be better written from scratch.

2011-03-17

как люди ведутся-2

Странные времена нынче, сильные не в почете. Народные симпатии на стороне всякого рода обиженных, особенно, если эти обиженные грамотно поплачут на публику.

- Слышь, ну вы там, жиды, ваще охуели! Они ж самопальными ракетами кидаются на обум, а у вас танки, самолёты..
- ...
- Чё, восемь лет?! Дык, я ж понимаю, шо за такие дела напалмом нахер выжечь чурбаньё, но там же эта, как его, мирное население, во!
- ...
- Не, ну чё, у вас же Армия, надо спецназ, штоп этих, которые школы минируют, чиста как в кино бах! бах! Ты-дыщ! Ну, как в кино этом, как его? Не помнишь?
- ...
- Не, ну я чё, я арабьё сам не того, не люблю чурок этих. Но вы ж Газу эту оккупировали, так?
- ...
- А, не, ну я не знал, что вы оттуда ушли уже давно. Но всё равно - вон фотки гуляли, где на одной фашист мелкого еврейского пацана на мушке держит, а на другой ваш солдат - арабского. Так что - фашисты вы, жиды!
- ...
- Чё, в натуре? Пацан взрывчатку нёс, а его разминировали, и к мамке? Ну, я не знаю, под фоткой такого написано не было. Чё, не завалили, и даже отпустили? Ебанутые, что ли? Гы.. :)
- ...
- Ой, ну не надо, а? Перед обстрелом предупреждаете? И на три часа каждый день перерыв, чтоб они затариться могли тем хавчиком, что вы им сами шлёте?
А они в эти три часа стреляют? Ну, пральна, чё. Я б тоже стрелял, если вы фраера такие. Хе-хе.. :)))
А ещё вон фотки детей показывали, вашими бомбами взорваными, там девочка такая вся в кровище. С детьми воюем? Чё скажешь, а?
- ...
- Мальчик? Один и тот же? На разных фотках? В кетчупе? А хуй его знает, я вижу то, что вижу! У тебя есть такие фотки?
- ...
- Да ну нах.. Какой Дольфи? А, дискотека.. Ну вы, бля, в натуре, как чурки эти арабские, жалостные фотографии горазды только выкладывать. Чё, я сам просил? Не, нихуя ты меня не убедил. А потому что!

phago-lov.livejournal.com/61568

Со всех сторон пропаганда, а как понять кто есть ху, когда действительность это есть наше представление о реальности, питаемое через ощущения?

2011-03-15

Некоторые подробности из жизни банкира

Человек уж с десяток лет работает автоматизатором в банках. Рассказывает разное

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

Чего с этим делать, было непонятно вообще. Не может банк просто так без заявления клиента с карточки деньги списать и на другую правильную карточку закинуть, закрыть такой банк могут в момент. А где это заявление взять, если гражданина Мина в природе вообще нет?

mr-pif.livejournal.com/14867

Почитал я эти истории и подумал: в моем случае у банка только 1 вариант - отдать из своего кармана (штуку баксов). А это очень маловероятно.


Практически Киплинг.
Ничей
Буду охотиться по кошачьи а следы оставлять собачьи. И бегать буду быстрее всех.

2011-03-14

ZEO

Двадцать первая глава ZopeBook оказалась совсем небольшой. Готов перевод
Zope.book.21.Scalability.and.ZEO.odt - 
перевод главы №21 зопобука. Опенофисный документ. В главе сжато рассказано о возможности масштабирования Zope, через использование ZEO. ZEO это способ рассадить по разным компам БД и серверы приложений.

Полный комплект (главы с 1 по 21) можно найти тут: sites.google.com/site/vasnake

2011-03-13

Python & xsl:stylesheet version="2.0"

А я нашел, чего нет на Python! На Яве и дотНет есть а на Python нет. Обработки XSLT 2.0 нету, вот так. Первая версия стилей — пожалте, но не вторая.
Видимо, не нужно это толковым ребятам. Да и мне, как оказалось, не нужно. В декларации в файле xsl написано, что версия стиля — 2.0 а на деле все конструкции из первой версии. Трансформер ругаецца, но работает.

Ресурсы, отобранные в процессе разъяснения вопроса
xml3k.org/Amara
xmlsoft.org
users.skynet.be/sbi/libxml-python
lxml.de/FAQ
saxonica.com/documentation/using-xsl/commandline
bytes.com/topic/python/answers/ xml-xslt-python
google.ru/search python+xslt+2.0


kwords: Python, xml, xsl, xslt

2011-03-12

Как люди ведутся

mr-pif замечательно излагает и еще лучше гонит. К тому, он обладает правильными взглядами на жизнь и достаточным опытом. Читать можно не отрываясь.
Но я не про это. У меня непроизвольно получился психологический эксперимент на базе двух текстов: один про плохого неумеху, другой про хорошего неумеху. Вернее не так — про одного неумеху автор рассказал с негативными оттенками а про другого с демонстрацией положительных эмоций. С некоторыми допущениями можно вообразить, что рассказывается про одного и того же человека.
Интерес мой вызвали каменты к постам, в которых читатели единодушно ругали плохого и восхищались хорошим, хотя и тот и другой — злоебучие неумехи (IMHO), претендующие на изоляцию от общества (если судить по изложенным автором фактам). Автор и почитатели, король и свита — аналогии прорисовываются, однако. Прикольно, тема для подумать.

Сами посты:

Негатив mr-pif.livejournal.com/28425
Позитив mr-pif.livejournal.com/24948

2011-03-11

Шестая волна

Уезжают. Прямо сейчас, именно так, как написано в приведенных статьях. Практически у каждого из нас есть знакомые а то и родственники, уехавшие и не возвращающиеся. Если границы не закрыть (а их уже и не закроешь), уедут все нужные люди. Чистая физика, сообщающиеся сосуды. Стране пиздец? И так не сладко, а когда уедут последние толковые?

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

Цитаты:

Первыми покидают страну "молодые, талантливые и амбициозные", отмечает The Washington Post

"There is a general feeling that a wall has gone up," said Dmitri Oreshkin, a geographer and political analyst who described the new wave of emigration in a widely quoted Novaya Gazeta article at the end of January. "Everyone is asking me if it's time to leave."

Some 1,250,000 people have emigrated from Russia for the last few years, the Internet news agency New Region cited the statistical reports made public by Russian Audit Chamber Chairman Sergei Stepashin. This figure is given without downshifters, who leased their flats and went to enjoy their life in the countries with the warm climate.
For instance, about two million people emigrated from Russia after the 1917 October Revolution.
About 300,000-350,000 Russian citizens go to other countries for earnings every year, Director of the Federal Migration Service Konstantin Romodanovsky said recently. However, he did not specify the number of Russians to come back after working abroad.

Certainly, people usually think that the grass is greener and it is cooler in the shadow on the other side of the fence. However, if in the early and mid-90s of the previous century Russian citizens went abroad mainly to earn much money, now their priorities changed and other countries attract them with political predictability, security and comfort.

washingtonpost.com/wp-dyn/content/article/2011/03/08
itar-tass.com/eng/ NewsID=15947280

тут не перевод а типа изложение:
 inopressa.ru/article/09Mar2011/wp/russia

Уезжают лучшие: амбициозные, активные, умные, толковые. Остаются пофигисты, ленивые и бестолковые. Я пока здесь, я ленивый (поеду может быть, если пригласят там или прижмут здесь) и местами бестолковый. А вы? «Чего ждем? Рождества?» (с) Дюк Нюкем.

2011-03-10

Я знал!

Я тут почту хвалил, да? Теперь поругаю. Наверное, даже не почту а тех, кто нормирует ее работу.

Не помню как, но я с утра почуял, что день «не мой». Но поскольку в эту херомантию я не верю, да и погоды были замечательные, поперся через весь город в свое почтовое отделение. Надо было письмецо от налоговой забрать. Довольный прогулкой зашел в помещение и тихо фалломорфировал — человек 30 в очереди и одна тетка в одном окошке отдувается за всех (предусмотрено аж 4 окошка). Стоял я в очереди полтора часа. А что делать? Еще раз ехать через весь город? Нет, раз приехал — выстою. Причем, что любопытно, я знаю о Мерфи и его законе, да и о неудачном для меня дне помню. И посему, раздумывая о своей судьбе (времени много, чего я только не передумал, до кучи книжку Канта почитал — с ним не заскучаешь) пришел я к выводу, что от окошка меня завернут. Не знаю, по какой причине, был бы человек — статья найдется. И точно, завернули. Я был настолько готов, что даже не кипятился.

Добрая тетенька сказала, что с такими квитками не к ней.
- А к кому, спрашиваю.
- А на выдачу, говорит.
- А это где?
- А за углом.
Уточнил я, за каким углом и в 5 минут получил свое письмо. У них на заднем дворе, вверх по лесенке, есть дверка потайная. Там выдача всякого «до востребования» и подобного.

Что любопытно, в середине своего стояния я углядел, как некую тетку послали «на выдачу, за углом». Я пошел глянуть, что это за выдача, мне ведь тоже выдать должны. Походил вокруг, поглядел — ничего толкового не углядел. Кто ж знал, что это потайная лесенка сильно в тылу здания?
Ну почему?! Почему вывесок нет, обьявлений нет? Наоборот, у окошка универсальная табличка, где написано, что эта тетенька суть негр на плантациях — делает всё и для всех. Перечень услуг составляет около 10 пунктов, причем чисто почтовые — хорошо если половину.

И на всю эту плантацию — только одна тетенька, народ подходит быстрей, чем она справляется. Если бы народ не был размягчен капитализмом (многие вздыхали — не, не буду стоять, очередь больно большая — и уходили), то к вечеру очередь дотянулась бы до автобусной остановки, если не до метро.

А знаете, почему она одна? А потому, что все почтовое отделение оклеено приглашениями на работу, на эту почту. На зарплаты от 11 до 13 тыщ рублей. И странно, никто не ломится в отдел кадров.

А как иначе? Люди работают с людями и мат.ценностями (немалыми) а им только кнут и никаких пряников. Да и кнут наверняка весьма условный. Ну с работы выгонят. Большая потеря.

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

Кстати, письмо мне выдала такая бабушка, с пофигистично-печальным видом. Так и захотелось прокомментировать - «и когда же я сдохну».

В общем, понял я, что лох, ибо так и не научился сперва спрашивать, потом в очереди стоять.

А в письме мне налоговая прислала решение по моему делу (ноябь, декабь, январь, февраль = 4 месяца решали, о как). Они подтверждают, что налоги у меня уплачены правильно, задолженность 0.0 рублей. Но поскольку декларацию я подал с опозданием, с меня штраф «...процентов от суммы долга но не более... но не менее 1000 руб.» - да — 1000 рублей штраф. За невовремя поданную декларацию о нулевом побочном доходе.
А вот вовремя декларацию подавайте сцуки! А кого ебет, что побочных доходов не было. По бумагам — были, и ниипет, что по вычетам ты выходишь в 0.

2011-03-09

Copy расты

Кто бы спорил, пиратство, черный рынок — это скорее плохо, нежели хорошо. Но до тех пор, пока у меня нет возможности легально и за разумные деньги скачать для «посмотреть» фильму, я буду «подкапывать инновации и креативность атепренеров и индустрии».
Piracy and counterfeiting undermine the innovation and creativity that is vital to our global competitiveness. These notorious markets not only hurt American workers and businesses, but are threats to entrepreneurs and industries around the world
...
USTR and other agencies of the U.S. government are actively engaged with U.S. trading partners to seek appropriate action against counterfeiting and piracy, including these and other markets identified in this report. For example, on February 14, USTR announced an IPR action plan with the Government of Ukraine that included a commitment to “act in a timely manner against infringing Internet websites identified by right holders

ustr.gov/ /press-releases/2011/february/ustr-announces-results-special-301-review


2011-03-08

Подарок на выходные

В качестве подарка, соседи сверлить начали только после обеда. Мелочь, а приятно. Даже убить никого не захотелось.

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

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

nr2.ru/economy/322857

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

2011-03-06

Наблюдательная арифметика

Погодой навеяло.

Цветочек средней паршивости — 100 руб.
Банка импортного пива адекватной паршивости — 100 руб.
Проехать 5 километров на леваке — 200 руб.
Средняя зарплата — 30 000 руб.
Так жить нельзя?

И в то же время, читая Джека Лондона — Мартин Иден (события столетней давности), спотыкаюсь о изложение труда в прачечной за 30 долларов в месяц. Почти непрерывный адов труд по 14 часов в сутки.

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


Футболку себе сделать, что-ли? С подобными надписями:

Статья 1. Назначение полиции

1. Полиция предназначена для защиты жизни, здоровья, прав и свобод граждан ..., для противодействия преступности, охраны общественного порядка, собственности и для обеспечения общественной безопасности.

2. Полиция незамедлительно приходит на помощь каждому, кто нуждается в ее защите ....

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

rg.ru/printable/2011/02/07/police

И таки да, любопытно, что это за «права государственных органов»?

2011-03-05

44-120

44 наших гаубицы против 120 не наших орудий. Интересная статья, да и журнал в целом интересный. Человек многое знает и не жмется делиться своими знаниями.

Статья про арифметику ВоВ

...
Нас же интересуют плотности. На направлении главного удара - 5 км на дивизию. То есть против одной советской сд будет действовать 2 тд Вермахта, а это около 400 танков, 200 противотанковых пушек (которые немцы вытаскивали на поле боя танками и с их помощью вели прицельный огонь прямой наводкой по выявленным целям и танкам противника), 120 стволов полевой и гаубичной артиллерии.
То есть на 1 км фронта против 8,8 советских орудий, стреляющих прямой наводкой, в бой бы пошло 40 танков, и десятки легких, плохо различимых в хаосе боя пушек.
А в артиллерийской дуэли против 44 советских гаубиц использовалось бы 120 немецких орудий, и превосходные подразделения инструментальной разведки, способное немедленно дать артиллеристам данные для эффективного контрбатарейного огня.
И все это, заметьте - идеальный для сд РККА сценарий - ведь чаще всего, 76-мм пушки тоже управлялись централизованно, и в огне прямой наводкой по танкам могли участвовать не всегда.
Чаще всего, это было правильно, но не в случае внезапной массированной танковой атаки.
Также будем иметь ввиду, что в каждой тд Вермахта было два полка мотопехоты, в которых могло быть от 2200 (двухбатальонный состав) до 3000 (трехбатальонный) человек. И эти подразделения действовали в рамках дивизии на ее фронте наступления.
Сравним силы
...

timokhin-a-a.livejournal.com

2011-03-04

CATERPILLAR GENERATOR 6" Work Boots

Вообще у нас принято почту ругать. Почту России, в смысле. Временами очень даже заслуженно, видимо. Но я сегодня буду почту хвалить. Просто молодцы, работали как в жопу укушенные. Сортировка на раз-два. Доставка на раз-два. Выдача на раз-два. С выдачей просто повезло. В нашем отделении обычно очередь человек на 10 и боле, а сегодня приходим за посылкой — два человека перед прилавком. За прилавком девица, с улыбкаме и шуткаме выдала нам посылочку.

А в посылочке ботиночки для Наташки, как раз к 8 марта. Рабочие бутсы Катерпиллер, не хрен собачий.

Смотрите сами (на скринах), 8 февраля товар оплачен на ebay, 14 февраля к ночи сдан продавцом на почту в НуЙорке (похоже из самого Кетая везли с 8 по 14). 15 с утречка коробан уже поступил на сортировку в НуДжерси, через час уже прошел распределитель (отправился на пристань?). 24 февраля с утра коробан был выгружен (с корабля?) и боты зашли на нашу таможню, где и шатались боле суток, до вечера 25 февраля. 26 днем бутсы прибыли на вокзал в Москве на сортировку. К вечеру их отсортировали (левый-правый) и отправили дале. А 28 днем они уже были в моем почтовом отделении. Всего через полторы сутки. Я же говорю — на раз-два все этапы прошли, в четыре дня весь процесс с-корабля-на-бал. Я считаю, это достижение для нашей почты.

Ботиночки Наташке оченно понравились. И недорого, всего 4 тыра с мелочью.

Боты на ибее. Телушка полушка да рупь перевоз.

Трекинг амерской почты, довели до выхода с таможни.

Трекинг нашей почты, инфу выдавал с опозданием, зато более полную.

Почитать про способы пересылки покупок к нам: vxzone.com/usps
Наш почтовый трекинг: info.russianpost.ru/servlet/post_item
Амерский трекинг: usps.com/PTSInternetWeb

2011-03-03

Автостарт для rtorrent

Хотя сделал я себе губозакатывательную торрентокачательную машинку, но как-то незавершенно. Внешний диск сам не монтируется, rtorrent сам не стартует — все надо ручкамЕ запускать. Не комильфо.
А тут как раз в блоге про монтирование раздела ntfs через fstab. И я сподвигся. Делюсь рабочим рецептом.

Сначала обеспечил монтирование внешнего диска с ntfs

// поскольку вручную я монтировал эдак
# mount -t ntfs /dev/sdb1 /mnt/sams640
// то и автоматом будет так
# chmod 777 /mnt/sams640
// узнал ID раздела
# blkid
/dev/sdb1: LABEL="sams640" UUID="EE728B81728B4CF1" TYPE="ntfs"
// внес запись в fstab
# nano /etc/fstab
# extusb sams 640
UUID=EE728B81728B4CF1 /mnt/sams640 ntfs-3g defaults,users 0 3
// замонтировал для проверки
# mount -a

Перезапуск машинки показал, что автомонтирование работает. Теперь надо сделать автозапуск rtorrent. Весь рецепт утянут отсюда
libtorrent.rakshasa.no StartingrTorrentonSystemStartup
от себя только рабочие конфиги прикладываю

# mv /home/valik/torrent/rtorrentInit.sh /etc/init.d/rtorrent
# chmod 755 /etc/init.d/rtorrent
# chown root:root /etc/init.d/rtorrent
# ls -l /etc/init.d/rtorrent
# nano /etc/init.d/rtorrent
# update-rc.d rtorrent defaults
# sysv-rc-conf
# service rtorrent start

От имени пользователя окно с rtorrent открывается так (в моем случае, я скрин назвал «torr»)

$ screen -d -R torr

Финальный стоп, старт машинки показал работоспособность решения в целом. Полчаса на все-про-все.

nano ~/.rtorrent.rc
# This is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.

# Maximum and minimum number of peers to connect to per torrent.
min_peers = 1
max_peers = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
min_peers_seed = 1
max_peers_seed = 100

# Maximum number of simultanious uploads per torrent.
max_uploads = 50

# Global upload and download rate in KiB. "0" for unlimited.
download_rate = 400
upload_rate = 100

# Default directory to save the downloaded torrents.
directory = /home/valik/torrent/data

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = /home/valik/torrent/meta

# Watch a directory for new torrents, and stop those that have been
# deleted.
schedule = watch_directory,5,5,load_start=/home/valik/torrent/*.torrent
schedule = untied_directory,5,5,stop_untied=/home/valik/torrent/stopped/*.torrent

# Close torrents when diskspace is low.
schedule = low_diskspace,5,60,close_low_diskspace=100M

# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.
# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
#schedule = ratio,60,60,"stop_on_ratio=200,200M,2000"

# The ip address reported to the tracker.
#ip = 127.0.0.1
ip = вашхост.dyndns.org

# The ip address the listening socket and outgoing connections is
# bound to.
bind = 0.0.0.0
#bind = rakshasa.no

# Port range to use for listening.
port_range = 6960-6960

# Start opening ports at a random position within the port range.
#port_random = no

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
check_hash = yes

# Set whetever the client should try to connect to UDP trackers.
use_udp_trackers = no

# Alternative calls to bind and ip that should handle dynamic ip's.
schedule = ip_tick,0,1800,ip=вашхост.dyndns.org
schedule = bind_tick,0,1800,bind=0.0.0.0

# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
encryption = allow_incoming,try_outgoing,enable_retry,prefer_plaintext

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
# 
dht = auto

# UDP port to use for DHT. 
# 
dht_port = 6961

# Enable peer exchange (for torrents not marked private)
#
peer_exchange = yes

#
# Do not modify the following parameters unless you know what you're doing.
#

# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
#hash_read_ahead = 10

# Interval between attempts to check the hash, in milliseconds.
#hash_interval = 100

# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
#hash_max_tries = 10


nano /etc/init.d/rtorrent
#!/bin/sh
#############
######
#############
# This script depends on screen.
# For the stop function to work, you must set an
# explicit session directory using ABSOLUTE paths (no, ~ is not absolute) in your rtorrent.rc.
# If you typically just start rtorrent with just "rtorrent" on the
# command line, all you need to change is the "user" option.
# Attach to the screen session as your user with 
# "screen -dr rtorrent". Change "rtorrent" with srnname option.
# Licensed under the GPLv2 by lostnihilist: lostnihilist _at_ gmail _dot_ com
##############
######
##############

#######################
##Start Configuration##
#######################
# You can specify your configuration in a different file 
# (so that it is saved with upgrades, saved in your home directory,
# or whateve reason you want to)
# by commenting out/deleting the configuration lines and placing them
# in a text file (say /home/user/.rtorrent.init.conf) exactly as you would
# have written them here (you can leave the comments if you desire
# and then uncommenting the following line correcting the path/filename 
# for the one you used. note the space after the ".".
# . /etc/rtorrent.init.conf

#Do not put a space on either side of the equal signs e.g.
# user = user 
# will not work
# system user to run as
user="valik"

# the system group to run as, not implemented, see d_start for beginning implementation
# group=`id -ng "$user"`

# the full path to the filename where you store your rtorrent configuration
config="`su -c 'echo $HOME' $user`/.rtorrent.rc"

# set of options to run with
options=""

# default directory for screen, needs to be an absolute path
base="`su -c 'echo $HOME' $user`"

# name of screen session
srnname="torr"

# file to log to (makes for easier debugging if something goes wrong)
logfile="/var/log/rtorrentInit.log"
#######################
###END CONFIGURATION###
#######################
PATH=/usr/bin:/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin
DESC="rtorrent"
NAME=rtorrent
DAEMON=$NAME
SCRIPTNAME=/etc/init.d/$NAME

checkcnfg() {
    exists=0
    for i in `echo "$PATH" | tr ':' '\n'` ; do
        if [ -f $i/$NAME ] ; then
            exists=1
            break
        fi
    done
    if [ $exists -eq 0 ] ; then
        echo "cannot find rtorrent binary in PATH $PATH" | tee -a "$logfile" >&2
        exit 3
    fi
    if ! [ -r "${config}" ] ; then 
        echo "cannot find readable config ${config}. check that it is there and permissions are appropriate" | tee -a "$logfile" >&2
        exit 3 
    fi 
    session=`getsession "$config"` 
    if ! [ -d "${session}" ] ; then
        echo "cannot find readable session directory ${session} from config ${config}. check permissions" | tee -a "$logfile" >&2
        exit 3
    fi
}

d_start() {
  [ -d "${base}" ] && cd "${base}"
  stty stop undef && stty start undef
  su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "screen -dm -S ${srnname} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
  # this works for the screen command, but starting rtorrent below adopts screen session gid
  # even if it is not the screen session we started (e.g. running under an undesirable gid
  #su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "sg \"$group\" -c \"screen -fn -dm -S ${srnname} 2>&1 1>/dev/null\"" ${user} | tee -a "$logfile" >&2
  su -c "screen -S "${srnname}" -X screen rtorrent ${options} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
}

d_stop() {
    session=`getsession "$config"`
    if ! [ -s ${session}/rtorrent.lock ] ; then
        return
    fi
    pid=`cat ${session}/rtorrent.lock | awk -F: '{print($2)}' | sed "s/[^0-9]//g"`
    if ps -A | grep -sq ${pid}.*rtorrent ; then # make sure the pid doesn't belong to another process
        kill -s INT ${pid}
    fi
}

getsession() { 
    session=`cat "$1" | grep "^[[:space:]]*session[[:space:]]*=" | sed "s/^[[:space:]]*session[[:space:]]*=[[:space:]]*//" `
    echo $session
}

checkcnfg

case "$1" in
  start)
    echo -n "Starting $DESC: $NAME"
    d_start
    echo "."
    ;;
  stop)
    echo -n "Stopping $DESC: $NAME"
    d_stop
    echo "."
    ;;
  restart|force-reload)
    echo -n "Restarting $DESC: $NAME"
    d_stop
    sleep 1
    d_start
    echo "."
    ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
    exit 1
    ;;
esac

exit 0


Рецепты тянул отсюда
whyhomeserver.blogspot.com
libtorrent.rakshasa.no/ StartingrTorrentonSystemStartup


kwords: rtorrent, startup, init.d, init.rc, screen, fstab, automount

2011-03-02

Zope book

Медленно (ну очень медленно :) но верно перевод движется к завершению. Добил главу 19.
Zope.book.19.Virtual.Hosting.Services - перевод главы №19 зопобука. Опенофисный документ. Из этой главы становится понятно, как прикрутить к Zope фронтэнд и как интегрировать Zope в мегасайт в качестве одной из частей этого сайта.
Предыдущие главы можно найти тут: sites.google.com/site/vasnake

2011-03-01

Python Великий и Ужасный

В рамках проекта openopt.org доступен модуль работы с геометрией.

SpaceFuncs — Python-модуль для геометрических расчетов

SpaceFuncs Documentation
Contents
1 Geometry objects
1.1 Point
1.2 Line
1.3 LineSegment
1.4 Circle
1.5 Sphere
1.6 Polytope
1.7 Polygon
1.8 Triangle
1.9 Polygedron
1.10 Tetrahedron
2 Solving systems of geometric equations
3 Numerical optimization
4 Graphic output

Вот школьникам раздолье, задачки по геометрии решать.

Архив блога

Ярлыки

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) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) Klaipeda (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) купи/продай (9) Photo (8) 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)