Нестройные рубиновые мысли

Рассказ о серых трудовых буднях Ruby on Rails разработчика

Новый адрес блога, DevConf и HotCode

| Комментарии

Во-первых, я давно хотел это сделать, а сегодня сделал — теперь блог будет доступен по адресу http://evtuhovich.ru. По старому адресу он тоже будет доступен, но основным теперь будет этот. Дело в том, что этот блог — это единственное место, где я публикую хоть какие-то тексты, поэтому оставлять его на домене третьего уровня мне показалось неправильно.

Во-вторых, 14 июня в Москве пройдет конференция DevConf. На ней в очередной раз я в составе RailClub помогаю организовывать Ruby-секцию. Пока заявок на доклады немного, всего 5, но мы уже работаем над тем, чтобы это была достойная локальная Ruby тусовка, так что приглашаю прийти всех желающих. О докладах я напишу подробнее попозже, когда список окончательно сформируется.

В-третьих, в Киеве 31 мая — 1 июня пройдет огромная конференция HotCode, где я буду выступать с новым докладом «Четыре года с Chef: история отношений». На конференции будет 9 параллельных потоков, поэтому если вам хочется увидеть Киев, который ангельски хорош в это время года, и совместить приятное с полезным, приезжайте.

Коллеги шутят, что моему стоит сменить название с «Нестройные рубиновые мысли» на что-то, связанное со слоном (потому что слон — символ PostgreSQL). Я постараюсь исправиться и больше времени уделять Ruby в своих постах.

PostgreSQL 9.3 Beta 1 на OSX

| Комментарии

Два дня назад, 13 мая, вышла beta 1 PostgreSQL 9.3. Во-первых, это хороший знак, что уже пора обновляться на 9.2, либо выбирать 9.2 как основную БД. 9.3 планируется зарелизить в третьем квартале 2013 года.

Обо всех новых возможностях 9.3 можно почитать на официальной wiki.

Но чтобы не только почитать, но и попробовать, я напишу здесь, как поставить 9.3 beta 1 на OSX.

БД — большой кэш

| Комментарии

В прошлый раз я обещал написать о том, что в проектах с более менее серьезной нагрузкой БД либо помещается в память, либо не работает. Ситуация в современном мире меняется в связи с появлением SSD дисков, но пока что они стоят достаточно дорого, по сравнению со старыми добрыми вращающимися дисками. Чтобы «потрогать» это руками, проделаем несложный тест.

Партиционирование

| Комментарии

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

Транзакции и несколько БД

| Комментарии

Иногда так случается, что на проекте необходимо использовать более одного сервера баз данных. Оказывается, в rails можно достаточно удобно поддерживать актуальность нескольких БД с помощью миграций.

Блокировки в PostgreSQL

| Комментарии

Чтобы рассказать о тонких моментах pg_repack, мне понадобится немного углубиться в тему блокировок в PostgreSQL. Конечно, лучше всего начать читать про них в официальной документации. Для этой статьи достаточно понимать, что эксклюзивная блокировка (ACCESS EXCLUSIVE LOCK) препятствует выполнению всех операций, включая SELECT, и она нужна для операции ALTER TABLE.

Ремонт БД на лету с помощью Pg_repack

| Комментарии

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

Одной из бед всех версионных БД является разбухание таблиц. Все бы ничего, но если количество активно используемых данных перестает влезать в оперативную память, то время обработки запросов к БД чрезвычайно сильно возрастает (об этом я напишу в ближайшем будущем). И чтобы «впихнуть» размеры таблицы в нужный размер, иногда приходится делать некоторые нетрадиционные трюки.

Последствия выступления на Railsclub’Ulsk

| Комментарии

В эту субботу 15 декабря я выступал в Ульяновске с докладом «Нетрадиционное использование Ruby и PostgreSQL». Несмотря на несколько провокационное название, доклад был посвящен вполне обыденным вещам: о том, как использовать Ruby и PostgreSQL не в web-проекте с Rails. Я рассказал о Ruby внутри Vim, hstore и PostgreSQL массивах внутри Rails (кстати, hstore и ARRAY неоднократно упоминались на конференции, так что я был неоригинален), а самая забавная часть моего доклада была посвящена несуществующей документоориентированной БД rmongo.rb. Видеозапись второго дня еще доступна на сайте Railsclub, и я надеюсь, что и первый день скоро появится в общем доступе.

Исходные коды, которые связаны с докладом, я выложил на Gist, сам доклад я выложил на Slideshare.

Index Only Scan в Postgresql 9.2

| Комментарии

Вообще, сам не узнаю себя, уже ровно месяц прошел с выпуска Postgresql 9.2, даже вышло обновление 9.2.1, исправляющее некоторые баги, а я все еще ничего не написал об этом.

Поэтому сегодня рассказ будет о Index Only Scan — самом заметном, по моему мнению, изменении в 9.2. Кстати, именно это изменение стоит первым в Release Notes, а значит я не одинок.

Кипр и хвосты

| Комментарии

22 сентября я уезжаю на Кипр на 3 недели всей семьей. Если кто-то хочется встретиться со мною лично, либо есть какое-то деловое или не очень предложение, обращайтесь на мой email.

Сегодня уезжает последний наш гость на конференции RailsClub — Диркьян Бушинк. Мы с Иваном Самсоновым успели взять у него интервью, которое выйдет в ближайшем подкасте RubyNoName. Я очень благодарен всем, кто помогал проводить нам конференцию, а также тем, кто пришел. Я прочитал множество теплых отзывов в твиттере, больше вам спасибо за это.

Новый выпуск подкаста выйдет до конца этой недели. Мы немного выбились из графика в связи с конференцией, но мы наверстаем отставание в ближайшем будущем. Как и обещали, мы уже на протяжении почти 9 месяцев держим график выпуска подкаста — номер раз в две недели. Более того, 4 человека вызвались помочь нам сделать сайт подкаста, на следующей недели я начну им заниматься.

Последние две недели были так плотно насыщены событиями, что я даже рад, что наконец-то смогу отдохнуть.