28
01/2011

Наша гордость

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

Информация о проекте — http://intaro.ru/portfolio/gosduma/

Мой пост о настройке системы под нагрузки — http://intaro.ru/blog/2011/01/24/gosduma-highload/.

22
05/2010

Symfony Camp UA 2010

Всем, у кого есть желание и возможность побывать на конференции разработчиков Symfony, добро пожаловать на Symfony CAMP UA 2010.

Конференция пройдет 3 июля 2010 года, участие бесплатное. Буду освещаться тенденции развития фреймворка, актуальные проблемы разработки и многое другое.

Также приглашаются люди, которые будут помогать в закулисных делах конференции. Если у вас есть желание помочь, при регистрации в комментариях к заявке укажите «хочу в help team».

03
01/2010

Твиттер-бот Полиглот

Сегодня за день наваял и запустил твиттер-бота с рабочим названием «Полиглот».

Адрес@_polyglot

Суть работы: бот отвечает на реплаи (reply) и личные сообщения (direct message) их переводом. С помощью хеш-тегов задаются исходный и конечный языки перевода в формате #from_lang2to_lang.

Пример

Запрос:

salikhov: @_polyglot Мороз и солнце — день чудесный #ru2en
salikhov: D _polyglot It is wonderful #en2de

Ответ:

_polyglot: D salikhov Frost and sun - a wonderful day
_polyglot: D salikhov Es ist wunderbar

Бот на данный момент поддерживает следующие хеш-теги:

#zh2en #nl2en #en2ar #en2nl #en2fr #en2de #en2el #en2it #en2ja #en2ko #en2pt #en2ru #en2es #en2sv #fr2sv #de2fr #de2sv #el2en #it2en #ja2en #ko2en #pt2en #ru2en #es2en #es2sv #nl2sv #sv2de #sv2en #sv2es #sv2fr

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

Если говорить о технической части, то бот написан на Ruby с использованием gem-пакетов rsay и twitter4r. На данный момент бот обрабатывает входящие сообщения с частотой раз в минуту.

Писал бота в рамках продолжающегося фонового изучения Ruby, плюс ко всему поработал с Twitter API, которое к слову сказать очень «прозрачно» и понятно.

При обнаружении косяков в работе сообщайте мне в личку или здесь в комментарии.

В общем, фоловьте и пользуйтесь на здоровье :)

PS Кстати можете считать меня мазохистом, т.к. разрабатывал, отлаживал и развертывал «Полиглота» я через GPRS.

UPD Все переводы «Полиглот» теперь высылает только на DM во избежание засорения френд-ленты и появления спама. Запросы как и раньше можно отправлять через reply и DM.

11
11/2009

Мысли по поводу минимизации js файлов

Мысли по поводу минимизации js файловСейчас достаточно стандартной практикой стала минимизация js- и css-файлов. Сформировались как сервисы (Packer от Дена Эдвардса, JS Minifier), так и server-side скрипты для автоматической минимизации файлов (YUI Comressor, JSMin для PHP). Все это очень хорошо, я не спорю. Но мне сейчас хотелось бы обсудить «стратегию» минимизации.

Дело в том, что при оптимизации загрузки страницы, как правило, рассматривают вопрос снижения времени скачивания js-файлов, но упускают вопрос инициализации загруженного кода.

читать далее...

07
11/2009

Коррекция адреса веб-страницы

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

На самом деле задача решается очень просто. Достаточно обратиться к расстоянию Левенштейна — понятию, обозначающему разницу двух строк в виде количества операций вставки, удаления и замены, необходимых для перевода одной строки в другую.

Если говорить о конкретных реализациях, то есть несколько готовых способов определения расстояния Левенштейна.

Существуют готовые функции levenshtein в PHP и PostgreSQL, у которых присутствует ограничение на длину сравниваемых строк в 255 символов. Для MySQL и Oracle я обнаружил только хранимые процедуры, которые рассчитывают данное расстояние.

Данную фичу я добавил на этом блоге. Для демонстрации ее работы возьмем адрес:

http://blog.salikhovilyas.ru/2009/06/07/did-you-know/

При вводе более-менее похожего адреса, система сразу перенапраляет на правильный:

http://blog.salikhovilyas.ru/2009/06/07/didyouknow/

Если адрес отличается достаточно сильно, то система выдает 404 страницу, а также предлагает наиболее похожие адреса:

http://blog.salikhovilyas.ru/2009/06/7/didknow/

Аналогичную логику я добавил в небольшую symfony based cms, которую мы используем в своих проектах.

Если говорить о популярных на данный момент CMS, аналогичный функционал я заметил только в umi.cms, в остальных системах ничего подобного я не нашел.

01
09/2009

И поработать, в принципе, можно

Пришло сегодня на job@intaro.ru:

Добрый день! Очень хочу работать! Не все умею, но быстро научусь.
Пишу на php. Зовите, приеду пообщаемся, может сгожусь. 

Человек даже не напрягся указать, как его зовут. Такое письмо-надежда в никуда.

А если серьезно, то у нас открыты вакансии php-программиста и js-программиста. Работы много, проекты интересные. Резюме — на указанный выше или мой ящик.

_