Home
Рефлексия
20 most recent entries

Date:2016-12-03 00:00
Subject:Disclaimer
Security:Public

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

Нет тем запретных для обсуждения. Есть:
* неинтересные темы (кому интересно обсуждать секс бомжей на кладбище? Мне точно нет)
* сложные темы - как по своему содержанию (обсуждение влияния выбросов углекислого газа на глобальное потепление), так и по составу собеседников (никто не станет обсуждать этичность льгот для инвалидов на тренинге по их психологической поддержке)
* темы неуместные здесь и сейчас (обсуждать гениальность личности Гитлера в репортаже дня памяти Холокоста).

Надо различать неуважение и невежество. Крестовые походы - неуважение (но смотрите пункт про провокации), употребление радона для лечения зубов - невежество.

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

Если я уверен в своей точке зрения на 100%, едва ли я буду её обсуждать. Смысл? Разве что кто-то захочет её опровергнуть или попросить её аргументировать.
Цель любых моих обсуждений и дискуссий - узнать что-то новое. Узнать, а не доказывать старое.

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

И чуть ли не самое главное: в чужую голову не залезешь. Если что-то для вас очевидно и подразумевается - это не значит что это очевидно или даже известно мне. Или может я вообще вне контекста, т.к. вы его забыли упомянуть.
В Иркутске, очевидно, что в -20 вполне можно гулять по улице несколько часов. В Питере в -20 жизнь встанет колом. Влажность другая! Когда я год назад вылетал из Москвы в -3, это оказалось холоднее чем встретившие меня -15 в Иркутске.

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

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

32 comments | post a comment



Date:2009-12-03 10:33
Subject:milestone
Security:Public

++ageOf(zabivator) => 23

117 comments | post a comment



Date:2009-11-30 03:36
Subject:На правах рекламы
Security:Public

Обзор питерского концерта группы "Разные люди".

Скандалы, интриги, расследования!

2 comments | post a comment



Date:2009-11-29 04:30
Subject:Сюрреализм
Security:Public

Erlang + mochiweb.
После решения проблемы с путями и проблемы с OpenSSL я наблюдаю неподдельный сюреализм
Запускаем mochiweb:
log #1 )
Сижу, чишу репу, ничего не понимаю. На 8000 порту не появляется долгожданный web-server.
Гуглю, читаю google groups. Глухо. От балды пробую:

1> application:start(sasl).

log #2 )
Взлетает... не совсем в штатном режиме, но порт загорается.
Кто-нибудь может мне объяснить, что с ним творится за ерунда?
Почему erlang останавливается после загрузки sasl, но если ему пнуть sasl ещё раз - он ругнётся ошибкой already started и таки догрузит сервак?

4 comments | post a comment



Date:2009-11-29 04:07
Subject:Erlang + crypto module
Security:Public

=ERROR REPORT==== 29-Nov-2009::03:43:18 ===
Unable to load crypto_drv. Failed with error:
"The specified module could not be found."   
OpenSSL might not be installed on this system.


Как ни странно, нужно всего лишь поставить openssl. Я это подумывал было, но как-то не думал, что он не станет тащить с собой openssl.
Такие товарищи как я (сомневающиеся и не умеющие читать что им пишут) вполне так себе гуглятся =)
"А чо ваще?" "А поставь OpenSSL, там же написано"
страница для скачки, прямая ссылка

Теперь осталось понять, почему после запуска супервизоров mochiweb вываливается в консоль с сообщением
1> ** Found 0 name clashes in code paths

4 comments | post a comment



Date:2009-11-29 02:42
Subject:Erlang + cygwin => troubles
Security:Public

Приспичило развернуть erlang под cygwin.
cygwin - т.к. в нём есть make, python, bash - не нужно парится с установкой кучи софта.

1) Установил erlang с оффициального сайта
2) Сделал из под cygwin bash символические ссылки:
ln -s /cygdrive/c/Program\ Files/erl5.7.4/bin/erl.exe /usr/bin/erl
ln -s /cygdrive/c/Program\ Files/erl5.7.4/bin/erlc.exe /usr/bin/erlc
3) Пробую запустить тестовое приложение под mochiweb. crash dump.
После пляски с бубном вокруг дампа и deps, вспомнил про deps'ы от mochiweb. Исправил. Ситуация вообще не поменялась.
Попробовал вместо запуска start.sh загрузить и стартовать руками:

$ cat ./start.sh
#!/bin/sh
cd `dirname $0`
exec erl -pa $PWD/ebin $PWD/deps/*/ebin -boot start_sasl -s test_mochiweb2

$ pwd
/cygdrive/f/tsarev/test_mochiweb2

$ erl
Eshell V5.7.4  (abort with ^G)
1> code:get_path().
[".","c:/PROGRA~1/ERL57~1.4/lib/kernel-2.13.4/ebin",
 "c:/PROGRA~1/ERL57~1.4/lib/stdlib-1.16.4/ebin",
 "c:/PROGRA~1/ERL57~1.4/lib/xmerl-1.2.3/ebin",
...
$ ls C:/ | head -n 1 
AUTOEXEC.BAT

Как говорится, соль понятна - Ерланг в другом формате ожидает code path'ы.
Видно, что обращение вида C:/ работает.
Сижу теперь думаю как лечить. Прямо хоть проверяй строку на предмет /cygdrive/letter, и заменяй на letter:/.

UPDATE: нашёл решение, спасибо [info]_asl_:
нужно поменять start.sh:
$ cat start.sh
#!/bin/sh
cd `dirname $0`
if [ `cygpath.exe -m $PWD` ]; then
PWD=`cygpath.exe -m $PWD`;
fi;
...

Волшебный if исправляет формат путей.

Теперь нужно разбираться, почему не грузится crypto_drv...

29 comments | post a comment



Date:2009-11-27 08:37
Subject:Deployment (или скромнее надо быть)
Security:Public

Тема developer/customer deployment меня волнует последние полгода, если не больше. Перечитав и сопоставив высказывания отдельных лиц в отдельных комментахк отдельным постам, набрёл на внезапные мысли.

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

Я в ответ понял простую вещь - скромнее надо быть. Пакетного подхода требуют софт, установленный на стопиццот машин с разным сочетанием софта. Мой начинающий и не очень друг линуксоид (обращение относится и ко мне - раз, два - никого не хотёл оскорбить, если чо - читайте disclaimer), абсолютное большинство твоих высеров не стоят затрат даже на написание makefile'а, а не то пакета. У производителей коммерческого софта -тоже.
Какого хрена требовать поддержку стандартов софта, используемого стопицот пользователями?

Особо пикантным смотрит при этом какая-нибудь опердень для управления фирмой "Трусики от Ивана Иваныча". Я так и вижу как сидит ребе [info]belnetmon и фарцует софтину по пакетам. Этот пакет содержит картинки лифчиков. А этот трусиков. А апдейты путем сборки новых пакетов в отдельном репозитории. Ну, в смысле, поступающие новые модели - пакетами. Чтобы Пётр Пётрович мог использовать повторно наработки ребе, вместо того, чтобы отслюнявить его пачку купюр за аналогичную систему.

Смешно? Смешно. В такой ситуации ребе [info]belnetmon имеет полное моральное права раскатать софт как ему угодно - да хоть в /bin/my_soft.
Ребе имеет право потребовать никого не подпускать к сервthe, и ничо там не делать.
А всё почему? К программе, которой пользуются стопицот пользователей - гораздо жестче требования.
А опердень на коленке - да простят меня все противники SAP - не стоят заморочек с пакетированием и прочими прелестями жизни.

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

Засим всё.

106 comments | post a comment



Date:2009-11-26 00:54
Subject:Цена опыта.
Security:Public

В 18 я могу не спать несколько ночей подряд, или спать по два часа. После этого я ещё умудрился идти на экзамены и хорошо сдавать их.
в 21 я умудрился работать 9 месяцев подряд по 14-16-18 часов в день, и выйти из штопора "сорванные сроки" - завершить рефакторинг физического плана.
В наступающие 23 года, я не могу не спать по ночам, у меня не работает бошка когда не высплюсь, и не получается работать продуктивно весь день, от рассвета до заката. Несколько часов активной деятельности - и баста, мозг отрубился, ничего не охота, ничего не могу. Через силу кое-как дальше выжимается. Что будет дальше? Страшно подумать. Всё-таки я видать надорвался на марафоне длиною в девять месяцев - с июля 2008 по март 2009 года...

30 comments | post a comment



Date:2009-11-25 23:52
Subject:Erlang + mochiweb + erlang_rfc4627
Security:Public

mochiweb при генерации скелетона создает в deps абсолютный линк на себя.
Если вы это закоммитите - будут непонятные глюки вида "на другой машине erlang крешится".
Потому есть два решения:
1) Запихать mochiweb в deps
2) Сделать link относительным

erlang_rfc4627 любит ez. Если у вас на машине не стоит zip, то либа молчком соберётся криво, и ерланг будет виснуть, а потом крешиться при матчинге json-rpc запроса.
Потому есть два решения:
1) Выкинуть к чертям ez
2) Поставить zip и добавить проверку, что он есть.

30 comments | post a comment



Date:2009-11-25 21:42
Subject:Грабельки
Security:Public

А знаете ли вы что... если под ubuntu 9.10 сделать g+wx на хомяка юзера, то юзер не сможет логиниться по ключам по ssh, только по паролям?
Хотя, такие права позволяют любому из группы похачить .ssh/authorized_keys, заменить своими.
Is Ubuntu a paranoya mode?

57 comments | post a comment



Date:2009-11-23 21:41
Subject:Английский, Санкт-Петербург
Security:Public

Друзья,
1) Приму в дар или куплю у петербуржцев DVD/иные носители с фильмами, с английской озвучкой и субтитрами.
2) Ищу хорошие (пусть недешёвые) курсы по английскому языку. Желательно рекомендации от проходивших курсы. Цель - научиться правильно писать, говорить, и воспринимать на слух живую речь (читаю без словаря, пишу и говорю с ашипками, на слух понимаю очень медленно и переспрашиваю).
У меня пока вариантов лишь http://www.bookhouse.ru/ielts. Кстати, крайне интересно, чтобы после интенсивного прохождения курсов в течении, скажем, шести месяцев, были шансы сдать IELTS на хотя 5.0.
Короче - ищу хорошие, цена не сильно критична (но пиццот баксов за одно занятие не потяну).

103 comments | post a comment



Date:2009-11-21 20:11
Subject:Купил тут Yota
Security:Public


Работает. Под ubuntu встала. Но вот где обещанные 10 Мбит на download и 3 на upload?
Для сравнения, под провайдер Interzet, тариф 5 мегабит:

46 comments | post a comment



Date:2009-11-17 22:26
Subject:Парадигмы такие парадигмы
Security:Public

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

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

Рассмотрим, к примеру, хеш. Кто мешает использовать его в чисто функциональных программах?
Персистентность? Так давайте сделаем хеши cow, либо построим оптимизирующий компилятор, который отслеживает ситуацию "в программе после вставки в хеш-контейнер не останется ссылок на предыдущую версию хеша".

И овцы целы, и волки сыты.

Прошу простить меня читатели за вольное обращение с терминологией, как там сказал один очень крутой программист - "[info]zabivator всё-таки идиот-самоучка ЕВПОЧЯ".
Да, я не умею рассуждать в терминах матанализа и теории категорий, т.к. в этом практически никогда не бывает нужды.
Я практик, и мне в практике нужны как чисто функциональная парадигма в явном виде, так и ephemeral структуры данных.

Навеяно этим.

23 comments | post a comment



Date:2009-11-17 21:37
Subject:Пеар
Security:Public

Всё, что вы хотели знать, но боялись спросить про домены (c) [info]shep256

12 comments | post a comment



Date:2009-11-17 09:18
Subject:Пятиминутка ненависти
Security:Public

Проверил три аптеки. Арбидола нет. "Берут по 50 пачек за раз" (с) продавщица.
Пожалуйста, пусть они им траванутся и умрут от передоза.
Хомяки такие хомяки. Такие милые, но телевизор вместо головы, слухи вместо фактов, и паника до потери рассудка.
У Валюшки ОРЗ, а эти бляди всё смели "про запас".
Да они же его за год не съедят без неотложки с отравлением!
Аптеки сделали годовой план на истерике СМИ и куче перепуганных идиотов.

125 comments | post a comment



Date:2009-11-14 22:29
Subject:Mercurial local branches
Security:Public

Не так давно сокрушался, что в mercurial нету local branches.
Полез в help, и с удивлением обнаружил их наличие.
hg pull -r revision_hash SOURCE
hg push -r revision_hash DESTINATION
hg clone r revision_hash SOURCE DESTINATION
Как нам говорит man hg про push
If -r/--rev is used, the named revision and all its ancestors will
be pushed to the remote repository
.
Таким образом, либо local branches есть, либо я не понимаю что это такое.
Единственное разумное поведение для такого названия - бранчи, которые не видны соратникам при hg pull твоего репозитория.
Ну так этого можно добиться заведя один публичный репозитрий, и один локальный, и из локального в публичный переносить лишь то, в чём уверен.

UPDATE
Нет, оказывается local branches совсем другое.
Если возникает сложная последовательность действий, которую по каким-то причинам хочется оформить одним коммитом, то удобно оформить все действия в бранче, потом засосать всё в виде local modification в родительский бранч, и удалить сам бранч.

Тоже самое через избирательное копирование - типа, неудобно.
Есть Local Branches
Есть Queue - набивание в очередь нужных тебе патчей, чтобы оформить их в виде bundle для коммита в репозиторий. Я так это понял.

Спорно, спорно в общем.

20 comments | post a comment



Date:2009-11-14 16:30
Subject:[BoostDC] Давайте расставим точки на i
Security:Public

Мои коллеги и ЖЖ-френды периодически интересуются, что там с портированием и переделкой StrongDD.
Кто-то ехидно спрашивает когда ждать альфу.
Кто-то удивляется "зачем! ведь XXXdcpp уже не глючит под линуксом!"
Кто-то спрашивает "не осилил, как и PostgreSQL"?

Надо бы рассказать, к чему вообще весь этот проект: http://code.google.com/p/boostdc/
В котором моей документации больше, чем моего кода.

Есть ли среди моих френдов тех товарищей, кто запускал проекты с нуля?
Я могу наскидку вспомнить [info]dmzlj и [info]lionet. Это не значит, что больше нету, просто Дима и Лев первыми пришли в голову.

Что такое "запустить проект"? О, это много всего. Это roadmap, это features, это priotity. Это target audience. Это documentation. Это code policy. Это quaility assurance. Это usability.
И ещё куча, куча вещей. Достаточно вспомнить ещё time sheet'ы и deadline'ы и можете идти вешаться.

Я лично учусь на этом проекте. За четыре месяца неспешных усилий, я успел:
1) Изучить mercurial, и притащить его в production. Миграция на mercurial всех разработчиков у меня на работе - лишь вопросы времени, инициативная группа уже поддержала, менеджеры одобрили.
2) Освоить cmake. Получить крайне полезный опыт по переделке студийных проектов. Теперь я могу без плевков и даже с удовольствием модифицировать структуру проектов.
3) Изучить вопросы development deployment'а, сделать сборку "одной кнопкой" и написать внятную инструкцию "как собрать"
4) Изучить от и до Qt MVC, получить некоторое количество пищи для размышлений. Написать и выкинуть пять разных способ "сделать это".
4) Изучить некоторое количество RPC библиотек, и поэкспериментировать с различными способами построения тонких клиентов. Получил от ЖЖ-френдов немало критики, ключевых слов, ссылок. Изучаю, думаю.

Кто-то скажет, что это мало.
Кто-то скажет, что я страдаю фигнёй, а не занимаюсь делом.

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

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

Да, МОЖНО БЫЛО БЫ ДОСТИГНУТЬ ЦЕЛЕЙ КРАТЧАЙШЕМ ПУТЁМ.
Собрать его я научился быстро. Нагавнялкал первую версию Favorite Hub Dialog за пару часов. И это было УДОВЛЕТВОРИТЕЛЬНО. Но если всю жизнь делать УДОВЛЕТВОРИТЕЛЬНО, то когда научишься делать ХОРОШО?

Это моя позиция. У меня цель не сделать проект (достигнув целей срезая углы), а сделать его хорошо. Это мне интересно, это мне нравится. Я это пилю потихоньку, делая следующий шаг хорошенько прочувствовав предыдущий.
И я готов выкинуть свою первую версию, как и завещал Брукс. Мне иногда кажется, что я даже начинаю ВИДЕТЬ почему её нужно выкинуть, почему нельзя с первого раза сделать хорошо. Не ПОНИМАТЬ, а ПРОЧУВСТВОВАТЬ. То, что все знают, но никто не делает.

90 comments | post a comment



Date:2009-11-13 14:35
Subject:Знаете что такое экстрим?
Security:Public

Отлаживать 14 часов (вчера) сложный алгоритм, в 23-00 пойти счастливым домой, а утром нажать кнопочку "вверх" два раза, вместо одного, и нажать Enter.
Эта вторая в списке команда - hg update -C
Спас меня Емакс. Он честно начал орать на файлы "really edit modifed file?", я сообразил какую хуйню сделал, и прошёлся по всем файлам сохраняя их. Всё восстановил и сразу закоммитил.

Но холодный пот таки прошиб...

27 comments | post a comment



Date:2009-11-12 17:49
Subject:Обсуждали тут decimal'ы
Security:Public

Родилась фраза "Подели себя на ноль" => означает "убей себя об стену" на айтишном.

В комментариях: "извлеки корень из своих минусов" => "и получишь комплексы" (c) [info]dkrnl & [info]gelvaos
Гениально!

"Помножь себя на ноль" via [info]jdevelop

Иллюстрация:

via [info]bik_top

23 comments | post a comment



Date:2009-11-10 09:41
Subject:Последствия применения коаксила
Security:Public


Увидел у [info]smee_again.
Очень рад, что не завтракал.
Осторожней, по нервам бьёт сильно.
Выкладываю у себя - это нужно посмотреть каждому.

118 comments | post a comment


browse
my journal