commit 33d50fde7bb9560fa7bb5d50bc1f0860e9bd19b3 Author: Jan-Erik Rediger Date: Thu Aug 25 12:20:25 2011 +0200 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ca35be0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +_site diff --git a/404.html b/404.html new file mode 100644 index 0000000..e0e8211 --- /dev/null +++ b/404.html @@ -0,0 +1,20 @@ + + + + + + fnordig.de + + + + +
+

404 - fnord not found

+

damn. we can't find what you are searching. move on.

+
+ + diff --git a/50x.html b/50x.html new file mode 100644 index 0000000..a1d5f9a --- /dev/null +++ b/50x.html @@ -0,0 +1,20 @@ + + + + + + fnordig.de + + + + +
+

something went wrong

+

this should never ever happen. but it did. so what now?

+
+ + diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..872b093 --- /dev/null +++ b/Rakefile @@ -0,0 +1,32 @@ +#!/usr/bin/env ruby +# encoding: utf-8 + +PRODUCTION = { + :url => "http://fnordig.de", + :dest => "/var/www/sites/fnordig.de.test", + :source => "/home/badboy/git/fnordig.de/_site" +} + +desc 'Generate page using jekyll' +task :generate do + sh "jekyll" +end + +desc 'Serve the page on http://localhost:4000' +task :serve do + sh "jekyll --serve --auto" +end + +namespace :deploy do + desc 'Deploy the page on the production machine (executed on production)' + task :production do + verbose(true) { + sh <<-EOF + git reset --hard HEAD && + git pull origin master && + rake generate + cp -ar #{PRODUCTION[:source]}/* #{PRODUCTION[:dest]} + EOF + } + end +end diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..05db1b6 --- /dev/null +++ b/_config.yml @@ -0,0 +1,5 @@ +pygments: true +paginate: 5 +permalink: pretty +markdown: rdiscount +exclude: Rakefile diff --git a/_includes/single_page.html b/_includes/single_page.html new file mode 100644 index 0000000..d69d7ad --- /dev/null +++ b/_includes/single_page.html @@ -0,0 +1,10 @@ +
+

+ {{post.title}} +

+ {% if post.date %} +

{{post.date | date_to_string}} (by Jan-Erik)

+ {% endif %} + + {{post.content}} +
diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..54a7f60 --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,35 @@ + + + + + fnordig.de + + + +
+ + + {{content}} + + +
+ + diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 0000000..3394409 --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,13 @@ +--- +layout: default +--- +
+

+ {{page.title}} +

+ {% if page.date %} +

{{page.date | date_to_string}} (by Jan-Erik)

+ {% endif %} + + {{content}} +
diff --git a/_posts/2011-01-15-blog-static.markdown b/_posts/2011-01-15-blog-static.markdown new file mode 100644 index 0000000..a7f3c56 --- /dev/null +++ b/_posts/2011-01-15-blog-static.markdown @@ -0,0 +1,13 @@ +--- +layout: post +title: blog? static! +date: 15.01.2011 15:54 +--- + +static blog with just one file ;) + +Fnord News Show @ c3: + +* [Fnord-Jahresrückblick 2010 (27c3)](http://events.ccc.de/congress/2010/Fahrplan/events/4070.en.html) +* [Fnord-Jahresrückblick 2009 (26c3)](http://events.ccc.de/congress/2009/Fahrplan/events/3613.en.html) +* [Fnord News Show (25c3)](http://events.ccc.de/congress/2008/Fahrplan/events/2812.en.html) diff --git a/_posts/2011-01-15-fnord.markdown b/_posts/2011-01-15-fnord.markdown new file mode 100644 index 0000000..2348466 --- /dev/null +++ b/_posts/2011-01-15-fnord.markdown @@ -0,0 +1,7 @@ +--- +layout: post +title: fnord? +date: 15.01.2011 01:34 +--- + +fnordig? WTF ist fnord? [Fnord](http://de.wikipedia.org/wiki/Fnord) diff --git a/_posts/2011-01-15-fnordig-is-up-and-running.markdown b/_posts/2011-01-15-fnordig-is-up-and-running.markdown new file mode 100644 index 0000000..24b28e8 --- /dev/null +++ b/_posts/2011-01-15-fnordig-is-up-and-running.markdown @@ -0,0 +1,7 @@ +--- +layout: post +title: fnordig is up and running +date: 15.01.2011 00:04 +--- + +fnordig is up and running! diff --git a/_posts/2011-01-20-error-pages.markdown b/_posts/2011-01-20-error-pages.markdown new file mode 100644 index 0000000..5fba25e --- /dev/null +++ b/_posts/2011-01-20-error-pages.markdown @@ -0,0 +1,8 @@ +--- +layout: post +title: error pages +--- + +I just added more "fnordig-like" error pages + +see them in action: [404](http://fnordig.de/404.html) & [50x](http://fnordig.de/50x.html) diff --git a/_posts/2011-01-22-poor-mans-vpn.markdown b/_posts/2011-01-22-poor-mans-vpn.markdown new file mode 100644 index 0000000..40fe4b4 --- /dev/null +++ b/_posts/2011-01-22-poor-mans-vpn.markdown @@ -0,0 +1,45 @@ +--- +layout: post +title: sshuttle - poor man's vpn +--- + + +> [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 + + $ ./sshuttle -r username@sshserver 0.0.0.0/0 -vv + +and everything is tunneled through the ssh connection. + +All you need is iptables, root access on the local machine and a python binary on server side. No root, no iptables, no extra program running on your server. + +Of course you may tunnel just some IPs. Just change the argument to whatever ip network you need. + + $ dig www.youtube.com + [ ... find youtube's ip ... ] + $ ./sshuttle -r username@sshserver 74.125.39.0/24 -vv + +and every request to Youtube gets tunneled. Great for "This video is not available in your country"-videos if you've got ssh access to a server with an US IP. + +I use it for exactly that case: tunneling Youtube requests to view videos. But sometimes, when I exit sshuttle it fails before removing the iptable rules. +As sshuttle is just some python code wrapped around the iptables cli, I figured out what I needed to remove: + + $ iptables -t nat -D OUTPUT -j sshuttle-12300 + $ iptables -t nat -D PREROUTING -j sshuttle-12300 + $ iptables -t nat -F sshuttle-12300 + $ iptables -t nat -X sshuttle-12300 + +Maybe you have to change the "12300" to something else, use the following command to figure this out: + + $ iptables -t nat -L + +(or just read the verbose output) + +For more info about how it works and so on read the [README](https://github.com/apenwarr/sshuttle/blob/master/README.md). + +Don't forget to read the help if you've got an unusual setup or other problems (some weird path to the python binary on the server, auto-updating hosts file needed, different subnets and excluded subnets, ...): + + $ ./sshuttle -h + +Works pretty good and it's secure, so use it! diff --git a/_posts/2011-01-22-static-blog-system-runs.markdown b/_posts/2011-01-22-static-blog-system-runs.markdown new file mode 100644 index 0000000..1d39abc --- /dev/null +++ b/_posts/2011-01-22-static-blog-system-runs.markdown @@ -0,0 +1,12 @@ +--- +layout: post +title: static blog system runs! +--- + +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. + +This way I can write a post wherever I have ssh access to my server (and as I've got a smartphone, that's nearly everywhere). + +So have fun! diff --git a/_posts/2011-01-23-static-blog-system-improved.markdown b/_posts/2011-01-23-static-blog-system-improved.markdown new file mode 100644 index 0000000..99e1dbd --- /dev/null +++ b/_posts/2011-01-23-static-blog-system-improved.markdown @@ -0,0 +1,30 @@ +--- +layout: post +title: static blog system improved +--- + +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. + +The whole runs on [node.js](https://github.com/ry/node) and uses some fancy modules: + +* [paperboy](https://github.com/felixge/node-paperboy) for static file delivery (the css file) +* [socket.io-node](https://github.com/LearnBoost/Socket.IO-node) as the websocket server +* [socket.io](https://github.com/LearnBoost/Socket.IO) injected into the html, so the website auto-reloads when informed through the server + +The whole combination is amazingly fast, the updated text nearly appears in realtime. + +You can find the script here: [watch.js](http://tmp.fnordig.de/watch.js). It's more like a quick hack and not fully tested. It may crash whenever it will, but for now it works for me :) + +The small app.js is just this: + +
socket = new io.Socket('localhost');
+socket.connect();
+socket.on('message', function(data){
+  data = JSON.parse(data);
+  if(data.reload)
+    window.location.reload();
+});
+ +So next thing: individual pages for posts, maybe templates. diff --git a/_posts/2011-01-26-ipv6-with-nodejs.markdown b/_posts/2011-01-26-ipv6-with-nodejs.markdown new file mode 100644 index 0000000..90e1290 --- /dev/null +++ b/_posts/2011-01-26-ipv6-with-nodejs.markdown @@ -0,0 +1,37 @@ +--- +layout: post +title: ipv6 with nodejs +--- + +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. + +But aside from that fact, my vserver running this blog now has IPv6 addresses (and can even get more). + +[v6.fnordig.de](http://v6.fnordig.de) is available via IPv6, but there's no service running yet. +I will make this blog accessible via IPv6 soon. + +As I really like [node.js](http://nodejs.org/) I wanted to know how it handles v6 addresses and found [this article on code.danyork.com](http://code.danyork.com/2011/01/20/testing-node-js-with-ipv6-first-step-does-it-work/). + +It's as easy as this: + + var http = require('http'); + var server = http.createServer(function (request, response) { + response.writeHead(200, {"Content-Type":"text/plain"}); + response.end ("Hello World!\n"); + console.log("Got a connection"); + }); + server.listen(80, "2a01:xxxx:xxxx:xxxx::2"); + console.log("Server running on localhost at port 80"); + +Just pass the IPv6 address as the host parameter to `server.listen`. +This listens on just one IP; it's possible to listen on all, similar to the `0.0.0.0` for IPv4: + + server.listen(80, "::0"); + +Other things worth to mention: + +* [World IPv6 Day](http://isoc.org/wp/worldipv6day/): major organisations (Google, Facebook, Yahoo, ...) will offer their content over IPv6 on 8 June, 2011 + +So get going and use IPv6! diff --git a/_posts/2011-08-25-blog-running-with-jekyll.markdown b/_posts/2011-08-25-blog-running-with-jekyll.markdown new file mode 100644 index 0000000..0cbae88 --- /dev/null +++ b/_posts/2011-08-25-blog-running-with-jekyll.markdown @@ -0,0 +1,20 @@ +--- +layout: post +title: Blog running on jekyll again +--- + +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). + +What's still missing is a good deployment process. I'm currently thinking about using [github][] for the repository and having my server informed by their post-receive hook. + +Ah, and of course some content. I will use this blog to document the things I do. May it be some weird configuration thing for my server or just some code I wrote or read the other day (and for that I need code highlighting here, I really would appreciate if I could use [CodeRay][] somehow) + +I'm not yet sure if and how I will implement an option to comment on this site. I'm currently thinking about wether it would be possible to fetch comments via twitter and if that would be enough. + +So as long as there is no direct comment integration here, feel free to contact me over at twitter: [@badboy_](https://twitter.com/badboy_). + +[jekyll]: https://github.com/mojombo/jekyll +[github]: https://github.com/ +[CodeRay]: https://github.com/rubychan/coderay diff --git a/about.markdown b/about.markdown new file mode 100644 index 0000000..1d816fd --- /dev/null +++ b/about.markdown @@ -0,0 +1,6 @@ +--- +layout: post +title: about +--- + +_coming soon_ diff --git a/feed.xml b/feed.xml new file mode 100644 index 0000000..c89b3d2 --- /dev/null +++ b/feed.xml @@ -0,0 +1,26 @@ +--- +layout: nil +--- + + + + fnordig.de + + + {{ site.time | date_to_xmlschema }} + http://fnordig.de/ + + Jan-Erik Rediger + janerik@fnordig.de + + + {% for post in site.posts %} + + {{ post.title }} + + {{ post.date | date_to_xmlschema }} + http://fnordig.de{{ post.url }} + {{ post.content | xml_escape }} + + {% endfor %} + diff --git a/fnord.css b/fnord.css new file mode 100644 index 0000000..f431ce5 --- /dev/null +++ b/fnord.css @@ -0,0 +1,64 @@ +body { + background-color: #eee; + color: #1a1a1a; + font-family: monospace; +} + +a { color: #06c; text-decoration: none; } +a:hover { text-decoration: underline; } +h1 a, .heading a { color: black; } +h1 a:hover { text-decoration: none; } +/*a:visited { color: green; }*/ +.post .heading:before { content: "// "; } + +.post h2 { margin: 0; } +.post p.date { margin: 0; font-style: italic; } +.post p.date:before { content: "/* "; } +.post p.date:after { content: " */"; } +.post p { + word-wrap: break-word; +} + +.footer { padding-top: 0px; } +.footer p { padding: 0; margin: 0;} + +blockquote { + margin-left: 10px; + padding-left: 10px; + border-left: 1px solid gray; +} +pre { + margin-left: 10px; + background-color: #ddd; + padding: 5px; + box-shadow: 0px 0px 2px #666; +} + +.post { + margin-bottom: 15px; + padding: 20px; + padding-top: 10px; + padding-bottom: 5px; + background-color: white; + box-shadow: 0px 0px 2px #666; +} + +.nav { + margin-bottom: 10px; +} +.nav h1, .nav ul, .nav li { + display: inline; +} +.nav ul { +} + +.content { + width: 986px; + margin: 0 auto; +} + +.paginator { + margin-bottom: 10px; + text-align: center; +} + diff --git a/impress.markdown b/impress.markdown new file mode 100644 index 0000000..6ad96bb --- /dev/null +++ b/impress.markdown @@ -0,0 +1,25 @@ +--- +layout: post +title: impress +--- + +Jan-Erik Rediger
+Schäferstr. 27
+D-59174 Kamen
+impress {ät} fnordig {dot} de + +## Zusatzbestimmungen / Extra + +Einer kommerziellen Nutzung (auch unangeforderte Werbung etc.) der Anschrift / Mail-Adresse widerspreche ich hiermit ausdrücklich. + +I disagree with any commercial use (that includes any advertisement) of my adress information. + +## Urheberrechtshinweis / Copyright + +Alle Inhalte dieses Internetangebotes, insbesondere Texte, Fotografien und Grafiken, sind urheberrechtlich geschützt (Copyright). +Das Urheberrecht liegt, soweit nicht ausdrücklich anders gekennzeichnet, bei mir, Jan-Erik Rediger. +Bitte fragen Sie mich, falls Sie die Inhalte dieses Internetangebotes verwenden möchten. + +All contents of this website, especially texts, pictures and images are under a copyright. +The copyright is, if not stated otherwise, mine, Jan-Erik Rediger. +If you want to use any of this, please contact me first. diff --git a/index.html b/index.html new file mode 100644 index 0000000..18e63d2 --- /dev/null +++ b/index.html @@ -0,0 +1,26 @@ +--- +layout: default +title: fnordig.de +--- + +{% for post in paginator.posts %} + {% include single_page.html %} +{% endfor %} + +
+ {% if paginator.previous_page %} + {% if paginator.previous_page == 1 %} + + {% else %} + + {% endif %} + {% endif %} + + {% if paginator.previous_page && paginator.next_page %} + | + {% endif %} + + {% if paginator.next_page %} + + {% endif %} +