Jakub Arnold

# Yesod is FunMay 15, 2014

Disclaimer: This article is completely subjective. I’m just sharing the feelings I got from trying out different frameworks and how each made me feel as a beginner. This is by no means an objective comparison of the frameworks.

I’ve been trying many Haskell web frameworks over the past few weeks. I wrote one small app with Simple, almost wrote another one with Scotty. Then decided it’s time to take a look at the big guys, Happstack, Snap and Yesod.

First I tried Happstack, which felt kind of OK and very understandable, mostly because it doesn...

# Refactoring Tips: Don't Trust Your Unit TestsMay 7, 2014

Before you start making any changes, make sure you have an integration test covering the part of the application you’re changing. While unit tests might be useful on a small scale refactorings, they usually break if you change the layout of your code, even a little bit. This is mostly because a big portion of the unit tests will depend on the exact API of your classes, instead of their behavior.

Once you start changing multiple classes and how they interact it will become harder and harder to rely on the unit tests. When they break it basically...

# Duplication in Tests Is Sometimes GoodMay 4, 2014

Having powerful tools like RSpec gives us so much power, that what was once a nice suite of readable specs becomes a huge bunch of unreadable mess, just because someone tried to DRY it up.

When writing your production code, there’s a good reason to keep the code DRY. Most of the times having duplication in your code can be a smell. But just because something sometimes smells, it doesn’t mean you should try to fix it all the time. This becomes even more important when writing tests.

Let’s compare these two examples

specify :draft? do
build

# Light Table Plugin TutorialJan 13, 2014

I’ve been playing around with Light Table since the day its source code was released (even made a tiny Ruby plugin).

First of all, Light Table is based on the BOT architecture. Which means there are three core concepts: behaviors, objects and tags. If you have any experience with Node.js or event driven programming, you’ll have an easy time understanding the concepts.

Imagine you have a button which listens on a click event and displays a notice to the user when it’s clicked

Using jQuery that could be as simple as the following

<input class...

# Programmers Suck at EmpathyDec 10, 2013

Given the nature of our profession we have to continually keep learning and improving our skills in order to not fall behind the evolving curve of technology. But as we learn more and more we forget how it was like in the beginning.

Every time you try to understand a new concept it takes a while for your brain to accept it. It can be recursion, monads, NoSQL databases, single page applications, or whatever you pick and choose. But no matter what the problem is, you will always feel the same frustration in the beginning, the moment of How the...

# How to Teach Your Girlfriend ProgrammingSep 23, 2013

Ever since I was a little software developer not so many years ago, I’ve dreamed of having a girl who I could talk to about the things I like. I wanted to talk to her about what I do. Not in a sense of yeah I do computer stuff, but in a real and deep way. The kind of conversation you would have with a coworker. I wanted my girl to be the person I go to whenever I find something new that excites me, and I wanted her to understand it.

Back when I was still in school days, university to be specific, I used to talk about this with my friends. I...

# It Takes More Than 5 Minutes to Form an OpinionSep 22, 2013

As I’m getting older I’m starting to see more and more patterns in people’s behavior, including myself. One of those I realized recently is about the need to love/hate the new thing immediately when it comes out.

It’s been less than a week since iOS 7 came out, some people don’t even have it yet, but everyone has their own opinion. Why? Because it’s easy.

If you’re a designer, you’ll probably think those icons are so ugly, what are they thinking?!. I had the same reaction when I saw it for the first time as well … the feeling of they haven...