Architecture Heuristic YNIA: Participants
A while ago, I have introduced YNIA, which is a set of patterns I set up before really need them. It's not uncommon, when producing software to have t… ...more
A while ago, I have introduced YNIA, which is a set of patterns I set up before really need them. It's not uncommon, when producing software to have t… ...more
Following last year participation I have contributed to Hacktoberfest. Here are my contributions: password: datatypes and functions for easily workin… ...more
Previously we have studied a custom Monad and how to refactor it to make it easier to work with. For reminder, it was this one: class Monad m => My… ...more
I am currently migrating some hand-crafted Monad looking like this: class Monad m => MyAppMonad m where getSmtpConfig :: m SmtpConfig getS3Conf… ...more
Two months ago, I have set up authentication through client certificates. For reference, I have used this configuration: let openssl = https://r… ...more
There is a famous acronym I use over and over again when it comes to design decision: YAGNI. It's a constant reminder to keep things as simple as poss… ...more
Few days ago I was mob programming with my teammates, we had to write some tests for an Event Sourcing Projection which use legacy events to produce n… ...more
While I was working on Bloodhound, I have encountered IndexName, defined as: newtype IndexName = IndexName Text deriving (Eq, Show, Generic, ToJSO… ...more
Nearly three months ago I wrote a log about reducing Docker size, mainly by relying on static builds. While perfectly relevant in this context, when I… ...more
Few days ago, one of my new LinkedIn connection, introduced himself/herself, her/his background and public (Github) contributions, and asked me if I c… ...more
In early 2013, I was in my penultimate year of my software engineering degree. At the time, we were split in groups of 6 people to work on various pro… ...more
One of my favorite features of Haskell are the (G)ADTs, we could for example define a (not really) useful one: data Expr = Val Int | Add Expr Expr… ...more
I have a simple morning routing starting with: Getting up Opening the shutters Making my bed Petting my cat (eventually, opening the door to let her … ...more
Few logs ago, I introduced dashboards I borrowed online. I wrote they were looking like that: services.grafana.provision.dashboards.settings.providers… ...more
Previously, we have set alerting through Grafana alerting, but, if you noticed, I did not expose my alerts more than: services.grafana.provision.alert… ...more
Previously, we have set few Dashboards, which is great for analysis, but not for reactivity. I'm not always on my monitoring tab, but I always have an… ...more
Even though I'm not a huge fan of Web/GUI, setting up dashboards can help discoverability and debugging (especially if your alerts where not properly … ...more
As you might have guest in my previous log, I'm obsessed with outages. There are two ways to detect and outage: Have patient users Have a monitoring … ...more
Since the introduction of the certificates, each script was ending with some old-fashioned (i.e. ssh/scp-based commands) as follows: TARGET_DIR=/etc/n… ...more
Previously, we spent huge amount of time to set up an intermediate CA. Our goal was to be able to deploy it on Barracuda, so it can automatically gene… ...more
When I have introduced server certificates I have used a simple Certificate Authority (CA). Which means that the trusted CA is also the one signing th… ...more
In previous log I have set up a server certificate, which is a way to secure (make it "impossible", well, difficult in fact, to read exchang… ...more
In previous log I have introduced my homelab infrastructure. One of the thing I'm the most bothered with, is the lack of ciphering between my desktop … ...more
My home network is composed of 4 machines: Looping Kind: a desktop computer, custom-built In service from: 2020/10 Usage frequency: Daily Usage: cod… ...more
In My previous log I mentioned my bad intuition regarding code design. Let's task a real-world example. I have written my log on Caddy after working w… ...more
I was pair programming a while ago, when, at some point, when have realized that the initial task was way under-estimated. So we decided to tackle it … ...more
Since the beginning of this website, I have a backlog of my next logs (which is becoming smaller and smaller). That's one of the reason Polysemy updat… ...more
A while ago I was working with a product-owner which was really, really keen on integrating SaaS solutions in our product as a way to bring value to e… ...more
I have just reached the 3-years-mark using Haskell in production, after 3 years as freelance Haskell teacher. First and foremost, I'd like to emphasiz… ...more
At some point in my previous position we had to set up live updates (i.e. getting changes without reloading the page) in our SPA. Instead of relying o… ...more
In my previous company we used to work with ElasticSearch, after some times I became the maintainer of Bloodhound. While I planned to increase type-sa… ...more
A while ago I was looking for something in base, when I landed in Foreign.Storable. Which made me realized that Haskell has pure C/C++ macros, not onl… ...more