Skip to Content

Февраль 2008

go.mail.ru ≠ yandex.ru ?

Принято считать, что поисковая выдача на Mail.ru и поисковая выдача Яндекса - это одно и то же (с точностью до региональных настроек, которые разные). И последние года два это было так с какой-то точностью.
При этом трафик с go.mail.ru и с Яндекса был сильно скоррелирован. Аудитория, конечно, заметно отличается, поэтому по конкретным запросам отношение частот переходов не вполне соответствовали общерунетовскому среднему 1:6 (или около того, отношение довольно быстро меняется в сторону mail.ru), но выдача, насколько я ее смотрел, была одинаковой.

В последнюю неделю ситуация кардинально изменилась, на картинке среднесуточный трафик на блог:

blog-weekavg.png
Mail.ru стало давать в разы больше трафика, чем Яндекс, причем всего по нескольким запросам. Удивительнее всего то, что в мейловой выдаче отсутствует очевидный лидер по этому запросу (и это не мой блог :).

При проверке по другим запросам - выдача одинаковая по средне- и низкочастотникам, но по некоторым высокочастотникам - отличается. Mail редактирует поисковые результаты по избранным запросам?

FreeBSD: ru_RU.UTF-8 LC_COLLATE

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

Наш читатель, Александр Загребин, любезно поделился исходником locale LC_COLLATE для FreeBSD, который лечит проблему сортировок для ru_RU.UTF-8. Я немножко поправил Makefile, чтобы результат ставился прямо поверх системного файла, выкладываю (с согласия автора, естественно) это для всеобщего использования:

Update
Я сделал работу над ошибками, обновленный вариант (с тем же URL) и комментарии к нему берите здесь.

Граждане, не забывайте про -Wall

Как-то я даже удивился, ударившись примерно об такое вот:

  1. // external.c:
  2. float func() { return 1.0; }
  3.  
  4. // main.c
  5. #include "stdio.h"
  6. int main(void) {
  7.   float val = func();
  8.   printf("%f %f\n",val,func());
  9. }
stdio не в тех кавычках т.к. иначе RSS испортится, а < не понимает красивый форматтер :)

Лечение проблем LC_COLLATE при использовании UTF-8 в PostgreSQL под FreeBSD

Как я уже писал, при использовании UTF-8 в PostgreSQL под FreeBSD результат больно бъется: сортировка русских букв неправильная (касается это только буквы ё). Причина - в кривой locale под FreeBSD (и Mac OS X).

Естественно, на эти грабли уже много раз наступали и для PostgreSQL 8.1 существуют патчи имени Palle Girgensohn, позволяющие использовать IBM-овскую библиотеку ICU в которой все сделано правильно для безумного количества языков.

Чудеса глобальной почты

Изучаю сайт usps.gov в части доставки в Россию. Нахожу там феноменальное:

Areas Served: All except Chaibucha, Yamsk, Garmanda, Gizhiga, Rep de Tchetchnya, Tachtoyamsk, and Verchniyi paren.
Ну ладно, простим им Чечню, хотя туда должно бы уже ходить. Но за что обижают Чайбуху, Ямск, Гарманду, Гижигу, Тахтоямск и Верхнего Парня ?

Начинаю разбираться. Выясняется, что все это - поселки в двух районах Магаданской области, Ольском и Северо-Эвенском. Но там еще МНОГО (по местным меркам) населенных пунктов (Северо-Эвенский район на Гугле).

Что, единственный почтальон в Эвенске согласен ездить в Тополовку, но не повезет iPod в Гижигу, которая ближе ? И мнение этого почтальона магическим образом преломилось и добралось до USPS ?

Большие, но по пять

Мучавшая меня проблема выбора между весом и качеством автофокуса счастливо разрешилась в пользу автофокуса. Оказалось невозможно устоять перед б-у в идеальном состоянии и больше чем на штуку дешевле магазинной цены. F6F70011.jpg

Надо сказать, что оно мне нравится:

  • Картинка хорошая. Я бы даже сказал, отличная.
  • Камера гораздо легче, чем цифровые единички прошлых серий, при этом вполне ухватистая. Конечно, хотелось бы еще легче, но по прикидкам, выездной комплект будет легче на кило или около того.
  • 10 кадров в секунду, 7 кадров в серии брекетинга и почти правильное управление подъемом зеркала - это новые забавные возможности для HDR/super-resolution и подобных упражнений. Хотя варез для этого, возможно, придется и самому писать.

P.S. Запасных батарей за разумные деньги в москве нет, едут с ebay.

P.P.S. Цитата из доки: "В данной Инструкции под термином «SD-карта» понимается карта памяти типа SD".

Больно ударился об UTF-8

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

Берем русские тексты с буквой ё. Да, их немного, но они есть. Заливаем в Postgresql, начинаем сортировать и делать всякие прочие upper/lower преобразования. Видим... плохое видим:

lexa=# SELECT * from aa order by bb;
 bb
----
 еа
 ее
 ея
 её
(4 rows)

При этом, если база в кодировке KOI8 (попробовал) или cp1251 (не пробовал, но должно быть так же), то все отлично.

Причина выяснилась, оказалась банальной:

$ uname -v
FreeBSD 6.2-RELEASE-p9
$ ls -l /usr/share/locale/ru_RU.UTF-8/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 Dec  3 23:30 /usr/share/locale/ru_RU.UTF-8/
LC_COLLATE -> ../la_LN.US-ASCII/LC_COLLATE

Надо сказать, что такого свинства в 21-м веке я как-то не ожидал.

Да, чтобы два раза не вставать. В Леопарде локаль такая же

Искусство программирования

Потихоньку ковыряю исходники dcraw

Жесть: после отпиливания (по живому, расстановкой #if 0 в почти произвольных местах) примерно 3/4 программы (из 8500 строчек осталось 2500), остаток продолжает довольно осмысленно работать. Не удивлюсь, если он регенерирует к утру.

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

Обожаю язык C++

cd STLport-5.1.5/build/test/unit
gmake -f gcc.mak all-static 2>build.error >build.log

Получаю одно (!) сообщение об ошибке, размер сообщения 795 килобайт.

CUDA для Mac

Вышла бета версия NVidia CUDA for Mac OS X. На удивление, сразу в публичный доступ, через девелоперский сайт прогонять не стали.

Естественно, требует Мака с видеокартой NVidia 8xxx. Менее естественно, но требует Leopard 10.5.2 и установленного Leopard Graphic Update. Так как все это у меня было, я слегка поигрался.

Выводы:

  • Все примеры вроде работают.
  • 8600M - довольно медленная карта, разница в скорости в сравнении с 8800GTX от двух до восьми раз, чем лучше сделано приложение, тем больше разница. И если простые потоковые вычисления очевидно имеет смысл тащить на видеокарту, то с чем-то более сложным уже не факт. Например, пример historgram256 работает на CPU быстрее, чем на видеокарте (790Mb/sec против 850. 8800GTX считает ту же гистограмму со скоростью 5.4Gb/sec).
  • 128 мегабайт видеопамяти - это очень мало. Для тех же примеров с гистограммами пришлось размер данных уменьшать со 100 мегабайт до 20. Если вспомнить, что одна из идей была - перенести процессинг графики на видео, а 20-мегапиксельный файл - это 80 мегабайт, то становится немного грустно.

Спектры отражения бумаг

Многие, наверное, уже видели. Для остальных не могу не проанонсировать Online Paper Spectrum Comparator - визуализированные спектры 32 разных фотобумаг для струйных принтеров, включая 12 эпсоновских.

Возникло острое желание поработать с какой-то бумагой без оптического отбеливателя (т.е. без пика в районе 430 нм), просто чтобы понять, что это такое. Среди эпсоновских (читай - легко доступных в Москве) такая нашлась только одна, UltraSmooth Fine Art.

Большие мониторы, часть 2

Проблема выбора монитора похоже разрешилась.

NEC выпустил огуречный лосьон девайс по фамилии LCD3090WQXi, который сочетает все желаемые свойства:

  • большой охват по цвету;
  • 4 мегапикселя;
  • калибровочные кривые внутри монитора;
  • два входа (три были бы лучше, конечно).
Display Port отсутствует, но ведь и видеокарт с больше-чем-восьмибитным выходом пока нет, а значит калибровочные кривые нам все это заменят. Осталось дождаться появления в продаже. Думаю, к апрелю будет.

А нет ли правила, согласно которому форматы принтера и монитора должны быть близки ? А то последние лет 8-10 это правило я соблюдаю....

Маковое, бессистемное

Интересно, что должен думать покупатель, купивший Mac Mini (или, как я понимаю, любой другой не-ноутбук), к нему крутую беспроводную клавиатуру и не менее крутую беспроводную мышь и принесший все это домой не включая в магазине ?
Или есть таки способ совокупить BT-устройства до ввода пользовательских данных при первой загрузке ? Был категорически неправ (см. зачеркнутое), если проводной клавиатуры не найдено при первой загрузке, то будет попытка спариться с BT по упрощенной схеме.

Не менее интересно, кто додумался к Mac Mini сдизайнить адаптер питания, который занимает больше места, чем сам девайс (с учетом мотка толстых проводов) ? Неудивительно, что на сайте Apple про питальник стыдливо умалчивают (в отличие от ноутбучных адаптеров, которые показаны и расписаны во всей красе).

Еще прикольнее, что в поставке свежекупленного Mini идут две операционки: Tiger и Leopard (установлен Tiger). Как-то на стиль Apple не похоже, давать юзеру такой выбор - не в их стиле.

Профилирование принтеров: игры с насыщенностью

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

Upd проблемы с кросспостом в ЖЖ поправлены.

Исходники CuBLAS/CuFFT

Программирующим на CUDA может быть интересно: NVidia начала раздавать исходники библиотек CUBLAS/CUFFT.

Я, правда, не очень понимаю статус этого дела:

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

А вот что точно открыто всем желающим, так это визуальный профайлер (beta) для той же CUDA. Пока не смотрел, руки не дошли.



.