Обновить
2.1

Ruby *

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

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

Вышел Spree 0.60.0

Время на прочтение1 мин
Охват и читатели2K
Релиз Spree 0.60.0 официально выпущен. Основной целью этого релиза является упразднение использования resource_controller. Это было долгое путешествие с этой библиотекой, но на данный момент она уже устарела. Особая благодарность Neeraj Singh, Roman Smirnov и Brian Quinn за их напряженную работу по этому вопросу.

Мы приложили существенные усилия, чтобы сохранить большую часть функциональности resource_controller, которая использовалась в коде Spree, реализовав её более подходящим для «Rails Way» способом (с использованием наследования и т.д.). Однако в некоторых случаях, мы не смогли сохранить 100% совместимость с предыдущими версиями Spree. Это может повлиять на некоторые существующие расширения, а также на магазины, которые полагаются на эту функциональность. Кроме того новый подход использует respond_with вместо respond_to. Более подробно всё это описано в руководстве по настройке и в примечаниях к релизу 0.60.0.

Также Вы можете посмотреть на Github полный список изменений, вошедших в релиз 0.60.0.

От переводчика:
Также напоминаю о существовании Synergy — сборки Spree, адаптированной специально для России. На данный момент сборка поддерживает Spree 0.50.2 и 0.60.0. Более подробно я рассказал о ней в статье «Synergy — платформа для создания интернет-магазинов»

[Перевод] VMware CloudFoundry: PaaS на Ruby

Время на прочтение3 мин
Охват и читатели2.4K
image Platform as a Service (PaaS) — это не самая тривиальная вещь для создания, развертывания и поддержки: для начала, приходится проделать немалую работу для управления всеми сервисами изнутри, затем предстоит продумать и реализовать хороший интерфейс, и, в конце-концов, сервис нужно продать и умело его поддерживать. Не удивительно, что инвестиции для создания таких сервисов, могут позволить себе только несколько зажиточных игроков на IT-рынке.

Поэтому было вдвойне интересно наблюдать, как VMware разворачивают сервис CloudFoundry, да еще и с открытым кодом (честно, вот github аккаунт)! Полноценная PaaS, которую они так же предлагают использовать как хостинг, доступна так же каждому, для запуска в собственной компании или датацентре — теперь вы можете запустить «мини Heroku», или «облако EngineYard» на собственных серверах! Но в сторону маркетинг, гораздо интереснее взглянуть под капот этого проекта, ведь он полностью организован на Ruby.

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

Конкурс для разработчиков Rails-ninja

Время на прочтение1 мин
Охват и читатели636
Look At Me это не только популярный сайт о современной культуре, но и крупнейший Ruby on Rails проект в Восточной Европе.
В преддверии конференции Rails Club, которая состоится 30 апреля, Look At Me совместно с сообществом разработчиков RailsClub запускает конкурс Rails-ninja.

Задача конкурса: реализовать механизм генерации JavaScript-валидации HTML-форм, путем отражения декларативной валидации в RubyOnRails методами validates_*_of(*args).

Требования:
  • Приложение должно быть написано с использованием платформы RubyOnRails.
  • Все сторонние компоненты должны быть свободными для коммерческого использования (иными словами — должны быть OpenSource).
  • Репозиторий с исходным кодом проекта должен находится на сервисе github.com.
  • Для демонстрации проект должен быть размещен в сети Интернет участником самостоятельно.
  • Проект должен содержать краткое описание алгоритма реализации.

Работы принимаются до полудня 29 апреля по московскому времени!
Подведение итогов 30 апреля, на конференции RailsClub’Moscow. Побeдитель получит iPad64.

Подробнее о конкурсе.

Ruby на РИТ++

Время на прочтение2 мин
Охват и читатели1.1K
Как вы уже наверняка знаете, 25-26 числа в Москве пройдет главная конференция веб-разработчиков России — РИТ++. На конференции будет освещаться и Ruby, не пропустите перечисленные ниже доклады :-)

Будет доклад, касающийся Ruby, а также мастер-класс, посвященный front-end разработке с использованием Ruby фишек (Haml, Sass, Compass).
Читать дальше →

Ruby Cross Reference

Время на прочтение1 мин
Охват и читатели1.2K


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

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

Вышел Spree 0.50.0

Время на прочтение1 мин
Охват и читатели1.6K
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.8K

Предисловие


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

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

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

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

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

***

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Время на прочтение6 мин
Охват и читатели4.8K

Введение


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

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

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



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

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

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

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

вместо

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

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

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

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

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

Время на прочтение2 мин
Охват и читатели6.4K
Напоминаю, что по субботам, в 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 для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще. Сложность изложения и темы в значительной степени определяются аудиторией курса. Под катом читайте про наши успехи
Читать дальше →

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