четверг, 30 декабря 2010 г.

11111011011

Всех с наступающим 11111011011 годом!

У меня этот год, после трёх лет застоя, оказался достаточно насыщенным:
  • начал водить машину (на права выучился в прошлом году);
  • купили, собственно, первую машину, а потом, на новом месте, и вторую;
  • сменил работу: ушёл из кернельного тима в Red Hat в железячно-лисповый стартап;
  • переехал из Брно в Бостон;
  • купил гитару, начал учиться играть :)
  • ну ещё ипотеку в России закрыли.
В принципе, год положительным был.

Out of memory

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

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

- Чё? Фонтан? А про чё там, напомните?

вторник, 21 декабря 2010 г.

понедельник, 20 декабря 2010 г.

Сибирь

Что-то стареньким я стал... 32 часа дороги перенёс очень плохо. После 9-часового перелёта в Москву из Нью-Йорка (плюс 4 часа на машине до NYC) был зелен, бледен и двоилось в глазах.

Ещё со мной посадили вонючего индуса, который, собственно, вонял немытым телом, снял ботинки и носки, свои грязные ноги куда только не ложил, ходил босым в сортир. Потом грязными руками жрал еду и, не вытырая их, лапал всё вокруг. Бвеее... Как тут не почувствовать рассовое превосходство? А ещё он все 9 часов усиленно чесал свою паховую область.

В Сибири хорошо, холодно. Русский Гисметео про погоду наврал на 30 градусов, а какой-то омереканский сайт всё правильно сказал: нате вам в понедельник -35C. Вообще, нормальному русскому холодотерапия жизненно необходима. Я аж жену в уговоренном месте когда ждал сегодня, стоял на улице, наслаждался ледяным ветром :) А то в квартире родителей тепло, жарят на совесть, а я в омереке привык к леднику -- окна у них фиговые, дома картонные.

В омерике мне не очень нравится, поэтому поймал себя на мысли, что в Сибирь лететь хотелось. Я прям самолёты эти очень сильно не люблю и тяжело переношу. Из тёплой ламповой Чехии не хотелось. Последние дни перед полётом ходил с печальным видом, глубоко вздыхал, прощающимся взглядом смотрел на брненские холмы. И хотя сейчас из омереки добираться 32, а не 21 час, как из Чехии, но всё равно хотелось. В общем, мой текущий быт в Бостоне так себе.

Родители мне нормальный интернет провели, так что могу нормально жить и работать :) Интернеты в сибирской глуши куда быстрее и дешевле, чем в омереке. Там у меня 1.5-3 мбит/с за $35 + налоги, а тут 6 (меньше нет) за что-то вроде $10.

четверг, 16 декабря 2010 г.

Основной инструмент

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

Тогда я по работе писал на Си, Лиспом уже баловался. Выбрал C++, потому что Лиспа достаточно хорошо не знал, а Эрланг, который, как я слышал, хорошо подходит для всяких сетевых задач, вообще ни разу не использовал. И даже доки ради интереса не читал, а начинать читать в тот момент было страшновато: сроки поджимали. Зато был положительный опыт с boost::asio. Вернее, оно тогда просто asio было.

В общем-то, за неделю написал, и оно хорошо работало. Некоторое время убил на отладку падений: всё-таки, косяк в асинхронном паттерне asio со смартпойнтерами отловить сложно, кто писал, тот поймёт :)

Сейчас у меня основной инструмент, понятно, Лисп, программы на нём думаются, а с C++ уже лоб морщить надо. Ну так вот, сижу я сейчас и думаю, что сегодня такую поделку написал бы за вечер, ну за день максимум. Самое сложное, что там было - это эмуляция лямбд и сборщика мусора, а в Лиспе оно есть из коробки. И пользоваться этим несравненно удобнее. Впрочем, с заразой из мира ФП в виде функций высшего порядка в крестах тоже живётся легче. По-крайней мере, структура программы становится понятной, сконцентрированной вокруг логики, а не реализации, нет лапши. Синтаксис, конечно, всё портит, но что поделать?.. Синтаксис так и шепчет: "Забей на C++, пиши на языке помощнее" :)

И интеграция лиспового демона с похапешным скриптом через zeromq - раз плюнуть, несколько строчек кода. Вообще, хорошая штука. Жаль тогда его не было.

вторник, 14 декабря 2010 г.

Deliver in LispWorks

Предыдущий пост, кстати, про ЛиспВоркс должен был быть, но я как-то до него не дошёл...

В общем, настала пара передавать продукт во внутреннее использование людЯм, ничего про asdf2, quicklisp, systems и т.п. не подозревающих. ЛиспВоркс для такого случая очень мощно приспособлен, у него есть концепция delivery. Это когда всё, что нужно для работы программы, запихивается в один исполняемый файл, но, в отличие от панковских оупенсорсных конпеляторов, у LW есть море ручек, которые можно при delivery крутить.

Например, в LW есть такая стадия создания образа, как утряска дерева (shake tree). LW бегает по дереву программы и смотрит, чего бы такого выбросить, что в программе, собственно, и не используется. Помнится, я жаловался у гражданина Love5an'а в его уютной ЖЖшечке, что SBCL на простой трёхкилобайтный tcp-сервер с использованием флагманских библиотек, типа iolib, генерирует исполняемый файл на 300 мегабайт. Так вот, LW из коробки, только на 20 мегабайт своих исходников, плюс неустановленного кол-ва библиотек, поставленных quicklisp'ом, сгенерил те же 300 мегабайт. 20 мегабайт исходников даже не на лиспе - это чуть больше, чем дофига, а уж на лиспе с его макросами, CLOS'ами и прочими ридтейблами - ещё больше.

Но самое неожиданное заключается в ручках к функции delivery. Есть у неё ключевой параметр с интересным именем :shake-shake-shake. Он отвечает за то, как активно трясти дерево. Я эксперимента ради дал ему вожжи в руки, и он натряс с дерева ажно 250 мегабайт. Т.е. результирующий бинарник стал всего 50 мб.

Самое удивительное, что бинарник всё ещё работал. Не работал только рантаймный load сорца с DSL-программой. Те сущности, которые использовались только в этой программе, и о которой компилятор знать не мог, LW вытряс напрочь, поэтому при загрузке валилось с руганью на неизвестные функции. А так, остальное, что во время компилирования установить можно было, всё работало.

Жаль только, что нормальная версия LW стоит, как подержанная, но всё ещё очень хорошая машина...

Боженька, убей всех плохих программистов. Выпуск #2.

Второй раз за последнее время натыкаюсь на проблему с ignore-errors, когда на поиск этих самых errors, которые ignored, тратится день-два. Пока-а-а в кишки сложного проекта погрузишься... В итоге, и время потратил, и изучил то, что изучать не собирался, и что, собственно, изучать не нужно вовсе.

Начинаю ненавидеть ignore-errors с той же степенью, что и malloc'и в Сях. Видишь grep'ом десятки-сотни ignore-errors или malloc в проекте - жди беды.

Товарищи программисты, пожалуйста, если вам кажется, что в вашем лиспокоде вот тут можно проигнорировать ошибку, то наваяйте макрос-обёртку, аналогичный ignore-errors, который сам суть обёртка над handler-case, но выводит warning. Этого достаточно, чтобы пользователю вашего кода вовремя заметить ошибку и начать копать её предметно, а не предварительно втыкать несколько часов в монитор со знаком вопроса в глазах, терзаясь смутными сомнения и не решаясь лезть в болото.

А теперь о погоде: в Бостоне тепло. Т.е. холодно, но воздух сухой, поэтому тепло. Сегодня немножко порывался снег идти, но позорно ретировался. Так и стоит погода позднего сибирского октября, когда вот-вот снег выпасть должен.

Кстати, о Сибири... Через два дня сажусь на свой кожанный диван с подогревом и запахом цветочков (Volvo V70 который), еду в Нью-Йорк, откуда летит мой самолёт. Заработался совсем, пора в отпуск! В отпуск, в Сибирь! :)

суббота, 11 декабря 2010 г.

Субботняя прогулка

Съехдил, посмотрел на здание Редхата в Вестфорде. Прикольное.

Потом поехал в Great Book Farm State Park, погулял немножко. Так себе. На велосипеде кататься не везде можно, подлесок густой, диких спусков, как в Чехии не сделаешь. Да и рельеф максимум на ленивую прогулку на хардтейлах с женой.

Скучаю по Чехии.

пятница, 10 декабря 2010 г.

Крик души

Дорогой боженька! Пожалуйста, убей всех плохих программистов!

среда, 8 декабря 2010 г.

Long live Common Lisp

У ANSI CL, типа, 18-го декабря - юбилей, поэтому лисперы по всей планете отмечают праздник, клепая мегакод. Я следующую фигню решал.

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

Сколько усилий потребовалось, чтобы в браузере начать мышкой тыкать? Всего лишь добавить в макрос-генератор классов опцию :metaclass и указать метакласс от фреймворка, на котором крутится cl-user.net. Причём, приукрашательства ситуации, практически, нет (ну глюк нашёл, initarg у слотов по пути съедался, делов-то). Фреймворк сам траверсит объекты и их иерархию, используя метаобъектный протокол, и рисует умолчательные формы. Мне ничего дополнительного писать не пришлось, фреймворк даже юзает стандартные мои акцессоры для чтения регистров ядер с железки по сети.

То есть, что получается: к обыкновенному объектному коду можно привешивать метаклассы и получить автоматически интеграцию с веб-фреймворком, который о сути подсовываемых ему объектов ничего, собственно, и не знает. С другой стороны, в метакласс можно прикрутить такие мощные вещи, как персистентность объектов или чёрта с рогами, и мой DSL'ный код никаких изменений не потребует.

Собственно, персистентность там уже есть, а также присутствует проксирование, когда начинка объектов валяется где-нибудь на другой машине, а локально от объекта есть только шкурка.

И, да, ни строчки HTML.

воскресенье, 5 декабря 2010 г.

Газпром^WЛисп: мечты сбываются

Первую детскую мечту я осуществил: Вольво купил. Не, это вторая... Первая была - жена-красавица-умница, но этот вопрос ещё до Вольвы решил.

В общем, настала пора следующей по списку мечты!

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

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

И вот, переехав в страну, где в магазинах есть абсолютно всё, цены аццки низкие, а з/п выше европейской, купил гитару. Вернее, стартер-кит в ипостаси Ibanez IJX121. Ibanez, потому что на ней фигачит уважаемый мной в 90-х годах Abbath из Immortal. Внутри (всё ибанезовское) лежала гитара GRG121EX, 15-ваттный комбик и всякий дешёвый хлам, типа медиаторов, сумок, автотюнера, кабелей.

Пальцы от струн воют, суставы трещат от попыток взять некоторые аккорды (у мну лапищи с короткими толстыми пальцами, заточенные под Емакс, руль горного велосипеда и битьё морд газовым ключём). Жена со снобистским смехом критикует мой деревенский подход и предлагает начать с зазубривания грифа и "В траве сидел кузнечек".

Но я верю, что прорвусь. И буду рубить и жужжать, жужжать и рубить. Ждите труЪ-позерских фоток ;)

2.6.36

Сабж - это вещь!

На моей старенькой Тошибе А100 после апдейта самым неожиданным образом исцелились раньше, якобы, умирающие SD/MMC кардридер и DVD-привод.

Кроме того, улучшилась ситуация с отзывчивостью системы при активном нагибании винчестера. Плюс в арчевский* конфиг ядра по моей просьбе включили поддержку huge pages, так что моя убербыстрая писанина на смеси Си с ассемблером может ещё наносекунд срезать. Кстати, биржи начали интересоваться этой писаниной, больно гистрограммы времянок заманчиво выглядят =)

Я чё-то теперь даже не знаю, надо ли новый бук покупать?.. У этого меня всё устраивает. Экран, конечно, говно полное, но я не фотошопер, всё же. Зато батарея даже после трёх с половиной лет держит около двух часов.

[*] Касаемо Арча: это самый стабильный линуксовый дистрибутив, который я только видел. Ни одной регрессии после постоянных обновлений не замечено, несмотря на арчевскую rolling based-суть. Система просто работает, и в ней всегда свежий софт. Конечно, не сразу после релиза в апстриме всё появляется, пока там пакеты отлежатся в тестинге, но впечатляет сам факт, что я энергию на борьбу с апгрейдом на следующий релиз и его последствий больше не трачу.

RabbitMQ <-> ZeroMQ

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

суббота, 4 декабря 2010 г.

42 (биржи, лисп и всё такое)

Как известно, у бирж много денег. Это значит, что много денег может быть потрачено на исследования и разработку технологий, приближающих очередной неминуемый крах экономики ещё быстрее. Очевидным решением в борьбе с задержками при приёме и обработке биржевых данных является переход на FPGA, что многие биржи и делают. А если и не делают, то очень зря, это им скоро аукнется. В общем, биржи нанимают классных и дорогих спецов по VHDL и проектированию железа, но результат получается всё равно хуже, чем у среднего пошиба железячников, типа нас. Нет, конечно, мы круты, но только биржа может позволить нанять специалистов мирового уровня с з/п полмиллиона долларов в год. Почему же у нас получается лучше?

Ответ лежит в технологии проектирования FPGA-железа. Само железо достаточно медленное, работает на тактовой частоте порядка 150-200 МГц. Понятно, что если применять последовательный подход, как это делается в программах для обычных компьютеров, то FPGA будет на порядок медленнее. Поэтому в хвост и в гриву используется параллельный подход, когда одни и те же данные, по мере их прибытия в железку, спекулятивно начинают обрабатывать различные логические ядра в расчёте на то, что когда все данные придут, и станет понятно, что это, собственно, за данные, то одно ядро уж точно будет иметь все карты на руках, плюс почти всё содержимое уже спекулятивно обработало. Остаётся только завершить формальности и отправить декодированный пакет наверх.

Так вот, программировать это нереально сложно. Несовершенные человеки делают море ошибок, пишут долго, а в итоге всё равно получается неидеально, ибо мозг гомо сапиенса заточен на последовательное исполнение.

И тут, на белом коне, под грохот барабанов и горнов, со сверкающей саблей в руках выезжает красавец Коммон Лисп, на котором написан декларативный DSL, представляющий из себя описание форматов и набор правил, как эти форматы обрабатывать. Парсеры пакетов, всякие триггеры, редукцию графов и полную параллельность строит машина, которая делает это быстро и без ошибок. В итоге, на долю ручного VHDL-кода остаётся процентов 10 исходников, и то, касаемо технических аспектов функционирования: эзернет, там, или pci-e. Но вся бизнес-логика генерится по декларативному описанию.

В планах ручной VHDL истребить почти полностью, уж слишком дорого обходится его разработка: затяжные глюки, срывы сроков, пени...  Вместо пятерых железячников дешевле нанять одного толкового лиспера :) Ну и надо-то их всего несколько штук, а то они всё работу быстро попеределают и зевать от скуки начнут.

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

среда, 1 декабря 2010 г.

Новости из ОТК

Жена (base os qe в редхате) пишет системтаповский скрипт для создания условий по воспроизведению бага в cups'е. Ужыс, куда власти смотрют?

вторник, 30 ноября 2010 г.

А вот ещё один случай был...

Что-то порасписался сегодня... Это всё от того, что ни жены, ни велосипеда под рукой нет, энергию девать некуда :)

Зацените размах деятельности на текущей работе:
  • Июнь: в порядке ознакомления с одним из проектов фиксил тыщу ворнингов в лисповой QA системе. Добавил систему сообщений об ошибках в DSL-компиляторе парсеров финансовых пакетов (он раньше неправильные конструкции просто молча игнорировал, либо генерил кривой код, который гарантированно падал с непонятной ошибкой). Собственно, на этом DSL'е наваял тулз, выдирающий финансовые инструменты из дампа трафика биржи;
  • Июль: писал новый лисповый QA тулз для тестирования логики работы железа, в замен старому. Новый должен был обладать искуственным почти интеллектом, и, собственно, получился таким. Было вскрыто море глюков даже там, где железячники божились, что их нет. Ещё помог драйверистам заточить низкую латентность в линуксовом драйвере для нашего аппаратного мессейджинга, плюс ревью драйвера и системы в целом сделал;
  • Август и полсентября писал мегабыструю фигню на смеси си с ассемблером. Много жонглировал префетчами, хинтами для условных переходов, упаковкой данных, делал кучу тестов и строил кучу графиков;
  • Остаток сентября и октябрь принимал активное участие в дизайне следующей, жутко вумной версии системы, где лиспа и всяких DSL'ей ещё больше. Клепал страшную штуку, которая по DSL'ям и тайным знакам с неба вникает, чё это за железка и настраивает её. У меня иногда создаётся такое впечатление, что мы тайно Терминатора делаем. Плюс когда девелопер остатков сишной части в эмдеддед железке на два дня отлучился, с негодованием перекурочил его код. Десятки маллоков, ненужные слои абстракции, доморощенная объектная система пошли под топор. В результате код стал в три раза проще и безглючным;
  • Сейчас ваяю веб-морду на фреймворке, на котором склёпан cl-user.net. Вещь жутко страшная в плане наворотов, плюс документации совсем нет. Но её наворотил наш мегабосс, поэтому без вариантов ;)
  • На начало следующего года в планах - доводка до ума лиспообразного VHDL'я, написание виртуальной машины с отладчиком логического уровня и импортирование/переписывание ручного VHDL кода с устранением логических багов, которые на сигнальном уровне нифига не ловятся.
Вот такая клёвая работа в лисповом стартапе. Скучать не приходится!

Страна перверций

Вот скажите пожалуйста, всё ли в порядке с логикой у людей, которые делают такие монеты?
Голос за кадром: на экране представлены монеты Соединённых Штатов Америки достоинством, слева направо, 1, 5, 10 и 25 центов.

Я вот пока в википедии не прочёл, что это за "дайм" такой, думал, что это нечто мельче 1 цента. А, оказывается, это целых 10.

понедельник, 29 ноября 2010 г.

If you want to talk to competent specialist, you should hire him first

Вот что сказал ночальнег на мои жалобы по поводу качества тех.поддержки конторы Verizon.

Собственно, а чего это я туда звонил? Неужто мне, сертифицированному админу (RHCE), не удалось настроить сраный DSL? Да нет, всё получилось. Меня даже не смутила 15-мегабайтная виндовая программа, которая делает чОрную магию настройки коннекта. Под вайном она, конечно, не пошла, но у мну заготовлена винда для апдейтов навигатора. Делов-то, настроить DSL. Ни вываливающиеся консоли с мелькающей надписью command not found, ни повисший в середине процесса модем, ни коварные 10-минутные ожидания чего-то в софтине меня не смутили.

Смутила вот скорость. Я купил 1.5-3 мбит/c, а speedtest.net показывал на более 1. Т.е. это тарифный план 0.7-1, но никак не 1.5-3. Ну, фигли, телефон саппорта есть, чё ж не позвонить-то? Денюжку-то я за 3 платил, а мне 1 впарили. Требую сатисфакции!

Саппорт в омереке - это та сфера, на которой все поголовно экономят. Поэтому первые 15 минут прорываешься через тётко-роботов, которые предлагают перезапустить модем, проверить коннекторы, свериться с лунным календарём и ударить в бубен. И тогда-то уж точно всё заработает. Только ещё раз проверьте коннекторы, перезапустите модем и проверьте коннекты, это причина всех бед, обычно. Коварная тётка обучена распозновать ответы клиента (Say "no" if that didn't help you), но мой сибирский акцент, помноженный на некоторые речевые дефекты, она не распознавала. В итоге, на четвёрое переспрашивание она предлагала нажать 1, если "йес", и 2, если "ноу". И вот так на каждой срани тратил полторы минуты. В итоге, тёткоробот сдался и решил допустить меня к телу Живого Человека.

К сожалению, у них тут что-то глюкнуло, и связь оборвалась. Что ж, я всегда с радостью готов ещё 15 минут потратить на общение с роботом. В конце-концов, допустили до тела реальной тётки. Я ей сразу обрисовал ситуацию, что, мол интернет есть и работает, но скорость не соответствует заявленной. У тётки такого в инструкциях не было, поэтому она начала завать кучу глупых вопросов, типа, опять же, проверьте кабели, какие лампочки на модеме мигают, что за модем и т.п. На мои робкие намёки, что интернет у меня работает, и я ей ваще со скайпа через этот интернет звоню, она предлагала ещё раз ребутнуть модем, проверить лампочки и сказать ей серийный номер модема. Я упрямо отказывался ребутнуть модем, ибо скайп пока работает не через телепатию.

У тётки сработал триггер: клиент не может настроить интернет.  Она предложила мне пройти по такому-то url'у, скачать цитриксовскую лабуду и разрешить ей подключиться к моему компу. Я недоверчиво покосился на свой StumpWM и открытое окно Emacs'а, но ладно, раз человек хочет... Цитрикс, естественно, обломался расшарить мой "рабочий стол", а, вернее, рабочую табуретку, привязанную бельевыми верёвками к дверце холодильника и подвешенную за окном двумя этажами ниже. Примерно таким бы ей моё рабочее окружение могло показаться. Чё там, даже тёртые лисперы под полтинник возрастом от моего ноутбука бегут в ужасе со всклоченными остатками волос и воплями: "Шоетозанах?!!". Чё делать, в винду грузица надо. Попросил тётку перезвонить мне на мобилу двумя минутами позже.

Тётка перезвонила, я ей дал доступ к венде, она (внимание!), открыла браузер, скачала веризоновскую программу установки, провела установку и продемонстрировала мне, что вот, теперь уж интернет точно работает. Я был крепко впечатлён, наблюдая, как она делает своё кунг-фу поднятия интернета по уже поднятому мною интернету. Намёки на то, что интернет уже кагбе работает, она не приемлила. Зато раз 5 пыталась установить антивирус и файерволл, который 3 месяца бесплатно, а потом $10/месяц, но я её обрывал каждый раз. Она искренне не понимала. Мол, ты чё, халява ж 3 месяца?!

В общем, кастомер, сука такая, всё никак не начинал чувствовать сатисфакшна. Тётка зашла на вебсервер модема, залезла в статистику и показала, что вот он, твой сраный мегабит. Даже железка показывает заслуженный мегабит, что тебе ещё надо? Ну чё делать, не внемлет мне тётка? Тогда пришлось воспользоваться тем, что она видит мой десктоп. Я зашёл на гмейл, нашёл письмо от веризона с подтверждением заказа номер такой-то, скопировал при ней номер, открыл сайт веризона, ввёл в нужное место номер, вуаля: 1.5-3 мбит/с, а не сраный 1 мегабит.

Тётка долго молчала, потом сказала, что ей нужно тут посовещацца. Окей, дуй. Через несколько минут ожидания она вернулась, и сказала, что ей нужно обратиться в "другой отдел". Окей. В другой отдел она обращалась минут 15, и, в итоге, припёрлась обратно с каким-то мужиком. Мужик унылым голосом спросил, чё стряслось-то? Я ему вкратце всё пересказал. Он понял. За минуту проапгрейдил мой план, сказал, что изменения вступят в силу в течение 24 часов. За косяк конторы делает скидку 10 баксов. Спасибо за звонок, до свидания.

Мужик скинулся с линии, а тётка ещё раз скачала установщик, провела заново процесс инсталляции, чтобы уж точно всё работало, и пытались поставить какую-то виснущую вендовую хрень. Я вконец потерял терпение, прочитал настройки iptables, продекламировал выборочно исходник используемого сетевого драйвера и сказал, что сам доставлю эту несомненно важную софтину. А потом отформатирую винчестер, чтобы очистить компьютер от скверны веризоновского саппорта, чтобы не дай бохх мои программы не стали работать с таким же качеством. Как-никак, 2 (два прописью) часа, вися на телефоне, добивался того, чтобы мне нужный крыжек в глубинах ихних настроек поставили..

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

Сабж.

Обещанные фотки океана

воскресенье, 28 ноября 2010 г.

Макбук

Чувак купил себе сабж, и вот мне на рабочее мыло с его гмыловского аккаунта начал приходить спам :) И правду ведь говорят, что на макбуках всё просто работает!

суббота, 27 ноября 2010 г.

Океан

Ездил сёдня смотреть море-океян. С той стороны его видел (Северное море), теперь вот с этой ознакомился. До симпатичного местечка Rockport ехать час. Попрыгал по пустынным скалам, попугал чаек и уток, наделал фоток. Воздух холодный, пахнет рыбой, дует сильный ветер. Хочу жить в Рокпорте.

Фотки будут в понедельник, как интернеты подключат. Модем вчера пришёл, но сеанс связи с уполномоченными лицами состоится только в понедельник.

пятница, 26 ноября 2010 г.

Лохотрон

Ещё до того, как начать перевозить шмотки в свежеснятую хату, я заказал на сайте провайдера (Verizon) подключение. Это было в прошлую пятницу. Прошла неделя, интернет у меня будет в понедельник.

Сейчас на сижу на вайфайной точке ночальнега, гоняющей трафик через что-то мобильное. Когда пожаловался ночальнегу, что в Verizon работают тупые ленивые скоты, и они не могут в нормальный срок выслать мне DSL-модем, он сделал круглые глаза и спросил: "DSL? Как DSL? Ты не оптоволокно подключаешь?". На что я ему ответил, что за месячную цену оптоволокна тут у нас там, в Чехии, тебе магистральную линию протянут и полгода бесплатной работы дадут. Поэтому будет стрёмно работающий DSL 1.5-3 мбит за $35/месяц + налоги. Ночальнег сказал, что, вероятно, его точка, которую я гоняю, будет не сильно медленнее DSL, и безлимитный трафик стоит всего $25 в месяц.

Я в шоке давай изучать девайс. Оказалось, что это EDGE, поддержка которого присутствует и в моём ведроиде. И по вайфаю он тоже умеет раздавать. Погонял speedtest.net, получил по полтора мегабита в обе стороны. Ну и так, по ощущениям работает достаточно быстро.

Беда, печаль, огорчение... Надо было контракт с безлимитным трафиком брать, и не париться.

зыж: что касается сеньксгивина, то семи смен блюд и моря алкоголя, как у моих родителей на Новый год, у них, омереканцев, нет. Да не только у моих, у русских вообще НГ с большим размахом отмечается, даже если взять только ночь на 1-е января :)

вторник, 23 ноября 2010 г.

Примета

Если в магазинах кончились whiteboard'ы - ждите бурного подъёма экономики. Реально, несколько дней ждали своей очереди на доску.

Белая доска - это, конечно, круто! Рисуешь квадратики, стрелочки, неразборчивые письмена. Жаль только, что семь часов времени от рабочего дня съела за один присест. Но, как сказал ночальнег, самое сложное сделано: осталось всё это запрограммировать ;)

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

понедельник, 22 ноября 2010 г.

Телефоноид

Мой новый телефон (T-Mobile Comet) бегает под линуксом в ипостаси Android версии 2.2.

У андроида есть такая прикольная штука, как Android Market. Я оттуда поставил sip-клиента для звонков родителям на стационарный телефон, скайп для болтания с женой и даже русскую клавиатуру. Даже из коробки телефон был оснащён гмейловским клиентом, а также обычным pop3/imap, веб-браузером, джаббером (умеющим только гугль толк, но в маркете наверняка сторонние клиенты есть), просмотрщиком всяких разных документов, ютубом, плейером, радио, 2G, 3G, вайфаем, блютузом, навигацией с картой и прокладывальщиком маршрутов (через гугль мапс), всякими фейсбуками и твиттерами. Не говоря уже про стандартные органайзеры, записные книжки и т.п. И из маркета ещё миллион вещей можно поставить.

Фактически, если есть доступный вайфай, или контракт включает трафик, то телефон полностью заменяет компьютер при обычном потребительском его использовании. Например, почту, ленту.вру и ЛОР я читаю утром в постели, когда ещё толком не проснулся и вставать лень.

Звонить вот только не очень с него удобно =) Бред такой: на телефоне можно делать этот самый миллион несвойственных телефону вещей, а звонилка не очень удобная.

Но я всё равно доволен, комьютер в кармане - это очень удобно. Рюкзак с ноутом больше не нужен. Вот стану богатым, поменяю препейд на план с большим или даже безлимитным трафиком, буду по 3G (у T-Mobile в омереке немерянное покрытие) навигацией заниматься, прокладывать маршруты, читать сайты, писать письма и смотреть ютуб. Или одним движением руки ведроид превращается в вайфайную точку доступа, шарящую трафик по 3G. Это если вдруг с реального ноутбука понадобится в онлайн выйти. В общем, могу заниматься своими делами, пока жена на двухпедальной машине везёт пьяненького мужа =)

Такие дела в современной цивилизации.

воскресенье, 21 ноября 2010 г.

Такая вот фигня

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

Вся эта интернетизация приводит к тому, что человек становится жутко социальным, и от одиночества крепко страдает. Если сразу после конторы не проработал 4 месяца дома, а сразу понапереехал в омереку, то в первые же выходные в своей хате накинул бы хорошо промыленную верёвку на люстру.

Хоть вой...

Про машину

У Сеата Ибицы боковое зеркало с водительской стороны состояло из двух частей. Основная часть смотрела в одну сторону, маленькая часть у внешней границы зеркала - немножко в сторону, плюс было выгнуто. Это помогало уменьшить слепую зону: в маленькой зоне ничё толком видно не было, кроме факта присутствия  какой-то машины.

На езженных тут Тойоте и Вольве это не так: зеркало просто плоское, и нужно реально вертеть головой, чтобы посмотреть на слепую зону. Это совершенно нечётко, поэтому на зеркала были докуплены и прилеплены маленькие регулируемые зерала. Теперь всё чётко видно, меняю полосы без опасений, что вот щас кого-нибудь невидимого бортану.

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

Бортовой компьютер, показывающий мгновенный расход топлива, развивает патологию: лишний раз на педаль газа не нажмёшь. Даже в горку лениво вползаешь, чтобы красивую цифру среднестатистического расхода не сбить ;) Вот так и станешь старпёром...

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

Немножко раздражает заторможенность автоматической коробки. Ибица вот на педаль моментально реагировала, пока хватало мощности двигателя. Т.е. до 3-й передачи включительно. Вольве же даже когда kick делаешь (педаль резко в пол), то она задумывается, потом щёлкает передачу вниз и начинает разгон. Хотя в ней 170 кобыл на 1700 кг, а у Ибицы было 75 на 1600...

суббота, 20 ноября 2010 г.

Status update

Бостон в плане жилья - город компромисный. Во-первых, тут цены задраны - мама, не горюй.  Во-вторых, всё старое, обычно. В-третьих, до 78-го года жильё малевали красками с высоким содержанием свинца. В 78-м очухались - вредно же - красить перестали, постановили, что детям в таком жилье раститься нельзя, сдавать халупы нельзя. Делайте очистку от свинца (порядка $30k), тогда всё ок.

Понятное дело, что $30k даже для богатого Бостона - это дофига. Новая Хонда Цивик стоит 25, Вольво - 35. Поэтому сдают и растят нелегально. Власти на это глаза закрывают, т.к. жить-то и раститься где-то люду надо. Примерно также, как законные 55 миль/час никто не ездит - минимум, 65.

Вобщем-то, жильё снял, но с компромисами. Компромисы усугубились тем, что жильё новее 78-го, поэтому суть "экологически чистое", но взамен дадено пучок минусов. Мечты, конечно, рисовали беззаботную жизнь на роскошной вилле с бассейном и чернокожими лакеями, с дрожью в голосе обращающимися к тебе по имени: "масса лиспер", но мечты были начисто разбиты о гранит реальности. А шо делать?

Я, кстати, такую закономерность вычислил: работаю в чисто софтовой конторе - мало денег, хорошая квартира. Работаю в железячной - много денег, квартира компромиссная...

Ну, значит, вселился. Хата пустая, только кухня и два унитаза стоят. Спасла вездесущая Икея, где по-дешёвке можно втариться всяким мебельным добром. Но всё равно чемодан денег оставил, т.к. ну ваще ничего не было. Мебельное добро успешно погрузил в длиннющую Вольву и в комфорте довёз до дому, подогревая зад специально обученным креслом и слушая радиво со старыми американскими песничками по системе долби сурраунд (ибо диски с белой музыкой ещё не успел в чемоданах найти). До второго часа ночи свинчивал всё в кучу. На одну только кровать 6 часов ушло, там просто мильон деталей  :( Кстати, крокодила Вольву ради только переездов надо иметь.

Свинтил, положил матрас, застелил и упал замертво. Силы напрочь покинули моё бренное тело, вслед за аппетитом. Мозг еле соображает, как правильно скобки в программах раставлять. За неделю потерял 4 кг, вот.

Но щас хоть можно ходить по дому в трусах*, круглосуточно пить кофе, разогревать икеевскую еду в микроволновке, намазывать клубничное варенье на свежие тосты и слушать белую музыку. Ужасно хочется доделать всю домохозяйскую фигню, выгрести тонны картона на помойку, разложить чюмоданы и начать уже спокойно жить. Хотя бы пару месяцев, чтобы никуда мчаться не надо было.

* в трусах можно ходить не только потому, что никто не возмущается, но, главное, из-за темперары в хате. У ночальнега дома выше +18 даже днём не бывало, плюс сквозняки через стены ходят. Как они там зимой живут - хз, а я полведра соплей на бумажные платки намотал за ту неделю. Но всё равно спасибо, что приютили :)

P.s.: Да, я тут как-то жаловался на давление (атмосферное). Мол, высокое очень, уши закладывает, шумит. Это я ошибался, это не давление. Это деньги со свистом покидают мои карманы.

четверг, 18 ноября 2010 г.

Пиво

Чешский Pilsner Urquell, сваренный в чешском Плзне, можно купить в Бостоне. Вкус, правда, не тот. Т.е. тот, но вот той великолепной изюминки, от воспоминания о которой у меня всегда появляется обильное слюноотделение, тут нет :( И не похоже, что вкус так из-за несвежести изменился. Скорее всего, консервируют по-другому. Понимаю теперь отзывы американцев: мол, так себе...

Придётся искать местное, свежее пиво на замену.

Quality Assurance position is needed

Есть опытный и очень ответственный линуксовый тестировщик, умеющий составлять тест-планы по целым подсистемам операционки (таким, как cups, udev, initscripts), писать автоматические тесты для них и многого другого (ядро, виртуализация, платформоспецифичный утиль типа s390), гонять их, плюс ручное тестирование. Грамоте обучен (си, баш, питон), имеет соответствующий сертификат RHCT. Англицкий свободен. По образованию программист, по призванию последние лет пять - QAшник. Влюблён в свою работу, born to test, самый чёткий и производительный работник в своём тиме.

К сожалению, сложилась такая ситуация, что человеку нужно переехать в другую страну, а компания по внутренним причинам не может его перевести или обеспечить удалённой работой. Человек ищет работу с физическим присутствием в офисе в районе Бостона (MA, который), либо удалённо на любой офис мира. Для работы в американском офисе рабочую визу делать надо, релокейт не надо.

Ни у кого из френдов, случайно, не завалялась лишняя подходящая позиция?

Мой диван

среда, 17 ноября 2010 г.

Давно не писал

Позвонил агент, сказал, что клёвую квартиру, которую я присмотрел, уже сняли три дня назад. Он, скотина, был не в курсе. Показал ещё три штуки. Одна понравилась, всё новое, но смотрит на сторону, где поезда ходят. Жена такое негодяйство сразу бракует. Вторую ремонтируют, ещё недели две ждать. В итоге, скорее всего, въеду в односпальную квартиру, 3 комнаты, если по-русски. Менее прикольная, но должна быть тихой.

Купил машину, Volvo V70 2002-го года. В тот же день застраховался, почти $2000 в год платить :-\ и получил номера (с налогами ещё $500). Бюрократии тут много, но работает она быстро. Только везде нужна наличка, ибо в омереке банковские карты не любят. Сгонял в Арлингтон за начальником, потом с ним доехал до машины и обратно уже ехал на ней. За день суммарно накатал больше 5 часов.

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

Борода => Лисп => Успех. Так то.

Машина, кстати, огромная, в ней реально можно спать ;) Средний расход 22 мили на галлон или 11 литров на сотню. Т.е. по деньгам будет выходить, как Ибица в Европе, ибо тут топливо в два раза дешевле. Коробка более менее нормально работает, хотя переключается всё равно не тогда, когда мне хочется. Толстый мануал по всем кнопочкам за вечер не осилить.

Ещё б заселиться побыстрее и начать уже ходить по дому в трусахнормально работать...

вторник, 16 ноября 2010 г.

Status update

Почти снял квартиру*, почти купил машину**, работаю (пишу DSL'и), с прошлой среды не слушал свою коллекцию шумов. Усиленно худею по программе трёхразового питания (ну, вы знаете: понедельник, среда, пятница). Аборигенов понимаю плохо, пока они не начинают повторять медленно и членораздельно. К двухтапковой машине привык, нравится. Заправил полный бак за полцены, которую платил в Чехии. Подался на social security number. Как получу, открою счёт в банке. Морально готовлюсь к сдаче на местные водительские права. Скучаю по жене.

Хочу уже устаканить тут жизнь и начать, собственно, жить.

* обещали заселение на этой неделе. Если не заселят, я тут коробку из-под телевизора уже присмотрел.

** куплю, вероятно, завтра, а когда получу страховку и номера - хз.

суббота, 13 ноября 2010 г.

Бостон

Сабж прекрасен. Своего рода, Кралово Поле в Брне, только совсем другой, но такой же очаровательный. И, в отличие от Брна, везде одинаково уютный, где я был. Вот вам картинка улицы, где я временно дислоцирован.

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

Съездил, посмотрел три машинки. Ужосанах. Ездят тут, как попало, машины все коцанные, микроповреждения лаком не закрашивают, и они разрастаются до крепких таких ржавчин.

Ещё купил телефон. Samsung Intercept, очень крутой, но он оказался CDMA, поэтому пришлось сдать и взять T-Mobile Comet. Тоже ведроид, но мне прошлый больше нравился.

P.s.: забыл сказать, что съел Настоящий Американский Гамбургер. Вкусно, не смотря на толстое колечко лука, который я ненавижу. Но лук какой-то без цвета, без вкуса и запаха был, поэтому блюдо в урчащую утробу пошло на ура.

пятница, 12 ноября 2010 г.

Про машины

Дали временно, до среды погонять "Тойоту" нашего сейлза. Она показывает надписи maintenance required, check engine и, для пущей сурьозности, играет холостым ходом.

Двухтапочная машина непривычна. Педали как-то не так расположены, как на Ибице, педаль тормоза дальше находится, поэтому я её жму левой ногой, потому что правой всё время на газ пытаюсь надавить :( Тормоз хватает, аки зверь. Я хочу чуть-чуть притормозить, а он машину колом ставит. Ещё напрягает, что газ отпускаешь, а машина катится с той скоростью, до которой успела разогнаться.

И вот ещё что: с первой на вторую я плавнее ваших автоматов переключаюсь. Да и вообще не понять, как она в каких случаях на педаль реагирует. Хотя, это может и check engine виноват. Но ручка всё равно как-то роднее.

Утренний кофе-апдейт

В Бостоне высокое давление, 775 мм. В Брне обычно около 750, и меня тут страшно плющит.

четверг, 11 ноября 2010 г.

Just arrived

The flight to Heathrow was delayed by almost 1 hour due to bad weather, so it was *really* tricky to make it happen. I was running through airport, chewing Snickers at the same time. The flight over Atlantic was fine, I ate decent lunch, drunk small bottle of wine and fall asleep to the very ending.

The border crossing took me 5 minutes maximally. In US, known for its paranoid security level. Yeah, that's not Sheremetjevo... Oh, why do I use english? Because both my linuxes (Arch and Ubuntu) weren't able to connect to unsecured network, so I'm typing in english version of Windows XP :-\

My cellphone doesn't work here and I don't have plug adapter EU->US for the laptop. These are the first things I'll buy tomorrow.

вторник, 9 ноября 2010 г.

Простуда

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

воскресенье, 7 ноября 2010 г.

Колумбское

Еду открывать омереку в четверг.

CL-ZMQ v0.2

Потихоньку пилю сабж. Основными отличиями от ветки 0.1 - сломанное API :) Как-то:
  • Классы-врапперы заменил на структуры. Классы были нужны, как собаке пятая нога.
  • FFI'шные контекст и сокет тоже обёрнуты во врапперы. Соответственно, RAII макросы with-foo выкинуты, ибо теперь можно let'ом обойтись. Надо ещё подумать, как оставить возможность закрытия контекста и сокета до того, как объект будет прибран сборщиком мусора.
  • Функции msg-data-as-{foo} заменены на msg-{foo}. Диспетчеризацию по кейворду не стал делать, нафиг надо.
  • Для неблокирующегося режима нужно знать код EAGAIN. Раньше только ради этого требовался целый iolib.syscalls, который через cffi вычислял реальный код. Сейчас решил iolib выбросить и захардкодить значение(я). Через cffi-grovel тоже не хочу вычислять.
  • poll (пока сломан) будет дополнен конструктором полл-сетов, чтобы не консить каждый раз в with-poll, создающий полл-сет динамически.
  • Будет возможность переиспользовать уже выделенную память сообщений с помощью штатного setf.
  • Может быть, переименую константы в lispy-вид, т.е. добавятся плюсики по бокам. Или сделаю их кейвордами, но это будет несколько тормознее в рантайме, т.к. нужно будет искать значение кейворда.
Так, в принципе, не сильно всё меняется, поэтому особо жёстко софт фиксить не придётся. Но всё равно 0.2 хочу привязать к выходу следующей версии 0MQ, у которой будет сломано API.

В репозитории на repo.or.cz изменения лежат в бранче v0.2.

Наболело

Вот есть известная такая voip-контора, зовущаяся скайпом. Сервис звонков на реальные телефоны достаточно дорогой, проприетарщина гнусная, свой особенный клиент толкают, если не предпринимать меры, то через тебя траффик левый гоняет. Но! Когда платишь деньги, то они появляются моментально. Оно даже само может пополнять баланс с твоей банковской карты. В принципе, неправильно, но кому-то даже удобно. Тем более, что суммы небольшие списывает и емейлы присылает с отчётом о содеянном, так что вовремя можно среагировать и отключить.

Есть куча sip-провайдеров, одним из которых (pctel) я пользуюсь для звонков родителям. У них раньше было много проблем со звонками, например, разговор обрывался на полуслове и больше дозвониться было нельзя, хотя скайп через тот же шлюз звонил нормально. Чинить сами они не хотели, поэтому пока какой-нибудь горемыка типа меня не пнёт, то связь могла отсутствовать сутками. Сейчас, вроде, получше, но "осадочек остался".

С зачислением денег у них постоянно проблемы. Деньги зачисляет вручную тётка, поэтому если деньги кончились на выходных, перенесённых праздниках или во время больничного, то фиг тебе, а не общение. Даже в нормальном случае деньги зачисляют не раньше, чем утро-обед следующего дня в русском дефолт-сити. И вот ещё какая беда есть: платить можно в советских рублях, долларах и евро. Я платил в евро, и, порой, зачисляли "округлённую" сумму. Т.е. вместо 366 рублей (10 евро) получал 300 рублей. Щас вообще из выпадающего списка можно выбрать только рубли, т.к. на суммы меньше 200 единиц в любой валюте их состема говорит, что меньше 200 рублей платить нельзя. А я евро ставлю. Но мне 200 евро на балансе в ихнем сервисе нафиг не надо, я столько несколько лет буду проговаривать.

К техподдержке тоже нарекания есть: им говоришь, что у меня направление такое-то не работает, а они говорят, что "у них всё работает". Я за них, конечно, рад, но я клиент, плачу деньги, и у меня не работает.

Вощемта, наверное, перейду на скайп. Он всегда работает и всего в два раза дороже. Проприетарщина проприетарщиной, но от советской сферы услуг кровавый понос, порой, бывает. Не умеют люди бизнес по-человечески делать.

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

пятница, 5 ноября 2010 г.

Жена жжот!

[16:26] 1349> я уже выбрал подарки тебе на ДР и мне на НГ :)
[16:27] Ulka> А мне на НГ?
[16:27] 1349> на ДР в два раза дороже, чем мне на НГ
[16:27] Ulka> что это? :)
[16:27] 1349> хочешь, чтобы сказал?
[16:27] Ulka> ну да, хотела бы знать хотя бы твой подарок :)
[16:28] 1349> а твой?
[16:28] Ulka> ну мой тоже можно
[16:28] 1349> ведь никакого интереса не будет
[16:28] 1349> а то ещё и протестовать начнёшь
[16:28] Ulka> ну свой скажи тогда
[16:28] Ulka> :)
[16:28] 1349> нафиг? :)
[16:28] Ulka> я догадалась
[16:29] Ulka> мне на ДР+НГ = двухподвес
[16:29] 1349> :-D
[16:29] Ulka> тебе на НГ - хард тейл для меня

Ъ пешеход

Продал машину. Велосипед продал ещё раньше. Теперь только своим ходом...

четверг, 4 ноября 2010 г.

Линупсы

Тут щас товарищ catap бьётся с порушевшейся Федорой. Разобраться и поправить ручками можно, я такое делал, но быстрее переставить. Однако, у него как-то всё на одном разделе оказалось.

Сия история навела меня на мысли, что если мой Арч попортится, то я его второй раз ставить не буду: ручной работы много. Поставлю обратно Федору. Наверное.

И ваще, внешний винт же для бэкапов прикуплен, чё я парюсь? :) Пошёл тарить рут...

среда, 3 ноября 2010 г.

Контуперы

Умирает домашняя пластиковая Тошиба-А100. Через несколько дней после покупки (в 2007 году) появился моргающий красный пиксел, исчезающий после прогрева матрицы. Потом что-то случилось с левым динамиком: молчит, пока громкость не крутанёшь в район максимума. Потом dvd-rw привод перестал писать, а недавно перестал и читать. Раз 10 в день издаёт звуки, как будто у него исчезает и заново появляется питание.

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

Ноут не ронялся, в сумках-рюкзаках, практически, не таскался, обращались с ним бережно. Плюс больше двух лет включался чисто эпизодически, т.к. на работе ноутбуки выдавали. Батарея успевала в ноль разрядиться, и ноут без 5-10 минутного предварительного висения на  розетке даже не включался.

Вся фигня, кроме пиксела, творится из-за того, что в ноуте нет жёсткой рамы, на которую крепится материнка и прочее. Все кручения и изгибы приходятся на материнскую плату, из-за чего она потихоньку сыпется. Вот у рабочей Леновы T61 и T500 всё серьёзно. Жена свой даже роняла в раскрытом виде, только металлические штифты, держащие монитор, начали немного болтаться, а так всё живо. У меня, правда, на T61 мать раз меняли (неудачно проапгрейдил биос), а на T500 вообще два раза, т.к. работа состояла в том, чтобы компилять ядра целыми днями, и грелось всё просто неслабо. Кофе, стоявший у вентиляционной решётки, никогда не остывал. И батарея соневская на T61 сдохла за полгода.

Вощемта, следующий бук хочется железный, маленький (14" максимум) и достаточно маломощный, но на Нехалеме, т.е. минимум i5. Ядра я больше не конпеляю, а лисп с его инкрементальным подходом можно и на железе уровня современного телефона конпелять. Но вот фенечки Нехалема, особенно, касаемо его работы с памятью, хочется.

Бельгия

В очередной раз ездили на культурный обмен в Бельгию. Выехали уже под вечер, в темноте 12 часов вести немного утомительно. Отбойники между противоположными направлениями свет от фар никак не сдерживают, поэтому все ездят только с ближним. Ну, всякие нетрадиционной ориентации с дальним светом тоже встречаются, но им поголовно моргают в ответ. Собственно, если перед тобой в темноте едет машина-другая, то ничё так, повороты заранее видятся. Но когда один прёшь, то на ближнем свете в самый последний момент реагируешь, из-за чего напрягаешься неслабо.

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

По приезду состоялся банкет с участием комнатного индукционного гриля.

Вечерние посиделки у камина:

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

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

Коровы:

Хочу свой дом, с камином и лужайкой на заднем дворе.

понедельник, 1 ноября 2010 г.

Наш ответ Чемберлену

Промучался час, пытаясь сделать из законно купленной электронной версии Let Over Lambda (pdf или html в VIP-части сайта) что-то формата А6 с крупными шрифтами, годное для приятного чтения с Nook'а. Не получилось. Плюнул, залил гомеровскую "Иллиаду". Компьютеры - зло.

Кстати, касаемо "Иллиады"... Русский перевод несравнимо поэтичней английского. Английский я два варианта видел, ну полная фигня.

воскресенье, 31 октября 2010 г.

Autobahn

6.27 литра солярки на 100 километров (рекорд!) жрёт наша машинка, если гнать 150-160 км/ч по автобану на зимней резине.Если 130 ехать, то на литр меньше.

600 километров просвистели за 4 часа. Машина больше 167 не едет. Ну, разве что, с горки.

Дойче автобан - дас ист фантастиш! Но когда в крайнем правом ряду (из трёх!) идёшь 160 км/ч, то что-то жёлтое или красное слева всё также регулярно мелькает и исчезает за горизонтом. Удивительная страна.

вторник, 26 октября 2010 г.

Status update

Омереканские визы получены, велосипед продан, машина продаётся. Скоро, совсем скоро на самолёт.

вторник, 19 октября 2010 г.

Автомобильный добрый wtf

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

Подозреваю, что виновата солярка, залитая на прошлой неделе. Странно, конечно, ибо я на одной и той же заправке всё время заливаюсь, но больше объяснений нет.

вторник, 12 октября 2010 г.

Медаль мне!

Подтвердил сегодня гордое звание RHCE, разобравшись, почему на нашем бубунтосервере, воткнутом в сеть одной известной биржи, никак не видятся мультикастные фиды с нашей же убержелезки. Сия мерзкая проблема уже как два дня срывала презентацию продукта. Местные админы только разводили руками: мы, мол, хз, Убунта - это обои, а не линукс, давайте лучше RHEL.

На RHEL'ах у биржевиков и на моём ArchLinux'е всё работало. Если iperf'у указать параметры нашего фида, то тоже всё работает. А если проигрывать tcpreplay'ем уже готовый pcap, то фиг вам. Отличий в пакетах только в том, что iperf в src ставит локальный адрес, а tcpreplay оставляет адрес железки, у которой адрес весьма левый.

Я интуитивно догадался, что нужно какой-то ключик в ядре повернуть, но т.к. нифига не сетевой админ, то пришлось сравнивать diff у sysctl'ей Бубунты и Арча. Когда наткнулся на rp_filter, то из залежей памяти что-то всплыло про проблемы с ним, когда где-то сеть в Дебиане настраивал 6 или 7 лет назад. Оказалось, что в Бубунте он включен, а в Арче выключен (и в RHEL тоже, судя по всему). А т.к. адрес назначения (мультикастная сеть) и адрес источника к сетевому интерфейсу не имели никакого отношения, то спуф-фильтр Бубунты пакеты резал.

Какой я молодец: и на лиспе ваяю, и на ассемблере конопачу, и драйвера фикшу, и с сетью разбираюсь, и борода густая. Просто золото, а не работник. Сабж! =)

Не удивлюсь, если по переезду в офис придётся ещё и железо паять. Ну а фигли, опыт же есть: помимо прочего, я ещё и монтажник радиоэлектронных устройств и приборов III разряда. И тенденция такая, что на этой работе выкладываю всё, на что способен. Скучать уж точно не приходится!

воскресенье, 10 октября 2010 г.

Beef

Пока катался на велике, жена, в кои-то веки, встала к плите и запекла в духовке говядину. Примечательно, что на упаковке с мясом было написано: "Бычок 16 месяцев от роду, серийный номер такой-то, выращен по ГОСТу такому-то. Рождён, вскормлен и зарезан в Чешской Республике."

К упаковке с накроенным мясом надо было ещё приложить фотоальбом и DVD с домашним фильмом про его первый День рождения.

Велолытдыбр

Утром, лёжа в кровати, послушал "В гостях у сказки", которая исполняет роль мелодии будильника на мобильнике жены, лежащего где-то вне пределов досягаемости тапком, повалялся ещё немного и встал. День намечался повышенной чёткости (как и вся следующая неделя), вчерашная пешая вылазка в лес показала, что говна там подсохли, поэтому байк после поездки не придётся вымывать из куска грязи. Сел, поехал.

До чего ж офигенно педалить! Но машина и новая напряжённая работа дома своё чёрное дело сделали: езжу мало, стал слабеньким. Если в первый год после покупки второго байка (первый спёрли) проехал почти 2500 км, то сейчас всего 1100. Через 7 км усиленного педалирования во рту появился привкус крови, мышцы на ногах задубели до предспазменного состояния, а потом и вовсе в голове помутилось. Жирный мозг привык, что весь кислород и шоколадки достаются ему, кормильцу, а тут наглые бедренные мышцы сожрали весь скудный завтрак и вынюхали весь воздух. Срочно слез с велика, сел под дерево, полчаса мутными глазами любовался осенней природой, через шум в ушах слушал птичек, пил воду, ел шоколадку.

Полностью разум не прояснился, ощущение реальности притупилось, поэтому потом ездил, как попало. Как нигде не упал - хз. Несусь, значит, по тропинке с диким наклоном и глубокой вымоиной по-середине, а мозг такой умиротворённый, медленно какую-то философию думает. А полтора года назад там с Ваней пешком ходил... Т.е. он-то съехал, а я зассал. Правда, тогда был в лоховских джинсах и х/б футболке, а щас в штанах и куртке Endura, которые, как известно, +100 к храбрости и мастерству добавляют.

Эх, до чего ж офигительно в окрестностях Брна осенью! Каменистые холмы с разноцветным лесом, речка, гламурный замок на скале, освещённый лучами яркого солнца. Ещё жальче уезжать стало. Всем штатам лет меньше, чем одному этому замку...

суббота, 9 октября 2010 г.

C2H5OH

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

А между тем, блиц-ревизия выяснила наличие:
  • восьми бутылок бельгийского пива
  • двух бутылок чешского вина
  • бутылки туниской водки (43%)
  • большой бутылки туниского ликёра (40%)
  • трёх бутылок Гиннесса (фигня, кстати, полная)
Как представлю, что всё это богатство в унитаз выливаю, так скупая мужская слеза наворчаивается...

четверг, 7 октября 2010 г.

Пара фоток

Это нас фотограф на судне подловил.
Только что с балкона сфотал.

вторник, 5 октября 2010 г.

Haskell is easy

В копилку лисповоду

Библиотека filtered functions позволяет реализовать что-то похожее на паттерн-матчинг при вызове обобщённой функции. В лиспе уже есть дженерики, но в них делается сравнение с полным объектом-образцом, а паттерн-матчинг делает сопоставление с неполным образцом, одновременно биндя переменные. Фильтрованные функции пошли ещё дальше: там выбор специализированного метода делается по вызову фильтра-предиката.

cl-unification делает паттерн-матчинг в его классическом виде и даже больше (больше, потому что паттернг-матчинг - это всего лишь часть унификации).

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

Ohloh куплен

Ну всё, теперь ждать рекламы и прочего буллшита :(

воскресенье, 3 октября 2010 г.

Про Erlang

Disclaimer: я на Эрланге не написал ни строчки кода.

Решил тут грамотно приобщиться к миру распределённых, отказоустойчивых приложений. Для которого, как известно, специально разработан язык Erlang. По которому у меня в читалке на пляже ("ляжу на пляжу") было две книжки: "Programming Erlang. Software for a Concurrent World." и "Erlang Programming. A Concurrent Approach to Software Development."

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

Вторая книжка немножко получше, больше на справочник-введение похожа. Её прочитал почти всю, пропуская упражнения и философию.

Сделал для себя такой вывод: языка Эрланг не существует. Есть полторы странички синтаксиса, а всё остальное - виртуальная машина с легковесными процессами и обширной библиотекой. Собственно, Эрланг даже без OTP можно рассматривать, только как платформу. После могучего Коммон Лиспа слёзы льются. Наверное, на Эрланге прикольно писать фронтэнд, который грудью встанет на пути бешенного траффика из Сети, но всю запудренную работу будет передавать бэкенду на Лиспе :) Или Хаскелле. Но штанги у меня ещё нет, плечевой пояс и пресс слабоват, поэтому за Хаскелль не брался.

Главных фич у Эрланга, помимо самой идеи (шикарной, имхо) взаимодействия процессов и нод, две: само наличие LW-процессов в языке by design и платформа. Остальное или откровенно слабо, или суть легкий синтаксический сахар.

Впечатления от Туниса.

Грязно. Весь остров (Джерба) завален строительным и бытовым мусором, отель тоже грязноватый. В шкафу замечен на ПМЖ большой таракан. Номер, территорию и пляж каждый день убирают, но стандарты чистоты у арабов какие-то другие. В принципе, не так страшно, стерпеть можно.

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

Арабы нагловатые. Персонал хоть и приветливый, но за пределами охраняемой территории есть типы, которые страть как помацать белых баб хотят. И до денег жадные тоже.

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

Итог: солнце, море, песок - зачётные (особенно, напротив отеля рядом, где бедные* русские отдыхают), всё остальное где-то на четвёрочку.

* бедные - потому что русские отдыхают на Мальдивах, а у богатых вообще свои острова =)

Читалка с e-ink'ом - вещь абсолютно прикольная. Жена читала Стругацких, я - Желязны и про Эрланг. Технические pdf'ки действительно лучше читать на экране побольше. Жаль, что на обратном пути продавили экран в одном месте, там теперь живёт небольшая e-ink'овая клякса. Ну и корпус у Нука не очень хорошо подогнан, в щели песок попал.

вторник, 21 сентября 2010 г.

Cyrillic wtf

Нук в русских epub'ах вместо букв показывает вопросики. Если конвертировать через fb2epub.com с внедрением шрифтов, то всё нормально. Но сконвертить таким образом коллекцию Желязны (211 книжек) - это шизануться можно.

Есть fb2epub-0.3.0.jar, но он не умеет шрифты эмбеддить. Я наваял скрипт, который кладёт шрифты и добавляет всё, что к шрифтам относится (подсмотрено из нормально отображающегося epub'а), но Нук всё равно вопросики показывает. wtf?

Хочется утилиту, которая конвертит FB2 в ePUB с добавлением шрифтов. С ходу невыгуглил такую, но, может, кто знает, есть ли такая?

Update: залил шрифтов Liberation по рецепту, наваял башевый скрипт, конвертящий FB2 в ePUB и подменяющий style.css, find ... -exec..., вуаля!

B&N Nook

Сабж пришёл. Пока играюсь. Читать удобно: девайс маленький, лёгкий, е-инк действительно выглядит, как бумага.

пятница, 17 сентября 2010 г.

Всехубьюодиностанусь

Вот люди на Почту РФ жалуются, а мой Nook в сраной Атланте неделю провалялся от Accepted до Dispatched. Ещё через море-океан лететь и таможню проходить... Нет, не успеет приехать до отпуска Ж8-E

четверг, 16 сентября 2010 г.

среда, 15 сентября 2010 г.

Всё фигня, даже пчёлы

Захотелось бросить пару камней в огород Archlinux.

Система маленькой не получилась. Стоит примерно столько же софта, как и в Федоре, "весит" примерно же столько же. Разбиение по пакетам (-devel, -doc, etc), практически, отсутствует, а Федора последний год активно с блобами боролась. В итоге, приходится прилагать усилия, чтобы система занимала хотя бы столько же, сколько Федора.

Скорость системы снизилась до Федоровской. Наверное, выше ext4 не прыгнешь. pacman тоже стал раздражать, задумывается на гораздо дольшее время, чем сразу после установки.

Официальный репозиторий маленький. В AUR софта меньше, чем в Федоре с подключенным rpmfusion, плюс он почти никогда не собирается без проблем. Очень раздражает, когда нужно сию же минуту поставить пакет, а он есть только в AUR, да и то, для галочки. Хуже было только в генте, где даже базовый пакет мог легко не собраться.

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

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

Система ломается. Нельзя просто так поставить автообновление и забыть про машину. Собственно, что от rolling-based ожидать-то?..

Как enterprise-дистрибутив Arch никакой. Федора вот - энтерпрайз. И Убунту - энтерпрайз.

На Федору обратно всё равно не вернусь. Её тяжело и рискованно каждые полгода обновлять, а инсталлятор далеко не всегда даёт поставить систему. У неё замороченная базовая система, с торчащими ушами legacy изо всех щелей. Её тяжело перестраивать под себя. Она нестабильна. Вернее, становится стабильной только месяца через три после выхода.

Но Arch тоже далеко не идеал :(

Убербыстрый мессейджинг

Наша контора, в числе прочего, делает мегабыструю железку для мессейджинга. Получили первые результаты латентности "драйвер-юзерспейс", т.е. сколько времени нужно между моментом, когда железка отдала драйверу пакет, и моментом, когда пакет увидела пользовательская программа. В 99.9% укладываемся в 99 нс, 99% - 85 нс, 90% - 81 нс, 50% - 77 нс. Через железку, от разъёма до памяти компа пакет идёт ещё где-то 400-500 нс. Итого, юзерспейс обрабатывает полученные данные уже через 0.6 мкс, как первые электроны начали входить в компьютер. Это чертовски быстро! Но у нас есть ещё пара технологий в загашнике, которые снизят латентность ещё процентов на 40.

воскресенье, 12 сентября 2010 г.

Bobrava

Отлично размяли сегодня с Иваном нижние конечности и седалища, помесив грязь в парке Бобрава.

Грязи было уйма, опять резина из 2.35" в 3.0" превратилась и полировала ноги вилки. Но байк грёб хорошо. Поколбасились по диким спускам, пожглись крапивой, дали повод для общения собакам в деревне.

Глядя на наши суровые лица, слыша утробные рыки, когда ноги, рвя вздувшимися мышцами штаны по швам, из очередной болотины выдирали поросшие полуметровым слоем грязи байки и их небритых ездоков, Алонсо решил: "Что я, лох, что ли?", и выиграл Гран-при.

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

Ещё цепь продолжает закусывать на малой звезде системы. Как только грязь и вода вымывает смазку с цепи, всё это дело подсыхает, да под нагрузочку в гору прёшь, так начинает кусать. Вроде, никаких особо дерзких заусенцев на звезде нет...

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

Назревает крупный апгрейд всего и вся :)

пятница, 10 сентября 2010 г.

Документация на API

Пишу сабж в org-mode.

Наш босс в него просто влюблён, делает в нём презентации, планирует, считает статистику, генерит pdf'ки и png'шки.

четверг, 9 сентября 2010 г.

Америка - страна медленно ползущих автомобилей

Разочарование дня: в США детские ограничения скорости. Типично, 65 mph. 104 км/ч...

Зачем там нужны мощные машины - непонятно. И как ехать на далёкие расстояния тоже.

То ли дело Германия... Конечно, там тоже полно локальных ограничений типа 120 км/ч, а летом много дорог ремонтируют, но зато в остальных местах можно легально выжать всю мощь из свежекупленного Порше. Едешь на своей тежелке 160 км/ч, и тут слева что-то жёлтое, ревущее мелькнуло и исчезло за горизонтом.

130 км/ч в Чехии, в принципе, тоже неплохо. Два часа, и в Пражском аэропорту (если пробок нет).

среда, 8 сентября 2010 г.

Безумство вложенного квотирования

Тут с господином swizard'ом мерялись органами, кто лучше в уме раскрывает вложенные квотирования, на которые он жаловался в своём недавнем посте. Без ошибок никто не раскрыл, но надо отдать должное, что он на своих DSL'ях скобоксобак наелся и раскрывает, всё же, лучше :)

Заодно обнаружили, что компиляторы тоже квотирования не очень-то понимают.

Например, LispWorks 6.0.1 такое
(let ((q '(1 2 3)))
  `(a b `(c d ,,@q)))
раскрывает, как
(a b (system::bq-list (quote c) (quote d) 1 2 3))
Непорядочек! Нельзя в readable-форме светить символ из свого специфичного пакета.

Или всеми нами заслуженно любимый SBCL (1.0.42) раскрывает такую форму:
(let ((q '(1 2 3)))
  `(a b `(c d ,',@q)))
вот так:
(A B `(C D 1))
А должен вот так:
(A B `(C D 1 2 3))

И на закуску, как раскрывают 4 компилятора одну форму:
(let ((v '(+ 1 2)))  ``(a b ,,v))

SBCL-1.0.42:
`(A B ,(+ 1 2))

CLISP-2.49:
(LIST 'A 'B (+ 1 2))
ClozureCL-1.5:
(LIST* 'A (LIST* 'B (LIST (+ 1 2))))
LispWorks-6.0.1:
(system::bq-list (quote a) (quote b) (+ 1 2))
Всё это валидные представления одного и того же объекта :) Если их считать ридером любой имплементации CL и сравнить, то будет полное совпадение. Ну, кроме уже отмеченного бага в LW.

Метапрограммирование на Лиспе заводит свою бензопилу и идёт в ваши ночные кошмары.

вторник, 7 сентября 2010 г.

Желтые штаны

Как известно, статус чатланина определяется цветом его штанов. Когда я работал в Red Hat, у меня были такие:

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


На неделе должна прийти :)

Посоветуйте читалку книг

Требования:
  • Внутри Линукс (яДощечка и прочие девайсы с банальными зондами отпадают сразу);
  • E-Ink;
  • Самое малое, 6-7";
  • Wifi обязателен, 3G желателен;
  • Чем больше форматов из коробки, тем лучше;
  • Без привязок к платным книжным магазинам only;
  • До $200 (+/-) с международной доставкой;
  • Желательно, без лишних кнопок на корпусе.
Подходит Nook, но, может быть, есть достойные альтернативы?

понедельник, 6 сентября 2010 г.

CL-ZMQ

В последнее время совсем не занимался сабжем, в git'е последние патчи от других людей. Пора исправлять ситуацию :)

Хочется поломать совместимость со таким образом:
  • Врапперы для foreign-структур делать на лисповых структурах, а не классах.
Эти биндинги делал сразу после cl-v4l2, в котором вагон с тележкой структур video4linux2 были удобно обёрнуты в классы с генерацией акцессоров, автоматически конвертящих foreign типы в лисповые и обратно. В cl-zmq всё гораздо проще, никаких мудростей на MOP не нужно, можно смело менять на структуры. В Лиспе структуры сделаны очень просто и быстро, примерно, как в Си, а объекты классов из-за мощности CLOS гораздо замороченнее. В cl-zmq нужно, фактически, сишный блоб вешать на символ и прикручивать к нему финалайзер.
  • Поменять символы типа rep, req и т.п. на кейворды. 
Такое сделано в форке - acl-zmq -, и оно более lisp-way выглядит.
  • Не сорить памятью в около-poll'ных делах.
Poll делал, как заглушку, чтобы проверить работоспособность. До переделки в нормальный вид руки не дошли.
  • Сделать zero-copy на Лиспворксе.
У меня что-то с коллбэками из libzmq не срослось, но Марк (босс) подсказал, что Лиспворкс поддерживает вызов лиспового кода из нелисповых тредов, поэтому, вкупе с возможностью статической аллокации объектов, нулевое копирование возможно.

API сломаю под общий шумок в 0MQ 3-й версии. Она (версия) надвигается, и, как говорят, API там тоже будет немного сломано.

Если у кого есть идеи и замечания по cl-zmq - велкам в комменты!

суббота, 4 сентября 2010 г.

Язык для быстрого прототипирования

Когда я пишу более-менее нетривиальный код на C или C++, то активно использую блокнот и ручку. Мысль нужно развить, обмозговать варианты, выбрать лучший, выразить в виде высокоабстрактных каракулей на бумажке. Как только начало казаться, что картина сложилась более-менее ясно, то можно браться за код. Код пишется с постоянным подсматриванием каракулей. Если сразу броситься писать код, начав развивать его с первой пришедшей на ум идеи, то разработка быстро встаёт колом, т.к. много синтаксиса на мало идей не даёт мысли лететь вперёд. Нужно много колотить по клавиатуре, заботиться о соблюдении формальностей, работать с придирчивым компилятором. Поэтому за деревьями леса становится не видно. В итоге, конечно, выяснится, что каракули на бумажке все тонкости не учли, и нужно половину написанного кода выбросить и переписать иначе.

Другое дело Лисп! Написание нетривиального кода начинается опять с блокнота и ручки, но, накарябав пару каракулей, думаешь: "Какого чёрта!", и пишешь примерно в тех же терминах каракулей прямо лисповым кодом. Небольшие, логически независимые куски кода проверяются прямо в редакторе (слава REPL'у!), структуры данных меняются и дополняются сто раз в час, прямо по ходу развития мысли и выяснения деталей. Компилятор свободу практически не ограничивает, он спокойно съедает код с явными ошибками, и позволяет вернуться к их исправлению позже, когда более важная работа выполнена. Программа рождается на кончиках пальцев, кои, как известно, являются механическими окончаниями мозга :)

Лисп - язык для практических хакеров, не математиков-теоретиков.

вторник, 31 августа 2010 г.

Новый председатель правления

- Разговорчики в строю!
- Здесь вам не тут!
- Эй, ты! В красной футболке! Упал, отжался!
- Добровольцы на тестирование новой альфы Федоры - два шага вперёд. Остальные носят сервера на четвёртый этаж без лифта.
- Все, у кого в результате внеочередной проверки был найден Скайп на лэптопе, будут помещены на гауптвахту.

Сабж, собственно.

понедельник, 30 августа 2010 г.

Анонимные комменты

По просьбам телезрителей включил анонимные комменты. Если спамботы понабегут, отключу.

Заведите уже openid, ё-моё ;)

Рулит и педалит

Пара постановочных фоток с выходных. Сложные места на фотки не попали.

воскресенье, 29 августа 2010 г.

Спам в джаббере

Вот уже неделю атакуют какие-то боты, предлагают присоединиться к той или иной конференции. Чё за фигня?

Rychlebské a stezky

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

Байки брали на прокат, двухподвесы ("Мериды" этого года). В субботу катали на One-Five-O, в воскресенье один отобрали, дали на замену какой-то подревней.

Трасса мне вообще не понравилась. Слишком много камней, по которым очень трудно ездить. Да даже пешком можно ноги попереломать. Особенно, в субботу, когда до часа дня лил дождь. Там надо ездить технично, чуть ли ни трэкстендом занимаясь, а я и так не ахти как равновесие держу, а на большом подвесе, который ведёт себя вообще не так, как хардтейл, да с не очень хорошей резиной, да по мокрым камням-корням... Вобщем, для себя определился, что нравится жёсткое кроссканти или оллмаунтин. Т.е. там, где трасса не настолько вырвиглазная (а также -ножная, -ручная, -позвоночная), чтобы ползти, как черепаха. Вот чтобы километров 30 хотя бы валить, но с препятствиями и неровностями, - это да, уже интересно. Ну 20.

Отдельно о велосипедах. Уяснил две вещи. Ну, полторы, одну и так, в принципе, знал.

1. Хардтейлы никогда не умрут как класс.

Двухподвес - очень специфичный агрегат. Мало того, что он тяжёлый, как мешок картошки, так ещё качается там, где совсем того не надо. Например, когда по плоскачу педалишь, либо крадёшься по валунам.
Ещё на него в сложных условиях хрен залезешь и начнёшь движение: байк "уходит" вниз, а потом резко поднимается. Крепкие поджопники седлом весьма доставали. Амотризаторы полностью не блокируются, седло если низко опустишь, то залазить удобно, но потом с коленками у ушей педали не очень крутятся. Ну и весят они под двадцать кг...

2. Брать в прокат даже новую технику - чревато напарыванием на говно.

Один One-Five-O, на котором Иван два дня ездил, был, в принципе, ниче так. Если бы это его или мой байк был, то он был бы в гораздо лучшей форме, но, в принципе, и так сойдёт. У другого такого же были проблемы с плохо настроенными переключателями, сношенной или повреждённой системой (цепь закусывало), плюс эксцентрик на подседельном штыре стёрт в ноль - сидушка потихоньку опускалась. У меня вообще закралось подозрение, что чуваки, работающие в пункте проката, по частями спиздили 2-3 велосипеда, а вместо украденного поставили говно со своих убитых агрегатов.

На второй день дали ваще какую-то левую хрень, я на нём как до горок доехал, так сразу поимел счастье в лице скачущей по кассете цепи. Оставновился, понастраивал переключатель, поехал дальше. Как террейн пошёл ещё посложнее, проблемы вернулись. Остановились, разобрали лапку переключателя. Все подшипники в говне, в одном сепараторе из 7 шариков осталось только 2. Петух погнут. Иван определил, что переклюк (XTR) ваще какого-то древнего года, чуть ли не из 90-х. Ну и при более пристальном осмотре увидели, что цепь на звёзды не ложится, т.е. кассета крепко убита.

Я психанул, хотел ехать назад и сдавать этот кусок дерьма, но Иван отобрал его у меня и поехал. Чё делать, поехал на его. Переключатель более менее выправили, он лажать 100% времени перестал. Но радости от этой старой мериды даже у Вани не было, я по глазам видел. Задний аморт там был роксшоксовский, а вилка - пружинно-маслянная Тора 302. По сравнению с Фоксами на его байке это вообще, практически, дроческоп был. Ну и тормоза. На One-Five-O стояли Магуры Луизы с 203 мм дисками, ими держать байк одним пальцем можно было на самом безумном склоне. На старой мериде стояли Хайес Строкеры, тоже с 203-ми дисками, но  у меня было такое конкретное ощущение, что это мои домашние Ауриги, только с дисками побольше.

Если в субботу мне просто техники не хватало, но во всякие канавы на скорости залетал и вылетал, и ничего мне за это не было, то теперь с дубовой Торой надо было внимательно смотреть, куда байк едет. Тора - говно, говно, говно, много хуже моего домашнего Эпикона. Единственное, что не пробил её ни разу, а Эпикон бы стучал до железки на каждом втором камне. Но что тут поделаешь, я и 160-мм Фоксом пару раз стучал. А Тора с пружиной на 80 кг, как сказали в магазине (т.е. на мой вес как раз), судя по грязи на ногах, максимум на 100 мм из своих 140 просела. Или 160, сколько там у неё было?... При реальном рабочем ходе в 80 мм это не так важно. Услышьте меня, люди: пружинные вилки, даже дорогие - это какашки! Если крепко не прыгаете, то купите лучше Фёст Эйр или эпикон, удовольствия от езды больше получите. Ну или копите на фокс. Фокс - вообще тема!

Ещё пару вещей, в порядке приобретения опыта: резина Maxxis Minion DH - фигня для мокрого леса. Держит плоховасто. Я сначала вообще думал, что это 2.1" резина, прикидывая её рядом с моей 2.35", но потом Иван прочитал на корде, что это 2.35". Сравнения со Швальбой не выдерживает никакого. Может, для пустынь она и канает, но не для мокрых камней.

Вторая вещь: для даунхилла или для таких сложных трасс контактные педали - зло. Только платформы-топталки, исключительно!

ps. отель с одноимённым названием в той деревушке - очень хороший. Три звезды, но с тремя звёздами, в которых в Париже жили, даже близко не сравнится (не в пользу последнего). Единственное, что повар там не очень хороший, у меня ни одно принятие пищи без эксцессов не обошлось...

среда, 25 августа 2010 г.

Маленькие радости автомобилиста

Сгорела лампа в левой фаре, воткнул запасную. Родная была голубенькая, запасная жёлтенькая. Непорядок. Раз всё равно надо покупать новую запасную лампу, купил две одинаковых, но повышенной мощности. Теперь машина немножко ярче светит :)

На филипсовский ксенон, который стоит больше €20 за штуку вместо €10 за обе мною купленные, жаба мощно заквакала, чуть в магазине не придушила.

Блин, даже жалко машину продавать будет, я только научился нормально на ней ездить. За каждую вмятинку или царапинку было жальче и больней, чем когда сам на MTB мялся и царапался.

вторник, 24 августа 2010 г.

Тяжела и неказиста

Месяц бьюсь с железкой, выжимаю такты. Любимое дело - переписать кусок на ассемблере, понаставить rdtsc, собрать тайминги, строить gnuplot'ом графики и любоваться.

Накопил забавного экспириенса...

Например, жила-была структура размером 32 байта. Ради ускорения добавил 8 байт, в которые при инициализации структуры пишу предварительно посчитанные коэффициенты, чтобы в основной логике не считать их каждый раз. Ну, стандартный, в общем, подход. Профит? Нифига! Количество попаданий в первый наносекундный интервал упало в... Нет! Просто рухнуло, в 2.5 раза. Попадание во второй, правда, подросло, но в 2.5 хуже в первом - это катастрофа. Выравнивание до 64 байт и префетч в нужном месте дела значительно улучшили, но до исходного варианта всё равно сильно не дотягивает.

Получается, что выгодней считать компактно расположенные данные, чем не считать некомпактные.

Другой случай: одна боевая итерация обработки данных безбожно жрёт такты. Все выделяемые куски логики обмеренны отдельно, сложены, сумма в 10 раз меньше, чем имеем на деле для всего. Тестовая итерация жрёт нормально, мало. В тестовом варианте данные сосутся из файла, в боевом - те же данные, но из raw-сокета, всего одно отличие. Только на каждое чтение из сокета каждый пакет протаскивается через все кишки ядра, которые нагло и беспардонно выбрасывают из кэша заботливо префетченные руками данные. А при чтении из файла libc делает буферизацию, уменьшая общее число сисколлов. Ну и сам код файловой системы, судя по всему, попроще, чем сетевой.

Самое паршивое, что такая фигня чисто аналитически понимается. Полдня и целый вечер мучался, думал.

Третий случай: у меня ноут со стареньким Core2Duo T5600, одна удалённая машина какой-то Феном, другая i7 (Nehalem). На всех трёх результаты микрооптимизаций часто дают противоположный эффект :)


Вывод явный: гентушники были бы правы, что если систему пересобирать под каждую коробку, то она могла бы быстрее работать, но только gcc пока оптимизировать код под такие тонкости не научился :) Да и для систем, работающих по событиям, т.е. 99.(9)% даже круто пересобранных гентушных установок, оно нафиг в принципе не нужно.

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

воскресенье, 22 августа 2010 г.

Братислава

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

Съездили. Исторический центр маленький, но уютный.



Заодно, словились с главными девелоперами 0MQ.


Слева направо: me, Martin Sustrik, Martin Lucina (все на "m", как забавно).

вторник, 17 августа 2010 г.

Велолытдыбр

С утра занимался велосипедом. Сначала смыл грязь и начал оценивать повреждения:

На левой ноге вилки покоцана анодировка, жаль. На штанах вилки тоже сколов добавилось.

Звёзды системы оказались в более-менее приличном состоянии, только большая звезда была сильно погнута. Выправил киянкой. Зато звёзды кассеты за три месяца с последнего раза, как я их детально осматривал, стремительно деградировали: есть сломанные зубья, у многих металл заклёпан. Вероятно, новая цепь после 2700 км на одной единственной цепи была плохой идеей, убил кассету и систему. Заклёпки на особо плохих зубьях подточил напильником.

На новой цепи одно звено начало расклёпываться. Хотел поставить срамовский замок-спидлинк, но оперативно не нашёл, поэтому просто это звено выжал и выбросил. Теперь на 3-1 лапка переключателя сильно натягивается. Сама цепь тоже с механическими повреждениями. Вообще, весь привод, по-хорошему, менять надо целиком, отмесил свою грязь.

Разобрал заднюю втулку (китайскую), ужаснулся 7-сантиметровой стружке внутри подшипника. Не знаю, как втулка почти 3.5 т.км пробежала и не самоугробилась. Конуса и чашки для такого километрожа нормальные, стружка ничего особо не тронула. Грязь только-только начала пробираться через уплотнения, так что переборка в самый раз пришлась.

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

Эх, с радостью бы всё поменял, только смысла теперь уже особого нет...

понедельник, 16 августа 2010 г.

Отчёт о проведённых выходных

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

Я на своём байке содрал защиту пера от цепи, надорвал и расплёл трос переднего переключателя, убил малую звезду системы - если цепь стоит на ней, то при малейшей нагрузке цепь закусывает. Быстрый осмотр сквозь грязь выявил, что несколько зубьев сломано, у множества присутствует конкретные выбоины, и общий неравномерный износ по кругу: где-то зубья сточены до состояния игл, где-то нет. Система неразборная, на выброс полностью. Под ещё несмытым слоем грязи должно быть дофига сколов на раме, если судить по второму, очищенному велосипеду. На самих байкерах тоже коцок полно. Красавцы! :)

Кстати, пилить в гору на 2-1 адово тяжело. Особенно, после купаний в ручьях и лужах по втулки (заднюю втулку на насыпных подшипниках точно перебирать надо), когда с цепи смыло всё масло, набило в сочленения грязи и хорошо высохло.

В субботу хорошо полетали по промоинам, всё было как надо: с вырванными вместе с креплениями крыльями, "плывущей" на скорости в говне зубастой резиной и самыми тёмными предчувствиями, когда в крутом повороте под колесо попадает мокрый плоский камень, и велосипед сносит.

А вот вчера на свою голову попёрлись в Бланско. Там мало того, что за пределами центральной дорожки грязищи по обода и лужи по колено, так после урагана ещё весь лес лежит заваленный деревьями. В одном месте вообще оказались на деревьях на высоте трёх метров :) Жалко, что фотоаппарата с собой не было... Сколько раз теряли путь - сказать трудно, ибо зачастую деревья с маркерам лежали, разбитые в хлам, либо вообще отсутствовали.

Хоть толком и не погоняли, зато получили прикольный такой экспириенс.

пятница, 13 августа 2010 г.

четверг, 12 августа 2010 г.

Неучёных - тьма

Студенты, изучающие искусство программирования, проходят двоичные деревья поиска курсе на втором. Я на втором курсе изучал теормех, сопромат и термодинамику, а первое в своей жизни BST написал сегодня =)

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

Впереди переписывание поиска на ассемблере, а то gcc недостаточно вылизанный код генерирует.

воскресенье, 8 августа 2010 г.

Особенности национального велопедализма

В целях профилактики роста жира на пузе сделал веловылазку. После гроз и штормов в лесу всё завалено сломанными и выкорчеванными деревьями. И жгучей крапивой всё позаросло. Измучался велосипед тягать через стволы.

Зато встретил в лесу голую тётеньку, её дяденька-фотограф снимал :) Они-то думали, вот в чащёбу-грязищу забрались, хрен кто сюда доберётся, а тут я из леса, грязный, потный и пыхтящий выезжаю.

суббота, 7 августа 2010 г.

Свадьба

Ездили на свадьбу к учительнице чешского. Хотели взять с собой велосипеды и прошвырнуться по окрестностям, но нас залило капитально. По хайвею пилили километров 80-90 в час, видимость почти нулевая. Кстати, как только пошёл дождь, так на обочинах сразу появилось куча битых машин :) Мы сами без происшествий съездили.

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



no flash

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

Кстати... На последнем баке средний расход был 5.04 литра на сотню, это мой минимум. Кроме сегодняшней поездки была ещё неделю назад в Чешский Крумлов, там треть пути лежит не по хайвею. Местность, правда, холмистая, с большим количеством поворотов, поэтому ехал, в основном, на 4-й и крутил мотор на 3 тысячах. И вот оно как выходит, по топливу экономичней. Не то, чтобы денег на солярку жалко, просто интересно :)

Архив блога