Вы читаете журнал [info]mclap

mclap

Янв. 14, 2012

03:45 am

В ушедшем году было:
1. первый крупный релиз на проекте за последние 3 года. внутреннее внедрение, много сил и нервов. чувствую себя немного атлантом уставшим.
2. ещё никогда так много не болел за год.
3. удалось найти 3 недели на отдых.
4. удалось найти немного времени на одну халтурку на erlang
5. прочитал Peopleware. размышлял о пересечениях с Литваком и личным опытом.
6. пересел на Lenovo x220. пока доволен.
7. перешел с FreeBSD + Ubuntu на Fedora 16 на своих рабочих станциях. счастлив. good bye, portmaster!
8. последнее что запомнилось - нашли способ как оптимизировать операцию длительностью < 1 мс. а все из-за запросо-обильного Far Manager!
9. дочь вовсю рассуждает и учится ставить вопросами в тупик.

Авг. 13, 2011

06:59 am - немного ерланга под утро

is_char(C) when C < 0; C > 255 -> false;
is_char(_) -> true.

%% (c) mclap 
strip_html(HTML) ->
	case is_list(HTML) of
		true -> case lists:all(fun(V) -> is_char(V) end, HTML) of
			true -> HTML;
			false -> lists:foldl(fun(X, AccIn) -> 
					strip_html(X) ++ AccIn
					end, "", HTML)
			end;
		false -> case tuple_size(HTML) of
			2 -> strip_html(element(2,HTML));
			_ -> strip_html(element(2,HTML)) ++
				 strip_html(element(3,HTML))
			end
end.

test() ->
	strip_html(example_data()).

Еще немного прекрасного из черновиков:
decode2(<<1:1, V:7, Rest/binary>>) ->
        {S, L} = decode2(Rest),
        {S bsl 7 + V, L+1};
decode2(<<0:1, V:7, _>>) ->
        { V, 1 };
decode2(<<0:1, V:7>>) ->
        { V, 1 }.

let rec decode = function
    | h::t when (h<128) -> h
    | h::t -> ((decode t) lsl 7) + (h land 127)

Аналогичный куску на Ocaml код на C занимает не менее 5 строк, а с комментариями и прочими проверками аргументов - уже экран (правда не в черновике, а в работе ;-)

Tags: ,

Июл. 7, 2011

12:03 pm

из комментов к http://www.opennet.ru/opennews/art.shtml?num=31112

Жаркий летний день. Лишь тихий шелест напольного вентилятора нарушает повисшую тишину в кабинете Того Самого (кондиционеры вызывают простудные заболевания, поэтому Он признает лишь вентиляторы). Наконец невзрачный человек в дорогом костюме, стоящий на гипоалергенном ковре, решает прервать затянувшуюся паузу:
- Вы все не так поняли. Вирусы...
- Стоп! Это я уже слышал. Вы ведь признали, что ваша продукция - по сути среда для распространения вирусов?
- Да, но...
- И эта зараза уже почти 20 лет отравляет жизнь населению Российской Федерации?
- Но это...
- И за это время, несмотря на все усилия, ваша компания не смогла изменить ситуацию?
- Я вам все объясню! - в отчаянии закричал невзрачный человек - Вирусы...
- Молчать!!! Вы Мне, Главному Санитарному Врачу, будете рассказывать про вирусы!? - в кабинете опять повисла пауза - Значит так. Я, Геннадий Онищенко, с сегоднешнего дня ЗАПРЕЩАЮ ввоз на территорию Российской Федерации продукции компании Microsoft.

Tags:

Май. 27, 2011

09:36 pm

Русских на кипре много. Забавен диалог: - апчхи! - Будьте здоровы! - ОК! Немецкий слышно тоже часто. У меня сложилось впечатление по двум отелям Tsokos - Asterias & Dome - русские и немцы где-то 60%отдыхающих. В Dome, впрочем чаще была слышна речь английского DJ, у которого язык совсем без костей. В городе распределение другое.

Май. 24, 2011

05:36 pm - Кипр

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

Май. 6, 2011

08:19 am - приметы времени

Раньше писали "света+дима=...". Теперь на детских площадках пишут: "id12345678901234, добавляйте!". ICQ тоже встречается, но реже.

Янв. 25, 2011

06:33 am - tfs, perforce & cvs

Подумалось тут - если perforce рассматривать как CVS++ - одинаковое количество костылей для пользователя + багтракер, то TFS - явно CVS# - там можно связывать комиты и тикеты (wow!). Впрочем, TFS умеет файлы переименовывать.

Пока не перешли в проекте на git - привязкой комитов к тикетам у меня занимался скрипт на python - /usr/share/trac/contrib/trac-post-commit-hook, повешенный на post-revprop-change в svn зеркале.

Что касается user-friendly связки комитов с тикетами. На svn как-то задали свойства, которые понимает TortoiseSVN - она при комите показывала форму с полем, куда можно вбить номер тикета. Половина разработчиков предпочла указывать только номер тикета без какого-либо внятного описания, описывающего выполненные изменения.

Tags: , ,

Дек. 31, 2010

03:00 am

в уходящем году, было:
1. в гневе выпить кофе и успокоиться
2. патчи для libevent
3. внутренний патч для samba
4. libsmbclient, как самое большое разочарование
5. миграция проектов на git для использования быстрых feature branches. git log --pickaxe рулит
6. первый раз (с 2003 года) задумался, что trac не крут
7. дочь теперь помнит, что ей обещали, и может внятно, и почти без акцента, напомнить
8. получить грустный подарок к годовщине свадьбы

Дек. 20, 2010

02:02 am - windows wildcards again

Windows реализует маску "?" очень забавно - а именно как exactly zero or one character. Но избирательно - zero он может быть только перед "."

Аналогом "prefix????.ext" является перловое /^prefix.{0,4}\.ext$/

То есть, результатом работы маски станут имена: prefix.ext, prefix1.ext, prefix1234.ext. А вот, скажем, маска "p?refix.ext" не поймает "prefix.ext".

wine (1.2.2) похоже умеет только fnmatch(3).

Окт. 5, 2010

Navigate: (Previous 10 Entries)