| 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
Обзор питерского концерта группы "Разные люди".
 Скандалы, интриги, расследования!
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
=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
Приспичило развернуть 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: нашёл решение, спасибо _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
Тема developer/customer deployment меня волнует последние полгода, если не больше. Перечитав и сопоставив высказывания отдельных лиц в отдельных комментахк отдельным постам, набрёл на внезапные мысли.
Любой начинающий и не очень линуксоид знает "как правильно". Во-первых нельзя собирать софт руками - только пакеты! На крайняк порты либо эпические ебилды - но это не руками. Во-вторых весь свой софт должен деплоиться лишь в пакетах под стотыщ дистрибьютивов. В-третьих производители коммерческого софта, что так не делают - идиоты, не понимают собственного счастья, и дущат, суки, открытый софт. =)
Я в ответ понял простую вещь - скромнее надо быть. Пакетного подхода требуют софт, установленный на стопиццот машин с разным сочетанием софта. Мой начинающий и не очень друг линуксоид (обращение относится и ко мне - раз, два - никого не хотёл оскорбить, если чо - читайте disclaimer), абсолютное большинство твоих высеров не стоят затрат даже на написание makefile'а, а не то пакета. У производителей коммерческого софта -тоже. Какого хрена требовать поддержку стандартов софта, используемого стопицот пользователями?
Особо пикантным смотрит при этом какая-нибудь опердень для управления фирмой "Трусики от Ивана Иваныча". Я так и вижу как сидит ребе belnetmon и фарцует софтину по пакетам. Этот пакет содержит картинки лифчиков. А этот трусиков. А апдейты путем сборки новых пакетов в отдельном репозитории. Ну, в смысле, поступающие новые модели - пакетами. Чтобы Пётр Пётрович мог использовать повторно наработки ребе, вместо того, чтобы отслюнявить его пачку купюр за аналогичную систему.
Смешно? Смешно. В такой ситуации ребе 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
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
Друзья, 1) Приму в дар или куплю у петербуржцев DVD/иные носители с фильмами, с английской озвучкой и субтитрами. 2) Ищу хорошие (пусть недешёвые) курсы по английскому языку. Желательно рекомендации от проходивших курсы. Цель - научиться правильно писать, говорить, и воспринимать на слух живую речь (читаю без словаря, пишу и говорю с ашипками, на слух понимаю очень медленно и переспрашиваю). У меня пока вариантов лишь http://www.bookhouse.ru/ielts. Кстати, крайне интересно, чтобы после интенсивного прохождения курсов в течении, скажем, шести месяцев, были шансы сдать IELTS на хотя 5.0. Короче - ищу хорошие, цена не сильно критична (но пиццот баксов за одно занятие не потяну).
103 comments | post a comment
 Работает. Под ubuntu встала. Но вот где обещанные 10 Мбит на download и 3 на upload? Для сравнения, под провайдер Interzet, тариф 5 мегабит:

46 comments | post a comment
Чисто функциональные структуры данные персистентны. Почему-то следом идёт ошибочный вывод "языки с поддержкой функциональной парадигмы неэффективны, т.к. императивные структуры данных более эффективны, а функциональная парадигма не поощряет их использование".
Чисто императивная програма - это работа с машиной Тьюринга. Почему же вы не модифицируете стек и регистры руками, а просто вызываете функцию? Причём в императивных программах не такая уж и редкость функции в чисто функциональном смысле этого слова. Антагонизма нету? Синглтоны и глобальные переменные предаются анафеме, отсутствие состояния - нет.
Рассмотрим, к примеру, хеш. Кто мешает использовать его в чисто функциональных программах? Персистентность? Так давайте сделаем хеши cow, либо построим оптимизирующий компилятор, который отслеживает ситуацию "в программе после вставки в хеш-контейнер не останется ссылок на предыдущую версию хеша".
И овцы целы, и волки сыты.
Прошу простить меня читатели за вольное обращение с терминологией, как там сказал один очень крутой программист - " zabivator всё-таки идиот-самоучка ЕВПОЧЯ". Да, я не умею рассуждать в терминах матанализа и теории категорий, т.к. в этом практически никогда не бывает нужды. Я практик, и мне в практике нужны как чисто функциональная парадигма в явном виде, так и ephemeral структуры данных.
Навеяно этим.
23 comments | post a comment
| Date: | 2009-11-17 21:37 |
| Subject: | Пеар |
| Security: | Public |
Всё, что вы хотели знать, но боялись спросить про домены (c) shep256
12 comments | post a comment
Проверил три аптеки. Арбидола нет. "Берут по 50 пачек за раз" (с) продавщица. Пожалуйста, пусть они им траванутся и умрут от передоза. Хомяки такие хомяки. Такие милые, но телевизор вместо головы, слухи вместо фактов, и паника до потери рассудка. У Валюшки ОРЗ, а эти бляди всё смели "про запас". Да они же его за год не съедят без неотложки с отравлением! Аптеки сделали годовой план на истерике СМИ и куче перепуганных идиотов.
125 comments | post a comment
Не так давно сокрушался, что в 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
Мои коллеги и ЖЖ-френды периодически интересуются, что там с портированием и переделкой StrongDD. Кто-то ехидно спрашивает когда ждать альфу. Кто-то удивляется "зачем! ведь XXXdcpp уже не глючит под линуксом!" Кто-то спрашивает "не осилил, как и PostgreSQL"?
Надо бы рассказать, к чему вообще весь этот проект: http://code.google.com/p/boostdc/ В котором моей документации больше, чем моего кода.
Есть ли среди моих френдов тех товарищей, кто запускал проекты с нуля? Я могу наскидку вспомнить dmzlj и 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
Отлаживать 14 часов (вчера) сложный алгоритм, в 23-00 пойти счастливым домой, а утром нажать кнопочку "вверх" два раза, вместо одного, и нажать Enter. Эта вторая в списке команда - hg update -C Спас меня Емакс. Он честно начал орать на файлы "really edit modifed file?", я сообразил какую хуйню сделал, и прошёлся по всем файлам сохраняя их. Всё восстановил и сразу закоммитил.
Но холодный пот таки прошиб...
27 comments | post a comment
Родилась фраза "Подели себя на ноль" => означает "убей себя об стену" на айтишном.
В комментариях: "извлеки корень из своих минусов" => "и получишь комплексы" (c) dkrnl & gelvaos Гениально!
"Помножь себя на ноль" via jdevelop
Иллюстрация:
 via bik_top
23 comments | post a comment
Увидел у smee_again. Очень рад, что не завтракал. Осторожней, по нервам бьёт сильно. Выкладываю у себя - это нужно посмотреть каждому.
118 comments | post a comment
|
 |
|
 |
 |