Обновить
16K+

Ruby *

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

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

Ruby Inside. Байткод YARV (I)

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

В этой и последующих статьях я хотел бы рассказать о байткоде YARV, виртуальной машины, используемой в Ruby MRI1 1.9.
Читать дальше →

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

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

Введение


В этой статье хочется представить реализацию дерева бинарного поиска для задачи, изложенной в статье [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.7K
По субботам, в 15:00 MSK проводятся бесплатные удалённые занятия по обучению программированию на Ruby для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще. Сложность изложения и темы в значительной степени определяются аудиторией курса. Под катом читайте про наши успехи
Читать дальше →

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

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

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

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

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

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.8K
По субботам, в 15:00 MSK проводятся бесплатные удалённые занятия по обучению программированию на Ruby для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще.

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

Вышел Spree 0.30.0

Время на прочтение1 мин
Охват и читатели1.7K
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-версию или свой собственный форк

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

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

Ruby и EventMachine

Время на прочтение3 мин
Охват и читатели16K
Итак, EventMachine — быстрый и легкий фрэймворк для сетевого взаимодействия в Ruby. EventMachine используется событейно-ориентированный (асинхронный) механзим обработки сетевых соединений. (О различиях между синхронными и асинхронными моделями обработки сетевых соединений посвящено множество информации в сети).
Так как, в русскоязычном интернете очень скудная иноформация по этому замечательному gem'у выкладываю эту статью.
Читать дальше →

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

Встреча Ruby-сообщества с Джеймсом Голиком в Москве, 25-го октября

Время на прочтение2 мин
Охват и читатели597
Как многие знают, в Москву для участия в конференции Highload++ по приглашению компании Оверсан приезжает известный Ruby-эксперт Джеймс Голик (James Golick). Цель визита — доклад “Масштабирование до тысяч и миллионов запросов: что работает, а что нет”, который Джеймс представит на конференции в понедельник, 25-го октября. Участие в Highload++ платное и не все интересующиеся Ruby смогут посетить это событие. Поэтому Оверсан вместе с RailsСlub решили организовать еще одну специальную встречу с Джеймсом и пригласить на нее всех желающих без каких либо ограничений.
Читать дальше →

30 октября 2010г. пройдет очередная конференция RailsClub'Moscow

Время на прочтение1 мин
Охват и читатели533
RailsClub.ru – это сообщество разработчиков на языке ruby и фреймворке ruby on rails. Наша цель — популяризация языка программирования ruby и фреймворка ruby on rails, как идеальной среды для разработки интернет проектов. Конференции RailsClub.ru – это уникальная площадка, где можно пообщаться с коллегами, получить и поделиться живым опытом, найти партнеров для своего проекта.

RailsClub вышел с летних каникул и начинает серию конференций по ruby и ruby on rails.
Мы сменили место проведения на более профессиональную и большую площадку с удобными диванами, баром, большим экраном, сценой и качественным оборудованием.

В этот раз нас ждет прямая трансляция организованная telemarker.ru. Все материалы будут опубликованы на railsclub.ru

Место проведения: railsclub.ru/places/8
Время начала: 13:00
Участие в конференции бесплатное, но с обязательной регистрацией на сайте railsclub.ru
Состав участников, докладчиков, а также другие подробности можно узнать на railsclub.ru

Приходите на нашу конференцию. Будет много интересных докладов, приятная атмосфера, возможность пообщаться с коллегами и даже поиграть в бильярд =)

В данный момент мы активно формируем состав докладчиков. Если у вас есть интересный доклад или проект на наших технологиях мы будем рады вас выслушать.
Мы также рассматриваем вариант оплаты проезда для иногородних или иностранных докладчиков.

Обращайтесь railsclub.ru/contacts

GeoIP

Время на прочтение1 мин
Охват и читатели3K
GeoIP позволяет реализовать поиск информации о стране, городе по IP адресу или хосту.

При помощи GeoIP можно например определять предпочтительную локализацию вашего проекта для нового пользователя. Приятно зайти на сайт у которого по умолчанию интерфейс на твоем родном языке.

Областей применения довольно много.
Читать дальше →

Вышел Ruby 1.9.2

Время на прочтение2 мин
Охват и читатели1.1K
Вышла очередная, долгожданная версия интерпретатора Ruby за версией 1.9.2

О 1.9.2 по пунктам

Ruby 1.9.2 в основном совместим с 1.9.1, за исключением следующих изменений:
  • Множество новых методов
  • Новое API для сокетов (с поддержкой IPv6)
  • Поддержка большего числа строковых кодировок
  • Класс Random, который поддерживает различные генераторы случайных чисел
  • Переработан класс Time. Теперь проблема 2038 года — не проблема.
  • Некоторые улучшения в регулярных выражениях regexp
  • $: больше не содержит текущую директорию.
  • dl переработан как надстройка над libffi.
  • Новая библиотека psych, являющаяся оболочкой для libyaml. Вы можете её использовать вместо syck
Ещё немного информации - под катом

Mysql2

Время на прочтение1 мин
Охват и читатели12K
Mysql2 — современная, простая и очень быстрая Mysql библиотека (GEM) для Ruby.

API состоит из 2-х классов:


  1. Mysql2::Client — соединение с базой
  2. Mysql2::Result — результат запроса включающий в себя модуль Enumerable.

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

Whyday 2010 — День памяти Why the Lucky Stiff

Время на прочтение2 мин
Охват и читатели1.3K
19 августа 2009 года Why the Lucky Stiff стёрся из онлайн-комьюнити. Мы в Ruby-комьюнити желаем ему всего наилучшего, но нам его очень не хватает.

Why дал нам много замечательного ПО и других вещей, но главное что он внёс в руби-комьюнити это дух свободы, эксцентричности и творчества. Когда Why поднялся на сцену на первой RailsConf в 2006 году, он взял свою гитару, подошёл к микрофону и крикнул «Выбросьте ваши лучшие практики!»

Дисциплина, забота и ответственность важны; у нас есть клиенты, служащие, члены команд и семьи чтобы принимать нашу работу всерьёз. В тоже время, однако, нам нужно играть. Если мы внезапно не сбросим с себя шаблоны наших «лучших практик», мы можем с лёгкостью упустить множество замечательных идей, часть из которых может принести богатые плоды (например как Camping и Hpricot привели к возникновению Sinatra и Nokogiri).
Читать дальше →

tweet-button

Время на прочтение1 мин
Охват и читатели598
tweet-button — gem/plugin для генерации новой Twitter кнопки.

Использование

Включите TweetButton в вашем application хелпере. После этого в любом шаблоне можно вызвать хелпер:

<%= tweet_button %>

Поддерживаются так же дополнительные параметры:

<%= tweet_button(:via => «peterc», :url => «hashtrain.com», :text => «AWESOME.») %>

Исходный код и документация доступны на Github: http://github.com/intridea/tweet-button