Ruby Meditation 21 in Kharkiv

Ruby Meditation 21 will take place in Kharkiv on Sat, April 14, 2018 at 11:00 AM EEST
02 April 2018   2271

At first in history, Ruby Meditation goes to Kharkiv! It will be hot. Join us in the delightful city Kharkiv, April 14!

Interesting talks, live discussion and awesome speakers. Friendly atmosphere, charming professionals and tasty lunch ;)

Planned talks

Tetiana Chupryna

Topic: "We're rewriting everything"

Tetiana Chupryna
Tetiana Chupryna

"Rewrite from scratch” is considered by many developers as an ultimate tool to fix problems with programs. However, what will happens if a team of a booming startup decide to put aside their code base and start with a fresh beginning? This talk is inspired by a true story. A story of success or failure, it’s up to you to decide.
 

Tetiana Chupryna

Ruby developer

Andrey Blazhey

Topic: "Peatio"

Andrey Blazhey
Andrey Blazhey

Create your platform for crypto trading. Features of the development and support of the platform. Connecting popular crypto currency.
 

Andrey Blazhey

Ruby/Node.js Developer

Victor Shepelev

Topic: "A tale of query languages. Is GraphQL The Chosen One?"

Victor Shepelev
Victor Shepelev

Should you switch to GraphQL today or avoid it as long as you can? How is GraphQL similar to guinea pig? Would it become even scarier than SOAP once was? What query languages prefer really huge data sources like OpenStreetMap? Answers to those and other questions, contrived examples, and shameless rants. Be prepared.
 

Victor Shepelev

Ruby developer

Maxim Goncharov

Topic: "Compromise Driven Development: The right way."

Maxim Goncharov
Maxim Goncharov

Every team often get some problems with implementation of selected solutions. In discussions, developers could find some compromise decision. But will this way be right?
 

Maxim Goncharov
Full-stack developer

Sergii Koba

Topic: "Ruby microservices with Docker"

Sergii Koba
Sergii Koba

Docker Compose infrastructure for Microservices. Multistage Docker images build for minimalistic Ruby images. Requests routing and interservice communication. ELK stack for logging microservices with ease.
 

Sergii Koba
Web Team Lead

Sponsors: Svitla, Aejis.

Share your positive experience and best practices on this Ruby Meditation #21. If you have any work issues you cannot solve, our community will gladly help you to find the best way out in live discussion at Lightning talks session. You may also try yourself as a speaker with a short 5-10 mins talk. Please, fill in the form.

Students. who interested in ruby and have a willingness to visit Ruby Meditation will get a discount 50% with promo code 'student'.

If you are a parent of a small baby (0-3) on maternity leave and you want to learn more about ruby development you can get a special discount for a ticket with promo code 'GrowWithYourKid'.

If you have any questions or suggestions, don't hesitate to contact us via cell phone: 099 202 63 08 or by email rubymeditation@gmail.com

Buy a ticket 

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   249

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.