Russian


15
Jul 11

Виртуализация разработки + vagrant как удобное средство для ее автоматизации

Выложил в сеть слайды своей презентации о виртуализации разработки ПО и использовании vagrant для автоматизации рутинных задач по управлению VM. Тема достаточно объемная, постараюсь более подробно описать в следующих постах.




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 репо).

Continue reading →


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, которая постоянно перед глазами.

Continue reading →


20
Aug 10

Рассказ о марафоне #soft24, часть 1

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

Но сначала – спасибо всем, кто принимал участие. Ребята, с вами было интересно общаться и работать над идеями и кодом, я с удовольствием приму участие и в следующих “забегах”. И, конечно, отдельное большое спасибо организаторам (и в первую очередь Тимофею Евграшину).

Угнать за 80 секунд

Вкратце об идее: участники собираются вместе (в буквальном смысле, удаленная работа отпадает) и создают законченный продукт за ограниченное время. В Украине уже проходило несколько подобных мероприятий, на которых люди создавали фильмы и журналы за 24 часа. Мы же собрались под одной крышей, чтобы создать софт.

Все вышло как нельзя лучше, и в качестве бонуса мы получили массу удовольствия от самого процесса. Но обо всем по порядку.

Continue reading →


22
Apr 10

Pin font и svn-клиенты под Mac OS

Pinfont

На досуге немного поигрался с django + python, вспомнил молодость. Получился своего рода полный цикл разработки веб-приложения, со скетчами, с несколькими итерациями кода, системой контроля версий (svn) и, в финале, выкатка рабочей версии на “production” хостинг.

pins

pinfont text generator v0.1images by garnenka.

Далее о выборе svn-клиента, Mac OS и удобстве пользователя.

Continue reading →


11
Apr 10

Bit counting, обзор методов

Одна из классических задач в программировании (по крайней мере, о способах ее решения упоминает Дональд Кнут в своем классическом труде) – подсчет выставленных в “1″ бит в числе.

Зачем?

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

Поиск в сети даст достаточно подробностей, здесь же я хочу привести краткую сводку фактов.

Методы подсчета можно условно разделить на три области – shifting, algebraic logic и table lookup.

Continue reading →


16
Mar 10

Умеют ли программисты программировать?

English version of this post here.

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

Так вот, время от времени, чтобы держать студентов в форме да и просто с целью получить удовольствие, вместо запланированной лекции мы предлагаем ребятам заняться программированием. Hack hour.

В прошлую пятницу мы предложили написать программу, которая

  • читает текст из stdin
  • разбивает его на слова (слово определяется как непрерывная последовательность [A-Za-z0-9])
  • … и выводит в stdout отсортированный по алфавиту список слов (lowercased), вместе со списком строк, на которых слово встречается

Довольно просто, не так ли? Так как я хотел быть уверен, что знаю, как решать задачу и примерно представляю, с какими трудностями можно столкнуться, перед занятием я запустил студию и набросал решение на чистом C++, без оптимизаций – просто как proof of concept. Заняло 30 минут чистого времени. В общем, мы ожидали, что студенты справятся с задачей примерно за час и у нас еще останется время, чтобы дать им материал лекции.

Как бы не так.

Continue reading →


3
Mar 10

Quote of the hour, status update

Пара слов о Quote of the hour – приложение работает, делает большую часть действий правильно, но на прошлой неделе не хватило времени привести его в товарный вид и оформить пост. Постараюсь исправиться в ближайшее время, а пока вам пару хороших слов о системных администраторах от xkcd.com