Обновить
5.58

Ruby *

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

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

Ruby NoName Podcast S04E16

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

TPL + DLR = Многопоточный скриптинг

Время на прочтение14 мин
Охват и читатели4.7K
Я давно хотел поизучать «TPL» (Task Parallel Library) и «DLR» (Dynamic Languages Runtime). Для этого мне нужна была конкретная и, желательно, достаточно актуальная задача. В одном из моих переводов рассказывалось о так называемых «игровых циклах». Рассмотренная там тема для меня довольно интересна сама по себе и к тому же связка TPL+DLR подходит для той задачи как нельзя лучше, на мой взгляд. Так я пришел к идее о реализации легковесного асинхронного скриптового движка, который можно было бы относительно легко прикрутить к разным приложениям (в том числе к играм). Ядро движка я решил реализовать на C#. Выбор между динамическими языками в моем случае даже и не стоял. Я для этих целей уже давно облюбовал Ruby. Какое-то время я вынашивал идею, время от времени размышляя о ней на досуге.
Теперь решил выложить первые результаты

Автоматизируем работу с проектами Xcode средствами Ruby

Время на прочтение3 мин
Охват и читатели4.1K
Привет, хабр. Существует ряд задач, для реализации которых нет необходимости в использовании графического интерфейса Xcode. Время исполнения таких задач может сократиться как минимум на время запуска Xcode. Экономия времени может показаться незначительной при работе с одним проектом, но если проектов много, процесс их редактирования может оказаться очень утомительным. Но самое главное, что такой подход открывает возможности для автоматизации работы с проектами.

Я хочу рассказать о новом инструменте, целью которого является решение описанной проблемы. XcodeProject — это библиотека на языке Ruby которая может быть использована для чтения данных проекта Xcode и их изменения, а так же для сборки проектов, архивирования и выполнения ряда задач по автоматизации работы с ними.

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

Новости RailsClub'Moscow 2012

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

Добрый день, друзья!

Хочу рассказать вам о последних новостях RailsClub.ru

Напомню, что конференция, посвященная ruby, ruby on rails и веб технологиям в целом состоится 15 сентября 2012 в digitaloctober.ru (начало в 10:00).

Это будет одно из самых крупных ruby/ror событий в России по числу иностранных докладчиков, титулованных спикеров, приглашенных российских ruby звезд, участников, участвующих организаций.

Самая хорошая новость на данный момент это то, что абсолютно все наши иностранные докладчики получили визы. Нет ни одной причины, которая не позволила бы кому либо из иностранцев не приехать в Россию на наше ruby on rails событие. Все готовятся ко встрече с Россией и Москвой, а мы готовим для наших гостей культурную программу.

Также, хочу рассказать, что докладчиком нашей конференции стал Сергей Нартымов. Сергей — software engineer в команде Brainspec, контрибьютор в Ruby on Rails (больше сотни коммитов), Rubinius и Elixir. Сергей использует Ruby и Erlang в своей работе, почитывая на досуге книги по Lisp и Haskell.

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

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

Ruby NoName Podcast S04E15

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

Я влюбился в DelegateClass

Время на прочтение3 мин
Охват и читатели3.7K
Если ваш класс разросся настолько, что начинает нарушать принцип единственной обязанности, вы без труда сможете разбить его на несколько более связных классов. Поможет вам в этом предоставляемая Ruby конструкция DelegateClass.

Допустим, у вас есть класс Person. Пользователи в системе могут продавать что-то и/или публиковать статьи. Подклассы здесь использовать не получится, потому что пользователь может одновременно быть и автором, и продавцом. Проведем рефакторинг.
Читать дальше →

RailsClub'Moscow 2012 – 15 сентября в Москве. Конференция ruby / ruby on rails разработчиков

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

15 сентября 2012 в Москве на территории центра Digital October состоится 11-ая конференция веб разработчиков на Ruby и Ruby On Rails – RailsClub’Moscow 2012.

RailsClub’Moscow 2012 соберет вместе ведущих российских и известных иностранных Ruby разработчиков, которые поделятся с участниками конференции своими знаниями и опытом, обсудят новинки разработки, расскажут о возникших проблемах в работе и методах их решений.

На RailsClub 2012 будем обсуждать проектирование, разработку, тестирование, отладку, оптимизацию под большие нагрузки, масштабирование ruby on rails проектов. Также затронем темы: управления конфигурацией, деплоя, администрирования больших веб проектов.

В этом году в качестве докладчиков к нам приедут знаменитые ruby звезды.

Свое участие на данный момент подтвердили:
Steve Klabnik (США), автор «Designing Hypermedia Apis» и обладатель Ruby Hero Award 2011;
Xavier Noria (Испания), участник Rails core team и обладатель Ruby Hero Award 2010;
Wynn Netherland (США), разработчик GitHub, соавтор @thechangelog и книги «Sass, Compass»;
Dirkjan Bussink (Голландия), разработчик rubinius и datamapper;
Sau Sheong Chang (Сингапур), автор книг “Ruby on Rails Web Mashup Projects” и “Cloning Internet Applications with Ruby”, директор прикладных исследований в HP Labs.

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

Регистрация и оплата участия в конференции — railsclub.timepad.ru/event/29192

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

edX этой осенью: MITx / HarvardX / BerkeleyX

Время на прочтение1 мин
Охват и читатели8.4K
На Хабре много раз писали про edX — замечательный образовательный проект, инициатором которого в свое время стал MIT. Это возможность проверить себя, получить новые знания и все это в кругу квалифицированных преподавателей и студентов со всего мира.

Весною некоторые Хаброжители даже сдали финальный экзамен и остались крайне довольны.

Этой осенью к MIT и Harvard присоединился Berkeley с, как мне кажется, крайне позитивным курсом CS169.1x: Software as a Service — с главным героем в лице Ruby on Rails.



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

Прощай XML-build… Здравствуй Rake!

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

Введение



Сегодня (Monday, April 26th, 2010 at 8:54 am? Прим. перев.) в очередной раз я твитнул о том, что не являюсь фанатом систем сборки проектов, основанных на XML. Да, я понимаю для чего они нужны. Да, они были хороши в свое время. И да, я до сих пор использую их каждый день. Но несмотря на все это я считаю, что есть более удобные способы решить эту задачу. Наиболее частым ответом на мой твит были слова: «Ну а альтернатива-то какая?» Одна из важнейших вещей, которым научила меня жизнь, это то, что не стоит жаловаться на что-либо до тех пор пока тебе нечего предложить взамен. Так что я здесь и сейчас предложу альтернативное решение…
Читать дальше →

Управление каналами Nginx Push Module с использованием Ruby

Время на прочтение3 мин
Охват и читатели6.5K
Приветствую всех! Многие разработчики вкурсе про замечательный модуль Nginx Push Module для веб-сервера Nginx. Многие его опробовали, пощупали.

Задача модуля – позволить веб-серверу Nginx выступать в качестве Comet-сервера.

Материала по использованию данного модуля достаточно: хороша официальная страница проекта, описание Basic HTTP Push Relay Protocol, а также многие статьи, например Nginx & Comet: Low Latency Server Push. Однако, во многих руководствах рассматривают лишь базовую конфигурацию модуля с использованием одного общедоступного канала всеми клиентами. Несмотря на огромную полезность, модуль не предоставляет разработчикам гибкое управление каналами, их защиту.

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

Rake + Albacore. Сборка .Net проекта с помощью Ruby

Время на прочтение3 мин
Охват и читатели1.3K
Когда речь заходит о сборке .Net проектов, первое, что приходит в голову, это утилита MSBuild + сопутствующие build-скрипты. Действительно, пока проект небольшой, ее возможностей вполне хватает. Но со временем количество кода растет, структура продукта становится все более сложной и запутанной, и начинаешь задумываться о поиске более гибкого решения.

В нашем случае, таким решением оказалась связка Rake+Albacore. Что же это такое? Rake — инструмент для автоматизации сборки програмного кода, написанный на Ruby. Про Rake на хабре уже была довольно детальная статья пользователя Lass_ua (за которую, кстати, ему большое человеческое спасибо), поэтому повторяться не буду. Скажу только, что мы выбрали его за исключительную гибкость, которую не могли получить от MSBuild скриптов. Она обусловлена тем, что весь процесс сборки описывается, по сути, программой на Ruby, что открывает перед нами море возможностей.
А вот про Albacore я, к своему удивлению, не нашел ни одной статьи, хотя это уже достаточно зрелый и известный проект
Читать дальше →

Ruby NoName Podcast S04E14

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

Как я использовал gem gon в Групоне

Время на прочтение4 мин
Охват и читатели6.3K
На днях я зарелизил новую версию своего gem Gon – 4.0.0 и решил привести пару примеров его возможностей и использования. Данная библиотека служит для упрощения работы с данными в MVC архитектуре. Она позволяет работать с данными контроллера из JS пропуская шаги перекидывания этих данных через вью. На сегодняшний день существуют реализации гона для RoR приложений, sinatra-like приложений (sinatra, padrino, etc.) и для .Net MVC.

Карта в админке

Передо мной стояла задача — реализовать разделение предложений в Групоне по территориальным областям, которые бы мог редактировать администратор. Предложения из областей показываются людям которые живут в этих областях с большим приоритетом нежели предложения из других областей.

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

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

Автоматическая сборка javascript/coffeescript проекта

Время на прочтение8 мин
Охват и читатели6.1K
При разработке хоть сколько-нибудь большого javascript проекта сразу понимаешь, что писать весь код в одном-единственном файле нельзя. После этого код разносится по нескольким файлам и директориям и пишется простой скрипт для того, чтобы все эти файлы можно было легко объединить в один большой production файл. Спустя какое-то время начинаешь замечать, что чем дальше, тем труднее становится следить за зависимостями между файлами, да и весь разработанный механизм больше похож на костыль. И тут приходить озарение, что неплохо было бы посмотреть, какие существуют решения этой проблемы.

К системе управления сборкой проекта выдвигаются следующие требования:
  1. Компиляция из coffescript в javascript. Если в файле coffeescript содержится ошибка, то в консоли должны отобразиться название файла и сообщение об ошибке.
  2. Сборка проекта в один javascript файл должна производится с учетом зависимостей.
  3. Возможность собрать все приложение целиком в один файл в нескольких видах (с комментариями, минимизированный). При этом само приложение может состоять из нескольких модулей.
  4. Сборка тестовых файлов и их выполнение в консоли (да, разрабатываем для веба, при этом не притрагиваемся к мышке и вообще не вылазим из любимого vim'a).
  5. Конечно же все это должно быть удобно в использовании.

В данной статье я не буду затрагивать вопрос тестирования, а рассмотрю вариант системы управления сборкой javascript/coffescript проекта (и саму структуру проекта) с использованием rake и Rake::Pipeline (git).
Читать дальше →

Занимательное функциональное программирование в Ruby

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

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

Предположим, что единственный способ представления кода — лямбда-выражение, а единственная доступная структура данных — массив:

square = ->(x) { x * x }
square.(4) # => 16

person = ["Dave",:male]
print_person = ->((name,gender)) {
  puts "#{name} is a #{gender}"
}
print_person.(person)

Это самые основы функционального программирования: функции — единственное, что у нас есть. Давайте попробуем написать что-то более похожее на реальный код в таком же стиле. Посмотрим, как далеко мы сможем зайти без особых мучений.
Читать дальше →

Релиз RubyMine 4.5

Время на прочтение1 мин
Охват и читатели8.6K
RubyMine 4.5 Just ReleasedКомпания JetBrains рада сообщить о выходе RubyMine 4.5 — новой версии интеллектуальной интегрированной среды разработки для Ruby on Rails, которую можно загрузить с нашего сайта

Мы искренне верим, что для создания хорошего продукта в первую очередь необходимо прислушиваться к сообществу разработчиков. В этой версии RubyMine мы постарались реализовать как можно больше нового функционала с учетом оставленных вами комментариев и отданных голосов.
Читать дальше →

Интеграция Robokassa в ActiveMerchant

Время на прочтение3 мин
Охват и читатели10K
Прим. переводчика — пост про интеграцию Robokassa и Rails уже был, но способ, предоставленый там, полагаю, многих не устроит.

Когда у вас есть приложение, написанное на Ruby on Rails и вы планируете добавить какую-нибудь платежную систему (например PayPal, Moneybookers или Robokassa, как в нашем случае), то первый гем о котором вы должны подумать — это active_merchant от Shopify.

ActiveMerchant — простая абстрактная платежная библиотека используемая и спонсируемая компанией Shopify.

Поэтому когда мне понадобилось добавить платежи через Robokassa в наш проект, я открыл список поддержеваемых платежных систем и был немного разачарован, потому что Robokassa туда не входила. Чуть позже я нашел форк, который добавлял её поддержку, но он уже устарел, поэтому некоторые тесты падали ec801d3d4f8. Таким образом я решил глянуть на этот код и исправить его, а не писать всё с чистого листа.
Читать дальше →

Немного Rails трюков

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

Хочу поделиться в вами несколькими трюками, которые помогут сделать работу с Ruby on Rails лучше, быстрее, а также позволят вам много зарабатывать и более лучше одеваться.
Читать дальше →

Ruby NoName Podcast S04E12

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

Подкаст

http://ruby.rpod.ru/278465.html

Новости


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

CoffeeScript: Классы

Время на прочтение16 мин
Охват и читатели22K
CoffeeScript: Classes

В ECMAScript пока отсутствует понятие «класс», в классическом понимании этого термина, однако, в CoffeeScript такое понятие есть, поэтому сегодня мы рассмотрим этот вопрос очень подробно.


Содержание:

1. Основные понятия
2. Члены класса
   2.1. Метод constructor
   2.2. Открытые члены класса
   2.3. Закрытые члены класса
   2.4. Защищенные члены класса
   2.5. Статические члены класса
   2.6. Оператор => (fat arrow)
3. Наследование
4. Дополнительная литература

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

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