Ruby Meditation #19 in Kiev

Sat, November 25, 2017, 11:00 AM – 6:00 PM EET Hub 4.0, Yaroslavskyi lane 1/3, Kyiv, Ukraine
23 November 2017   1520

Join next Ruby Meditation #19 on November, 25th! Become a part of Ruby Community.

Take your new knowledge, useful practice, and joy. Organizers are waiting for speakers from Toptal and it's mean interesting topics and discussion. Join and get information about hard and soft skills in ruby-development. Starting at 11:00 and finishing at 18:00 with the coffee-breaks and a tasty lunch.

Agenda

  • 11:00 Registration and Welcome coffee 
  • 11:30 How freelancing and remote work is changing the world - Ines Avdic-Zekic
  • 12:15 Coffee break
  • 12:30 Monads in Ruby - Victor Zagorodny
  • 13:15 Lunch
  • 14:15 # UDD Kick Off - Marek Piasecki
  • 15:00 Coffee break
  • 15:15 Microservice communication with RabbitMQ - Tetiana Chupyra
  • 16:00 Coffee break
  • 16:15 A toolbelt of seasoned bug hunter - Damir Zekic
  • 17:00 Coffee break
  • 17:15 Lightning Talk

Speakers

There will be interesting talks of skilled coders at Ruby Meditation.

Ines Avdic-Zekic

Topic: “How freelancing and remote work is changing the world

Ines Avdic-Zekic
Ines Avdic-Zekic

How to gently break into freelancing (with Ruby on Rails) and take control of your life and career.
 

Ines Avdic-Zekic

Ines Avdic-Zekic travels the world, looking for top 3% freelance talent, whom she makes feel at home while working with Toptal. She also trainer/teacher. She started teaching very early in her career, but moved to curriculum design/creation and eventually completely changed her interest to technology and Technical recruitment. She a member of Toptal’s Speakers Network. 

Victor Zagorodny 

Topic: “Monads in Ruby

Victor Zagorodny
Victor Zagorodny

Monads are mentioned more and more often in various talks, and discussions, but mostly about pure functional languages and... JavaScript. We are going to take a closer look on what monads are, in what typical use-cases they can be applied to make our code elegant and our life simpler. Also we’re going to review the current state of monads support in Ruby community and put our two cents in this.

I am a Senior Ruby developer and a tech lead @ Sloboda Studio, write mostly in Ruby, have passion for Haskell and pure functional programming in general.
 

Victor Zagorodny

Marek Piasecki

Topic: “# UDD - kicking of Understanding Driven Development

Marek Piasecki
Marek Piasecki

This presentation will be a natural continuation of Odessian # Hype Review. Thanks to your questions and feedback I’ll try to give some answers. I do believe deep understanding is a key thing in development. It’s kind of obvious. But we go further and further with reducing scope of our specializations.  We’re learning how to use tools and methodologies instead of learn in the first place how to program.
 

Marek Piasecki

Damir Zekic

Topic: "A Toolbelt of a Seasoned Bug Hunter"

Damir Zekic
Damir Zekic

Loud bugs are easy to spot and easier to fix. But there are subtle bugs that work over time and only in specific environments. Finding and fixing them is often a frustrating process. This talk will cover a debugging odyssey through which we will explore and evaluate various tools that can be used for better understanding what is happening in any application.
 

Damir Zekic

Sixteen years ago Damir started developing web applications with PHP, but switched to C#/ASP.NET (he tries not to remember those few projects he was forced to implement with VB.NET) until he saw the radiant shine of Ruby. Developing web apps for the majority of his career as a software developer, he’s proficient with both back-end and front-end work, but recently started to focus on the back-end more. Enthusiastic about functional programming. He is also a part of Speakers Network in Toptal.

Tetiana Chupyra

Topic: "Microservice communication with RabbitMQ"

Tetiana Chupyra
Tetiana Chupyra

Microservice applications are useful only if they work in cooperation. So an adequately chosen type of inter-service communication is golden. In this talk, I want to speak about building lightweight microservice messaging with a usage of RabbitMQ. Why it’s better than standard JSON over HTTP? When it should be used and when should not? How to integrate RabbitMQ in Ruby application? I have some thoughts and answers that I want to share with you all.
 

Tetiana Chupyra

Organizers do appreciate a willingness to learn, thus, students receive 50% discount by promo code ‘student’. Please send your student ID’s scan to make your registration faster.
If you are on maternity leave with a small baby (0-3 years) you can get a special discount for a ticket with promo code ‘GrowWithYourKid’. Please take kid’s birth certificate with you to confirm the status.

Get your ticket here

 

M. Schirp: "I personally feel no big love for Ruby"

Interview with Markus Schirp, creator of the popular tool Ruby Mutation Testing and related gems and speaker at Ruby Russia 2018
19 September 2018   287

Markus Schirp is entrepreneur and post Ruby freelance developer and consultant, "exorcist of dynamic language." The creator of the popular tool Ruby Mutation Testing and related gems. DataMapper and ROM core team alumni, speaker at Ruby Russia.

Markus Schirp
Markus Schirp

The first question is about Mutant. What’s the main things about it? What your speech will be about, at Ruby Russia?

I will present the backstory of the Mutation Testing tool Mutant. The idea is to make the audience familiar with the key concepts of this tool. The audience will be made aware about the different levels of coverage, their meaning and value.

It will shed some light on some areas of the Ruby language which people are typically content with but shouldn't. Because Ruby language is often basically a fancy way to shoot yourself in the foot.

What’s the story of development of Mutant?

It’s actually myself getting hooked up on a project called DataMapper, and its next iteration DataMapper 2 that later turned into ROM. The project lead Dan Kubb to write a Relational Algebra library called axiom to back these new developments. And he wrote this axiom library with a strategy he calls ‘Developing with Constraints’. Featuring lots of metric tools and Mutation Testing.

The mutation testing tool of that time, was called Heckle and had various operational and conceptual flaws. At one specific moment I was like “Skrew it, I will not even attempt to fix Heckle. Let’s just write a new one and address all the Mutation Testing scaling problems we have in DataMapper 2”

This was 5 or 6 years ago, mutant went through several iterations meanwhile. All of these iterations where not driven by my own desire to write open source but by need of commercial projects I was contracting to. So the development of mutant is driven by my consulting activities.

Each time I go into a new Ruby project, I feel a need to be sure about a specific piece of code. And Mutant is the tool I use for this.

So, commercial clients want to use Mutant?

Yes, a sign of this is that all the features you see are the common features commercial clients requested over the last years. There are some features that are not in the public version, because the client did not give me the right to put them into the open source. But sometimes client says: “No problem if someone will benefit from this” which I really like.

At the moment I’ve left DataMapper 2 I’ve never wrote a feature just for fun. Just side effects of the commercial use.

I personally feel no big “love” for Ruby language, it’s just a tool for me. Mutant is a way to make Ruby more efficient. Mutant is hard to get start with but then it helps you a lot. This learning curve is something to address.

It’s totally OK. When you use a free gem...haha!

95% of free gems are just a hobby side projects. They are not ready for commercial use. The authors make them out of their personal interest. And I do not blame them for this.

I advise development teams in a commercial background to be aware of this property when pulling stuff from RubyGems.

I’ve only read the README file of Mutant at GitHub. But I really don’t understand what I should do.

That’s the reason I have to spend some time writing the readme or spend some time writing a more entry level documentation.

I was silent in the community for like 3 years for private reasons. I got two more kids and I moved to a different country.

Ruby Russia is the first time I’ve accepted an opportunity to speak again. I want to use the time I spend on preparing the talk and the worksop as material source for more documentation.

You will start to prepare it now, right?   

I’ve started, but I’ve started backwards. I did not start with the slides, instead I’ve created the workshop material. Working myself backwards to the slides.

The idea is to have the workshop based on a real world example taken from an open source project that uses rails and rspec.

As far as I understand, you’re using another programming language instead of Ruby.

That’s not really true. I use Ruby a lot but only if there is a commercial reason to do so. And this reason typically only exists when rescuing legacy applications that are about to collapse under their own code weight.

In such a scenario one cannot go in and simply replace Ruby in one big step. Incremental refactoring / strangling of the Ruby code is my main work. And during this process I have my hands at Ruby a lot, and here Mutant is my main tool to anchor refactoring / change cycles.

What languages do you prefer also?

Mostly Haskell. To me currently it’s at the optimum equilibrium between production usability and work to achieve a correct program that has business value.

The Haskell Type checker can guarantee many properties already, properties I’d have to fight for hard in Ruby.

There are also some great other languages, or language extensions upcoming. Dependent types will push “correctness after passing the type checker” to the next level.

Do you think Ruby and Rails have future?

Ruby and Rails have a perceived low entry bar helps people to get to the point of having a business. As long as people think Ruby and Rails have this property there is a future.

So, a little heretic statement but Rails deterministically produces applications which cannot grow anymore because of inherent complexity, language and framework choices. But its okay to buy into that tech debt if you have a business reason to do so. Just have a payment plan ready.

Yes, sure. What do you think about Rust?

Conceptually, I really like it. But I have not use it a lot right now. I had no real reason as the projects I’m on could not play out its strength, compared to other choices I had.

I’m doing backend development mostly. Or let’s name it “mass RPC with domain logic”. Here it’s more important I can guarantee a specific program is correct and secondarily efficient. Rust is computationally very efficient, but to be efficient it requires to manage more low level details by hand. This takes time I better spend on optimizing the high level IO pattern (grouping RPCs, minimizing round trips etc, verifying transactional properties, ...) before I optimize the individual primitive via a language that gives me tight control to do so.

If I were on a more computation heavy subject, like a video codec: Rust would be the tool I choose.

And the last question. What can you advise for a newbie programmers?

As a new programmer, find a pet project and align this pet project with non programming interest of yours to keep engaged for a long enough till learning programming has a positive return of investment.

Very interesting! And maybe it's working, haha!

Haha, yes, that’s how I got started.

Great advice! Thank you for the interview! Will see you at Ruby Russia.

Meet Markus and ask a question in person at Ruby Russia 2018!

Questions were asked by Mikhail Morgunov, developer from Evrone.