1
Fork 0

fix: Upgrade to cobalt#346

This commit is contained in:
Ed Page 2018-01-01 12:04:05 -07:00 committed by Jan-Erik Rediger
parent 65fa698009
commit 044e24f4d7
100 changed files with 541 additions and 513 deletions

View file

@ -1,11 +0,0 @@
name: fnordig
source: ./
dest: _site
posts: _posts
drafts: _drafts
link: https://fnordig.de
description: fnordig
rss: feed.xml
ignore:
- ext/
- README.md

33
_cobalt.yml Normal file
View file

@ -0,0 +1,33 @@
source: "./"
destination: _site
include_drafts: false
default:
excerpt_separator: "\n\n"
is_draft: false
pages:
default: {}
posts:
title: ~
description: ~
dir: _posts
drafts_dir: _drafts
order: Desc
rss: feed.xml
jsonfeed: ~
default: {}
site:
title: fnordig
description: fnordig
base_url: "https://fnordig.de"
data: ~
template_extensions:
- md
- liquid
ignore:
- ext/
- README.md
syntax_highlight:
theme: "base16-ocean.dark"
assets:
sass:
style: Nested

View file

@ -1,5 +1,5 @@
<meta charset="utf-8" />
<title>{{title}}</title>
<title>{{ page.title }}</title>
<link rel="stylesheet" href="/writ.min.css">
<link rel="stylesheet" href="/style.css" type="text/css" media="all" />
<link rel="alternate" href="/feed.xml" type="application/rss+xml" title="RSS" />

10
_includes/_menu.liquid Normal file
View file

@ -0,0 +1,10 @@
<nav class="menu">
<a class="menu-item {% if page.data.route == "blog"%}current{%endif%}" href="/">fnordig</a>
<a class="menu-item {% if page.data.route == "posts"%}current{%endif%}" href="/posts/">posts</a>
<a class="menu-item {% if page.data.route == "about"%}current{%endif%}" href="/about/">about</a>
<a class="menu-item {% if page.data.route == "talks"%}current{%endif%}" href="/talks/">talks</a>
<a class="menu-item" href="/feed.xml">feed</a>
<a class="menu-item" href="https://twitter.com/badboy_/">@badboy_</a>
<a class="menu-item" href="https://github.com/badboy/">github</a>
<hr>
</nav>

View file

@ -1,10 +0,0 @@
<nav class="menu">
<a class="menu-item {%if route == "blog"%}current{%endif%}" href="/">fnordig</a>
<a class="menu-item {%if route == "posts"%}current{%endif%}" href="/posts/">posts</a>
<a class="menu-item {%if route == "about"%}current{%endif%}" href="/about/">about</a>
<a class="menu-item {%if route == "talks"%}current{%endif%}" href="/talks/">talks</a>
<a class="menu-item" href="/feed.xml">feed</a>
<a class="menu-item" href="https://twitter.com/badboy_/">@badboy_</a>
<a class="menu-item" href="https://github.com/badboy/">github</a>
<hr>
</nav>

View file

@ -1,16 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
{{ include "_layouts/_head.liquid" }}
{% include "_head.liquid" %}
</head>
<body>
{{ include "_layouts/_menu.liquid" }}
{% include "_menu.liquid" %}
<main>
{{content}}
{{ page.content }}
</main>
{{ include "_layouts/_footer.liquid" }}
{% include "_footer.liquid" %}
</body>
</html>

View file

@ -1,17 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
{{ include "_layouts/_head.liquid" }}
{% include "_head.liquid" %}
</head>
<body>
{{ include "_layouts/_menu.liquid" }}
{% include "_menu.liquid" %}
<main>
<article>
<h1>{{ title }}</h1>
<h1>{{ page.title }}</h1>
{% assign reading_wpm = 200 %}
{% assign word_count = content | split: " " | size %}
{% assign word_count = page.content | split: " " | size %}
{% assign reading_time = word_count | divided_by: 200 %}
{% case reading_time %}
{% when 0 %}
@ -22,12 +22,12 @@
{% assign phrase = " minutes." | prepend: reading_time %}
{% endcase %}
<time pubdate="pubdate">{{ date | date: "%b %d, %Y" }} - Reading time: {{ phrase }}</time><br />
<time pubdate="pubdate">{{ page.published_date | date: "%b %d, %Y" }} - Reading time: {{ phrase }}</time><br />
{{ content }}
{{ page.content }}
</article>
</main>
{{ include "_layouts/_footer.liquid" }}
{% include "_footer.liquid" %}
</body>
</html>

View file

@ -1,20 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
{{ include "_layouts/_head.liquid" }}
{% include "_head.liquid" %}
</head>
<body>
{{ include "_layouts/_menu.liquid" }}
{% include "_menu.liquid" %}
<main>
<article>
<h1>{{ title }}</h1>
<h1>{{ page.title }}</h1>
{{ content }}
{{ page.content }}
</article>
</main>
{{ include "_layouts/_footer.liquid" }}
{% include "_footer.liquid" %}
</body>
</html>

View file

@ -1,9 +1,9 @@
title: blog? static!
date: 15 Jan 2011 15:54:00 +0100
path: /:year/:month/:day/blog-static
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/blog-static"
title: "blog? static!"
published_date: "2011-01-15 15:54:00 +0100"
data:
route: blog
---
static blog with just one file ;)
Fnord News Show @ c3:

View file

@ -1,8 +1,8 @@
extends: post.liquid
title: fnord?
date: 15 Jan 2011 01:34:00 +0100
path: /:year/:month/:day/fnord
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/fnord"
title: "fnord?"
published_date: "2011-01-15 01:34:00 +0100"
layout: post.liquid
data:
route: blog
---
fnordig? WTF ist fnord? [Fnord](http://de.wikipedia.org/wiki/Fnord)

View file

@ -1,8 +1,8 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/fnordig-is-up-and-running"
title: fnordig is up and running
date: 15 Jan 2011 00:04:00 +0100
path: /:year/:month/:day/fnordig-is-up-and-running
route: blog
published_date: "2011-01-15 00:04:00 +0100"
layout: post.liquid
data:
route: blog
---
fnordig is up and running!

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/error-pages"
title: error pages
date: 20 Jan 2011 00:00:00 +0100
path: /:year/:month/:day/error-pages
route: blog
published_date: "2011-01-20 00:00:00 +0100"
layout: post.liquid
data:
route: blog
---
I just added more "fnordig-like" error pages
see them in action: [404](http://fnordig.de/404.html) & [50x](http://fnordig.de/50x.html)

View file

@ -1,11 +1,10 @@
extends: post.liquid
title: sshuttle - poor man's vpn
date: 22 Jan 2011 00:00:00 +0100
path: /:year/:month/:day/poor-mans-vpn
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/poor-mans-vpn"
title: "sshuttle - poor man's vpn"
published_date: "2011-01-22 00:00:00 +0100"
layout: post.liquid
data:
route: blog
---
> [sshuttle](https://github.com/apenwarr/sshuttle) is a transparent proxy server that works as a poor man's VPN. Forwards over ssh. Doesn't require admin access. Works with Linux and MacOS, now including 10.6
It's as simple as

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: static blog system runs!
date: 22 Jan 2011 00:00:00 +0100
path: /:year/:month/:day/static-blog-system-runs
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/static-blog-system-runs"
title: "static blog system runs!"
published_date: "2011-01-22 00:00:00 +0100"
layout: post.liquid
data:
route: blog
---
my small and simple blog system works!
It's just a short javascript file. I just cat the text through a ssh connection into this [script](http://tmp.fnordig.de/post.js). It parses the content using [markdown-js](https://github.com/evilstreak/markdown-js) and re-writes the index.html file.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/static-blog-system-improved"
title: static blog system improved
date: 23 Jan 2011 00:00:00 +0100
path: /:year/:month/:day/static-blog-system-improved
route: blog
published_date: "2011-01-23 00:00:00 +0100"
layout: post.liquid
data:
route: blog
---
My static blog system script now launches a small web server and auto-updates on a file change. This way you've got a live preview directly in your browser.
As the inital script was written in Javascript, I wrote the rest in Javascript, too.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/ipv6-with-nodejs"
title: IPv6 with NodeJS
date: 26 Jan 2011 00:00:00 +0100
path: /:year/:month/:day/ipv6-with-nodejs
route: blog
published_date: "2011-01-26 00:00:00 +0100"
layout: post.liquid
data:
route: blog
---
As there are just a few new ipv4 address left in the pool and even those will be [exhausted in under a week](http://inetcore.com/project/ipv4ec/index_en.html) (6 days left, checked right now) the switch to [IPv6](http://en.wikipedia.org/wiki/Ipv6) will be necessary soon.
My current ISP does not offer any real IPv6 connection and not even my router can handle IPv6 (yet) there's currently no (good & easy) way for me to use IPv6 from here.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/blog-running-with-jekyll"
title: Blog running on jekyll again
date: 25 Aug 2011 00:00:00 +0100
path: /:year/:month/:day/blog-running-with-jekyll
route: blog
published_date: "2011-08-25 00:00:00 +0100"
layout: post.liquid
data:
route: blog
---
I decided to setup a blog again. And again I'll use [jekyll][], a `blog-aware, static site generator in Ruby`.
I redesigned the page for better viewing (a layout for smartphones will follow).

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/compile-nginx"
title: Compile nginx
date: 02 Sep 2011 00:00:00 +0100
path: /:year/:month/:day/compile-nginx
route: blog
published_date: "2011-09-02 00:00:00 +0100"
layout: post.liquid
data:
route: blog
---
I'm using [nginx][] as my main webserver and proxy for all my other projects (let it be node.js or ruby things).
Now that [ipv6][] is more and more used, I decided to let this blog get served over ipv6 as well.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/kramdown-test"
title: now with code higlighting
date: 02 Sep 2011 00:00:00 +0100
path: /:year/:month/:day/kramdown-test
route: blog
published_date: "2011-09-02 00:00:00 +0100"
layout: post.liquid
data:
route: blog
---
I am a programmer and I like to write code and I like to talk about code. That's why this blog really needs some syntax highlighting for my favorite languages.
With [jekyll][] as my static site generator it is easy to enable it. Just get the [kramdown][] library for [markdown](http://daringfireball.net/projects/markdown/) parsing and [coderay][] for the highlighting. Then enable both in your configuration.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/running-on-ssl"
title: running on ssl
date: 08 Sep 2011 00:31:00 +0200
path: /:year/:month/:day/running-on-ssl
route: blog
published_date: "2011-09-08 00:31:00 +0200"
layout: post.liquid
data:
route: blog
---
Even though the [SSL][] and [CA][] system is totally broken right now, I finally got my blog as well as my [etherpad][] served over SSL:
* [https://fnordig.de][https]

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: running etherpad-lite on nginx
date: 27 Sep 2011 21:24:00 +0200
path: /:year/:month/:day/running-etherpad-lite-on-nginx
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/running-etherpad-lite-on-nginx"
title: "running etherpad-lite on nginx"
published_date: "2011-09-27 21:24:00 +0200"
layout: post.liquid
data:
route: blog
---
As you should already know if you read this blog, I am using [nginx][] as my main http server as well as a reverse proxy for my apps running on node.js or simple ruby.
I'm also running an [etherpad-lite][etherpad] server on [pad.fnordig.de](https://pad.fnordig.de/).

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/fast-and-simple-proxy-server"
title: fast and simple proxy server
date: 02 Oct 2011 01:27:00 +0200
path: /:year/:month/:day/fast-and-simple-proxy-server
route: blog
published_date: "2011-10-02 01:27:00 +0200"
layout: post.liquid
data:
route: blog
---
So you have this friend sitting somewhere else in the world and want to give him a simple proxy to access a geoip-protected site or something similar. But what tool to use?
When searching for a proxy I found [dante](http://www.inet.no/dante/), but found it just to hard to just configure in a few minutes.

View file

@ -1,8 +1,9 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/using-ipvwith-inetd"
title: using ipv6 with inetd
date: 18 Oct 2011 10:58:00 +0200
path: /:year/:month/:day/using-ipvwith-inetd
route: blog
published_date: "2011-10-18 10:58:00 +0200"
layout: post.liquid
data:
route: blog
---
I am the administrator of the [ctdo][] own jabber server over at `jabber.ctdo.de`.
It is currently running on the old but working [jabberd][] and also hosts a [bitlbee] server on several ports including ssl-protected ones.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/network-config-without-ifconfig"
title: network config without ifconfig
date: 25 Dec 2011 14:52:00 +0100
path: /:year/:month/:day/network-config-without-ifconfig
route: blog
published_date: "2011-12-25 14:52:00 +0100"
layout: post.liquid
data:
route: blog
---
[ifconfig](http://linux.die.net/man/8/ifconfig) is more or less deprecated and replaced by [ip](http://linux.die.net/man/8/ip), which has a different syntax.
I cannot remember its full syntax everytime I use it and lookup the syntax over at [tridex' post](http://tridex.net/2011-06-19/linux-netzwerke-ohne-ifconfig/).

View file

@ -1,8 +1,9 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/send-your-docs-to-your-kindle"
title: send your docs to your kindle
date: 25 Dec 2011 15:01:00 +0100
path: /:year/:month/:day/send-your-docs-to-your-kindle
route: blog
published_date: "2011-12-25 15:01:00 +0100"
layout: post.liquid
data:
route: blog
---
I got a new [Kindle 4](http://www.amazon.de/Kindle-eReader-Wi-Fi-Display-deutsches/dp/B0051QVF7A/ref=amb_link_162551127_2?pf_rd_m=A3JWKAKR8XB7XF&pf_rd_s=center-1&pf_rd_r=17K3DH24R9MPM5BFJJQ2&pf_rd_t=101&pf_rd_p=270263907&pf_rd_i=301128) for Christmas.

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: swap in double-linked lists
date: 07 May 2012 22:22:00 +0200
path: /:year/:month/:day/swap-in-double-linked-lists
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/swap-in-double-linked-lists"
title: "swap in double-linked lists"
published_date: "2012-05-07 22:22:00 +0200"
layout: post.liquid
data:
route: blog
---
Yesterday I had to implement [Selection Sort](http://en.wikipedia.org/wiki/Selection_sort)
for double-linked lists and I had some trouble finding the correct solution
when it comes to swapping two elements.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/my-instapaper-stats"
title: my instapaper stats
date: 08 May 2012 11:33:00 +0200
path: /:year/:month/:day/my-instapaper-stats
route: blog
published_date: "2012-05-08 11:33:00 +0200"
layout: post.liquid
data:
route: blog
---
I am an actively user of the great [Instapaper](http://www.instapaper.com/)
service. Instapaper is a great tool to save web articles for reading later.
Even since I got my [Kindle 4](http://www.amazon.de/dp/B0051QVF7A/ref=tb_surl_kindle)

View file

@ -1,9 +1,9 @@
extends: post.liquid
title: instapaper-stats is online
date: 12 May 2012 17:13:00 +0200
path: /:year/:month/:day/instapaper-stats-is-online
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/instapaper-stats-is-online"
title: "instapaper-stats is online"
published_date: "2012-05-12 17:13:00 +0200"
layout: post.liquid
data:
route: blog
---
I mentioned the script I'm using for my instapaper stats [here](http://fnordig.de/2012/05/08/my-instapaper-stats/).
And it's now online: [instapaper-stats](https://github.com/badboy/instapaper-stats)

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: Raspberry Pi - A guick guide to a successful start
date: 05 Jul 2012 00:27:00 +0200
path: /:year/:month/:day/raspberry-pia-guick-guide-to-a-successfull-start
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/raspberry-pia-guick-guide-to-a-successfull-start"
title: "Raspberry Pi - A guick guide to a successful start"
published_date: "2012-07-05 00:27:00 +0200"
layout: post.liquid
data:
route: blog
---
Today my [Raspberry Pi][pi] arrived and I quickly got it up and running.
Want to see some pictures?

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: Raspberry Pi - Day 2
date: 06 Jul 2012 13:20:00 +0200
path: /:year/:month/:day/raspberry-pi-day-two
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/raspberry-pi-day-two"
title: "Raspberry Pi - Day 2"
published_date: "2012-07-06 13:20:00 +0200"
layout: post.liquid
data:
route: blog
---
[Yesterday night](http://fnordig.de/2012/07/05/raspberry-pia-guick-guide-to-a-successfull-start/)
I blogged about my first experience with the Raspberry Pi (forgive me the horrible typo in the title).

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/getting-ipvworking-with-smartos-and-kvm"
title: Getting IPv6 working with SmartOS and KVM
date: 16 Sep 2012 01:13:00 +0200
path: /:year/:month/:day/getting-ipvworking-with-smartos-and-kvm
route: blog
published_date: "2012-09-16 01:13:00 +0200"
layout: post.liquid
data:
route: blog
---
Just about 2 weeks ago I started to play around with [SmartOS][].
SmartOS is a fairly recent hypervisor for virtualization, open-sourced by

View file

@ -1,8 +1,9 @@
extends: post.liquid
title: BadBill - a Billomat API client
date: 21 Sep 2012 12:58:00 +0200
path: /:year/:month/:day/badbilla-billomat-api-client
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/badbilla-billomat-api-client"
title: "BadBill - a Billomat API client"
published_date: "2012-09-21 12:58:00 +0200"
layout: post.liquid
data:
route: blog
---
I'm happy to announce the release of my Billomat API client:

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: Getting try.redis-db.com back online!
date: 13 Dec 2012 22:43:00 +0100
path: /:year/:month/:day/getting-try-redis-db-com-back-online
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/getting-try-redis-db-com-back-online"
title: "Getting try.redis-db.com back online!"
published_date: "2012-12-13 22:43:00 +0100"
layout: post.liquid
data:
route: blog
---
Hi there,
You've been super busy with Try Redis today, and that's awesome.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/fnord-news-show"
title: fnord news show 2012
date: 30 Dec 2012 14:20:00 +0100
path: /:year/:month/:day/fnord-news-show
route: blog
published_date: "2012-12-30 14:20:00 +0100"
layout: post.liquid
data:
route: blog
---
I'm at the [29c3][] right now and guess what happened here? Right, the [fnord news show][] happened.
<iframe width="853" height="480" src="https://www.youtube.com/embed/X9PlIg5ZWZE" frameborder="0" allowfullscreen></iframe>

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: 2.9-C/3 - N.O-T/MY-D/E.PA/R.T-ME-N/T.
date: 04 Jan 2013 23:09:00 +0100
path: /:year/:month/:day/29c3-or-my-first-congress
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/29c3-or-my-first-congress"
title: "2.9-C/3 - N.O-T/MY-D/E.PA/R.T-ME-N/T."
published_date: "2013-01-04 23:09:00 +0100"
layout: post.liquid
data:
route: blog
---
I was at the [29c3][wiki] <del>this</del> last year and it was great.
I don't want to write _yet another 29c3-was-great-post_, so here are just a few images I took.

View file

@ -1,8 +1,9 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/try-redis-io-is-online"
title: try.redis.io is online
date: 10 Jan 2013 21:02:00 +0100
path: /:year/:month/:day/try-redis-io-is-online
route: blog
published_date: "2013-01-10 21:02:00 +0100"
layout: post.liquid
data:
route: blog
---
Finally:

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/problems-after-disconnecting-luks-device"
title: Problems after disconnecting LUKS device
date: 14 Jan 2013 23:28:00 +0100
path: /:year/:month/:day/problems-after-disconnecting-luks-device
route: blog
published_date: "2013-01-14 23:28:00 +0100"
layout: post.liquid
data:
route: blog
---
Yesterday I got my 2TB backup disk. I formatted it and then used [LUKS][] to encrypt it and [LVM][] for the Volume Management.
After I copied some files to the new disk, I unmounted the disk, unplugged it and ...

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/irregular-backups-with-rsnapshotand-rsnapshot-ii"
title: irregular backups with rsnapshot (and rsnapshot_ii)
date: 22 Jan 2013 19:08:00 +0100
path: /:year/:month/:day/irregular-backups-with-rsnapshotand-rsnapshot-ii
route: blog
published_date: "2013-01-22 19:08:00 +0100"
layout: post.liquid
data:
route: blog
---
As stated in the last post I bought a big 2TB HDD for backups. My only
computer right now is a Laptop so regular backups are not possible (due to not
having the hdd with me all the time)

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/git-merge"
title: git merge 2013
date: 11 May 2013 18:20:00 +0200
path: /:year/:month/:day/git-merge
route: blog
published_date: "2013-05-11 18:20:00 +0200"
layout: post.liquid
data:
route: blog
---
Friday and Saturday I attended [gitmerge][homepage], a free Git user conference
in Berlin.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/iterate-the-keyspace-in-redis-scan"
title: "Iterate the keyspace in redis: SCAN"
date: 01 Nov 2013 18:40:00 +0100
path: /:year/:month/:day/iterate-the-keyspace-in-redis-scan
route: blog
published_date: "2013-11-01 18:40:00 +0100"
layout: post.liquid
data:
route: blog
---
A few days ago antirez finally [merged][pr] the SCAN algorithm written by
[Pieter Noordhuis](https://twitter.com/pnoordhuis). With it it's now possible
to iterate the whole keyspace (or specific values in a set/sorted set/hash)

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: Run server-side git hook when there are no updates
date: 02 Nov 2013 10:14:00 +0100
path: /:year/:month/:day/run-server-side-git-hook-when-there-are-no-updates
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/run-server-side-git-hook-when-there-are-no-updates"
title: "Run server-side git hook when there are no updates"
published_date: "2013-11-02 10:14:00 +0100"
layout: post.liquid
data:
route: blog
---
I make heavy use of of [hooks in git][git-hooks], especially post-receive, to
do different kind of things (deploying the blog, running some scripts, updating
some checked out repos).

View file

@ -1,8 +1,9 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/unicode-codepoints-in-ruby"
title: Unicode codepoints in ruby
date: 06 Nov 2013 12:04:00 +0100
path: /:year/:month/:day/unicode-codepoints-in-ruby
route: blog
published_date: "2013-11-06 12:04:00 +0100"
layout: post.liquid
data:
route: blog
---
Another post of the category "better write it down before you forget it".

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/redis-faq-or-what-you-learn-when-idling-in-redis"
title: "Redis FAQ or: what you learn when idling in #redis"
date: 10 Nov 2013 21:10:00 +0100
path: /:year/:month/:day/redis-faq-or-what-you-learn-when-idling-in-redis
route: blog
published_date: "2013-11-10 21:10:00 +0100"
layout: post.liquid
data:
route: blog
---
Sometime ago I created the [redis-faq][], a small list of common or not so
common questions coming up in the `#redis` channel on freenode.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/30c3"
title: 30C3
date: 01 Jan 2014 23:42:00 +0100
path: /:year/:month/:day/30c3
route: blog
published_date: "2014-01-01 23:42:00 +0100"
layout: post.liquid
data:
route: blog
---
At the end of last year I was once again in Hamburg, this year for the [30th Chaos Communication Congress](https://events.ccc.de/congress/2013/wiki/Main_Page).
And it was simply awesome. Great [talks](https://events.ccc.de/congress/2013/Fahrplan/), an amazing location and lots and lots of great people.

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: Fixing a Vagrant "hostonlyif" error
date: 20 Jan 2014 13:24:00 +0100
path: /:year/:month/:day/fixing-a-vagrant-hostonlyif-error
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/fixing-a-vagrant-hostonlyif-error"
title: "Fixing a Vagrant \"hostonlyif\" error"
published_date: "2014-01-20 13:24:00 +0100"
layout: post.liquid
data:
route: blog
---
------
**tl;dr:** Load the correct module: `sudo modprobe vboxnetadp`

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/multiple-slides-on-one-side-in-one-pdf"
title: Multiple slides on one side in one pdf
date: 19 Feb 2014 18:33:00 +0100
path: /:year/:month/:day/multiple-slides-on-one-side-in-one-pdf
route: blog
published_date: "2014-02-19 18:33:00 +0100"
layout: post.liquid
data:
route: blog
---
Ever had multiple slide sets, e.g. from a lecture, and you needed an overview to print out?
With [LaTeX](http://en.wikipedia.org/wiki/LaTeX) that's easy:

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: Samsung Chromebook - a short review
date: 03 Mar 2014 15:18:00 +0100
path: /:year/:month/:day/samsung-chromebook-a-short-review
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/samsung-chromebook-a-short-review"
title: "Samsung Chromebook - a short review"
published_date: "2014-03-03 15:18:00 +0100"
layout: post.liquid
data:
route: blog
---
One week ago I purchased a Chromebook. To be exact I purchased the Samsung
Chromebook 303c12 (the one without UMTS). It arrived on Tuesday.

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: Don't set an empty root password on Chrome OS
date: 04 Mar 2014 16:41:00 +0100
path: /:year/:month/:day/don-t-set-an-empty-root-password-on-chrome-os
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/don-t-set-an-empty-root-password-on-chrome-os"
title: "Don't set an empty root password on Chrome OS"
published_date: "2014-03-04 16:41:00 +0100"
layout: post.liquid
data:
route: blog
---
So I got this [Chromebook][chromebook-post] in Developer Mode and wanted to set
a root password to atleast protect it a little.

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: Redis Cluster with pre-existing data
date: 11 Mar 2014 17:05:00 +0100
path: /:year/:month/:day/redis-cluster-with-pre-existing-data
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/redis-cluster-with-pre-existing-data"
title: "Redis Cluster with pre-existing data"
published_date: "2014-03-11 17:05:00 +0100"
layout: post.liquid
data:
route: blog
---
With Beta 2 of Redis Cluster <del>arriving soon</del> [released just now][cluster-beta2], I finally found some time to play around with it.
A few days back in the `#redis` IRC channel someone asked how to migrate data from one existing normal Redis instance into a Cluster of several machines.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/fixing-zfs-pool-error-in-zones-dump"
title: Fixing zfs pool error in zones/dump
date: 17 Mar 2014 14:08:00 +0100
path: /:year/:month/:day/fixing-zfs-pool-error-in-zones-dump
route: blog
published_date: "2014-03-17 14:08:00 +0100"
layout: post.liquid
data:
route: blog
---
At work we're using [SmartOS][], an Open Solaris clone featuring all kinds of cool stuff. One of the best things is the underlying file system: ZFS.
With ZFS it is easy to create, mirror, extend storage pools, it's also very easy to snapshot pools and backup them using `zfs send` and `zfs receive`.

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: OpenTechSchool - Learn new things
date: 01 Apr 2014 23:05:00 +0200
path: /:year/:month/:day/opentechschool-learn-new-things
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/opentechschool-learn-new-things"
title: "OpenTechSchool - Learn new things"
published_date: "2014-04-01 23:05:00 +0200"
layout: post.liquid
data:
route: blog
---
Last weekend (29./30.03.) I coached beginners some HTML & CSS. This is about my experience.
A while back a [friend of mine][snnd] asked me if I wanted to help at [OpenTechSchool Dortmund][ots-do], coaching programming or to hold a talk.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/changing-the-root-password-in-recent-smartos"
title: Changing the root password in recent SmartOS
date: 12 May 2014 22:02:00 +0200
path: /:year/:month/:day/changing-the-root-password-in-recent-smartos
route: blog
published_date: "2014-05-12 22:02:00 +0200"
layout: post.liquid
data:
route: blog
---
Back in 2012 Jonathan Perkin wrote a little bit about [SmartOS and the global zone][perkin],
why and what in SmartOS is mounted read-only.

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: key=value logs with nginx
date: 15 Apr 2014 18:24:00 +0200
path: /:year/:month/:day/key-value-logs-with-nginx
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/key-value-logs-with-nginx"
title: "key=value logs with nginx"
published_date: "2014-04-15 18:24:00 +0200"
layout: post.liquid
data:
route: blog
---
In [Six Ways to Make Your Production Logs More Useful][fun-with-logs] [@roidrage][] talked about how to make your logs much more useful.
One of the proposed solutions was to use a format that is more structured and thus easier to read: `key=value` logging.
This way it's easy to parse for a human eye, but a machine will have no problems either.

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: OpenTechSchool - Javascript for Beginners
date: 26 May 2014 15:15:00 +0200
path: /:year/:month/:day/opentechschooljavascript-for-beginners
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/opentechschooljavascript-for-beginners"
title: "OpenTechSchool - Javascript for Beginners"
published_date: "2014-05-26 15:15:00 +0200"
layout: post.liquid
data:
route: blog
---
2 month ago I coached at OpenTechSchool's [HTML & CSS for Absolute Beginners][htmlfab] workshop.
This weekend I once again helped at one of their workshops, this time [Javascript for Absolute Beginners][jsfab].

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/extending-redis-with-lua-packages"
title: Extending Redis with Lua packages
date: 27 Jul 2014 13:57:00 +0200
path: /:year/:month/:day/extending-redis-with-lua-packages
route: blog
published_date: "2014-07-27 13:57:00 +0200"
layout: post.liquid
data:
route: blog
---
**Warning**: If you patch your Redis as stated below, you won't get much support from the Community.
**Do not run this in production!** You have been warned.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/eurucamp-2014"
title: eurucamp 2014
date: 04 Aug 2014 14:15:00 +0200
path: /:year/:month/:day/eurucamp-2014
route: blog
published_date: "2014-08-04 14:15:00 +0200"
layout: post.liquid
data:
route: blog
---
<span style="float:right;margin-left:10px;width:250px;">
[![eurucamp chalk](//tmp.fnordig.de/eurucamp2014/th-2014-08-01_09.58.46.jpg)](//tmp.fnordig.de/eurucamp2014/2014-08-01_09.58.46.jpg)
</span>

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: eurucamp 2014 - Video & Photos
date: 09 Aug 2014 13:06:00 +0200
path: /:year/:month/:day/eurucamp-2014-video-and-photos
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/eurucamp-2014-video-and-photos"
title: "eurucamp 2014 - Video & Photos"
published_date: "2014-08-09 13:06:00 +0200"
layout: post.liquid
data:
route: blog
---
Great short video documentation of eurucamp 2014 (by [@polarblau](https://twitter.com/polarblau)):
<center>

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/first-experience-with-rust"
title: first experience with Rust
date: 12 Aug 2014 13:25:00 +0200
path: /:year/:month/:day/first-experience-with-rust
route: blog
published_date: "2014-08-12 13:25:00 +0200"
layout: post.liquid
data:
route: blog
---
------
**tl;dr:** Rust code for the SIMPLE language available [in a git-repo][git-repo].

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/jsfest-week-2014"
title: jsfest week 2014
date: 18 Sep 2014 01:39:00 +0200
path: /:year/:month/:day/jsfest-week-2014
route: blog
published_date: "2014-09-18 01:39:00 +0200"
layout: post.liquid
data:
route: blog
---
<span style="float:right;margin-left:10px;width:350px;">
[![rejectjs banner](//tmp.fnordig.de/jsfest2014/th-2014-09-11_08.52.55.jpg)](//tmp.fnordig.de/jsfest2014/2014-09-11_08.52.55.jpg)
</span>

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/a-rust-library-for-liblzf"
title: A Rust library for LibLZF
date: 15 Oct 2014 11:10:00 +0200
path: /:year/:month/:day/a-rust-library-for-liblzf
route: blog
published_date: "2014-10-15 11:10:00 +0200"
layout: post.liquid
data:
route: blog
---
In the last four months I did not produce much open-source code. I was busy writing my Bachelor Thesis.
But I was active in the community, I attended several conferences, I read a lot of stuff and I wrote down a lot more things to do.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/review-redis-applied-design-patterns"
title: "Review: Redis Applied Design Patterns"
date: 11 Nov 2014 00:41:00 +0100
path: /:year/:month/:day/review-redis-applied-design-patterns
route: blog
published_date: "2014-11-11 00:41:00 +0100"
layout: post.liquid
data:
route: blog
---
In the mid of October I was approached by Packt Publishing asking if
I would be willing to review a newly released eBook called *Redis Applied Design Patterns* by Arun Chinnachamy.
I agreed to review the 100 page eBook given that I'm free to criticize the book as I see fit.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/how-to-not-write-a-bachelor-thesis"
title: How to not write a Bachelor Thesis
date: 15 Nov 2014 03:18:00 +0100
path: /:year/:month/:day/how-to-not-write-a-bachelor-thesis
route: blog
published_date: "2014-11-15 03:18:00 +0100"
layout: post.liquid
data:
route: blog
---
<span style="float:right;margin-left:10px;width:350px;">
[![Iteration 1](//tmp.fnordig.de/ba/th-2014-10-11_15.58.09.jpg)](//tmp.fnordig.de/ba/2014-10-11_15.58.09.jpg)
</span>

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/a-story-of-hacking-or-rust-on-the-psp"
title: "The story of my childhood or: Rust on the PSP"
date: 03 Dec 2014 20:03:00 +0100
path: /:year/:month/:day/a-story-of-hacking-or-rust-on-the-psp
route: blog
published_date: "2014-12-03 20:03:00 +0100"
layout: post.liquid
data:
route: blog
---
------
Don't care for all the stuff of my childhood? [↓ Head down](#more-rust) to see the Rust part

View file

@ -1,8 +1,9 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/2014-in-many-words"
title: 2014 in many words
date: 29 Dec 2014 15:00:00 +0100
path: /:year/:month/:day/2014-in-many-words
route: blog
published_date: "2014-12-29 15:00:00 +0100"
layout: post.liquid
data:
route: blog
---
### My year in numbers

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: rdb-rs - fast and efficient RDB parsing utility
date: 15 Jan 2015 23:50:00 +0100
path: /:year/:month/:day/rdb-rs-fast-and-efficient-rdb-parsing-utility
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/rdb-rs-fast-and-efficient-rdb-parsing-utility"
title: "rdb-rs - fast and efficient RDB parsing utility"
published_date: "2015-01-15 23:50:00 +0100"
layout: post.liquid
data:
route: blog
---
Ever since I started looking into [Rust][] I knew I needed a bigger project for which I could use it.
I released a [few][lzf] [small][crc] [libraries][redlock], all based on Redis code/tools, so I figured:
Why not a bigger project focused on Redis as well?

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/hiredis-is-up-to-date"
title: hiredis is up to date
date: 09 Feb 2015 20:20:00 +0100
path: /:year/:month/:day/hiredis-is-up-to-date
route: blog
published_date: "2015-02-09 20:20:00 +0100"
layout: post.liquid
data:
route: blog
---
Back in December 2014 antirez reached out to the community, to [find a new maintainer of hiredis](https://github.com/redis/hiredis/issues/283).
In a joined effort [Michael][], [Matt][] and me took on the effort and
just 2 weeks ago Matt released [Version 0.12.1](https://github.com/redis/hiredis/releases/tag/v0.12.1),

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/the-difference-of-rust-s-spawn-and-scoped"
title: "The difference of Rust's thread::spawn and thread::scoped"
date: 05 Mar 2015 14:41:00 +0100
path: /:year/:month/:day/the-difference-of-rust-s-spawn-and-scoped
route: blog
published_date: "2015-03-05 14:41:00 +0100"
layout: post.liquid
data:
route: blog
---
So yesterday I gave a Rust introduction talk at the local hackerspace, [CCCAC](http://ccc.ac).
The slides are already [online](https://fnordig.de/talks/2015/cccac/rust-intro/).
The talk went pretty well and I think I could convince a few people why the ideas in Rust are actually useful.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/u2f-demo-application"
title: U2F demo application
date: 06 Mar 2015 16:07:00 +0100
path: /:year/:month/:day/u2f-demo-application
route: blog
published_date: "2015-03-06 16:07:00 +0100"
layout: post.liquid
data:
route: blog
---
Two weeks ago I got my first Universal Second Factor Device.
It's an inexpensive small USB key: the [FIDO U2F Security Key][fido-key].
This key can be used as a 2nd Factor Authentication device.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/new-releases-of-hiredis-py-and-node"
title: "New releases of hiredis-py and hiredis-node"
date: 03 Apr 2015 23:05:00 +0200
path: /:year/:month/:day/new-releases-of-hiredis-py-and-node
route: blog
published_date: "2015-04-03 23:05:00 +0200"
layout: post.liquid
data:
route: blog
---
I just published [hiredis-py][] v0.2.0 to [PyPi][] and [hiredis-node][] v0.3.0 to [npm][].
Both of these do not include many new features compared to the last release, but it still took me hours and hours to get this out, and that's for one simple reason:

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/using-a-kindle-for-status-information"
title: Using a Kindle for status information
date: 14 May 2015 20:50:00 +0200
path: /:year/:month/:day/using-a-kindle-for-status-information
route: blog
published_date: "2015-05-14 20:50:00 +0200"
layout: post.liquid
data:
route: blog
---
Back in 2011 I got a Kindle 4 (the non-touch version) and for some time it was
the primary device for reading, be it ebooks, technical documentation or slides
and transcripts from university.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/redis-sentinel-and-redis-cluster"
title: "Redis Sentinel & Redis Cluster - what?"
date: 01 Jun 2015 23:20:00 +0200
path: /:year/:month/:day/redis-sentinel-and-redis-cluster
route: blog
published_date: "2015-06-01 23:20:00 +0200"
layout: post.liquid
data:
route: blog
---
In the last week there were several questions regarding Redis Sentinel and Redis Cluster, if one or the other will go away or if they need to be used in combination.
This post tries to give a _short_ and _precise_ info about both and what they are used for.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/omnomnom-parsing-iso8601-dates-using-nom"
title: "omnomnom - Parsing ISO8601 dates using nom"
date: 16 Jul 2015 11:00:00 +0200
path: /:year/:month/:day/omnomnom-parsing-iso8601-dates-using-nom
route: blog
published_date: "2015-07-16 11:00:00 +0200"
layout: post.liquid
data:
route: blog
---
There are thousands of ways to note down a date and time.
The international date format is standardized as [ISO8601][iso], though it still allows a widespread of different formats.

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: "Redis Dev Day London 2015"
date: 22 Oct 2015 15:05:00 +0200
path: /:year/:month/:day/redis-dev-day-london-2015
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/redis-dev-day-london-2015"
title: Redis Dev Day London 2015
published_date: "2015-10-22 15:05:00 +0200"
layout: post.liquid
data:
route: blog
---
Last Monday the Redis Dev Day took place in London, followed by a small Unconference on Tuesday.
The Redis Dev Day is a gathering of all people involved in the Redis development,
that means Redis creator [Salvatore][antirez] as well developers and engineers from several companies

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/2015-in-many-words"
title: 2015 in many words and some photos
date: 31 Dec 2015 20:50:00 +0100
path: /:year/:month/:day/2015-in-many-words
route: blog
published_date: "2015-12-31 20:50:00 +0100"
layout: post.liquid
data:
route: blog
---
Last year I summarized my year in a [long blog post](https://fnordig.de/2014/12/29/2014-in-many-words/),
and with 2015 being nearly over here comes this year's version.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/create-releases-using-hubcaps-a-rust-library"
title: Create GitHub releases with Rust using Hubcaps
date: 23 Feb 2016 20:32:00 +0100
path: /:year/:month/:day/create-releases-using-hubcaps-a-rust-library
route: blog
published_date: "2016-02-23 20:32:00 +0100"
layout: post.liquid
data:
route: blog
---
For one of my projects I need to access the GitHub API to create releases.
Luckily, through reading [This Week in Rust #119][twir], I discovered [Hubcaps][], a library for interfacing with GitHub.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/load-your-config-into-your-environment"
title: Load your config into your environment
date: 04 Mar 2016 12:30:00 +0100
path: /:year/:month/:day/load-your-config-into-your-environment
route: blog
published_date: "2016-03-04 12:30:00 +0100"
layout: post.liquid
data:
route: blog
---
It became quite popular to store certain configuration variables in your environment, to be later loaded by your aplication.
This way of [having all configuration][config] available is part of the [twelve-factor app definition][12factor].

View file

@ -1,9 +1,9 @@
title: Releasing Rust projects, the automatic way
date: 29 Mar 2016 20:47:00 +0200
path: /:year/:month/:day/releasing-rust-projects-the-automatic-way
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/releasing-rust-projects-the-automatic-way"
title: "Releasing Rust projects, the automatic way"
published_date: "2016-03-29 20:47:00 +0200"
data:
route: blog
---
One of the strength of the Rust ecosystem is its package manager [Cargo][] and the package system [crates.io][].
Pulling in some dependencies is as easy as adding it to your projects' `Cargo.toml` and running `cargo build`.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/quickcheck-does-your-code-work"
title: "Quick check: does your code work?"
date: 12 May 2016 23:00:00 +0200
path: /:year/:month/:day/quickcheck-does-your-code-work
route: blog
published_date: "2016-05-12 23:00:00 +0200"
layout: post.liquid
data:
route: blog
---
… because mine didn't. At least not correctly in all cases.
I'm talking about my Rust library [lzf-rs](https://crates.io/crates/lzf),
a port of the small compression library [LibLZF](http://software.schmorp.de/pkg/liblzf.html).

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/longboarding-vennbahn"
title: "Longboarding: Vennbahn"
date: 09 Jun 2016 16:20:00 +0200
path: /:year/:month/:day/longboarding-vennbahn
route: blog
published_date: "2016-06-09 16:20:00 +0200"
layout: post.liquid
data:
route: blog
---
Today, right after finishing my only lecture of the day, I rented a longboard at a local skate shop
and then took the bus out of the city.
I went out to Kornelimünster, a small district of Aachen, about 10 km outside of the city.

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: "Rust from the Back to the Front (Rust Sthlm)"
date: 31 Aug 2016 16:30:00 +0200
path: /:year/:month/:day/rust-from-the-back-to-the-front
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/rust-from-the-back-to-the-front"
title: Rust from the Back to the Front (Rust Sthlm)
published_date: "2016-08-31 16:30:00 +0200"
layout: post.liquid
data:
route: blog
---
<center>
[![Rust on the Web](//tmp.fnordig.de/rust-sthlm/th-2016-08-29_18.23.59.jpg)](//tmp.fnordig.de/rust-sthlm/2016-08-29_18.23.59.jpg)
</center>

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/signify-ed25519-signatures-for-your-files"
title: "Signify - Ed25519 signatures for your files (in Rust)"
date: 28 Sep 2016 13:16:00 +0200
path: /:year/:month/:day/signify-ed25519-signatures-for-your-files
route: blog
published_date: "2016-09-28 13:16:00 +0200"
layout: post.liquid
data:
route: blog
---
From time to time I try to write a piece of code or port some existing library or application just for fun.
So a while back in June I had some free time again and I came across [signify][].
I ported it to rust: [signify-rs][]

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/novemb-rs-code-sprint-weekend-2016-retrospective"
title: "novemb.rs Code Sprint Weekend 2016 - Retrospective"
date: 29 Nov 2016 11:55:00 +0100
path: /:year/:month/:day/novemb-rs-code-sprint-weekend-2016-retrospective
route: blog
published_date: "2016-11-29 11:55:00 +0100"
layout: post.liquid
data:
route: blog
---
*This post is a tiny bit late, but better late than never.*
So on 19th and 20th of November, just over a week ago, we had the very first [novemb.rs Code Sprint](http://novemb.rs/).

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/xen-a-backend-frontend-driver-example"
title: "Xen - a backend/frontend driver example"
date: 02 Dec 2016 10:10:00 +0100
path: /:year/:month/:day/xen-a-backend-frontend-driver-example
route: blog
published_date: "2016-12-02 10:10:00 +0100"
layout: post.liquid
data:
route: blog
---
Recently I began working on my master thesis. For this I have to get familiar with the [Xen hypervisor][xen] and its implementation of drivers.
As the documentation on its implementation is quite sparse I want to write down some of my findings, so others don't have to re-read and re-learn everything.
In this post I'll focus on how to get a minimal *driver* in a paravirtualized VM running. Following posts will then focus on how to do communication through event channels and shared memory

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/xen-split-driver-initial-communication"
title: "Xen - split driver, initial communication"
date: 20 Dec 2016 16:00:00 +0100
path: /:year/:month/:day/xen-split-driver-initial-communication
route: blog
published_date: "2016-12-20 16:00:00 +0100"
layout: post.liquid
data:
route: blog
---
In the [previous post](/2016/12/02/xen-a-backend-frontend-driver-example/) I explained how to initially setup a split driver
for Xen with the backend in *dom0* and the frontend in a *domU*.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/2016-in-many-words"
title: 2016 in many words and some photos
date: 31 Dec 2016 11:30:00 +0100
path: /:year/:month/:day/2016-in-many-words
route: blog
published_date: "2016-12-31 11:30:00 +0100"
layout: post.liquid
data:
route: blog
---
Last year I summarized my year in a [long blog post](/2015/12/31/2015-in-many-words/),
and I did the same [the year before as well](/2014/12/29/2014-in-many-words/).
So here comes the 2016 edition.

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: "Send ICMP Echo Replies using eBPF"
date: 04 Mar 2017 17:25:00 +0100
path: /:year/:month/:day/send-icmp-echo-replies-using-ebpf
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/send-icmp-echo-replies-using-ebpf"
title: Send ICMP Echo Replies using eBPF
published_date: "2017-03-04 17:25:00 +0100"
layout: post.liquid
data:
route: blog
---
For my master thesis I am working with eBPF, the [Extended Berkeley Packet Filter](https://www.kernel.org/doc/Documentation/networking/filter.txt).
By now it is used by several subsystems in the Linux kernel,
ranging from tracing and seccomp rules to network filtering.

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: "How to write a Master Thesis"
date: 09 Jul 2017 16:45:00 +0200
path: /:year/:month/:day/how-to-write-a-master-thesis
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/how-to-write-a-master-thesis"
title: How to write a Master Thesis
published_date: "2017-07-09 16:45:00 +0200"
layout: post.liquid
data:
route: blog
---
2 years and 7 months ago I wrote [How to not write a Bachelor Thesis][bathesis].
Back then I just finished my Bachelor Thesis.
I now finished my Master Thesis as well (with my final talk in less than 2 weeks).

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/new-design"
title: New Design
date: 09 Jul 2017 15:08:00 +0100
path: /:year/:month/:day/new-design
route: blog
published_date: "2017-07-09 15:08:00 +0100"
layout: post.liquid
data:
route: blog
---
I decided it is time for a new design for this site.
I went with a minimal design I adopted from [booyaa][] (which he adopted from [johann][]).
Instead of fixing my broken Jekyll setup, I switched to [cobalt][], a static site generator written in Rust.

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: "Vacation ahead"
date: 07 Sep 2017 18:16:25 +0200
path: /:year/:month/:day/vacation-ahead
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/vacation-ahead"
title: Vacation ahead
published_date: "2017-09-07 18:16:25 +0200"
layout: post.liquid
data:
route: blog
---
After finishing [my master thesis](https://fnordig.de/2017/07/09/how-to-write-a-master-thesis/index.html) back in July and a busy Summer working,
I will now spent the next weeks in South America.
That means I won't spend time on open source projects, answering emails or otherwise online (except occasional [tweets](http://twitter.com/badboy_/) and of course [lots of photos](https://www.instagram.com/janerikr)).

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/master-thesis-network-function-offloading-in-virtualized-environments"
title: "Master Thesis: Network Function Offloading in Virtualized Environments"
date: 08 Nov 2017 15:05:00 +0100
path: /:year/:month/:day/master-thesis-network-function-offloading-in-virtualized-environments
route: blog
published_date: "2017-11-08 15:05:00 +0100"
layout: post.liquid
data:
route: blog
---
From end of last year to July this year I wrote my master thesis titled "Network Function Offloading in Virtualized Environments".
I [blogged about the process before](/2017/07/09/how-to-write-a-master-thesis/index.html).
A couple of weeks ago I received my final grade and thus reached the academic degree of Master of Science, Computer Sciene.

View file

@ -1,10 +1,10 @@
extends: post.liquid
title: "GitHub Pages deployment made easy"
date: 17 Nov 2017 19:47:15 +0100
path: /:year/:month/:day/github-pages-deployment-made-easy
route: blog
permalink: "/{{ year }}/{{ month }}/{{ day }}/github-pages-deployment-made-easy"
title: GitHub Pages deployment made easy
published_date: "2017-11-17 19:47:15 +0100"
layout: post.liquid
data:
route: blog
---
Recently I tried to deploy a new [Cobalt][]-powered site from [Travis CI][travis], using the [then documented method][olddeploy].
It failed at random and all tries to debug it failed.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/hello-rust-hello-webassembly"
title: "Hello, Rust! Hello, WebAssembly!"
date: 18 Nov 2017 16:26:57 +0100
path: /:year/:month/:day/hello-rust-hello-webassembly
route: blog
published_date: "2017-11-18 16:26:57 +0100"
layout: post.liquid
data:
route: blog
---
[hellorust.com](https://www.hellorust.com/) is live!
This site will collect resources, guides, articles and links around Rust &amp; WebAssembly.

View file

@ -1,10 +1,10 @@
extends: post.liquid
permalink: "/{{ year }}/{{ month }}/{{ day }}/2017-in-many-words"
title: 2017 in many words and some photos
date: 31 Dec 2017 16:30:00 +0100
path: /:year/:month/:day/2017-in-many-words
route: blog
published_date: "2017-12-31 16:30:00 +0100"
layout: post.liquid
data:
route: blog
---
It has become a tradition for me to look at the year that's about to end.
I did so [last year](/2016/12/31/2016-in-many-words/),
[the year before](/2015/12/31/2015-in-many-words/)

View file

@ -1,9 +1,9 @@
extends: simple.liquid
permalink: /about
title: About me
route: about
path: /about
layout: simple.liquid
data:
route: about
---
26 years old.
Studied Computer Science at [RWTH Aachen](http://www.rwth-aachen.de/) and [UiS](http://www.uis.no/) in Stavanger, Norway.
Working at [rrbone](https://www.rrbone.net/de/).

View file

@ -1,9 +1,9 @@
extends: simple.liquid
permalink: /imprint
title: Imprint
route: about
path: /imprint
layout: simple.liquid
data:
route: about
---
Jan-Erik Rediger<br>
Schäferstraße 27<br>
D-59714 Kamen<br>

View file

@ -1,14 +1,14 @@
extends: default.liquid
title: fnordig.de
route: blog
layout: default.liquid
data:
route: blog
---
{% assign idx = 0 %}
{% for post in posts %}
{% for post in collections.posts.pages %}
{% if idx < 5 %}
<article class="blog-list">
<h3><a href="{{ post.path }}">{{ post.title }}</a></h3>
<time pubdate="pubdate">{{ post.date | date: "%b %d, %Y" }}</time><br />
<h3><a href="{{ post.permalink }}">{{ post.title }}</a></h3>
<time pubdate="pubdate">{{ post.published_date | date: "%b %d, %Y" }}</time><br />
<p>{{ post.content | strip_html | truncatewords: 25, '...' }}</p>
</article>
{% endif %}

View file

@ -1,7 +1,8 @@
extends: simple.liquid
permalink: /posts
title: Posts
route: posts
path: /posts
layout: simple.liquid
data:
route: posts
---
{% assign years = "2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011" | split: ", " %}
@ -10,10 +11,10 @@ path: /posts
<h3>{{year}}</h3>
<ul>
{% for post in posts %}
{% assign postyear = post.date | date: "%Y" %}
{% for post in collections.posts.pages %}
{% assign postyear = post.published_date | date: "%Y" %}
{% if postyear == year %}
<li>{{post.date | date: "%d %b"}}: <a href="/{{post.path}}">{{post.title}}</a></li>
<li>{{ post.published_date | date: "%d %b"}}: <a href="/{{post.permalink }}">{{post.title}}</a></li>
{% endif %}
{% endfor %}
</ul>

View file

@ -1,9 +1,9 @@
extends: simple.liquid
permalink: "/redis-faq"
title: "Redis FAQ or: what you learn when idling in #redis"
path: /redis-faq
route: about
layout: simple.liquid
data:
route: about
---
First: this here is the unofficial FAQ, only containing things that come up by users in the IRC channel `#redis` on Freenode. There's also a more [official FAQ](http://redis.io/topics/faq). This document is also available in a [gist](https://gist.github.com/badboy/5958039).
## X is weird in my instance. Can you help?

View file

@ -1,9 +1,9 @@
extends: simple.liquid
permalink: /talks
title: Talks
route: talks
path: /talks
layout: simple.liquid
data:
route: talks
---
I gave some talks & workshops in the past and I'd love to give some more in the future.
I will talk Rust, WebAssembly, Open Source Development & Open Source communities, and about any of the project I'm involved in.