Skip to content

Instantly share code, notes, and snippets.

Yrjö Kari-Koskinen ykarikos

  • Futurice
  • Helsinki
View GitHub Profile
ykarikos / gist:9ea231dda271fd4afef7d2bf317ca95c
Created Sep 26, 2018
Copying directories in Linux and MacOS
View gist:9ea231dda271fd4afef7d2bf317ca95c
ykk@peruna:/tmp/copytest$ uname
ykk@peruna:/tmp/copytest$ ls -lR
total 0
drwxr-xr-x 2 ykk ykk 40 Sep 26 09:19 bar/
drwxr-xr-x 2 ykk ykk 100 Sep 26 09:16 foo/
total 0
ykarikos /
Last active Mar 28, 2018
Create spinning and rotating gif with GraphicsMagick
mkdir spin
for angle in `seq 360 30 690`; do gm convert original.jpg -background "#FFFFFF" -rotate $angle -crop 512x512+0+0 spin/$angle.png; done
cd spin
gm convert *.png -loop 0 -delay 20 spinningfoobar.gif
ykarikos /
Created Jan 28, 2018
Rename video files with a ISO date prefix
#!/usr/bin/perl -w
# Rename video files with a ISO date prefix, e.g.
# rename from P12345.MOV to 2018-01-30.P12345.MOV
# Tested with MTS, 3GP and MOV files.
# (c) 2018 Yrjö Kari-Koskinen <>
# Licensed with the MIT License
use Image::ExifTool qw(:Public);
ykarikos / excercise.js
Created May 5, 2017
What does each logging statement print, why?
View excercise.js
// What does each logging statement print, why?
var x = 1;
if(1) {
var x = 2;
ykarikos /
Last active Mar 30, 2017
Denglisch words I hear while living and working in Germany

Denglisch words I hear while living and working in Germany

  • gefixed
  • gemerged
  • gerebased
  • gedownloaded
  • terminieren: either to terminate (to kill) or to agree on an appointment (Termin)
  • gerebranded
  • reviewen, "Ich hab' einige gereviewed"
  • beim merge
  • gecherry-picked
ykarikos /
Created Jan 6, 2017
Living in Germany

Living in Germany

Here's some remarks I've made while living in Munich, Germany (vs. in Finland). I made a similar list in 2004 in Austria.

Here we go.


  • It's very customary to not be able to pay with a credit card. One needs to carry always cash. Sometimes just the local debit cards are valid, like in Ikea o_O


ykarikos /
Last active Feb 18, 2018
Howto start using Letsencrypt with simp_le

Howto start using Letsencrypt with simp_le

What I had:

What I wanted:

  • A Letsencrypt certificate for Apache, Postfix and Dovecot
  • Simple tool for managing certificates that does need root privileges
  • Automatic renewal
ykarikos / map.clj
Created Jan 3, 2016
Accessing a map
View map.clj
user=> (def mymap {:foo 1 :bar {:subfirst 1.2 :subsecond "foo"}})
user=> (:foo mymap)
user=> (mymap :bar)
{:subfirst 1.2, :subsecond "foo"}
user=> (-> mymap :bar :subsecond)
ykarikos / gist:0d5cfa0d0ee467808810
Created Sep 17, 2015
Check that NS record match in all zone name servers
View gist:0d5cfa0d0ee467808810;; dig +short -t NS $DOMAIN @$MASTER |sort >/tmp/$MASTER; for h in `cat /tmp/$MASTER`; do echo - Querying $h:; dig +short -t NS $DOMAIN @$h |sort |diff /tmp/$MASTER -; done

Keybase proof

I hereby claim:

  • I am ykarikos on github.
  • I am ykk ( on keybase.
  • I have a public key whose fingerprint is 2E71 56C3 7760 E735 B175 E053 0E4E A201 3B3A BE42

To claim this, I am signing this object:

You can’t perform that action at this time.