Программирование на Ruby - Новости
Превращаем телефон на базе Android в шпионскую камеру
чт, 02/09/2010 - 00:30 — spine
При этом не нужно писать код на Java, а реализовать проект можно за 15 минут (во всяком случае так обещает автор статьи). Все это становится возможным благодаря Ruboto (Ruby on Android).
позволяет писать приложения для Android и не использовать для этого Java.
Но ведь нам нужно создать шпионскую камеру? Тогда пошаговая инструкция дальше в статье
P.S. В случае успешного эксперимента, поделитесь ссылкой на свою камеру в комметариях к этому посту :)
Piter.rb #2 –Питер, 15 сентября 2010
вт, 31/08/2010 - 11:42 — spine
В Петербурге пройдет очередая встреча Ruby-программистов Piter.rb #2
Отчет о предыдущей встрече можно посмотреть
Уже есть 7 докладов:
- Работа Rails программистом в Малайзии, Сингапуре и Таиланде. Павел Тимофеев
- Различия веток Ruby 1.8.x и 1.9.×. Артем Гарматий
- R18n – i18n для Ruby и Rails. Андрей Ситник
- Интерграция iPhone и Rails приложений. Александр Кобяков
- Введение в метапрограммирование на Ruby. Михаил Вайсман
- Интерграция Android и Rails приложений. Сергей Стаськов
- Полнотекстовый поиск в RubyOnRails приложениях. Павел Тимофеев
Участие бесплатное. Встреча будет идти около 3 часов.
Место, дата и время:
Санкт-Петербург, 18-я линия Васильевского Острова, БЦ «Сенатор» (д. 31),
15 сентября 2010, 19:00 (подходите на ресепшен внутрь здания, мы вас встретим),
Моб.тел. +7-921-3372119 (Павел)
Твиттер:
Ruby Koans
чт, 26/08/2010 - 09:07 — spine
Ruby Koans — это набор небольших задач, решая которые вы улучшаете свои познания в Ruby. Отличные упражнения для новичков и даже профи.
Только справившись с одним задание, вы получаете следующее. Хочу еще отметить интересную подачу материала:
Thinking AboutAsserts test_assert_truth has damaged your karma.You have not yet reached enlightenment ...
<false> is not true.Please meditate on the following code:
./about_asserts.rb:10:in `test_assert_truth'
path_to_enlightenment.rb:27mountains are merely mountains
Все, кто заинтересовался, должны проследовать на официальный сайт , где смогут найти все-все инструкции и собственно сам код задач.
Make your own DSL... it's really easy!
пт, 20/08/2010 - 10:35 — spineТощие демоны
ср, 18/08/2010 - 17:21 — spine
Заголовок этого поста есть дословный перевод статьи “Skinny daemons”.
Здесь вы узнаете как очень быстро сделать мини-приложение на базе Sinatra, работающее под Thin. Но это еще не все. Ваше приложение можно запустить/останосить как настоящего демона. Вся эта “красота” упаковывается как gem и готово :) Очень интересно (уже хотя бы для общего развития).
И так, ссылки:
- собственно статья
- кто еще не знаком, веб-сервер на базе
- и, конечно,
RubyConfUA 2010 приглашает докладчиков
вт, 17/08/2010 - 00:23 — spine
Рады пригласить желающих выступить на RubyConfUa. Основная программа мероприятия включает в себя две сессии для технических докладов длительностью 4 часа каждая.
Одна из технических сессий будет посвящена Rails3 В рамках этой сессии уже запланированы два доклада от Jose Valim и Piotr Sarnacki. Также в программу мероприятия входит бизнес-секция с демонстрацией проектов. Приглашаем компании рассказать здесь о своих стартапах или же просто интересных и сложных проектах. Более подробно на сайте
Трюки консоли Rails
сб, 14/08/2010 - 13:32 — spine
Две отличные статьи о некоторых интересных командах консоли Rails.
Например, вы знали как вызвать предыдущую команду?
Вот как – с помощью “_”. Пример:
>> user.roles
=> [#<Role id: 1, name: "admin" etc, etc, etc...
>> _
=> [#<Role id: 1, name: "admin" etc, etc, etc...
>> (2 + 5 ) * (10 / 2)
=> 35
>> _
=> 35
А как сделать короче вызов User.find_by_name('john').to_yaml?
Вот так:
>> user = User.find_by_name('john') # user whatever model you want
=> #<User id: 876, name: "john", email: "john@raflabs.com", etc, etc, etc...
>> puts user.to_yaml
>> y user
Читайте о других возможностях в статьях и
Получение случайной записи из MongoDB с помощью Ruby
вт, 10/08/2010 - 16:08 — spine
В SQL получение случайно записи возможно при помощи чего-то типа “ORDER BY RAND()”.
В MongoBD не все так просто, но Эрик Любов (Eric Lubow) придумал одно решение:
@@mongodb = Mongo::Connection.new("localhost", 27017).db("test_db}")
@collection = @@mongodb["collection_name"]
@rand = Kernel.rand()
@random_record = @collection.find_one({ 'random' => { '$gte' => @rand } })
if @random_record.nil?
@random_record = @collection.find_one({ 'random' => { '$lte' => @rand } })
end
Суть метода в том, что к коллекции добавляется специальный столбец (random), который хранит значение от 0 до 1.
После соединения с базой данных генерируется случайное число (от 0 до 1) и мы пытаемся получить документ со значением в поле random большим или равным этому числу. Если результат отрицательный, то берем документ со значением меньшим или равным случайному числу.
Больше деталей в статье
Мини-версия RCov своими руками
вт, 10/08/2010 - 15:44 — spine
RCov — это “code coverage tool”. Обычно используется для определения отношения вашего кода к его тестам. Другими словами насколько тесты “покрывают” имеющийся код.
Аарон Паттерсон (Aaron Patterson) описывает пример создания подобного инструмента с помощью Ruby 1.9 и подставляющейся с ним библиотеки coverage. Подробнее в статье
