Best movies from April, 2016

Hey again! So April was another month with 32 movies. Got to see them all, you know.

Star Wars: The Force Awakens


My favorite movie from last year by far. Yet another rewatch, yet another well spent 136 minutes.

Chewie, we’re home.

The Big Short


And I watched it again. Still loved it.

It ain’t what you don’t know that gets you into trouble. It’s what you know for sure that just ain’t so.

Purple Rain


Who doesn’t love Prince?

You have to purify yourself in the waters of Lake Minnetonka



You know, we should probably feel guilty, but she broke the cardinal rule. Don’t fuck with people that handle your food.

Best movies from March, 2016

Hi again. Maybe I’m three months late, but whatever. I’ve been busy. In march I saw 28 movies, with one double watch.

The Big Short


I mean, this movie is amazing. And scary. And very very good.

If we’re right, people lose homes. People lose jobs. People lose retirement savings, people lose pensions. You know what I hate about f*cking banking? It reduces people to numbers — ever 1% unemployment goes up, 40,000 people die, did you know that?

The Fifth Element


I don’t know love. I was built to protect, not to love.

Raiders of the Lost Ark


A classic.

Snakes. Why’d it have to be snakes?

21 Grams


How many lives do we live? How many times do we die? They say we all lose 21 grams… at the exact moment of our death. Everyone. And how much fits into 21 grams? How much is lost? When do we lose 21 grams? How much goes with them? How much is gained? How much is gained? Twenty-one grams. The weight of a stack of five nickels. The weight of a hummingbird. A chocolate bar. How much did 21 grams weigh?

Best movies from February, 2016

February was a rather slow month, at least when compared to January. The total count is 32 movies, of which 3 films at the cinema.

2001: A Space Odyssey (1968)


Dave Bowman: Hello, HAL. Do you read me, HAL?
HAL: Affirmative, Dave. I read you.
Dave Bowman: Open the pod bay doors, HAL.
HAL: I’m sorry, Dave. I’m afraid I can’t do that.
Dave Bowman: What’s the problem?
HAL: I think you know what the problem is just as well as I do.

The Lobster (2015)


We dance alone. That’s why we only play electronic music.

Spotlight (2015)

maxresdefault (1)

Sometimes it’s easy to forget that we spend most of our time stumbling around the dark. Suddenly, a light gets turned on and there’s a fair share of blame to go around. I can’t speak to what happened before I arrived, but all of you have done some very good reporting here. Reporting that I believe is going to have an immediate and considerable impact on our readers. For me, this kind of story is why we do this.

Room (2015)

'Room' is a journey out of darkness, director says

I’ve been in the world 37 hours. I’ve seen pancakes, and a stairs, and birds, and windows, and hundreds of cars. And clouds, and police, and doctors, and grandma and grandpa. But Ma says they don’t live together in the hammock house anymore. Grandma lives there with her friend Leo now. And Grandpa lives far away. I’ve seen persons with different faces, and bigness, and smells, talking all together. The world’s like all TV planets on at the same time, so I don’t know which way to look and listen. There’s doors and… more doors. And behind all the doors, there’s another inside, and another outside. And things happen, happen, HAPPENING. It never stops. Plus, the world’s always changing brightness, and hotness. And there’s invisible germs floating everywhere. When I was small, I only knew small things. But now I’m five, I know EVERYTHING!

Chasing Amy (1997)


I love you. And not in a friendly way, although I think we’re great friends. And not in a misplaced affection, puppy-dog way, although I’m sure that’s what you’ll call it. And it’s not because you’re unattainable. I love you. Very simple, very truly. You’re the epitome of every attribute and quality I’ve ever looked for in another person. I know you think of me as just a friend and crossing that line is the furthest thing from an option you’d ever consider. But I can’t do this any longer. I can’t stand next to you without wanting to hold you. I can’t look into your eyes without feeling that longing you only read about in trashy romance novels. I can’t talk to you without wanting to express my love for everything you are. I know this will probably queer our friendship – no pun intended – but I had to say it, because I’ve never felt this before, and I like who I am because of it. And if bringing it to light means we can’t hang out anymore, then that hurts me. But I couldn’t allow another day to go by without getting it out there, regardless of the outcome, which by the look on your face is to be the inevitable shoot-down. And I’ll accept that But I know some part of you is hesitating for a moment, and if there is a moment of hesitation, that means you feel something too. All I ask is that you not suppress that – at least for ten minutes – and try to dwell in it before you dismiss it. There isn’t another soul on this fucking planet who’s ever made me the person I am when I’m with you, and I would risk this friendship for the chance to take it to the next plateau. Because it’s there between you and me. You can’t deny that. And even if we never speak again after tonight, please know that I’m forever changed because of you and what you’ve meant to me, which – while I do appreciate it – I’d never need a painting of birds bought at a diner to remind me of.

Grandma (2015)


I find that as I grow older, old shit just bubbles up.

I’m much better at writing than real-life interaction

But looking at how rarely I write, you can only imagine how bad I am face to face.

Why the international postal system sucks

I’m gonna rant for a while here, too. Many of you have already had to read through my tweets this past week, so sorry if you don’t find any value in this post.

I’ve ordered many, many t-shirts from United Pixelworkers (RIP) and Cotton Bureau in the past two years. So many, in fact, I have to wash them separately from all my other clothes. And, until this February, everything was absolutely smooth. The packages arrived on time and nothing was ever lost. Please note: Cotton Bureau is not to blame here. Their products and customer service are the best in the industry.

Okay, so: the average tee I order costs around $28 these days. I pay around $14 for shipping. Yes, half of the price of the shirt. This is too much already, and when things don’t work as expected, I have a right to get mad at someone. The shipping comes with international tracking as a standard. And it works… if the package goes to the right place.

My last order was shipped on Feb 3rd from the US. (It features a beautiful design called Bucket Of Bolts.) Two weeks later (Feb 17th), I had received nothing. Tracking had the movement of the package in the US, but after shipping out of the States… nothing. My local postal service did not have anything else on record, either. So I kind of panicked. I wrote to the kind folks at Cotton Bureau to see if maybe the package was sent back to them or if they have some extra info. They didn’t have the shirt nor did USPS tell them that something was wrong.

The next morning, I woke up earlier than usual. I was feeling kind of down because my shirt was missing, so I grabbed my phone and started googling to find out what I should do. Somebody definitely had to have had dealt with this kind of a problem before.

Before I knew it, I had started entering my tracking code to random national postal services’ websites. First were the neighbours: Russia, Finland, Sweden, Latvia. Nothing. Then, for some reason, I chose Australia. Aaaaand… I got a hit. Turns out that my package had been in Tallinn on 6th Feb, but neither Omniva or USPS had that scan on record. I guess at that point I was very much like “What the fuck is going on?”, so I continued my investigation.

I contacted Australian Post on Twitter to see what they thought of it. (They were still awake at that point). They confirmed that the package with that tracking number had arrived in Australia on Feb 16th. Oh well. Maybe they can confirm or deny if that is actually my package, and, if it is, send it back to me. But no! Their customer service told me that they don’t have any info on the sender or on the recipient.

This makes no sense at all to me.

So I called my local postal service again, and this time I got on the line with someone who actually wanted to help me. I explained my case carefully, gave her the tracking code, and she went to consult with somebody in charge of international packages. They called me back in 10 minutes and told me that in the international database Australia was marked as the recipient country, while the package was supposed to be shipped through Estonia. And, since Estonia was not the recipient country, they had no access to the sender/recipient info. (Logical conclusion – if Australia was the recipient country, Austalian Post should have this info. They told me they don’t.)

This info actually helped: it means that the error was made beforehand, probably somewhere in USPS. Nobody in my country was trying to steal stuff from me, and it relaxed me a bit.

I’m still a bit amazed about this whole story. And I’m lucky to have totally randomly found that extra info about Australia.

So there seems to be an international database for those tracking codes, but the postal services are not allowed to give the customer the full info (I was told this.). Why? Well, that is the question. If my package is tracked, I want to know absolutely everthing that happens to it. Every. Little. Thing.

If somebody who reads this wants to disrupt the international postal system with some amazing start-up, let me know. I’d be happy to help.

PS. I hope I will get my tee at some point.

I’m alive

Don’t worry. I’m still here. I’m just not a very stable blogger.

There’s not much to talk about, either. Maybe tomorrow.

(I tell it to myself every day.)

I feel young again

But I also feel like a lost cause.

I think I know what love feels like. How else can someone give you all the energy, willpower you need for living by just existing? And, at the same time, sucking out all the air in the room when they enter, making you feel breathless?

There’s a quote from Person of Interest I found a while back:

When you find that one person who connects you to the world, you become someone different. Someone better. When that person’s taken from you, what do you become then?

That’s how I felt about a year and a half ago.

I connect with people based on trust. If I trust them, I can tell them how I feel, and vice versa. When that trust disappears, it’s not very likely to reappear.

A year and a half ago. She broke my trust. She left. Since then, people have been asking me “Are you ever going to talk to her again?”. But it’s not that simple. I can talk, but without trust, there’s not much to say. “She wants to make amends,” they say. It’s not that simple. I once gave her everything, everything I felt or dreamed about. When she left, she broke me. I might still be broken.

I don’t forgive easily, especially people who have made me feel like total garbage.

“No way,” I respond, and we continue to talk about the weather.

A year and a half ago, when she left, I gave up on love. I truly believed she was the one. But no, life taught me a lesson. Since then, I haven’t felt anything like it. I didn’t think I could.

Wandering around the city, maybe I’d find the right person. Maybe not. Probably not.

A few months ago, I met someone. To this day, we haven’t really talked, I have no idea what kind of person she really is. But she seems like a nice girl. I probably like the idea of her more than I’d like herself, but whatever.

I like that feeling.

No, I’m not going to tell her how I feel. I probably don’t have the guts to even go and talk to her. That’s because I’m scared. Scared of rejection, of defeat, of feeling broken again.

I’m searching for true love, I genuinely believe that exists.

That’s why I’m a lost cause. And I don’t give a shit.

It’s nice to feel something. It makes me feel young. It makes me feel like there’s something to struggle for.

Until I find Her, I’m going to live my life just like I have the past year. I love what I do, and I hope I will find someone to share it with.

This whole post is probably bollocks. Whatever. I’m drunk.


I hadn’t had a migraine for about a year. But today was different.

This and last week, I have fallen behind on my work schedule. No idea why, maybe I’m just burned out and need to recharge. But falling behind makes the burn-out even worse. Stress piles up, and I can’t sleep very well.

So today I had my first migraine headache in a year. I did not like it, you know.

These episodes are never easy for me. First, my vision starts to flicker in my left eye. I can’t see very well with my right eye, so that makes it practically impossible to work, push pixels, find that typo.

An our later, usually, the headache crashes in. I would rather bang my head against a wall than feel that pain again. Sometimes that headache does not go away for a day.

But today was easier.

I had just gotten to the office. I managed my way through the morning and lunch, but after that I just couldn’t. So I crashed our lovely couch in the basement, slept for a few hours, and I was okay again. My head still hurt, but it was bearable.

No medication.

Also, I really want a dog.

I’ve been living a lie

No, really.

This morning I received my copy of Mike Monteiro’s new book, You’re My Favorite Client. So I skipped work (sorry!) and read it.

It is amazing.

The book was written for clients, but I as a developer got so much out of it. If I don’t start making better work from this moment forward, I’m just plain stupid.

I’d quote the book, but I would have to retype the entire book. It’s pure gold. Read a preview on A List Apart, and then buy it.

Grunt development workflow

Ugh, life.

Trying to modernize my development workflow. I sometimes develop my themes in parallel to front-end work, just to make the dev process faster.

Grunt is awesome for that. It compiles my Sass, JS and SVG straight to my theme folder, so no more manual concatenating JS or minifying SVG. Using Grunt also makes it simpler to hand a project over to another developer. They have to run npm install and everything just works.

Please note that I’m not using a local server currently, as I am still manually uploading edited theme files via FTP to the dev server.

So, here we go. My folder structure looks like this:

    /* All raw sass files */
    /* All raw js files */
    /* All raw svg files */
        /* All compiled grunt output files */
    /* All raw theme files */

I could probably toss all the raw css, js and svg folders to an /assets/ folder, but right now it makes sense to me not to do that.

I normally have extra assets that are not touched by Grunt, like fonts, in a subfolder in /inc/.

Let’s go through my Gruntfile.js step by step.

sass: {
    dist: {
        options: {
            style: 'compressed'
        files: {
            'css/global-unprefixed.css': 'css/global.scss'
autoprefixer: {
    files: {
        src: 'css/global-unprefixed.css',
        dest: 'theme/inc/global.css'

First off is my CSS logic. My SCSS usually lives as partials, these are @imported to my global.scss file. After compiling Sass, Autoprefixer takes over. I have no options set here, since browser support varies greatly per project.

Side note: every time one of my coworkers messes with some experimental css features or prefixing properties in general and they still have issues with getting stuff working, my first question is: “Are you using Autoprefixer?”

concat: {
    files: {
        src: ['js/jquery.min.js', 'js/*.js', 'js/scripts.js'],
        dest: 'theme/inc/global.js',
uglify: {
    files: {
        src: 'theme/inc/global.js',
        dest: 'theme/inc/global.min.js'

Next up is my JS logic. Most of the project we take on require quite a bit of jQuery use, so that’s included by default. I’m debating myself whether to use the jQuery file that comes with WordPress or control it myself and include it in my global.js. Right now I tend to use my own, so there’s that.

So: my concat task takes all the files in my /js/ folder and concatenates them to my theme folder. It makes sure that jQuery is first and that my scripts.js is last in the concatenated file, with everything else (usually various jQuery plugins) in between.

svgmin: {
    options: {
        plugins: [
        { removeViewBox: false },
        { removeUselessStrokeAndFill: true },
        { removeXMLProcInst:false }
    dist: {
        files: [{
            expand: true,
            cwd: 'svg/',
            src: ['*.svg'],
            dest: 'svg/min/',
svgstore: {
    options: {
        prefix : 'icon-',
        svg: {
            style: 'display:none;',
            viewBox: '0 0 32 32',
            version: '1.1',
            xmlns: '',
            'xmlns:xlink': ''
        cleanup: true
    default: {
        files: {
            'theme/inc/global.svg': ['svg/min/*.svg'],

Then there’s my SVG icon system compilation logic. I moved away from icon fonts a while back, and currently only support them on old projects. An SVG icon system is a lot better. Icon fonts suffered front cross-browser font rendering issues, but SVG works and looks the same everywhere. That means, IE9+.

I save my SVG files from Illustrator directly to my /svg/ folder. Then svgmin takes control. It removes unnnecessary attributes and fill colors, so I can control the fills through CSS. The minified SVG files are placed in /svg/min/. Then I build an SVG sprite with svgstore and put it in my theme folder, ready to use. There are some necessary attributes that the <svg> element in the sprite gets, in order to get <use> with external resource working.

Now I can use the icons in my templates like this:

    <use xlink:href="/inc/global.svg#icon-search">

The path is generated by a PHP function, but whatever. SVG icons are so simple to use.

watch: {
    options: {
        livereload: true,
    css: {
        files: 'css/*.scss',
        tasks: ['css'],
    js: {
        files: 'js/*.js',
        tasks: ['js'],
    svg: {
        files: 'svg/*.svg',
        tasks: ['svg'],

Then there’s my watch task configuration. Nothing mind-breaking here, either. The task watches my CSS, JS and SVG files and triggers some other tasks on changes.

grunt.registerTask('css', ['sass', 'autoprefixer']);
grunt.registerTask('js', ['concat', 'uglify']);
grunt.registerTask('svg', ['svgmin', 'svgstore']);
grunt.registerTask('build', ['css', 'js', 'svg']);
grunt.registerTask('default', ['build', 'watch']);

And all my Grunt tasks. I put watch in the default task because I more often than not need to watch for file changes. Less characters to type, you know.

I put the base project up on GitHub. Suggestions are welcome.