Обновить
0.76

Ruby *

Динамический высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Ruby Cross Reference

Время на прочтение1 мин
Количество просмотров1.1K


Ruby, как известно, просто выглядит, но сложно работает. В особенности это относится к официальному интерпретатору, Ruby MRI: документация на многие детали реализации, например, на байткод или GC, отсутствует даже на японском.

Я попытался упростить исследование кода, открыв сайт Ruby Cross Reference по мотивам LXR. Кроме MRI, проиндекированы еще JRuby и Rubinius.
Читать дальше →

Вышел Spree 0.50.0

Время на прочтение1 мин
Количество просмотров1.5K
Intro: Spree — мощный и гибкий движок для создания интернет-магазинов, написанный на Ruby on Rails, распространяющийся под лицензией New BSD.

Рад сообщить хабровчанам о выходе релиза Spree 0.50.0.
В нём нет крупных изменений по сравнению с 0.40.x, вместо этого есть более 50 небольших улучшений и багфиксов.
Рекомендую всем, кто задержался на Spree 0.11.x, переходить именно на Spree 0.50.0

Из значительных изменений можно выделить:
  • Добавление возможности задавать порядок вариантов, опций и изображений в админке
  • Замена SearchLogic на MetaSearch
  • Расширение покрытия интеграционными тестами

Release Notes

Но это ещё не всё…
Читать дальше →

ТАУ-Дарвинизм: реализация на Ruby

Время на прочтение8 мин
Количество просмотров3.7K

Предисловие


Послушайте, ворона, а может быть собака,
А может быть корова, но тоже хорошо!
У вас такие перья, у вас рога такие,
Копыта очень стройные и добрая душа.

Мультфильм «Пластилиновая ворона».

В этой статье представляю Вашему вниманию реализацию эволюционного подхода к идентификации динамической системы. Программа написана на языке Ruby версии 1.9.2 (gems: NArray, GNUPlot). Заглянув под кат найдете пример вещественного кодирования генной информации и подходящего для него алгоритма скрещивания («flat crossover»).
Как узнать, кто есть кто, читать тут

API ВКонтакте на Ruby

Время на прочтение1 мин
Количество просмотров5.8K
(Пост размещен по просьбе юзера karevn. Все плюсы в карму направляйте ему)

***

На днях в ходе разработки своего проекта возникла нужда в обращении к ВКонтакте API. Ничего подходящего на Ruby не нашёл, поэтому решил написать минималистично-ниндзюцу библиотечку. Библиотечка содержит всего один класс Session, позволяющий обращаться со своими экземплярами как будто это объекты ВКонтакте:

session = ::VK::Session.new app_id, api_secret
friends_hash = session.friends.get :uid => 15003575


Такой вызов вернёт нам распарсенный JSON, содержащий массив из хешей. Если серверу ВКонтакте что-то не понравится, библиотека выкинет исключение.

Вот, собственно, и всё. Пользуйтесь, предлагайте улучшения.

Репозитарий на GitHub.

Обучение программированию на Ruby — занятия продолжаются. Основы ООП

Время на прочтение1 мин
Количество просмотров1.4K
В 12:00 MSK в воскресенье 20 февраля 2011 пройдет очередное занятие по обучению программированию на Ruby для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще. Сложность изложения и темы в значительной степени определяются аудиторией курса.

Тема занятия — Основы объектно-ориентированного программирования на Ruby.

RubyConf 2010: настоящее и будущее Руби (II)

Время на прочтение4 мин
Количество просмотров1K
Я предлагаю вам прочитать перевод третьей части доклада автора Руби, Yukihiro Matsumoto, на RubyConf 2010, опубликованных в его блоге на японском языке, в которой он рассказывает о Rite, минималистичной и модульной реализации Ruby, предназначенной для встраиваемых систем — «умного дома», телевизора или роботов.

Перевод дополнен материалом презентации.

Читать дальше →

RubyConf 2010: настоящее и будущее Руби (I)

Время на прочтение8 мин
Количество просмотров1.2K
Я предлагаю вам прочитать перевод второй части доклада автора Руби, Yukihiro Matsumoto, на RubyConf 2010, опубликованных в его блоге на японском языке. Первая часть представляет из себя краткий исторический обзор предыдущих конференций RubyConf и не представляет интереса к публикации.

За помощь в переводе с японского огромное спасибо Владимиру Садовникову.

Читать дальше →

Ход «Voronoi». Часть 2 — Бинарное дерево

Время на прочтение6 мин
Количество просмотров4.7K

Введение


В этой статье хочется представить реализацию дерева бинарного поиска для задачи, изложенной в статье [1]. В описанной там задаче используется алгоритм «sweeping line», для которой нужно бинарное дерево с возможностью перемещения не только от корня дерева к дочерним узлам и листьям, но и по листьям в отдельности, начиная от крайнего листа (левого или правого). Задача показалась достаточно простой, потому не стал долго искать уже готовые реализации и решил сделать самостоятельно. При этом поставил дополнительную задачу — задание процедуры добавления нового листа в дерево снаружи.
Серия на пальцах продолжается...

Классы — это объекты

Время на прочтение3 мин
Количество просмотров13K
Кто изучает Ruby, знает, что в нем все сущности — объекты, но порой не догадывается насколько. Так вот, классы в Ruby это тоже объекты.



Как это понять..

Унарный амперсанд

Время на прочтение1 мин
Количество просмотров5.1K
Расскажу как в Ruby работает такая элегантная конструкция:

User.all.map &:name           # получить массив имен пользователей

вместо

User.all.map { |user| user.name }

Сначала кажется что это свойство перечисляемых классов, но на самом деле это не так.
Читать дальше →

Авторизация Desktop приложения ВКонтакте

Время на прочтение2 мин
Количество просмотров7K
Социальная сеть ВКонтакте несколько странным образом заботится о безопасности своих пользователей, что чинит всяческие препятствия для авторизации отличными от браузера способами при этом не предоставляя SSL. Далее представлен скрипт на Ruby, который позволяет быстро подключить Desktop приложение к аккаунту по E-Mail и паролю и далее использовать API.
Читать дальше →

Ближайшие события

Online — обучение программированию на Ruby без хабраэффекта

Время на прочтение2 мин
Количество просмотров6.3K
Напоминаю, что по субботам, в 15:00 MSK проводятся удалённые занятия по обучению программированию на Ruby для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще. Сложность изложения и темы в значительной степени определяются аудиторией курса.
Читать дальше →

Watir: простой парсинг сложных сайтов

Время на прочтение4 мин
Количество просмотров51K
imageКаждый, кто пишет парсеры, знает, что можно распарсить сто сайтов, а на сто-первом застрять на несколько дней. Структура очередного отмороженного сайта может быть сколь угодно сложной, и, когда дело касается сжатых javascript-ов и ajax-запросов, расшифровать их и извлечь информацию с помощью обычного curl-а и регекспов становится дороже самой информации.

Грубо говоря, проблема в том, что в браузере работает javascript, а на сервере его нет. Нужно либо писать интерпретатор js на одном из серверных языков (jParser и jTokenizer), либо ставить на сервер браузер, посылать в него запросы и вытаскивать итоговое dom-дерево.

В древности в таких случаях мы строили свой велосипед: на отдельной машине запускали браузер, в нем js, который постоянно стучался на сервер и получал от него задания (джобы), сам сайт грузился в iframe, а скрипт извне отправлял dom-дерево ифрейма обратно на сервер.

Сейчас появились более продвинутые средства — xulrunner (crowbar) и watir. Первый — безголовый firefox. У crowbar есть даже ff-плагин для визуального выделения нужных данных, который генерит специальный парсер-js-код, однако там не поддерживаются cookies, а допиливать неохота. Watir позиционируется разработчиками как средство отладки, но мы будем его использовать по прямому назначению и в качестве примера вытащим какие-нибудь данные с сайта travelocity.com.

Читать дальше →

Обучение программированию на Ruby — занятия продолжаются

Время на прочтение1 мин
Количество просмотров4.6K
По субботам, в 15:00 MSK проводятся бесплатные удалённые занятия по обучению программированию на Ruby для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще. Сложность изложения и темы в значительной степени определяются аудиторией курса. Под катом читайте про наши успехи
Читать дальше →

Генерация RSS из постов на Tumblr dashboard

Время на прочтение1 мин
Количество просмотров3.1K
Всем привет,

Хочу поделиться библиотекой tumblr-dashboard-rss и простым приложением на Sinatra для генерации RSS из постов на вашем Tumblr dashboard.
Читать дальше →

Видео с конференции RailsClub'Moscow (30 октября 2010г.)

Время на прочтение1 мин
Количество просмотров982
Смотреть всё подряд
Представлены доклады:

1. Ruby NoName Podcast Crew «Chef Light»
С помощью Chef можно организовать управление серверами не только для больших организаций, а для всех.
Есть сервер, есть клиенты которые гоняются на других серверах. Сервер говорит что надо сделать, клиенты делают. Для всего этого существуют dsl конфигурации с поддержкой pakages.
*Удалённое проведение конференции накладывает свои особенности. Извиняемся за качество видео.

2. Макс Лапшин «Rails do scale»
Пример приложения быстрого приложения на Rail для Vkontakte с посещаемостью ~ 1000 запросов в секунду.
Дёшево и работоспособно.

3. Алекс Дмитриев «Умное кэширование в rails»
Докладчик рассказывает о том, как пользоваться кэшированием в Rails, когда нужно использовать кэширование, что кэшировать, где хранить кэш и т.д.

4. Иван Евтухович «Vim or die»
Докладчик рассказывает о возможностях Vim — одного из мощнейших текстовых редакторов с полной свободой настройки и автоматизации.

5. Тимофей Цветков «Liquor, Liquid и другие безопасные языки разметки в RoR»
Безопасные шаблонизаторы для RoR. С помощью чего и как.

6. Андрей Руденко «Deploy fu»
Докладчик обсуждает достоинства и недостатки наиболее популярных в Ruby-сообществе инструментов развертывания приложений: Chef, Capistrano, Puppet, Сfengine, Bash-скриптики и др. Основная часть доклада посвящена презентации своего решения — Lorenz (см. github->lorenz).

Приятного просмотра.

Дистанционное обучение программированию на Ruby

Время на прочтение1 мин
Количество просмотров4.7K
По субботам, в 15:00 MSK проводятся бесплатные удалённые занятия по обучению программированию на Ruby для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще.

Данный курс родился как дополнение к курсу по выбору «Метапрограммирование на Ruby» на Физтехе и посвящен более простым и базовым вещам. Сложность изложения и темы в значительной степени будут определяться аудиторией курса.
Читать дальше →

Вышел Spree 0.30.0

Время на прочтение1 мин
Количество просмотров1.6K
Intro: Spree — мощный и гибкий движок для создания интернет-магазинов, написанный на Ruby on Rails, распространяющийся под лицензией New BSD.

Спустя 5 месяцев напряжённой работы вышел первый релиз Spree, работающий на Ruby on Rails 3.0.

Основные изменения — структурные:
  • расширения стали gem'ами, да и сам движок стал набором из нескольких gem'ов: spree_core, spree_auth, spree_api, spree_dashboard, spree_promotions, spree_sample
  • для настройки конкретного магазина больше не нужен site_extension, теперь все настройки можно сделать прямо в Rails.root
  • из способов развёртывания исключен «Vendor mode», т.к. благодаря Bundler больше нет необходимости клонировать исходники Spree в директорию проекта, даже если Вы используете edge-версию или свой собственный форк

Кроме того улучшена работа с платежами, упрощена работа с надбавками, ну и конечно же сделано множество багфиксов и мелких улучшений.

Официальные примечания к релизу

Вклад авторов