Мой новый джем: PrettyDiff

Илья • 16 января

У нас в компании новая фишка. Каждую вторую пятницу можно взять отгул чтобы поработать над любым open source проектом. Можно начать новый проект или принять участие в существующем. По окончанию дня нужно рассказать команде что именно ты сделал. Мы назвали это Open Source Fridays at Wildbit.

Вчера была моя первая пятница и я выпустил руби джем под названием PrettyDiff. Это маленькая библиотека для рендеринга HTML представления для диффов. Библиотека была выдрана прямиком из Бинстолка, где она каждый день рендерит тысячи страниц с дифами.

PrettyDiff рисует колонки с номерами строк, которые не мешают копировать содержимое дифов. Так же диф можно с лёгкостью раскрасить, если подключить небольшой CSS файл.

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

Джем залит на Gemcutter, исходники на гитхабе. Happy forking!

HTTP Client для Мак ОС

Илья • 17 марта 2009 г.

Тащусь от HTTP Client для Мак ОС. Позволяет быстро и легко формировать любой HTTP запрос, отправлять по нужному адресу и просматривать ответ сервера. Самое то для работы над АПИ для своего веб-приложения.

Профилируем Rails-приложение

Илья • 8 апреля 2008 г.

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

Читать дальше…

Изучая Lisp, я столкнулся с проблемой поиска подходящих задачек для практики. Хотелось чего-нибудь компактного, интересного и нетривиального.

Как раз для этих целей и был создан сайт Project Euler — решение интересных задач по математике и программированию.

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

Если зарегистрироваться на сайте, то можно отправлять свои ответы на задачи и, таким образом, закреплять свой прогресс. По количеству решённых задач на сайте строится Top-список пользователей.

Вот пример одной из самых простых задач с сайта:

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.

Несколько интересных фактов: всего на сайте зарегистрировано более 20 тыс. программистов, из которых 290 русских и 580 Рубистов. Самый популярный язык программирования C. На втором месте Питон, затем Джава, Хаскель и — сюрприз — Руби на пятом месте.

Иногда, в течении рабочего дня, возникает потребность написать и протестировать какое-нибудь регулярное выражение. Rubular — хороший помощник в этом деле. Это компактное, простое в использовании веб-приложение, в котором можно быстро написать регулярное выражение и протестировать его на любом тексте.

Приложение бесплатное, интерфейс работает при помощи Аякса, а в низу страницы находится краткая справка по использованию регулярных выражений в Ruby. Класс!

Дружим Ruby со Spotlight и Quicklook

Илья • 21 декабря 2007 г.

Дейв Томас не так давно наткнулся на очень интересный плагин для поисковой системы Spotlight, встроенной в Мак ОС. После установки, плагин позволяет искать по модулям, классам, методам и комментариям в любых файлах Ruby, находящихся на вашем Маке. Великолепная штуковина!

Если есть желание попробовать, то качаем Ruby Importer 0.2.1, затем копируем файл RubyImporter.mdimporter в папку /Library/Spotlight (папку возможно придётся создать).

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

$ mdimport -L && mdimport -r /Library/Spotlight/RubyImporter.mdimporter ~/

Теперь можно приступать к поиску:

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

Сегодня в порыве продуктивно-оптимизационной истерии нашел удобный способ отображать проект в Textmate Drawer.

Превратил такой, “стандартный” вариант:

В такой:

Суть такая, создаем новый проект, из Finder перекидываем содержимое app/ в Drawer. Это то, что мы используем чаще всего. Следом создаем в Drawer новую группу – rails root, куда засовываем всё остальное.

Кстати, вы знали что по запросам в Гугле продуктивность популярней чем порно? vs.

Уже несколько лет работаю на Маке в редакторе TextMate и до сих пор не знал о существовании такой замечательной незаменимой штукенции как TextMate Footnotes. Надеюсь и вы не знали :)

TextMate Footnotes это плугин для рельсов и его нужно устанавливать отдельно для каждого вашего веб-приложения, после чего, когда вы зайдёте в своё веб-приложение через браузер, вы увидите внизу страницы небольшое серое меню с потрясающе удобными ссылками: Controller, View, Layout, Stylesheets, Javascripts. Первые три ссылки откроют для вас прямо в ТекстМейте вьюшку, контроллер или лейаут данного действия, которое вы смотрите в браузере. Это потрясающе удобно! А ссылки stylesheets и javascripts выведут на страницу маленький аккуратный списочек используемых на данной странице стилей и скриптов.

Более того, используя Footnotes, можно просмотреть содержание сессии, куков, params и последние 200 строк логов.

Как всё это выглядит, можно посмотреть на фликре.

В общем, Footnotes позволяют экономить очень много времени и тем самым реально увеличивают продуктивность.

Кстати, идея эта, судя по всему, была взята из фреймворка Seaside, только на сиасайде она ещё круче в несколько раз.

А теперь, заходим в своё супер-крутое веб-приложение, которое не сегодня, завтра изменит весь мир, и устанавливаем плугин TextMate Footnotes:

script/plugin install -x http://macromates.com/svn/Bundles/trunk/Bundles/Rails.tmbundle/Support/plugins/footnotes

Перезапускаем веб-сервер (ну на всякий случай) и смотрим что из этого получилось в браузере :)

В комплекте с каждый Маком идёт диск XCode Tools. В основном этот пакет предназначен для создания софта для Мак ОС, поэтому многие себе его не устанавливают. А зря, потому что на нём есть несколько очень интересных утилит. В частности, FileMerge:

FileMerge позволяет сравнить два любых текстовых файла и отобразить разницу между ними. Очень удобно при сравнении нескольких ревизий из subversion.

Самое приятно, что приложение сделано в стиле Apple — просто, удобно и эстетично :)

MILK — лучший компьютерный стол?

Илья • 25 февраля 2007 г.

MacBook или MacBook Pro?

Илья • 23 февраля 2007 г.

Для тех кто колеблется и не может решить что купить посвящаю это откровение.

У этих двух машин есть только одно существенное отличие — дисплей. На макбуке он меньше по размеру и имеет худшие углы обзора, по сравнению с МакБук Про.

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

По скорости работы эти две машины не отличимы невооружённым глазом. А память работает на МакБуке даже быстрее, чем на МакБук Про. Проверено использованием Final Cut Pro.

Конечно, у МакБук Про есть ещё подсветка клавы и нормальная видеокарта. Зато макбук дольше работает от батареи и имеет более интересный дизайн.

И ещё один совет. Если берёте Мак, запихните туда как можно больше оперативной памяти! С пятьюстами метрами жить вообще невозможно. С гигом можно жить спокойно. С двумя гигами, можно жить припеваючи и одновременно использовать Параллели и фотошоп без тормозов.

Только будьте очень осторожны при покупке оперативной памяти для мака! Они очень привередливые к ней. Даже если вы купите память, которая будет соответствовать спецификации, она может испортить вам всю жизнь всякими косяками или вообще не заработать. Поэтому, сначала проконсультируйтесь с дилерами Apple, а лучше сами разведайте в инете рекоммендованные планки.

CSSEdit — билет в рай

Илья • 22 февраля 2007 г.

CSSEdit самый умопомрачительный CSS редактор в мире. Ощущение будто его делал не человек, а стадо волшебных бельгийских кроликов. Впрочем создатель примерно так себя и называет — macrabbit.

Как жалко, что не все редакторы такие удобные, функциональные и эстетичные…

Имя ей Color Schemer Studio. Она хоть и платная, зато самая лучшая из всех, что я когда-либо использовал.

В Color Schemer Studio очень много различных возможностей, но, не смотря на это, использовать её очень удобно и приятно. Вот три мои самые любимые функции:

Во-первых, программа позволяет снимать цвет с любой точки экрана и превращать его в web-safe или websmart. Более того, она отобразит целый цветовой круг гармонирующих цветов.

Во-вторых, там есть прекрасная кнопочка randomize, которая сгенерит вам целый набор гармоничных цветов! Самый простой способ поиска подходящего цвета. Золотая вещь :)

В-третьих, есть Color Mixer, который позволяет смешивать два цвета и выбрать цвет между ними.

И это далеко не всё, в Color Schemer Studio есть много других очень интересных функций, посмотрите, если вам интересно.

В общем, всем кто работает с цветом под Маком, очень советую Color Schemer Studio, как действительно лучший софт для этой задачи.

Тем, кто пользуется Mac OS и Locomotive посвящается этот небольшой трюк.

С помощью нехитрой ловкости рук, можно прописать весь environment локомотива подгружаться каждый раз, когда вы включаете терминал.

Это очень удобно, если у вас в системе нету ни Руби, ни рельсов, зато они есть под локомотивом. Вы и не заметите разницу: просто включаете терминал и вот у вас и руби и рельсы и все гемы с рмагиком :)

Собственно вот здесь прекрасно описано как это сделать.

Единственное замечание, я в .locomotive.environment.bash в конце ещё clear добавил, чтобы консоль не заспамливать.

Mephisto - лучший блог-движок

Илья • 14 января 2007 г.

Когда-то я пробовал старичка Wordpress, недоделку Typo и теперь вот новичка Mephisto. Больше всего понравился Мефисто, причём с гигантским отрывом от своих конкурентов.

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

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

Стандартная тема Simpla theme от паренька с коротким именем Phu тоже очень даже ничего. Практически ничего не пришлось менять, чтобы она удовлетворила мои эстетические потребности :)

В-третьих, не заметил пока ещё ни одного бага. С виду система очень стабильно работает. Хотя это не удивительно, если учесть КТО писал Мефисто…

И ещё, можно прямо через админку редактировать любые лейауты (которые кстати используют Liquid), подгрузить новые .js, .css файлы и картинки. В общем полноценно редактировать тему, не лазя в исходниках. Удобно, потому что быстро.

В общем мефисто достоин похвалы! Первый блог-движок от которого я в восторге. Рекомендую.