How Does a Rails App Know Client's IP

The story started when a colleague of mine asked about a weird error he got from Rails:

ActionDispatch::RemoteIp::Ip
SpoofAttackError: IP
spoofing attack?!

When I tried to help I learned how does Rails (in fact, Rack) “calculate” client’s IP. The problem is that our app might sit behind a number of proxy servers managed by us and by other people. I learned that there is an algorithm in HTTP protocol to get trusted client IP in those cases.

Lightning talk from Minsk.rb 17 (in Russian):

Show Me Your Code

A lightning talk on Minsk.rb on how to show examples of your code when you apply for a job (in Russian).

Quick summary:

  • Send a link to GitHub, not a zip archive or Google Drive shared folder.
  • Make sure you have a great commit history.
  • Clean up your code (remove commented code, remove debug output, etc).
  • Give context about the code in readme or code comments, highlight most interesting parts.
  • If your project is under NDA make an extract that shows something about your skill.

Growing Rails Apps

We have everything to write Rails app from scratch very fast. But development becomes slower and slower over time. And Rails itself doesn’t promote patterns to write bigger apps efficiently.

There are common problems in big rails apps like tons of files in app/models, hundreds of lines of code in controllers. And there are ways and patterns to mitigate this and I’m showing them.

Slides: growing-rails-apps.pdf (on Speaker Deck).

Rails: The Good Parts

Developers nowadays tend to blame Rails and DHH because they encourage bad practices that lead to a bad code. This is true but there are many good things in Rails we rarely use that help us to write good maintainable code. I show bad examples in popular opensource projects and show you features of Rails that can be used to avoid their mistakes.

Dima is on stage, red panda on slide looking suspicious, speach buble says "1097?"

Photo by Taras Bovt.

Slides: rails-the-good-parts.pdf (on Speaker Deck).

Ethereum Smart Contracts

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

Слайды: ethereum-smart-contracts.pdf (на Спикер Дек).

How To Learn Things

Рассказал, как я узнаю новые штуки:

Рассылки:

Разное:

Блоги:

Конференции

Курсера

Книги