C4 always sleepy

18May/100

Plugins. vote_fu, has_many_polymorphs, hirb.

Вкратце пробегусь по нескольким недавно найденным и крайне полезным плагинам.

vote_fu окажется полезным для тех разработчиков, которым необходимо реализовать сбор голосов пользователей за новости/статьи/комментарии/что_угодно. Просто прописываем в моделях кто и за что может голосовать и вуаля - ряд хэлперов помогает обработать собранные голоса. Сразу отмечу, что этот плагин предназначен именно для голосов, но никак не для проставления отметок.

С помощью has_many_polymorphs можно реализовать сложные полиморфнае связи типа полиморф-полиморф легко и изящно. Также плагин работает с обычными полиморфами :)

Пользователи hirb в отличии от обычных пользователей irb и rails console имеют замечательно отформатированный вывод данных моделей.

Надеюсь вы сможете найти им достойное применение в своем коде :)

18May/100

Обрезание строки в Rails

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

5Apr/100

1password & Google Chrome

Сегодня я бы хотел поделиться радостной новостью со всеми владельцами яблочной техники, которым пришлось столкнуться отказаться от использования Google Chrome в связи с тем, что не было работающего плагина, позволяющего использовать базу 1password. Конечно, были различные workaround-ы, про которые писал и я, но вот сейчас я бы хотел поделиться с вами замечательной новостью - выпущена beta-версия полноценного плагина, о чем сообщают авторы 1password в своем форуме. Установка простая - достаточно из своего Chrome открыть ссылку и будет вам счастье :) Кстати - не забывайте обновлять свой браузер, для полноцпенной работы вам необходима последняя версия.

Tagged as: , No Comments
24Mar/101

RosettaStone

Некоторое время назад у меня возникла мысль изучить испанский язык и я накачал достаточно большое количество самоучителей в виде аудиокурсов и электронных книг. Но буквально сегодня мне порекомендовали просто потрясающую программу, которая помогает в изучении языка - RosettaStone. Потестировал я ее и почувствовал, что я не так уж и безнадежен в изучении языков :) В принципе- обзор программе можно и не писать. Могу только сказать, что она помогает с изучением как письменной, так и устной речи (в том числе и с произношением, так что запаситесь микрофоном :) ). Имеются версии как под Mac, так и под Windows, так что надеюсь у вас будет возможность испытать возможности программы и убедиться в ее полезности :)

Tagged as: , , 1 Comment
23Mar/100

MacUpdate Promo

Популярный сервис MacUpdate проводит промо-акцию. За $50 можно приобрести пакет софта, который включает в себя Paralles Desktop 5 ($79), HyperSpaces ($12), Hydra ($79) и еще ряд программ. Также, при отсылке промо-сообщения в твиттер можно абсолютно бесплатно получить AppDelete.

Tagged as: , No Comments
16Mar/100

Rucksack

На сайте Macbuzzer происходит раздача нового и достаточно удобого архиватора Rucksack

Для получения программы достаточно просто сделать пост в твиттер :)

Tagged as: , No Comments
3Mar/100

Unicorn и Rails 2.3.5, а также bluepill и delayed_job

Читая одну замечательную статью по поводу использования bluepill для мониторинга delayed_job я решил углубиться и задал вопрос автору bluepill - а можно ли использовать его замечательную тулзу вместе с пассажиром, на что получил отрицательный ответ и предложение использовать unicorn. Все бы конечно хорошо, но при попытке запустить его с моим приложением на rails 2.3.5 я получил интересную ошибку:

I, [2010-03-03T22:33:14.466155 #65927] INFO -- : listening on addr=0.0.0.0:8080 fd=3
I, [2010-03-03T22:33:14.525494 #65927] INFO -- : worker=0 spawning...
I, [2010-03-03T22:33:14.526519 #65927] INFO -- : master process ready
I, [2010-03-03T22:33:14.528122 #65928] INFO -- : worker=0 spawned pid=65928
I, [2010-03-03T22:33:14.656300 #65928] INFO -- : Refreshing Gem list
Missing the Rails 2.3.5 gem. Please `gem install -v=2.3.5 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

особое внимание - на последнюю строчку :) немного покопавшись в интернете выяснил, что конфликт вызван наличием в системе rack 1.1.* и использование rack 1.0.* решило проблему.

2Mar/100

Новая раздача слонов на Macheist

Наверняка многие маководы уже заметили, что на Macheist снова готовится раздача слонов и в настоящий момент до нее остался 1 день. На самом деле - раздача уже началась, поскольку желающие уже имеют возможность получить себе бесплатно лицензию на Squeeze - программного компрессора-декомпрессора для файлов на жестком диске - висит в бэкграунде, каши не просит, а место свободное экономит :)

Tagged as: , No Comments
1Mar/100

Установка rails3.beta на Windows

Буквально вчера меня и еще пару коллег окрестили сектантами за пропаганду продукции эппл, которая несмотря на свою "кривизну" (линк от еще одного коллеги пришелся очень даже в тему) занимает своё почетное место у меня на столе. Именно поэтому я решил написать небольшое руководство по установке rails 3 на windows-машине и теперь с нетерпением жду обвинений в сектантстве от php-кодеров :)

Ну что же - давайте приступим к делу. Покопавшись немного в интернете я нашел ряд рекомендаций от различных авторов и приступил к установке.

Первым делом надо поставить свежий ruby 1.9 и git. В первом случае мне пригодился rubyinstaller, а во втором - msysgit. Установили? Поехали дальше :) Нам необходимо поставить все необходимые зависимости, поэтому

C:\>gem install tzinfo builder memcache-client rack rack-test erubis mail text-format thor bundler i18n

По идее еще надо бы установить rack-mount, но текущая версия 0.6.0 не понравилась actionpack-у, поэтому пришлось пойти у него на поводу и установить версию 0.4.0

C:\>gem install rack-mount --version 0.4.0

переходим к самому интересному

C:\>gem install rails --pre
Successfully installed actionpack-3.0.0.beta
Successfully installed arel-0.2.pre
Successfully installed activerecord-3.0.0.beta
Successfully installed activeresource-3.0.0.beta
Successfully installed actionmailer-3.0.0.beta
Successfully installed railties-3.0.0.beta
Successfully installed rails-3.0.0.beta
7 gems installed
Installing ri documentation for actionpack-3.0.0.beta...
Installing ri documentation for arel-0.2.pre...
Installing ri documentation for activerecord-3.0.0.beta...
Installing ri documentation for activeresource-3.0.0.beta...
Installing ri documentation for actionmailer-3.0.0.beta...
Installing ri documentation for railties-3.0.0.beta...
Installing ri documentation for rails-3.0.0.beta...
Installing RDoc documentation for actionpack-3.0.0.beta...
Installing RDoc documentation for arel-0.2.pre...
Installing RDoc documentation for activerecord-3.0.0.beta...
Installing RDoc documentation for activeresource-3.0.0.beta...
Installing RDoc documentation for actionmailer-3.0.0.beta...
Installing RDoc documentation for railties-3.0.0.beta...
Installing RDoc documentation for rails-3.0.0.beta...

Кажется все? А вот и нет - про базу данных забыли. Для тестов нам хватит sqlite3, а все остальное доставим позже, ок?

C:\>gem install sqlite3-ruby

Ну вот теперь можем приступить к самому приятному

C:\temp>rails test_app

Получилось? Отлично!!! Теперь попробуем запуститься ...

C:\temp\test_app>rails server
c:/Ruby19/lib/ruby/gems/1.9.1/gems/railties-3.0.0.beta/bin/rails:2: command not found: C:/temp/test_app/script/rails
c:/Ruby19/lib/ruby/gems/1.9.1/gems/railties-3.0.0.beta/bin/rails:2:in `exec': No such file or directory - C:/temp/test_app/script/rails (Err
no::ENOENT)
        from c:/Ruby19/lib/ruby/gems/1.9.1/gems/railties-3.0.0.beta/bin/rails:2:in `'
        from c:/Ruby19/bin/rails:19:in `load'
        from c:/Ruby19/bin/rails:19:in `
'

"WTF?" спросят меня читатели и будут совершенно правы. Эх, к хорошему быстро привыкают :) Дело в том, что команда rails server вызывает script\rails напрямую и указания типа #!/usr/bin/env ruby просто напросто игнорируются. Удалось найти несколько способов решения этой проблемы

1. We could hack the railties bin\rails file to call this file with ruby.exe.
2. We could hack the railties bin\rails file to call rails.rb and rename script\rails to script\rails.rb. As long as we checked the box to associate .rb files with the Ruby interpreter while installing, this will work the way it was originally intended to.
3. In the short term, we can just substitute 'rails server' with 'ruby script\rails server', or 'rails generate scaffold test' with 'ruby script\rails generate scaffold test'.

Предлагаю использовать 3й вариант за его простоту:

C:\temp\test_app>ruby script\rails server
=> Booting WEBrick
=> Rails 3.0.0.beta application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2010-03-01 11:13:15] INFO  WEBrick 1.3.1
[2010-03-01 11:13:15] INFO  ruby 1.9.1 (2010-01-10) [i386-mingw32]
[2010-03-01 11:13:15] INFO  WEBrick::HTTPServer#start: pid=5636 port=3000

ну вот вроде и все :) В принципе - не так сложно :)

5Feb/100

Rdoc in osx Dictionary

Буду краток

$ sudo gem install rdoc_osx_dictionary

Дарит счастье всем руби-программерам работающим под OSX

Tagged as: , , , No Comments
1Feb/100

Dashboard KickStart

Наверняка вы уже сталкивались с такой проблемой, что Dashboard при первом запуске не очень спешит загружаться. С такой же проблемой столкнулся и я, но благодаря одному из коллег решение было найдено - Dashboard kickstart. Небольшая утилита, "дающая пинка" Dashboard'у при первой загрузку :) Очень рекомендую к использованию для сохранения нервных клеток, которые тратятся в ожидании завершения загрузки всех виджетов :)

Tagged as: , No Comments
31Jan/100

Language switcher

Еще одна полезная в хозяйстве тулза - Language Switcher.

Как вы наверно знаете - запустить любую программу на Snow Leopard на любом языке, отличном от системного (или языка по умолчанию в программе) - прямой возможности нет. С помощью этой утилиты вы можете больше не думать об этом ограничении и запускать любую программу на любом языке :)

Tagged as: , No Comments
25Jan/100

Cucumber + environment variables

В продолжение моего поста по поводу установки переменных окружения в тестовых сценариях - недавно столкнулся с необходимостью установки своих переменных окружения при использовании Cucumber + Webrat. Решается это элементарно - прописываем в *steps.rb файле

header('HTTP_ACCEPT_LANGUAGE', 'en')

Аналогично можно тестировать и использование https - есть очень хороший пример тут.

25Jan/100

Rails I18n – презентация

Неплохая и самое главное познавательная презентация.

25Jan/104

Примеры rails-приложений

Решил составить список open-source приложений на Rails, который как я надеюсь поможет начинающим (и не очень начинающим) программистам в написании красивого и функционального кода.

Redmine - система управления проектами

TeamBox - еще одна система для проджект-менеджмента, twitter-like

FatFreeCRM - CRM

Video App - аналог YouTube на Rails

Panda - еще одно приложение для стриминга видео

GemCutter - репозитарий gem'ов

CommunityEngine - Социальная сеть

LovdByLess - и еще одна социальная сеть :)

RailsCasts - ну кто не знает Ryan Bates и его RailsCast-ы? Это - исходники его блогового движка

Tracks - система GTD, управление задачами

Retrospectiva - снова проджект-менеджмент :)

Restful Authentication Tutorial - отличный туториал по реализации системы аутентификации, recaptcha, логгирование неудачных попытов аутентификации и многое другое :)

Shapado - аналог stackoverflow.net с использованием MongoMapper (thx 2 undr)

rubyurl - open source url shortener, аналог bit.ly, tinyurl и аналогичных сервисов

Gemcutter

Spot Us – фриланс-журнализм и социальные возможности

Saasy – приложение-шаблон для биллинга и аутентификации в SaaS-области

Simply Agile – облегченная версия Pivotal Tracker

и старый добрый Typo

Open Source Rails - много различных приложений (thx 2 Alexey Osipenko)

Если у вас есть чем поделиться - присылайте, буду обновлять список :)