Выложил в сеть слайды своей презентации о виртуализации разработки ПО и использовании vagrant для автоматизации рутинных задач по управлению VM. Тема достаточно объемная, постараюсь более подробно описать в следующих постах.
Russian
10
Jun 11
Замена фонта консоли Windows на более подходящий
Одна из вещей, которая раздражает в Windows – ограниченность настроек консоли aka cmd.exe. В частности, выбор шрифтов сводится к Consolas, Lucida Console и невнятным Raster Fonts:

В то же время, есть большое количество других фонтов, которые хорошо подходят для задач программирования и администрирования. Неплохой список можно найти в этой статье или тут, лично я же предпочитаю использовать Inconsolanta.
Как оказалось, подключить ваш любимый фонт к консоли можно, хотя это требует некоторых действий с реестром, за наводку спасибо Скотту:
- Откройте HKLM/Software/Microsoft/Windows NT/CurrentVersion/Console/TrueTypeFont. Вы увидите несколько значений, соответствующим Lucida и Consolas.
- Создайте новый String Value. Название должно состоять из нолей и быть на один символ длиннее предыдущего подобного названия. Так, в моем случае имя ключа – “000″.
- Значение ключа – название фонта. Вообще на фонты накладываются некоторые ограничения, подробнее о них вы можете прочесть в MS Knowledge Base.
- Reboot. Без этого шрифты не подхватятся.

Все. После перезагрузки новый фонт можно настроить в качестве фонта по умолчанию и ваша консоль станет удобнее.
Хорошая альтернатива танцам с бубном вокруг реестра – open-source проект Console2. Как пишут авторы:
Console is a Windows console window enhancement. Console features include: multiple tabs, text editor-like text selection, different background types, alpha and color-key transparency, configurable font, different window styles.
Console2 недавно поднялся до второй версии, и выглядит довольно-таки неплохо, с успехом заменяя стандартные средства.

27
Mar 11
Использование github для хранения персональных настроек
Проблема унификации персональных настроек среды знакома каждому, кто работает на нескольких компьютерах. При работе в unix/linux/*bsd у каждого довольно быстро появляется свой любимый набор aliases, bash-functions, PS1 и переменных среды, которые облегчают работу. Не стоит забывать и о настройках других программ, таких, как vim, emacs или git.
По счастью, большая часть настроек хранится на *unix-системах в простых текстовых файлах и может быть легко скопирована на новый сервер. Однако, при росте количества серверов вы неизбежно сталкиваетесь с ограничениями такого подхода. Какую версию считать основной мастер-копией? Что, если в вашем парке несколько операционных систем и настройки разнятся от одной системы к другой? Что делать, наконец, если мастер-копию настроек возможно быстро скачать не на все сервера – скажем, она лежит на вашей основной рабочей машине в офисе компании за файрволлом?
Появление distributed version control systems, таких, как git и mercurial, вкупе с возможностью хостить свои персональные репозитории в облаках позволяет значительно уменьшить эти проблемы. Я воспользовался публичным хостингом на github, однако, если вы не хотите давать доступ к вашим настройкам – есть и другие варианты (например, unfuddle предлагает бесплатный приватный хостинг git и svn репо).
18
Mar 11
Введение в git
Выложил в публичный доступ мою презентацию “Introduction to git”. В первую очередь она рассчитана на разработчиков (а на кого же еще?), речь идет не только о том, как git использовать, но и о дизайне, предпросылках для создания git, внутренней структуре репо и многом другом.
17
Mar 11
Настройка bash completion для git под Mac OS
В последнее время я часто использую git для разных проектов и хочу поделиться несколькими советами, как сделать работу с ним удобнее.
Одним из преимуществ git являются дешевые бранчи. Поскольку бранч – это просто файл в .git/refs/heads, который содержит id последнего коммита в этом бранче, создание нового бранча выполняется за очень небольшое время. При таких возможностях разумно использовать бранчи, что называется, “на все деньги”, что большинство программистов и делает.
Независимо от выбранной модели использования бранчей, рано или поздно наступает момент, когда можно забыть, в каком бранче вы находитесь в данный момент и закоммитить код не туда. Хотя это некритично и ошибку можно легко исправить, но таких ситуаций по возможности хотелось бы избегать. К счастью, информацию о имени бранча и прочие сведения довольно легко добавить в bash prompt, которая постоянно перед глазами.
20
Aug 10
Рассказ о марафоне #soft24, часть 1
Прошла неделя, страсти улеглись, и я хочу немного рассказать о прошедшем на прошлых выходных марафоне по разработке приложений soft24.
Но сначала – спасибо всем, кто принимал участие. Ребята, с вами было интересно общаться и работать над идеями и кодом, я с удовольствием приму участие и в следующих “забегах”. И, конечно, отдельное большое спасибо организаторам (и в первую очередь Тимофею Евграшину).
Угнать за 80 секунд
Вкратце об идее: участники собираются вместе (в буквальном смысле, удаленная работа отпадает) и создают законченный продукт за ограниченное время. В Украине уже проходило несколько подобных мероприятий, на которых люди создавали фильмы и журналы за 24 часа. Мы же собрались под одной крышей, чтобы создать софт.
Все вышло как нельзя лучше, и в качестве бонуса мы получили массу удовольствия от самого процесса. Но обо всем по порядку.
22
Apr 10
Pin font и svn-клиенты под Mac OS
Pinfont
На досуге немного поигрался с django + python, вспомнил молодость. Получился своего рода полный цикл разработки веб-приложения, со скетчами, с несколькими итерациями кода, системой контроля версий (svn) и, в финале, выкатка рабочей версии на “production” хостинг.
pinfont text generator v0.1 | images by garnenka.
Далее о выборе svn-клиента, Mac OS и удобстве пользователя.
11
Apr 10
Bit counting, обзор методов
Одна из классических задач в программировании (по крайней мере, о способах ее решения упоминает Дональд Кнут в своем классическом труде) – подсчет выставленных в “1″ бит в числе.
Зачем?
Почему эта задача важна? Во-первых, она интересна сама по себе – есть несколько способов решения, которые кардинально отличаются производительностью и выбор правильной реализации может значительно ускорить ваш код. Во-вторых, у нее много практических применений – например, в протоколах маршрутизации или поиска. И, в-третьих, она встречается на собеседованиях в крупных компаниях, так что будет не лишним немного освежить свои знания.
Поиск в сети даст достаточно подробностей, здесь же я хочу привести краткую сводку фактов.
Методы подсчета можно условно разделить на три области – shifting, algebraic logic и table lookup.
16
Mar 10
Умеют ли программисты программировать?
English version of this post here.
Как вы, возможно, знаете, наша компания проводит программу интерншипа в нескольких странах, включая и Украину. В Киеве мы проводим обучение второй год подряд, и весьма довольны результатами, которые мы получили в 2009.
Так вот, время от времени, чтобы держать студентов в форме да и просто с целью получить удовольствие, вместо запланированной лекции мы предлагаем ребятам заняться программированием. Hack hour.
В прошлую пятницу мы предложили написать программу, которая
- читает текст из stdin
- разбивает его на слова (слово определяется как непрерывная последовательность [A-Za-z0-9])
- … и выводит в stdout отсортированный по алфавиту список слов (lowercased), вместе со списком строк, на которых слово встречается
Довольно просто, не так ли? Так как я хотел быть уверен, что знаю, как решать задачу и примерно представляю, с какими трудностями можно столкнуться, перед занятием я запустил студию и набросал решение на чистом C++, без оптимизаций – просто как proof of concept. Заняло 30 минут чистого времени. В общем, мы ожидали, что студенты справятся с задачей примерно за час и у нас еще останется время, чтобы дать им материал лекции.
Как бы не так.
3
Mar 10
Quote of the hour, status update
Пара слов о Quote of the hour – приложение работает, делает большую часть действий правильно, но на прошлой неделе не хватило времени привести его в товарный вид и оформить пост. Постараюсь исправиться в ближайшее время, а пока вам пару хороших слов о системных администраторах от xkcd.com


