Плагин полнотекстового поиска по Mantis для Firefox

Многие из вас, как и я, пользуются багтрекером Mantis. Поиск по нему в штатном интерфейсе ужасен: нужно выбирать “Все проекты”, нажимать “Просмотр обращений”, листать вниз, включать соответствующие режимы (назначено, не скрывать, все категории и т.д.) и только затем вводить поисковую фразу в маленькое окошечко.

Это издевательство. Поэтому я написал небольшой плагин для Firefox, который позволяет вводить нужную фразу прямо в интерфейсе браузера. Continue reading “Плагин полнотекстового поиска по Mantis для Firefox”

Витание в облаках: разрушение мифов о технологиях Cloud

В последнее время всё больше и больше вроде бы вменяемых людей начинают молиться на облачные решения как на следующий шаг развития цивилизации. Любые новости в этой теме преподносят как исключительные инновации, к выпуску которых были привлечены огромнейшие инвестиции. Люди превозносят шаги Google и Apple как флагманов этой индустрии.

Я решил написать эту небольшую заметку, чтобы собрать в одном месте основную информацию по технологиям клауда и виртуализации, чтобы тыкать носом всех кто будет меня агитировать за облачные технологии в будущем. Continue reading “Витание в облаках: разрушение мифов о технологиях Cloud”

Ежедневно стабильный проект, и релизы по чёткому графику? Легко!

У многих компаний-разработчиков цикл развития программного продукта выглядит так:

– делаем, делаем, делаем (при этом тестировщики особо не в напряге);
– тестируем (при этом производство новых фич стоит, а тестировщики взмылены до предела);
– собираем и выпускаем (тут тестировщки снова почти бездельничают);
– некоторое время ждём багрепортов (начинать что-то новоё и сложное – стрёмно, а то вдруг придётся перевыпускать релиз).

Надеюсь, всем очевидно что такая схема неоптимальна. Неравномерно загружено производство, неравномерно заняты тестировщики. А значит, бюджет компании используется неэффективно. Кроме того, настройка регулярного графика выхода релизов кажется задачей из области ненаучной фантастики, так как никто не может чётко сказать сколько по времени займёт процесс “делаем-чиним-выпускаем” в текущей итерации. Для многих это вообще естественное положение вещей.

В этом посте я переключу ваш мозг на 180 градусов и расскажу как сделать, чтобы вы смогли пообещать релизиться каждые N дней и выполняли это обещание лёгким движением руки. При этом каждый раз доставали, словно чёртика из коробочки, несколько клёвых киллинг-фич. Continue reading “Ежедневно стабильный проект, и релизы по чёткому графику? Легко!”

Код в шаблонах: две стороны одной медали

Страницы интернета в темах про разработку сайтов пестрят громкими фразами: скажем нет говнокоду! Нет коду в шаблонах! Разделим систему на логику и представление! Никакого выполняемого php и запросов к БД в html-разметке страницы!

Однако многие серьёзные фреймворки, до которых некоторым разработчикам в своём умственном развитии далеко как до луны раком, штатно применяют программный код прямо в шаблонах. Это и Zend Framework, и Symphony, и Ruby on Rails, и даже новомодный Yii. Казалось бы, куда катится мир? Неужели всё делается в угоду недоразвитым “программистам”, которые прочитали “самоучитель PHP за 30 минут” и хотят делать сайты без изучения MVC, REST, XSLT и прочих “взрослых” технологий?

Естественно нет. Как догадается любой здравомыслящий человек, всё это делается не просто так. В этом посте я расскажу, в чём здесь глубокий смысл. Continue reading “Код в шаблонах: две стороны одной медали”

Новый релиз UMI.CMS 2.8.4.1

Мы выпустили минорный релиз 2.8.4.1

В числе нововведений:
– фильтрация картинок через gdlib,
– вывод var_dump при “горящей” отладке в продакшене виден только разработчику (и не виден посетителям),
– десяток мелких улучшений в интерфейсах админки,
– подключение к Merchant API ВКонтакта.

Подробности

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

Мониторинг сайта: как первым узнать, когда что-то сломалось

Этот пост адресован менеджерам проектов по сайтам, а так же тем, кому это ещё предстоит в будущем. Итак, вы ведёте проект по разработке или поддержке сайта. Под вашим руководством работает несколько человек, а так же какие-то правки вносят другие люди – блоггеры, контентщики, сеошники. По хорошему надо ставить все задачи в таск-менеджер, но мы-то с вами знаем, что это не панацея. Ваш руководитель любит пробегать мимо и разбрасывать устные указания. Часть изменений вы вносите в личном общении с верстальщиками. А люди из соседнего отдела вообще вносят мелкие правки и слышать не хотят о том, что вы менеджер и должны контролировать этот процесс.

При этом, если вы с верстальщиками компетентны в плане корректного html-кода, то остальные участники могут тупо редактировать контент через “визуальный редактор” в админке, снося таким образом все тщательно выверенные стили и яваскрипты. Более того, я встречал менеджеров, которые даже не догадываются что когда два человека одновременно редактируют страницу – изменения одного из них всегда будут утеряны. Они уверены в том, что админка “сведёт” их правки воедино, как это сделали бы системы контроля исходного кода (svn). А если к сайту имеет доступ ещё и сам клиент..

Итак, вы менеджер по этому сайту, и у вас ум за разум заходит при попытке контролировать всё и вся. На вас выливают ушаты помоев за то, что на какой-то странице какая-то точка стоит не там где надо. По-хорошему надо было с самого начала писать тесты, но время утеряно, тестов нет, а контролировать надо прямо сейчас. Как? Continue reading “Мониторинг сайта: как первым узнать, когда что-то сломалось”

Яндекс.Метрика Веб-визор – бесплатно своими руками

Недавно популярный сервис статистики “Яндекс.Метрика” опубликовал новую киллинг-фичу: веб-визор. Владельцы корпоративных сайтов сразу начали сходить по ней с ума: вау! Это же фактически съёмка видео в реальном времени действий посетителей на вашем сайте! Не просто тепловая карта, не просто карта кликов, а реальный “ай-трекинг” того как люди возят курсором мыши по вашим веб-страницам. Потрясающий инструмент для маркетолога, но меня в тот момент сильно задела цена, которую Яндекс просил за эту услугу: нужно в течение трёх месяцев тратить не менее 6000 рублей рекламного бюджета в месяц.

Деньги в целом небольшие, но неприятен сам факт. Поэтому сегодня у меня наконец-то дошли руки рассказать, как устроена эта технология и как сделать аналогичную штуку на своём сайте совершенно бесплатно. Continue reading “Яндекс.Метрика Веб-визор – бесплатно своими руками”

Асинхронное программирование в веб-проектах

Согласно каноническому определению, асинхронное программирование (event-driven) – это когда результат функции вы получаете не сразу, а “когда-нибудь потом”. В этом посте я не буду говорить о мультипоточном выполнении программного кода. Речь о другом: вместо того, чтобы бороться с нагрузкой на систему путём масштабирования или тупой оптимизации кода и архитектуры, Continue reading “Асинхронное программирование в веб-проектах”

Вакансии: программист, тестировщик и технический писатель

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

Мы хотим нанять программиста, который приходит на работу чтобы работать. Не чтобы читать хабрахабр, башорг или лепру, а чтобы работать. Не чтобы грезить о волшебных офисах гугла с воздушными шариками, а чтобы сцуко работать. И чтобы понимал, что поставленная задача – это 1% от того что придётся сделать на самом деле, потому что никто не будет думать за него. Придётся включать голову и думать самому. Придётся каждый день изучать продукты конкурентов и извлекать интересные идеи. Придётся продумывать сценарии использования, обеспечивать все крайние случаи и покрывать их юнит-тестами. Придётся заботиться об обратной совместимости, ограниченных ресурсах и устойчивости к нагрузке. Придётся тесно общаться с коллегами и благодарить когда они будут тыкать пальцем в косяки в твоём коде.

Continue reading “Вакансии: программист, тестировщик и технический писатель”