4-5 червня в Києві відбудеться RubyC-2016!

RubyC – це найбільша українська конференція, присвячена Ruby, Ruby on Rails і супутнім технологіям. Організатор, компанія Svitla Systems, щорічно збирає в Києві понад 250 учасників з усієї України та країн СНД. У 2016 році конференція пройде 4 та 5 червня у Конгрес Холі готелю «Русь».

На відміну від попередніх років, цього року RubyC стає повністю англомовною конференцією, відтак всі запрошені спікери будуть презентувати свої теми виключно англійською мовою.

Традиційно в рамках конференції виступає 14 експертів, як правило, половина з них – представники європейських країн і США. Наразі, перші 7 спікерів вже заявлені, серед них учасники минулого року легко впізнають Бена Лоувела (Ben Lovell), дотепного бородатого британця, чиї виступи незмінно піднімають настрій, а також Божидара Батсова (Bozhidar Batsov), болгарського розробника, минулорічний виступ якого викликав величезну кількість позитивних відгуків, а відеозапис зібрав понад 2500 тисяч переглядів.

Вперше RubyC представить Енді Пайка (Andy Pike), британського програміста, який останні кілька років успішно виступає на різних IT-конференціях, а також Роберта Панковецького (Robert Pankowecki), активного учасника польської Ruby спільноти. Серед українських рубістів раді оголосити участь Михайла Бортника, Олександра Симонова і Дмитра Зіміна, чиї доповіді буде корисно і цікаво послухати. Повну інформацію про спікерів і теми, з якими, щоправда, ще не всі визначилися, можна знайти на сайті rubyc.eu/.

Окрім цього RubyC продовжує приймати заявки на виступи, тому якщо у вас є ідеї, якими ви хочете поділитися – просимо реєструватися через цю форму. Фінальний список спікерів буде представлений в кінці березня.

І звичайно, RubyC-2016 висловлює величезну подяку цьогорічним Ruby Спонсорам, компаніям DataArt та Global Logic, без яких конференція навряд чи відбулася б; а також Медіа партнерам: Ruby No Name, Ruby Garage, Lohika, Daxx, Українська IT Асоціація, Innocode, Ruby Flow and Ruby Jobs, IT Education Academy та Belarus Ruby User Group, завдяки яким конференція продовжує рости і розвиватися.

І окреме спасибі нашому прекрасному майданчику – готелю «Русь».

А поки організатори займаються різними організаторськими штуками, попередній продаж квитків категорії Early Birds успішно стартував і триватиме до кінця березня.

Чекаємо вас на RubyC-2016!

Стежити за нашими новинами можна на twitter.com/rubyc_eu або www.facebook.com/RubyC.eu/.

RubyC-2015 представляє інтерв'ю з Еріком Міхаельс-Обером

Напередодні третьої київської конференції 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 bookRuby 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»

RubyC -2014. Інтерв'ю з Беном Лоувелл ( Ben Lovell )

Київська конференція про Ruby і Rails — RubyC — продовжує набирати обертів! По-перше, організатор — компанія Svitla Systems — рада представити Генерального спонсора — SoftServe — найбільшу українську ІТ компанію, завдяки якій програма стане ще більш насиченою та цікавою!

ben lovellПо-друге представляємо вашій увазі бліц — опитування від чергового спікера — Бена Лоувелла, рубіста з сонячної Англії ( с). Як активний учасник світової рубі спільноти Бен встиг виступити на JRubyConf EU, Ruby Manor 4 і EuRuKo. На RubyC Бен презентує тему « Building fast, testable and sane APIs with rails», докладніше про тему читайте на сайті RubyC, а про самого Бене — у відповідях на запитання http://rubyc.eu/posts/6

Нагадуємо, що до конференції RubyC залишилося всього два тижні! Не пропустіть шанс придбати квитки Late Birds на http://rubyc.eu/#tickets !

До зустрічі на RubyC 2014!

RubyC вітає нового спікера : Кирила Тимофєєва!

RubyC

Київська конференція з Ruby і Rails, RubyC, висловлює подяку компанії DataArt, яка не тільки виступила партнером конференції, а й поповнила ряди її спікерів. Представляємо Кирила Тимофєєва, Chief Architect в Dataart Санкт -Петербург.

Ми чесно спробували дізнатися про Кирила правду і виявили: колись він був математиком і провів безліч безсонних ночей, занурюючи пилосос у воду, щоб зробити трохи мильних бульбашок — в надії, що через сто років або близько того ця ідея (звичайно, якщо він буде досить успішним) призведе до розвитку зрошення вуличних виноградників догори дригом (що, очевидно, зараз ще не застосовується).
Використовуючи свій творчий потенціал, в рамках RubyC Кирило представить тему «Подорож у Лямбда- країну».

Обґрунтував він своє рішення наступним чином: «Я б хотів викрасти вас і затягнути в мій секретний Рубі-клас, хоча насправді це буде зовсім навіть не Рубі і не Рейлс, а Лямбда-країна. Це буде цікаве і таємниче подорож крізь час і простір у далекий світ, щоб відшукати самих себе і знайти істину. Ви станете все падати і падати, невже цьому не буде кінця?

У 1920-30 рр. математикам була потрібна формальна система, яка б стала фундаментом для логіки, яка б більш природним чином підходила ніж існуючі теореми. Завданням λ-числення було описати базові властивості функцій, аплікації та підстановки в якомога більш загальному оточенні. Чисте λ-числення, яке спершу здавалося обмеженим, виявилося дивно виразним засобом.

Так прикинемося, що я — Містер Ікс (як в арії http://www.youtube.com/watch?v=76vJHKM8Tpo ). Або Зорро, що бореться з жорстокими і жадібними людьми. Я — Дарт Вейдер і ваш батько. Просто візьми мою руку, Венді, ми збираємося в подорож у чарівну і теоретичну країну.

Ця доповідь розповість про λ-числення, β-редукцію, звичайний і аплікативного порядок, потім розширить все це до Y-комбінатора і на закінчення побудує щось типу примітивного мови, на якому можна буде навіть описати алгоритм швидкого сортування. Знання, що існує такий базовий мову, не тільки допомагає поглянути ширше на світ і те, чому мови спроектовані таким, а не іншим чином, але ще може допомогти з функціональним рефакторингом існуючого коду».

Організаторам залишається додати, що, відповідно до теорії Кирила, жоден мозок не постраждає під час цього виступу. Детальніше про Кирила можна дізнатися з його інтерв'ю або на вечірці після конференції!

Нагадуємо, що RubyC пройде 31 травня — 1 червня 2014 року в Києві в БЦ «Інком ». Кількість квитків обмежена! Інформація про спікерів і покупка квитків на сайті http://rubyc.eu/

До зустрічі на RubyC 2014!

RubyC-2014. Интервью со Стивом Клабником (Steve Klabnik)

steve klabnikДо конференции RubyC осталось чуть больше месяца. Организаторы напоминают, что продажа билетов Early Birds заканчивается сегодня — 30 мая — http://rubyc.eu/#tickets и продолжают знакомить участников со спикерами RubyC. На очереди Стив Клабник (Steve Klabnik), личность очень известная благодаря его активному участию в жизни мирового Ruby сообщества. В рейтинге rubyscore.com Стиву присвоен статус Almighty developer, а еще он RubyHero 2011 года, не говоря уже о том, что на Github у Стива более полутора тысяч фолловеров и он участвует в большинстве IT конференций по всему миру. На RubyC Стив презентует тему Rust for Rubyists — www.rubyc.eu/#speakers.

1. Какие «инструменты» используешь в своей практике? (ОС, текстовый редактор, и т.д.) / What tools do you usually use in your practice? OS, text editor, etc.
Использую run #! Linux, чаще Arch Linux, попробовал #! чтобы не тратить время. Также использую мозаичное размещение окон, обычно XMonad, но #! идет в одном пакете с OpenBox, и он мне тоже вполне подходит. Около 80% своего времени провожу в Firefox и xterm. Внутри xterm, использую bash, vim, git, и irssi.
Около 10% времени провожу в Thunderbird, для переписки. Процентов 8% времени уходит на инструменты защиты личных данных, например Tor и GPG, и 1% для всякие разности. Иногда когда нужно поправить изображение и открыть GIMP или нужно открыть какой-то документ с помощью LibreOffice. Для быстрых сообщений — Pidgin. Презентации пишу в Reveal.js или в 'rabbit'. На iPhone стоит iMessage и Twitter app. На iPad — Duolingo и игра ReRave. Также начал использовать Chromebook Pixe для ежедневной работы.

/I currently run #! Linux. I like it. I use Arch Linux most of the time, but I gave #! a go this time so I wouldn't have to fiddle. I use a tiling window manager. Usually it's XMonad, but #! comes with OpenBox, and it's pretty okay. I spend 80% of my time in Firefox and an xterm. Inside that xterm, I run bash, vim, git, and irssi. I spend 10% of my time in Thunderbird, for email. I spend another 8% of my time using tools to protect my privacy, like Tor and GPG, and 1% in random things I don't use often enough to remember. Like occasionally I'll need to edit a picture and open GIMP or need to open some sort of document that LibreOffice can handle. Occasionally I'll get an instant message on Pidgin.I write my presentations in Reveal.js or the 'rabbit' gem. On the iPhone I mostly use iMessage and the Twitter app. On the iPad I mostly practice with Duolingo and play ReRave. Also I have started to use a Chromebook Pixel for my day job now.

2. Ты уделяешь много времени обучению людей. Каковы твои личные причины? / You spend a lot of time teaching people. What are your personal reasons?
Обучение других это стратегически верный способ позитивно влиять на мир. Я могу работать только 24 часа в сутки, но если я обучу двух людей они могут работать параллельно, то есть 48 часов вместо моих 24. Хотя, как известно, бывает сложно согласовать действия J

/Teaching is a scalable method of impacting the world in a positive way. I can only code for 24 hours a day, but if I teach two people, they can work in parallel, and code for 48 hours in the time I code 24. That said, we all know concurrency is hard. ;)

3. Назови проект, которым Ты гордишься?/ Can you name the project that you are proud of?
Больше всего горжусь request_store: это крохотная библиотека, написанная за одну бессонную ночь, которая стала моей самой популярной.

/The project I'm most proud of is request_store: it's a teeny gem that I wrote one night when I had trouble sleeping, and it's been my most popular gem.

4. Какой стартап, написанный на RoR, тебя больше всего впечатлил? Возможно, ты лично принимал участие в разработке?/Can you name your favorite start-ups, written on RoR, maybe you personally have participated in some of them?
Когда-то я работал над CloudFab, с него началось мое знакомство с Rails! В целом я не обращаю внимания на технологии, которыми пользуются компании, пока они производят качественный продукт, могут и Rails использовать. Компания, в которой я сейчас работаю, использует Python!

/I had a startup long ago called CloudFab. It's where I first learned Rails! That said, I don't really pay attention to which company uses which technology. As long as they make a good product, I don't mind if they don't use Rails. The company I work at now uses Python!

5. В каком направлении, на твой взгляд, должны двигаться Rails? Как ты думаешь, существует ли новая блестящая идея для реализации в Rails, или Rails и так достаточно хороши и не нуждаются в улучшениях?/ What direction you think should Rails move on to? Do you think is there any brilliant new idea to be implemented in rails or it’s now good and there is nothing conceptual to be added?
Думаю, что Rails должен более плотно интегрировать JavaScript и перестать пытаться его уничтожить. Последние несколько лет на конференциях по Rails мои записи касались именно JavaScript, даже не Ruby. Мы пытаемся игнорировать JavaScript, но это часть современного программирования.

/I think that Rails should embrace JavaScript, and stop trying to kill it. All of last years' RailsConf keynotes were about JavaScript, not even about Ruby. We try to ignore JavaScript, but it's part of the modern web.

6. Использовал ли ты принципы Hypermedia API в проектах? Приведи несколько примеров. / Did you use Hypermedia API principles in your projects? Please give some examples, if you did.
Да, использую. На работе мы используем hypermedia с JSON API чтобы усилить наше API. Можете посмотреть

/I do! At work, we use hypermedia with JSON API to power our API.
Check it out: curl api.balancedpayments.com/cards/CC5cX8TtoEgQ7nY3a8pj5D7f/debits \
-H «Accept: application/vnd.api+json;revision=1.1» \
-u ak-test-2qEM0Znvd8LIVbZ01LbFHvHgab4fkNr3c: \
-d «appears_on_statement_as=Statement text» \
-d «amount=5000» \
-d «description=Some descriptive text for the debit in the dashboard»

7. Ты часто упоминаешь об ответственности, проверки кода и программирования для развлечения. Как часто ты тестируешь свои проекты, какие методы используешь?/ You said about responsibility, testing code and about programming for fun. How often do you test code in your projects. What technologies of testing do you use?
Я стараюсь постоянно писать тесты, но все равно мой код не идеален. Чаще использую MiniTest, так как он включен в Ruby.

/I try to write tests all the time, but I'm not perfect. I choose MiniTest most of the time, as it's included with Ruby.

8. Каков, на твой взгляд, наиболее эффективный и быстрый путь стать популярным Ruby-программистом — создание собственных Ruby проектов или участие в разработке проектов, уже пользующихся популярностью? / /What is the most effective and fast way to become a popular Ruby programmer – create your own Ruby project or write patches to famous projects?
Ха! Я не уверен, поскольку популярность это довольно непостоянная вещь. Я веду много блогов и стараюсь помогать другим. Вот и все.

/Ha! I'm not sure, as popularity is a fickle thing. I wrote a lot of blog posts and tried to help other people out.

9. Известно, что большинство успешных разработчиков начинали программировать с детства (до 10 лет). Какой язык программирования ты бы посоветовал для обучения детей? / It is known that the most successful developers have tried to program in small age (some under the age of 10 years). What a programming language would you start to teach or advise your children to try?
Я думаю, что Ruby что отличный язык, для начинающих, он очень гибок. Питон также имеет много материала, для начинающих. Для детей, думаю, отлично подойдет Scratch.

/I think that Ruby is a really great first language because it's so flexible. Python also has a lot of great introductory material. For very young kids, Scratch is super, super great.

10. Ты как-то рекомендовал программистам читать книги по философии. Что еще, может, посоветуешь? / You have recommended reading philosophy books to programmers. What else interesting you can propose?
Смысл не в самой философии, хотя определенно она помогает, поскольку в ней находишь фундаментальные понятия. Идея в том чтобы «красть» любые идеи из других областей, которые могут быть реализованы в программировании. Я бы хотел узнать, как философия может помочь программированию, или как принципы строительства мостов могут улучшить управление проектами, как японский может помочь понять синтаксический анализ, список продолжается до бесконечности. Не нужно все время читать о программировании.

/The key isn't philosophy, though that's quite useful since it's so fundamental. The real key is to steal _any_ ideas from other fields if they'll be useful to ours. I want to hear how psychology can help programming, or how bridge building can help project management, or how Japanese can help you understand parsers, the list goes on and on! Don't just read about programming all the time.

Спасибо до встречи на RubyC!