Программирование на Ruby - Новости

Predictive City: олимпиада по прогнозированию задержек авиарейсов

alt text

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

К сожалению, отклонение от графика рейсов - проблема многих авиакомпаний. Изменения в расписании становятся причиной проблем при посадке на транзитные рейсы.

Другое дело - спрогнозировать такие отклонения. В таком случае вы бы точно знали реальное время прибытия самолета и могли бы подстроить под него свои планы.

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

Мы объявляем конкурс на прогнозирование отклонения от расписания авиарейсов. Online олимпиада Predictive City будет проходить с 10 апреля по 30 июня при организации компании Provectus.
Участникам будет предоставлена информация обо всех рейсах международного аэропорта г. Казань, начиная с 20 марта 2015 года. Задача участника - написать приложение, которое будет выдавать прогноз реального времени посадки рейсов в начале каждого дня с 1 июня по 30 июня 2015 года.

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

Зарегистрироваться и узнать подробнее о соревновании вы можете на сайте: http://predictivecity.com/

Все обсуждения ведутся в Facebook.
По вопросам сотрудничества обращайтесь:
Татьяна Козовая

, Skype: tkozovaya

Источник: rubyflow.ru

RubyC-2015 представляет интервью с Эриком Михаельс-Обером

alt text

В преддверии третьей киевской конференции RubyC-2015 (30-31 мая 2015 года), организаторы представляют интервью с Эриком Михаельс-Обером (Erik Michaels-Ober), рубистом из Германии, который стал RubyHero-2014. Эрик является популярным ментором среди разных Ruby-сообществ: Ruby Summer of Code, Google Summer of Code и Rails Girls Summer of Code. В рамках RubyC-2015 Эрик представит тему Crystal programming language, подробности о которой можно узнать на сайте http://rubyc.eu/#speakers, а больше узнать о самом Эрике можно из его ответов.

I started working on Ruby full-time in 2006, when my team decided to port our web application from PHP to Rails. Rails had just turned 1.0. I believe we were using Ruby version 1.8.4 with Mongrel as the web server. This was before Rack, Bundler, RubyGems.org, or GitHub. In retrospect, it’s hard to imagine working on Ruby without these tools that I now use on a daily basis.

Ruby made me realize the value of people over computers. Most programming languages are optimized to make executing code fast. Ruby is optimized to make reading and writing code fast. This changed the way I thought about code: from something that I write for the computer to something that I write for other people.

Ruby, the language, is great but my true love is the Ruby community. By joining this community, I’m now connected to nice people, all around the world. I love meeting new Rubyists at meetups and conferences. I’ve learned so much from others, who openly share their knowledge on their blogs, podcasts, screencasts, etc. I love Rails Girls, RailsBridge, and other community programs to make programming more diverse and inclusive. I also love the creative spirit of the Ruby community, inspiring projects like Artoo, Kids Ruby, Shoes, Gosu, Sonic Pi, etc.

I think Ruby would be better language if the syntax was more consistent. For example, Ruby has 2 different ways to make a hash and 7 different ways to make a function (def, proc, Proc.new, lambda, ->, {}, do…end) compared to JavaScript, which has a unified hash/object syntax and one way to define a function, regardless of whether it’s named or anonymous. Ruby also has too many aliases compared to Python’s philosophy that there should be only one obvious way to do something. Design is the art of making decisions. By having multiple names for the same method (e.g. map/collect, reduce/inject, find/detect, find_all/select, etc.), the Ruby designers avoided making a hard decision, hoisting that choice onto the user. Ruby also has many similar names for methods that are subtly different (e.g. ==, ===, eql?, equal?). I’ve been using Ruby daily for almost 10 years and I still can’t remember the difference between eql? and equal? without looking it up. I wish these methods had more descriptive names. Another example is the subtle differences between the alias keyword and alias_method, or private and protected. I think symbols could be replaced by frozen strings and removed from the user-facing part of the language. There are a few other language “features” I would remove from the Ruby if it was up to me, like the Perl-inspired global_variables. In my opinion, these do not mesh well with the rest of the language. There are also a lot of poorly maintained and outdated code in the Ruby standard library. I’d like to see the standard library refreshed to use newer language features, like keyword arguments. If these features are not useful enough for the core/standard libraries, they should be removed from the language, since they add unnecessary complexity. The ability for Ruby to catch some type errors at startup time would be nice. I’d also like an ahead-of-time compiler than generates native binaries. And better runtime performance. I’ve started using Crystal instead of Ruby, which I will be giving my talk about, since it has most of the features I like about the Ruby language without many of the features I dislike.

If talking about the most terrible architectural solution/code I have ever met, the first thing that comes to mind is the way Rails performs uniqueness validation. For those who don’t know, it just does just does a SELECT to see whether the field already exists before doing an INSERT. The first problem is that these two operations are not done in a transaction, so there’s a race condition that allows non-unique values to be inserted. However, transactions are not a good solution either, since they would cause too much table locking. The best solution is simply to create a UNIQUE INDEX on that field in the database, which guarantees correctness and optimal performance. The Rails approach to uniqueness validation is an impedance mismatch that gives the user a false sense of security.

The most spectacular Ruby news in 2014 was the creation of RubyBench.org by Alan Guo Xiang Tan. It is an incredibly valuable (and long-overdue) contribution to the Ruby community. This project will ensure that there are no performance regressions in Ruby so it only gets faster with each release. If RubyBench existed in the past, it could have prevented the performance regression in require that snuck into Ruby 1.9.

Life after Ruby is Crystal! See my talk for more information. ;)

Currently I am working on rewriting the Twitter CLI in Crystal and coaching a Rails Girls Summer of Code team.

My dev environment contains the Fish shell, which I recommend to anyone who spends a lot of time on the command line. Try it for a week and you’ll never go back!

My favorite Ruby blogs\communities\websites are Ruby-Talk, Ruby Weekly, and This week in Rails mailing lists. Blogs, written by Aaron Patterson, Aman Gupta, Sam Saffron, James Edward Gray II, Thomas Reynolds, Sandi Metz, Tom Stuart, Avdi Grimm, Jessica Kerr and Pat Shaughnessy. I also read lots of non-Ruby blogs.

I recommend the book “Ruby Under a Microscope” by Pat Shaughnessy because it is a fascinating look at how Ruby works under the hood. I would also recommend Practical Object-Oriented Design in Ruby by Sandi Metz to any Rubyist who hasn’t read it yet. For a better theoretical understanding of computer science, I recommend Understanding Computation by Tom Stuart. To absolute beginners, I recommend Learn to Program by Chris Pine. Finally, Why's (Poignant) Guide to Ruby has a special place in my heart.

My personal life hack is: add the following line to your crontab: */30 9-17 * * 1-5 say "Stand up and walk around"

Источник: rubyflow.ru

Вышла в свет новая версия Howitzer v1.1.0

После годичного перерыва, наконец то был зарелизен Howitzer v1.1.0 - универсальный тестовый фреймверк для приемочного тестирования.

В новой версии была добавлена интеграция с BrowserStack, SeleniumGrid. Также была добавлена поддержка Cucumber 2.x и RSpec 3.x. Полный список изменений можно найти в Changelog

Мигрироваться из старых версий поможет интерактивный помощник.

Уже началась работа над версией 2.0, в которой будет кардинально новый подход в подготовке тестовых данных, интеграция с Turnip, новый дизайн сайта, а также значительное улучшение API фреймверка. Релиз намечен на июль 2015.

Источник: rubyflow.ru

Открыт набор на онланй-интенсив по Ruby on Rails

alt text

Открыта регистрация на интенсив "Профессиональная разработка на Ruby on Rails" от онлайн-школы Thinknetica. Количество мест ограничено!

Для кого?

Этот интенсив для тех, кто уже знает основы Ruby on Rails, но хочет стать профессионалом и научиться создавать production-ready приложения.

За 3 месяца с нами вы освоите больше, чем самостоятельно за год.

Что будет?

На курсе основное внимание уделено лучшим практикам и подходам профессиональных разработчиков. Вы научитесь создавать приложения «с нуля» и до деплоя. Изучите такие техники как TDD/BDD, agile-методологии, git flow. Познакомитесь со множеством полезных библиотек, узнаете о внутреннем устройстве Rails, научитесь писать хороший код, проектировать архитектуру, создавать REST API, настраивать сервер и делать деплой, а также многому другому.

Как проходит интенсив?

В курс включены общие занятия в виде скринкастов c заданиями и их обязательным выполнением и проверкой, code review, мастер-классы с приглашенными экспертами, а также индивидуальные занятия с ментором 1 на 1 в режиме «онлайн», где вы можете задать свои вопросы, получить советы и рекомендации от опытного разработчика.

Что в итоге?

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

Регистрируйтесь, пока есть места!

Источник: rubyflow.ru

Разрабатываем Ruby Gem в Docker контейнере

Контейнеры захватывают вселенную, и ничего с этим не поделаешь. Несмотря на то, что я являюсь старым приверженцем Vagrant’а, на днях мне все же захотелось попробовать docker для одного из своих проектов - Valle. Не без препонов, но все же удалось встроить docker в процесс. Далее последует руководство по разработке Ruby гема с использованием docker’а.

Продолжение: http://homeonrails.com/2015/05/razrabatyvaiem-ruby-gem-v-docker-kontieinierie/

Источник: rubyflow.ru

Непрерывная интеграция, Jenkins и Middleman

Обзор процесса непрерывной интеграции в целом на примере генератора статичных сайтов Middleman и с использованием Amazon Web Services

https://mkdev.me/posts/nepreryvnaya-integratsiya-jenkins-i-middleman

Источник: rubyflow.ru

Crystal - новый язык программирования

Crystal - это новый язык программирования, который на данный момент находится в стадии альфы.

Интересно то, что синтаксис Crystal был вдохновлен Ruby, что значит вам не потребуется много времени, чтобы разобраться в нем.

Пример с официального сайта:

# Compute prime numbers up to 100 with the Sieve of Eratosthenes
max = 100

sieve = Array.new(max + 1, true)
sieve[0] = false
sieve[1] = false

(2...max).each do |i|
  if sieve[i]
    (2 * i).step(max, i) do |j|
      sieve[j] = false
    end
  end
end

sieve.each_with_index do |prime, number|
  puts number if prime
end

Все подробности на официальном сайте - crystal-lang.org.

Источник: rubyflow.ru

Eldr - фреймворк без магии

Если вы устали бороться с магией многих популярных Ruby-фреймворков, то возможно Eldr прийдется вам по вкусу.

Основная идея Eldr - это минимальный фреймворк, который не старается спрятать Rack. Кроме того, он простой для понимания, легковесный и модульный.

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

class App < Eldr::App
  get '/posts' do
    Rack::Response.new "posts", 200
  end
end

Нааааамного больше подробностей и примеров кода вы найдете в README - github.com/eldr-rb/eldr.

Источник: rubyflow.ru

Rquest - элегантный способ HTTP запросов

Библиотека Rquest реализует простой и красивый способ выполнять HTTP запросы из Ruby.

Уже давно не секрет, что Net::HTTP из стандартного набора Ruby имеет довольно хитрый API, который сложно запоминается если не использовать его практически каждый день. Rquest создан, чтобы решить эту проблему.

rquest = RQuest.new({verb: :get, uri: "https://google.com"})
response_body = rquest.send
response_time = rquest.last_response_time
response_object = rquest.last_response

Но это только небольшой пример. Советую прочитать README на github.com/thetyrelcorporation/rquest, чтобы узнать обо всех возможностях
Rquest.

Источник: rubyflow.ru

Четыре статьи из журнала «Системный администратор»

Опубликованы в открытом доступе 4 статьи о Ruby из журнала «Системный администратор». Статьи рассчитаны, скорее на начинающих или интересующихся, но, надеюсь, могут быть полезны.

Статьи размещены в блоге автора по тегу «Системный администратор».

Конструктивная критика приветствуется. Просьба лишь учитывать, что это журнальные статьи, а не руководства или части справочника, причем написанные для не совсем профильного издания (скорее смежного).

Источник: rubyflow.ru

Обновления в Rails Style Guide

Сегодня была закончена работа над переводом руководства по стилю оформления кода на Rails на русском языке.

Руководство является русскоязычным переводом составляемого сообществом сборника лучших практик под редакцией Божидара Бацова.

Оригинал на английском: https://github.com/bbatsov/rails-style-guide

Русская версия: https://github.com/arbox/rails-style-guide

Замечания, комментарии, исправления приветствуются!

Источник: rubyflow.ru

vruby - очередной менеджер версий Ruby

vruby - менеджер версий, который создан специально для тех, у кого Ruby не единственный часто используемый язык программирования.

В настоящий момент проект находится в стадии альфа-версии, так что у вас есть отличная возможность помочь автору. Подробное описание идей, и список задач требующих реализации вы найдете на GitHub - github.com/joefiorini/vruby.

Источник: rubyflow.ru

RubyC вновь собирает рубистов в Киеве

RubyC-2015

30-31 мая компания Svitla Systems проводит третью конференцию по Ruby и Ruby on Rails.

Приглашаем разработчиков всех уровней на одну из самых ярких киевский Ruby конференций – RubyC-2015. Вас ожидает два дня посвященных последним новостям, трендам и лучшим проектам на Ruby. Вы с пользой проведете выходные, наберетесь новых идей и познакомитесь с лучшими западными докладчиками.

К нам уже пакуют чемоданы RubyHero-2014 Ara T. Howard (США), Julian Cheal (Великобритания), Lourens Naudé (Португалия), Bozhidar Batsov (Болгария), и что особенно приятно Ben Lovell (Великобритания), выступавший на RubyС в прошлом году. Список еще далеко неполный, поэтому если хотите присоединиться к команде спикеров – заполняйте форму на сайте конференции http://rubyc.eu/#speakers.

Организатор, Svitla Systems, выражает особую признательность компании Soft Serve. которая уже второй год выступает Генеральным спонсором конференции; а также медиа-партнерам: порталу Ruby no name, компании Ruby Garage, IT ассоциации Украины, сайтам RubyFlow.ru и RubyJobs.ru ;). Желающих пополнить благородный список партнеров конференции ожидает подробная контактная информация на сайте.

И, конечно, не забудьте, что между докладами гостей ждет не только освежающий кофе, но и массаж от ребят из Office Massage, а еще конкурсы и подарки от организатора и партнеров!

Полезности:

  • Пока спикеры определяются с темами, продажа билетов идет полным ходом!
  • Место проведения конференции: БЦ «ИНКОМ», ул. Смоленская, 31-33, Киев.
  • Рабочие языки конференции – английский, русский, украинский.
  • Узнавайте новости первыми из Twitter и Facebook.
  • А еще смотрите архивы прошлого года.

До встречи на RubyC-2015!

Впервые RubyC состоялась в 2011 году, став одним из наиболее значимых событий для руби-сообщества. Неизменно конференция собирает высококлассных докладчиков из разных уголков земного шара, и около 300 посетителей из стран СНГ. Спикерами RubyC за это время стали лучшие Ruby эксперты, чьи выступления бережно хранятся в архивах http://rubyc.eu/#archives.

Организатор — Svitla Systems Inc. основана в 2003 году и занимается разработкой программного обеспечения и аутсорсинга. Штаб квартира компании находится в Сан-Франциско, Калифорния, а центры разработки в Украине - в Киеве, Харькове, Черкассах, Черновцах, Львове, а недавно был открыт офис в Черногории. Среди клиентов Svitla Systems есть как стартапы из Силиконовой долины, так и всемирно известные компании Monster Worldwide и Стэнфордский университет. Подробнее на http://svitla.com/

Источник: rubyflow.ru

Тест производительности: Sinatra против Lotus

Maciej Małecki провел эксперимент и сравнил производительность двух фреймворков: старого ветерана Sinatra и подающего надежды новичка Lotus.

Помимо самих фреймворков в битве принимали участие:

  • Slim, чтобы рендерить шаблоны,
  • Sequel, чтобы коннектиться в базе данных,
  • Puma, чтобы все это работало :)

О деталях тестирования и сами результаты, вы найдете в статье "Lotus performance tested against Sinatra".

Источник: rubyflow.ru

Что Rails 5.0 грядущий несет нам?

Хотите узнать куда денется rake db:migrate или что делает rake restart? Может интересно какую версию будет поддерживать Rails 5.0?

Тогда ищите ответы в статье "Upcoming changes in Rails 5.0".

Источник: rubyflow.ru

Конференция RubyConfBY

22 марта в Минске в отеле Олимп (пр. Победителей,103) состоится первая крупная технологическая конференция RubyConfBY, посвященная Ruby, Rails и сопутствующим технологиям. Конференция пройдет в течение 1 дня, в один поток и соберет спикеров из 8 стран мира.

На конференции соберется 150-200 разработчиков, чтобы обсудить насущные вопросы:

  • Канет ли в Лету старый добрый Bundler, уступив место Rubygems?
  • Пора ли бросать надоевший REST и пробовать Hypermedia API?
  • Так ли популярны рельсы на хакатонах до сих пор?
  • Переходить ли на Trailblazer в создании архитектуры рельсовых приложений?
  • Ну и, конечно, выяснить насколько стильный создатель Ruby Style Guide?

На конференции также будут пристутствовать представители компаний-спонсоров Toptal, appcast.io которые готовы поделиться своим опытом разработки на Ruby & Rails. Полную программу смотрите на сайте.

Всем читателям rubyflow.ru организаторы предоставляют скидку 20% на билет по промо-коду RUBYFLOW.

Промокод вводится при покупке билета на сайте конференции.

Билеты уже в продаже на сайте конференции http://rubyconference.by/

Источник: rubyflow.ru

Вход для пользователей