Visiting web tech events is very important. There is even a Ruby conference list to remember about that. I decided to start with some local events. My first stop was Full Stack Gathering. The conference was organized by MinksJS community at Event Space location.
Generally speaking, I didn’t feel comfortable enough because the majority of developers were Node.js ones. I guess the reason for that is the specific character of Belarusian web development. Nevertheless, some Python developers from Wargaming were present as well.
Moreover, the topics discussed at the conference were quite general so there was no focus on one specific programming language.
Graphics with PureScript
Christoph Hegemann opened the conference with live coding on PureScript.
It was really great as he showed how we can develop a game in 30 minutes. Syntax was another exiting feature because it was quite difficult to understand these constructions, as it was Haskell syntax and functional programming.
Despite the fact that it can be regarded as a great brain activity and show I didn’t manage to find practical use for that.
In the end it was pretty simple JS which we discussed later. You can check the code of this app here.
Protect your user
Nikita Grishko, who used to work as a Python developer at Wargaming and currently woking at Juno, talked about the steps to limit the access to your microservices so that users wouldn’t hate you.
This topic was familiar to everyone who developed more or less popular services and worked on bot protection.
The speaker told us about those moments that were important but not widespread: the fine line between usability and safety. You may start losing clients if something complex is introduced.
What else should be done? We can use a standard captcha, the calculation of hashes to load the client’s resources and of course new reCAPTCHA from Google. The only point that we agreed on was that we couldn’t block users by IP. There is IPv4 deficit and a lack of popularity for IPv6. As a result, a lot of users can use the same address. I guess a lot of people have noticed that almost all search engines block us when we use NAT in Belarus.
As far as other solutions are concerned, there is no good one either.
Closed services such as captcha.one do not reveal their algorithms and only those people who hack them can share some information about their productivity, so their use is quite doubtful.
Thus, we don’t have anything safer than reCAPTCHA.
This topic seemed very interesting to me as I studied it from other angle. I used to investigate to see how easy it was to avoid all those blockings. I can assure you that any program solves ordinary captcha better than a person. Moreover, you can often deal with it without neuronets. But if you can’t guess captcha there are many services which provide you with specially trained guys who will do this for a really small sum of money. IP blocking can be solved by public proxies or by connecting 3G modems and squid (only ordinary users will have problems with access).
You can find presentation slides here.
Another interesting report was presented by Pavel Zhytko.
Now the web can provide us with full applications while it all started with Google and its offline services to work with mail via browser.
Nowadays we can develop something similar ourselves. Service Workers is almost backend on frontend, additional layer which makes it possible to start a single thread which always stays in browser even when the tab is closed. This worker can process many difficult and time-consuming operations, avoiding such things like unstable or narrow internet channel. We can continue working with the closed tab and save everything locally to decrease the number of requests to the server.
I hope that I will have a project in the future to study this issue better.
· Evgeny Zharkov presented functional programming in web – “Elm: give a try”
· The experience of developing API from Artem Bay - "REST Level 3, HATEOAS, JSON API".
· The presentation by Ivan Lavriv where he shared his experience of using ES6 in production.
In conclusion, I want to say that I liked the atmosphere of the event, speakers and of course the ability to communicate with other developers offstage.
Well, now we all are waiting for one more exciting event RubyConfBY 2016. I’m eager to meet Koichi Sasada, a Ruby core committer from Japan.