Thursday, February 12, 2009

monitize.ru — он-лайн систему управления личными финансами. Изначально сервис планировался как личный финансовый консультант — простая в использовании, но вместе с тем мощная экспертная система для учета, контроля и управления личными финансами он-лайн.

Saturday, September 27, 2008

Apache on Rails

Основным рецептом развертывания Ruby On Rails приложений всегда был mongrel cluster в связке с nginx.
Этот способ вполне сносно работал, однако сейчас  ему появилась реальная альтернатива: passenger - плагин (мод) для apache.

Он обладает следующими преимуществами:
 - Очень просто конфигурируется
 -  стартуется/рестартится в одну строчку
 - работает быстрее
 - есть столько ресурсов сколько нужно в данный момент (новые инстансы обработчика делаются через fork когда нужно)

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

В дополнение можно отметить его удобство при разработке на локальной машине, особенно под OS X

ПС
У меня заняло около 10 минут на все. Есть HOWTO на railscasts 

Monday, August 18, 2008

Добавление google translate к TextMate

ставим 

sudo gem install google_translate

Добавляем следующую комманду для всех типов фаилов. Результат - tooltip, Источник - selected text or word. Сначала смотрим если слово уже искалось, если нет - идем в гугл.

#!/usr/bin/env ruby
require 'rubygems'
require 'google_translate'
dict = "~/dict"
space=" - "
text= STDIN.read
local_trans = `cat #{dict} | grep '#{text.strip}#{space}'`
if(local_trans.empty?())
trans = Google::Translate.new().translate(:from => "en", :to => "ru", :text =>text)
`echo '#{[text,space,trans].join}' >> ~/dict`
puts(trans)
else
puts("local:"+local_trans.split("-").last.strip)
end

горячую клавишу я повесил на CMD+J (было свободно)
работает очень бысто (менее секунды на поиск, если локально - тогда мгновенно)

Wednesday, August 13, 2008

Надеюсь не все блоггеры заразились твиттером

Не слишком уже актуально, но надеюсь у меня до этого не дойдет. кстати вот мой твиттер аккаунт 

Tuesday, August 12, 2008

Лекарство от регулярно падающего mongrel

При развертывании любого RoR проекта приходиться иметь дело с mongrel, а в случае серьезного проекта и с mongrel cluster. Как извесно, mongrel вещь сильно глюканутая: немногопоточная, часто память течет. В следствии этого появилась идея объединить несколько экземпляров в один кластер и привизать его к балансировщику nginx/apache. После этого жить стало лучше, но и кластер склонен к падению (в зависимости от типа запросов, монгрил может осилить от 500 до 1000 запросов, а потом утекает память или еще что случается), следовательно дела все равно плохо. Проблема заключается в том чтобы не доводить никого до плачевного состояния и последовательно рестартить по одному экземпляру за раз. 

Решение: каждые экземпляр рестартим раз в 10 минут, в случае с сервером работающем под высокой нагрузкой рекомендую каждые 5 минут. Кроме всего прочего скрипт живет в виде демона, которого не сложно положить в автостарт.

#!/usr/bin/ruby

pid = fork do
  cluster_size = `echo $CLUSTER_SIZE`.to_i
  life_time = 600 #10 mins
  span = life_time.to_f / cluster_size
  intance = 0 # mongrel id
  loop do
    mongrel_id = 3000+intance
    `mongrel_rails stop --pid log/mongrel.#{mongrel_id}.pid `
    sleep 10
    `mongrel_rails start -d -p #{mongrel_id} --pid log/mongrel.#{mongrel_id}.pid`
    intance+=1
    intance=0 if intance == cluster_size
    sleep span.to_i
  end
end
puts pid
Process.detach(pid)

Monday, August 11, 2008

Кормим мак памятью

Недавно решил расширить оперативу своему макбуку. все оказалось довольно просто:
купил 2 пляшки по 1 Gb (DDR2 SDRAM 667MHz) по 850руб за шт. и обычную отвертку.
После 10 минут танцев с бубнами рельсовые приложения заработали на 10-15% быстрее. 
Для тех кому интересно как заменить память в макбуке смотрим ролик

Где поесть 2.0

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

Кстати первый пример правильного использования tag cloud (обычно им забита половина экрана, а толку никакого - пример rutube.ru)

В заключение хочу отметить что в отличии от web 0.0 проектов ( spb.menu.ru, allcafe.info и пр) им удобно пользоваться. По крайней мере у меня ушло 3 минуты на подбор места на вечер, а не 45 минут.

П.С. Судя по всему написан на Ruby On Rails - урлы уж больно очень красивые, настоящий RESTful

Saturday, April 19, 2008

Ruby on Rails: Избавляемся от HTML

Это возможно если использовать HAML вместо ERb
небольшой пример который должен показать насколько прагматично его использовать:
.center.wide
  #profile
    %b{:style=>"margin-left:10px"}=user.name
    %p
      =user.description
      =link_to_remote("save", user_path(user), :submit=>:profile)
      #tags
        =user.tags.map(&:name).join(",")
        =link_to_function("close") do |page|
          - page[:tags].hide
Человек немного знакомый с Web технологиями, разумеется, поймет, что значит это пример.


Зачем это нужно?
1. Не повторяем себя DRY с отрытием/закрытием тегов
2. Код уменьшается процентов на 30
3. Единица площади экрана несет больше информации (проще держать все на виду)
4. Код будет всегда хорошо отформатирован тк вложенность тэгов обеспечивается табуляциями
5. Естественная интеграция с Ruby и RJS
6. Ускоряется набор текста

Thursday, February 21, 2008

Удобный и быстрый поиск по тексту

Искать по текст по фаилам в OS X (и любой другой юниксоподобной системе) можно командой:
find . -exec grep -q "что ищем" '{}' \; -print
но есть и более удобный и короткий способ:
1. Устанавливаем rak:
sudo gem install rak
2. Пришем rak -f "то что ищем"
На выходе имеем список фаилов 
3. Пишем rak "что ищем" - получается список фаилов где нашлось соотвествие и строки с соотвествием (тескт поиска выделен красным)
4. Пришем rak - получаем документацию. 

Просто и удобно.

Wednesday, February 6, 2008

Почему маки такие быстрые


113% CPU от Core2Due - это не шутки! Только вот кулеру это не сильно понравилось - выдавал целых 7400 оборотов в минуту

Monday, February 4, 2008

Постим в блог из Dashboard (mac)

Есть чудестный виджет от гугл который прекрасно дружит с blogspot'ом - крайне удобно. Есть возможность сохранить как черновик.

Monday, January 28, 2008

Единственно правильный iБрокер

После того как пересел на мак столкнулся с одной не приятной проблемой - российские брокеры люди в своей массе серые, про маки ничего не слышали. В данным момент все брокерское ПО делиться на 2 вида - классическое win32 приложение (90% - это quik, либо что-то еще хуже) и (что логично) web-приложение (опять-таки в 96% это IE 5.0+ only). Единстсвенный брокер, который дает приличное кросс-браузерное приложение оказался - Финам. Проверил - действительно работает и работает хорошо - просто, удобно и ничего лишнего! В дополнение офис у них находиться в самом начале Московского проспекта - напротив моего банка и вопросы они решают в течении одного дня: утром бумаги получил - днем договор подписал - вечером перевод осуществил.

Деньги на счет можно перевести без лишних проблем через веб-интерфейс банка (как и обычный банковский перевод идет сутки) . Одним словом, почти все дела решаются не вылезая из интернета!


Яблоки падают! Налетай пока дежево!

Приблизительно так выглядят котировки акции apple (ярлык на NASDAQ "AAPL" ) за последнии 3 месяца. Если приглядеться внимательние то не сложно заметить что буквально за 20 дней они упали с 200$ до 127$. Что сильнее чем другие Hi-Tech компании как Google. Однако если учеть что компания находиться на подъеме (2.5M проданных iPhone, 20M - iPod итд) - то пора задуматься о покупке "сладкого яблочного пирога". Что касается миниума за 52 недели то он был около 80$. Так что похоже дно уже близко - пора начинать готовиться к скупке. Есть шанс удвоить капитал за год... На российском рынке компаний с такой динамикой нет (падать умеют... и потом медленно ростут) - а жаль. 

Установка RMagick на OS X без MacPort

После выполнения следующих комманд должен заработать (прим: выполнение займет как миниум минут 20)

Подготовка
С начала ставим XCode, Ruby, Redline, Rails

Шаг 1
curl -O http://download.savannah.gnu.org/releases/freetype/freetype-2.1.10.tar.gz
tar xzvf freetype-2.1.10.tar.gz
cd freetype-2.1.10
./configure --prefix=/usr/local
make
sudo make install
cd ..

Шаг 2

curl -O http://superb-west.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.10.tar.bz2
bzip2 -dc libpng-1.2.10.tar.bz2 | tar xv
cd libpng-1.2.10
./configure --prefix=/usr/local
make
sudo make install
cd ..

Шаг 3

curl -O ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
tar xzvf jpegsrc.v6b.tar.gz
cd jpeg-6b
ln -s `which glibtool` ./libtool
export MACOSX_DEPLOYMENT_TARGET=10.4
./configure --enable-shared --prefix=/usr/local
make
sudo make install
cd ..


Шаг 4

curl -O ftp://ftp.remotesensing.org/libtiff/tiff-3.8.2.tar.gz
tar xzvf tiff-3.8.2.tar.gz
cd tiff-3.8.2
./configure --prefix=/usr/local
make
sudo make install
cd ..

Шаг 5

curl -O http://easynews.dl.sourceforge.net/sourceforge/imagemagick/ImageMagick-6.3.0-0.tar.gz
tar xzvf ImageMagick-6.3.0-0.tar.gz
cd ImageMagick-6.3.0
./configure --prefix=/usr/local
make
sudo make install
cd ..

Последний рывок

sudo gem install --no-rdoc --no-ri RMagick

И готово - теперь можно рисовать из  Ruby с удовольствием! (Можно и из консоли через ImageMagick но до этого, надеюсь, никто не дойдет)

Веселая песенка про Пузырь 2.0

Monday, December 10, 2007

Ruby on Rails 2.0

Дождались! 6 Декабря вышел Ruby On Rails 2.0

Прочитать подробнее можно тут

Friday, December 7, 2007

Комманда быстрого поиска для TextMate

При работе на Ruby on Rails часто требуется поиск по тексту но только по самому проекту (поиск по vendor/plugins - это редкость). По мимо того обычно надо искать по руби и rhtml фаилам а не по всем. Да и TextMate по умолчанию запускает процесс поиска в своем потоке от чего тот становиться немного великоват (300мб), при этом обычно он не занимает более 70. В результате с этим надо что-то делать:

1. делаем новыю комманду для руби

2. устанавливаем input ->"selected text" or "word", output-> "show as html"

3. в качестве текста:
#!/usr/bin/env ruby

def publish_list(app_dir)
File.open("#{app_dir}/search.out", 'r') do |fh|
content = fh.read.gsub(app_dir,"~")
lines = content.split("\n")
for line in lines
color = "black"
if(line.include?("~/app/controllers/"))
color = "brown"
end
if(line.include?("~/app/views/"))
color = "green"
end
if(line.include?("~/app/models/"))
color = "red"
end
print "
#{line}
"
end
end

end

app_dir = ENV['TM_PROJECT_DIRECTORY']
text_to_search = STDIN.read

extentions = ["*.rb","*.rhtml"]

results = ""

for ext in extentions
command_text = "find #{app_dir}/app -name \"#{ext}\" -exec grep -q \"#{text_to_search}\" '{}' \\; -print > #{app_dir}/search.out"
system(command_text)
publish_list(app_dir)
end

теперь запускаем (у меня на cmd+ctrl+alt+shift+F) и видим окно с результатами поиска

Wednesday, December 5, 2007

Google -killer


http://www.quintura.com/ - Новый поисковик в стиле web 2.0. Было просто интересно посмотреть

iКона: Стив Джобс.

Действительно захватывающее чтение. Must read. аннотация ниже


скачать можно отсюда



Аннотация


Эта книга о самом поразительном человеке в современной истории бизнеса – Стиве Джобсе – великом предпринимателе эпохи высоких технологий, известном своим индивидуализмом, инакомыслием и бунтарским характером. Авторы подробно описали головокружительный взлет молодого человека, очень рано добившегося успеха, и последовавшее за этим стремительное падение, во время которого Стив был изгнан не только из Apple, но и из компьютерной индустрии вообще.
Эта книга приобрела скандальную известность еще на этапе ее подготовки к печати. Получив экземпляр рукописи для ознакомления, компания запретила продавать во всех магазинах Apple книги издательства Wiley&Son. Такая реакция не повлияла на желание издательства опубликовать это произведение.
Книга будет интересна тем, кто хочет узнать, как происходило формирование, становление и развитие современной эры цифровых технологий под влиянием самой значимой фигуры современности – человека, кардинально изменившего три отрасли – индустрию кино, музыки и компьютеров, – Стивена Джобса.

Monday, November 19, 2007

Rails: scope_out plugin

Тестирование flash в функциоальных тестах в связке с cacheable_flash

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

решение:
 в test_helper.rb  кладем метод:
def get_flash_message(key)
key = key.to_s
begin
JSON.parse(cookies["flash"].value.first)[key]
rescue Exception => e
""
end
end

теперь в тесте пишем:
assert_equal "Thanks for you comment", get_flash_message(:notice)

проблема решена!

Monday, November 5, 2007

GPRS on Mac

К сожалению, интернет может понадобиться когда его нет под рукой (в дороге, в зале ожидания, дома когда отключили стационарный интернет итд). При условии наличия Mac и телефона (в моем случае это MacBook c OS X 10.4.10, Nokia 6021 которые общаются через "синий зуб" и Beeline Петербург ) проблема в принципе решаема (у меня решилась за пару часов, в то время как на Windows и pocket pc это заняло немного больше времени).

И так что требуется:

1. Сделать обычный коннект с телефоном (не сетевое соединение, а просто подключиться)

2. Скачать и распаковать его в /Library/Modem Scripts

3. в настройке сети выбрать "Bluetooth"

4. в закладке "PPP":

account name/password - beeline/beeline

telephone number - internet.beeline.ru

5. в закладке "Bluetooth modem"

modem: Generic GPRS CID1 (только что установили)

enable error correction and compression in modem - false

wait for dial tone before dialing - true



Все! Больше ничего не нужно - работает как часы - у меня коннект прожил более 4х часов

Monday, October 29, 2007

Очередной русский старт-ап

А вот и еще один старт-ап. По сути представляет из себя незатейливый аджаксовый фронт-енд для таких сайтов как cars.auto.ru и пр. Для просмотра интересующей машины перенаправляет на сайт-источникё

Sunday, October 28, 2007

ВКадре или youtube по-русски родом из социальных сетей

Вот похоже к rutube.ru и прочем видео хостингам тихо подкрался не буду говорить кто. Но судя по всему их ждут достаточно серьезная конкуренция: недавно появился сервис к .... видео из vkontakte.ru. Классический интерфейс стиле а-ля гугл. Если учесть скорость пополнения "библиотеки" вконтакта 27000
видео роликов в сутки. В тоже время rutube и видео.меил 1200 и 5000 роликов соотвественно. Всего же в копилки контакта уже более 1М фаилов...

Так же с удивления обнаружил еще и занятый домен vcafe.ru - как не странно владелец все тот же. (сам им интересовался....)

К теме социальных сетей относиться и покупка Microsoft'ом акций facebook исходя из стоимости всей компании $15 млрд (а эти уж точно не будут разбрасываться деньгами на ветер). Всего в facebook сейчас порядка 50М пользователей. Если пересчитать на пользователей то 1 шт стоит $300. Тогда вконтакт (полагаю перспективы роста и там и там одинаковые) должен стоить всего чуток - $600M (что должно быть больше капитализации yandex и mail)

Прим:
То что 1 пользователь стоит $300 - это не совсем так, предполагается рост рынка и увеличения аудитории до порядка 300M пользователей. Так что это больше похоже на коэффициент расчета на скорость роста, а не на реальную оценку. В то же время у вконтакта еще есть около 28М не охваченых пользователей рунета и этот коэфициент должен быть по-более....

Friday, October 26, 2007

OS X 10.5 - Уже в продаже

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

Google data center

Tuesday, October 16, 2007

300 Фичей OS X 10.5 Leopard

С полным списком можно ознакомиться тут
ИМХО - действительно полезные улучшение, особенно Time Machine, Desktop, Terminal (хотя его табами я и - ручками прокачивал) и Spaces

Одним словом - верю что Леопард свои 129$ стоит

Think Different


Here’s to the crazy ones.
The misfits.
The rebels.
The troublemakers.
The round pegs in the square holes.
The ones who see things differently.
They’re not fond of rules.
And they have no respect for the status quo.
You can quote them, disagree with them, glorify or vilify them.
About the only thing you can’t do is ignore them.
Because they change things.
They push the human race forward.
And while some see them as the crazy ones,
We see genius.
Because the people who are crazy enough to think
they can change the world,
Are the ones who do.