- 
        7 ways to improve your next support rotation with event storageIn every software company, part of engineering responsibilities is to help the Support Team resolve customer issues and maintain the stability of the application by responding to errors and alerts. In this article, I want to briefly describe the benefits for engineers working on support issues of having an application... 
- 
        Always set explicit timeoutsOur next ticket is to implement another integration with 3rd party HTTP API. As it’s in life, the documentation is imprecise, provided examples are outdated, and nobody is responding to our e-mails. It’s not the first one though, so after some time we do have it ready. Either it is... 
- 
        Limit your automatic retriesRecently I’ve seen such code: def build_state(event) # ... rescue RubyEventStore::WrongExpectedEventVersion retry end As you can see, the build_state may raise an RubyEventStore::WrongExpectedVersion which, if raised, is always automatically retried. This error is raised if there are two concurrent writes to the same stream in RubyEventStore but only one of... 
- 
        Heuristics for choosing bounded context for an event handlerSome time ago I was implementing a feature. As part of this I was, of course, writing a bunch of event handlers. At some point, I’ve realized I didn’t put much thought when choosing the bounded context to which the event handlers should belong. It was mostly driven by intuition... 
- 
        Using streams to build read modelsBuilding read models sometimes pose a technical challenge, especially if given infrastructure doesn’t provide order guarantee and the model has to be eventually consistent. Read models are considered the easy part, so we would like to be able to implement them quickly and move to the more interesting tasks. One... 
- 
        Optimizing test suites when using Rails Event StoreUsing domain events in DDD make it easier to tackle complex workflows. If we are working in a monolith infrastructure, it may cause our event store to have thousands handlers and running all of them in test environment is short way for long test suites. However, there’s a trick which... 
- 
        Patterns for asynchronous read models in infrastructure without order guaranteeWhen we focus on the model in CQRS architecture, we put most effort into write model. Not only this is the place where the business operations are implemented and breakthroughs in understanding domain are happening – we also consider it the part of the implementation where we should put a... 
- 
        Removing magic with magicSome gems, like InheritedResources, help us by reducing the lines of code we have to write by providing definitions automatically. However, depending on how the gem is written, it can be done “magically”. In some cases, we want to remove such gems. By “magic” I obviously mean defining methods, or... 
- 
        Testing cookies in railsRecently at Arkency I was working on a task, on which it was very important to ensure that the right cookies are saved with the specific expiration time. Obiovusly I wanted to test this code to prevent regressions in the future. Controller tests Firstly I thought about controller tests, but... 
- 
        Recovering unbootable NixOS instance using Hetzner rescue modeSome time ago we had a small fuckup with one of our CI build machines. One of the devs was changing sizes of the file system partitions and he forgot to commit new NixOS configuration to the git repository where we synchronize it. After some time, I’ve uploaded NixOS config... 
- 
        Packaging ruby programs in NixOSRecently at Arkency we’re exploring how NixOS could fit our infrastructure. From a few weeks we’ve switched most of our projects CI systems from CircleCI to Buildkite. Buildkite offers unique offer in which it is us who provide infrastructure and containers to test our applications so we’ve decided to setup... 
- 
        Circle CI configuration with yesod (haskell) backend and javascript frontendFor “Daj się poznać” contest I’ve decided to make a tool which is close to pinboard and pinterest, but with features I was missing. When I’ve chosen frameworks which I’ll gonna use, and both of them came with some default tests, I’ve decided to setup continuous integration using CircleCI. This... 
- 
        Vagrant: An unexpected error occurred while loading the vagrant-login plugin. Please contact support with the following error code: '7'.TL;DR If you’ve encountered this error in Vagrant, reinstall all your plugins. Today after updating my Arch Linux (which I wasn’t doing for a long time) I had a problem with vagrant. After trying to vagrant up my machine I got following output: An unexpected error occurred while loading the... 
- 
        Loading all data when starting flux SPARecently we’ve been working on an application which is a typical SPA which uses the Flux approach. After some time we had a problem that besides our frontend being SPA, each time we clicked on link leading to some “page”, we’re loading data again, even if this data was loaded... 
- 
        Change terminal colorscheme depending on hour of a dayOne of my colleagues some time ago stated a problem - can we automatically change colorscheme of the terminal based on whether it’s day or night? It should solve a problem that we don’t like to look at white background in the middle of the night or dark background when... 
- 
        Introducing Read Models in your legacy applicationRecently on our blog you could read many posts about Event Sourcing. There’re a lot of new concepts around it - event, event handlers, read models… In his recent blogpost Tomek said that you can introduct these concepts into your app gradually. Now I’ll show you how to start using... 
- 
        Tracking down unused templatesFew days ago, my colleague raised #sci-fi idea. Maybe we could somehow track templates rendered in application to track down which ones aren’t used? Maybe we could have metrics how often they’re used? Metrics? That sounds like gathering data using Chillout.io. We have already installed Chillout gem in other project... 
- 
        Decimals, rails, and "," as a decimal separatorThis will be completely technical post. I want just to leave somewhere a solution for a problem which I had to solve some time ago. I hope that there is some gem to do that. But the only one I found, which could fit my needs, is Delocalize, but it... 
- 
        (PL) Postgres - konfiguracja na linuksieProblem Jeśli chcesz skonfigurować pod swój użytek postgresql, ale występuje u Ciebie błąd: FATAL: role "xxx" does not exist lub FATAL: password authentication failed for user "postgres" to przeczytaj dalej - jest wyjaśnienie, jak skonfigurować użytkownika postgres. Zakładam, że Twój system to linuks - rozwiązanie testowane na Ubuntu 12.04 i... 
- 
        (PL) Nowy laptopJuż od kilku miesięcy (konkretnie, od połowy maja), jestem posiadaczem nowego laptopa, Asus X53SV (i7-2670QM, 8GB RAM, Nvidia GT540M, SSD Corsair Force 4 64GB). Poprzedni aż prosił się o wymianę - HP Compaq 6720s (Core Duo, 2GB RAM, HDD 160GB). Porównując? Niebo a ziemia. Hałas, temperatura Laptop jest praktycznie bezgłośny.... 
- 
        (PL) Dwa spotkania NaZGULa za namiNazgul? Pomysł NaZGULa, czyli Nieformalnej Zamojskiej Grupy Użytkowników Linuksa pojawił się jeszcze w roku szkolnym, elwin wpadł na pomysł, żeby coś takiego zorganizować, kupił domeny, chwilę porozmawialiśmy i w gruncie rzeczy rozeszło się po kościach. A właściwie doszliśmy do tego, że najlepiej te spotkania zrobić na wakacjach, po maturze. Po... 
- 
        (PL) Koniec maturW końcu koniec matur. 3 lata nauki w liceum, przygotowań do tego ‘egzaminu dojrzałości’, a napisałem tak sobie. Ale w gruncie rzeczy, nie narzekam. Podstawowe matury były łatwe, co jest raczej oczywiste. Ustne tak samo, chociaż z angielskiego dostałem tylko 26 punktów, więc nie jestem zadowolony, ale 20 z polskiego... 
- 
        (PL) Hello world!Kolejny pierwszy z kolei post. Może tym razem się uda : ) Blog rusza na jekyllu, jeszcze nie do końca pięknie skonfigurowanym, ale póki co - działa!