Entries in the ‘Работа’ Category:

opera extensions

Ура, свершилось. Расширения Оперы это не миф, их уже можно пощупать.

Качать тут.

История юзер-агентов

В начале был NCSA Mosaic, и Mosaic называл себя NCSA_Mosaic/2.0 (Windows 3.1), и Mosaic показывал картинки с текстом, и счастье пришло.

И потом пришел новый веб-браузер, известный как «Mozilla», что сокращением было для «Mosaic Killer»(«Убийца Мозаики»)

в конце этой увлекательной статьи вы узнаете, почему юзер-агент Гугл Хрома выглядит так дико:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13

рекомендуется к прочтению

netbeans vs. utorrent

Коротко: даже самая медленная раздача в utorrent жутко тормозит работу в netbeans, если у вас включен своп.

Сегодня очень долго не мог понять, почему НБ прямо-таки подвисает на подсказках, пока чисто случайно не додумался вырубить торрент. Он раздавал всего 15кб/с, и этого оказалось достаточно.

добрый list

а вы знали, что в PHP переменные в list можно не указывать, если они не нужны?

list(,$a,,$b) = explode(":", "1:2:3:4");

лично меня такой синтаксис убил наповал.

исправляем alt-tab в netbeans

Сегодня наконец исправил надоедливый баг в Netbeans под виндой. Когда возвращаешься в NB после alt-tab, фокус пропадает с редактора и переходит на меню, приходилось постоянно жать Esc.

Баг, как пишут, заложен в JDK, а решается простой сменой визуальной темы для NB. Достаточно добавить в файл program files/папка NB/etc/netbeans.conf в конце опции netbeans_default_options вот такое:

--laf javax.swing.plaf.metal.MetalLookAndFeel

и перезапустить.

Заодно NB стал покрасивей выглядеть.
Кроме этой темы, есть и другие. Узнать и посмотреть другие темы можно, например, тут.

предыдущая

_Screenshot_-_10.03.2010_17_56_58

кликабле

без сомнения, “Предыдущая” – важнейший раздел сайта.

с новым 0x7DA годом

kalendar
кликабле

mysql, postgre, mongodb и снова mysql

На работе столкнулся с досадным недостатком mysql: он не умеет делать слияние отсортированных индексом массивов.

На пальцах: пусть есть таблица  objects (id, category_id, time) с индексом (category_id, time). Задача – выбрать среди данных нескольки категорий N последних.

Запрос:
SELECT  * FROM objects WHERE category_id IN (10,11,12,13, 14) ORDER BY time DESC LIMIT 10;
даже не думает работать по индексу. Он отбирает все объекты из этих категорий, сортирует их filesort’ом и потом отбирает первые. Хотя очень логично поступить аналогично сортировке слиянием: взять отсортированные последовательности для каждой категории и сливать их, пока не получим N элементов.

Итак, мелькнула идея попробовать применить PostgreSQL. Поставил, перелил в него таблицу, сделал аналогичные запросы – он приятно удивил: 0.5-0.6 секунд против 2.5-3.0 в мускуле. Причём Постгре был под виндой, а Мускул под FreeBSD. Не могу точно утверждать, индексы разруливает лучше или просто сыграл тот факт, что движок быстрее (а он реально быстрее), потому что он и без проставленных индексов работал быстрее мускула (в районе 1.0-1.5 сек).

Я бы на этом и остановился, но шеф настоял, чтобы я попробовал MongoDB. Опустив лирику, могу только подписаться под резюме: “Быстрый, как понос”. Для той же самой задачи он дал результаты порядка 0.2-0.3 сек.

И уже все были готовы перейти на использование MongoDB, как вдруг мелькнула шальная мысль. Сделали копию таблицу в Mysql MEMORY engine, внесли данные в нужном порядке, убрали (!) все индексы. Ура! Результаты порядка 0.02-0.05 сек.

Что тут сказать… Универсальных решений не бывает, вот и всё.

Opera лидирует

На моём подопечном сайте www.bisound.com в браузерах лидирует Opera. Приятно. Особенно, учитывая, что я именно её никогда не пиарил.

_Screenshot_-_26.11.2009_19_01_07
кликабл