Самые полезные PostgreSQL расширения
Написал статью про самые полезные PostgreSQL расширение в блог Railsware:
http://blog.railsware.com/2012/04/23/postgresql-most-useful-extensions/
Приятного прочтения.
CouchDB и CouchApp
Привет всем. Часть статей я начал писать и публиковать в блоге компании RW. Недавние публикации связаны с CouchDB и CouchApp:
http://blog.railsware.com/2012/03/12/couchdb-and-couchapp-part-1/
http://blog.railsware.com/2012/03/15/couchdb-and-couchapp-part-2/
http://blog.railsware.com/2012/03/26/couchdb-and-couchapp-part-3/
Приятного прочтения.
PIRO – the Rocket for you PivotalTracker account(s)
PIRO – это Google Chrome расширение для PivotalTracker (http://www.pivotaltracker.com/). Это расширение позволяет мне более удобно работать с этом трекером.
Технологии, что я использовал:
- CoffeeScript;
- JQuery, jQuery UI;
- Hogan.js (JavaScript templating from Twitter);
- Chosen (for selects);
- Jeditable (Edit In Place Plugin For jQuery);
- Ruby (rake tasks, guard watcher);
Сайт: http://piro.railsware.com/
Исходный код: https://github.com/railsware/piro
Прошу Вас любить и жаловать данный продукт
MongodbLogger — складываем логи вашего Rails 3 приложения в MongoDB
Привет всем. Сегодня я поведаю о своей разработке для Rails 3 — MongodbLogger. Начнем по порядку.
Rails приложение по-умолчанию складывает логи запросов в папку logs. Сами по себе логи очень удобная штука — они помогают посмотреть какие запросы идут в ваше приложение, посмотреть trace ошибки и прочее. В них можно дописывать дополнительную информацию. Хотя файловый лог прост и эффективен, но у него есть определенные ограничения: при использовании множество веб-серверова, лог у каждого свой; нет простого доступа. Запись в РСУБД решает вопросы централизации и простого доступа логов, но сразу возникают другие проблемы: схема таблицы не настолько гибка, как может быть структура лога; запись может быть недостаточно быстра; чистка старых логов — задачи на Ваших плечах. И тут на помощь приходит MongoDB.
Книга «Работа с Postgresql: настройка, масштабирование», версия 2

Я решил не затягивать выход обновления справочника и выпустил 2 версию «Работа с Postgresql: настройка, масштабирование».
Как и раньше, в книге иследуются вопросы по настройке производительности Postgresql, репликации и кластеризации.
Добавил пару слов о расширениях PostgreSQL, методики решения проблем, сниплеты(пока в процессе). Произвел коррекцию ошибок в манах настроек. Пока что только сконвертирован pdf. Все правки и замечания прошу на этой странице github.com/le0pard/postgresql_book/issues или в комментариях.
Страница книги: postgresql.leopard.in.ua/
Исходники: github.com/le0pard/postgresql_book
PopCornUA v2.0.1: больше, лучше, быстрее!
Привет всем! Рад сообщить, что после 3 недель труда было успешно переработано мое приложение для Android. PopCornUA – это киноафиша для Украинских кинотеатров.
Что было сделано? В первую очередь это конечно изменение в дизайне – было переработано почти все. Также добавлен поиск, перенос на SD карточку (ради этого пришлось убрать виджет), улучшена работа с картой и стабильность. Приложение бесплатное и без рекламы.
HipHop для PHP: Сравнение
Если кто еще не слышал, HipHop – это компилятор кода PHP в C++. Т.е. он преобразует PHP код в C++ код для дальнейшей компиляции. HipHop достигает этого, путем исследования вашего PHP приложения и на его основе строить C++ проект. C++ проект потом компилируется и запускается на собственном веб серврере. Это дает возможность исключить PHP Zend engine и Apache из цепочки. HipHop выпущен Facebook под opensource лицензией.
Есть такой интересный сайт http://shootout.alioth.debian.org который позволяет произвести сравнение языков скорости языков программирования для разных тестов. Я решил собрать у себя HipHop и провести сравнение PHP vs HipHop vs Ruby1.9 (ruby я добавил из интереса). Собрать сам HipHop не трудно - https://github.com/facebook/hiphop-php/wiki – на данной странице все отлично написано.
Определите свое местоположение по WiFi сети
Простой скрипт. Определяет местоположение. Вы должны работать через Wifi.
iwlist wlan0 scan | sed -n 's/.* Address: //p;T;s/ //g;q' |
sed 's/.*/{version:1.1.0,host:maps.google.com,request_address:true,address_language:'${LANG/.*/}',wifi_towers:[{mac_address:"&",signal_strength:8,age:0}]}/' |
curl -sX POST -d @- www.google.com/loc/json |
sed -e 'h;s/.*latitude":\([^,]*\).*/\1/;G;s/\n[^\n]*longitude":\([^,]*\).*/,\1\n/;s|^|http://maps.google.com/maps?q=|;x;s/[,{]/\n/g;s/["}]//g;s/:/\t/g;s/\n//;G'
Вот gist: https://gist.github.com/897131
Не забудьте поставить curl.
Как это работает? Google собирает информацию о том, где расположены какие точки доступа (по MAC).
Первая часть (iwlist wlan0 scan | sed -n ‘s/.* Address: //p;T;s/ //g;q’ ) — это просто определение мака.
Тайм-менеджмент: эволюция
Года два назад я решил заняться тайм-менеджментом, так как мне казалось, что я живу крайне неэффективно и такими темпами никогда «не приду к успеху». Я прочитал несколько книжек и бесчисленное множество статей от доморощенных гуру тайм-менеджмента разной степени пришибленности. Я даже разработал собственную методику, включавшую в себя аспекты из нескольких систем, и написал специальный софт, так как всё, что имелось на рынке, было слишком жалким и недостойным моего внимания.
И только сейчас, когда 11 часов в день я трачу на работу, и реально свободное время появляется только в выходные, я понял, какая это всё хрень. Теперь я убеждён, что люди, которые занимаются тайм-менеджментом — банальные бездельники, которым просто некуда девать своё время. Они не находят для него лучшего применения, чем рисовать всякие хитровыкрученные схемки и вести десяток отдельных блокнотиков для дел типа «почистить зубы» и «пообедать». Их мозг изнывает от безделья, и они занимают его псевдонаучной жвачкой, которая даёт иллюзию продуктивной жизни.
Вы хотите жить эффективно? Устройтесь на работу с полным графиком, поступите в аспирантуру, начните ходить в спортзал и делать зарядку по утрам. Если покажется мало, то возьмитесь за два-три сторонних проекта. Через пару месяцев случится одно из двух: либо вы сдохнете, либо самоорганизуетесь и уже никогда не будете забивать голову ерундой вроде тайм-менеджмента.
Настройка shared memory для PostgreSQL
Для меня это частая работа. Вам выдали сервер, вы поставили PostgreSQL, начали его тюнить и пошли такие ошибки:
FATAL: could not create shared memory segment: Invalid argumentDETAIL: Failed system call was shmget(key=5440001, size=4011376640, 03600)
Это значит, что мы забыли настроить на наше Unix системе shared memory. Идем по адресу и смотрим как настроить наш тип ОС. Но какие значения ставить shmmax и shmall? Для этого сделан небольшой скрипт. Его задача – посчитать и вывести размер shared memory, который равен половине доступной на сервере памяти (всей доступной).
