Talks

Ruby on Rails Extreme Crash Course

A talk I have given in December 2007 to convert 9elements to Ruby on Rails. Intended to present the basics of Ruby and Rails in about 3 hours.

DownloadBlogpost

Git

An introductory talk on Git given at Barcamp Ruhr 2 in March 2009 (German only).

Download

Metaprogramming Ruby

Talk given at Railscamp Germany 3 in Münster in 2010 about the mechanics behind Ruby’s metaprogramming capabilities (German only).

DownloadBlogpost

Advanced Git

A talk about Gits data structures and graph-oriented nature, combined with practical tips for using rebase given at Barcamp Ruhr 4 in March 2011.

DownloadBlogpost

AngularJS Introduction

An introductory talk about AngularJS. A HTML5 presentation done in reveal.js and spiced up with my own little jsfiddle clone.

SourceBlogpost

Articles and Texts

Some longer articles I have written in places other than this website.

Getting started with Ruby on Rails

An article I wrote for Smashing Magazine in March 2009, outlining the basic ideas behind Ruby and Rails, intended to provide enough orientation for interested programmers to educate themselves. Pretty outdated by now, but still useful to get a rough overview.

BlogpostPart 1Part 2

A Thin Web Application Framework based on Server-side JavaScript

My CS diploma thesis, written in 2009. It describes an architecture for a web application framework based on proven principles of the web and provides a sample implementation in server-side JavaScript. I wrote it just as the ServerJS/CommonJS working group started. These guys have been steadily marching forward since and made tremendous progress, so the code is horribly outdated.

Download

Open Source

You can find all of my open source code at http://github.com/janv/.

REST in Place

REST in Place is an AJAX Inplace-Editor that talks to RESTful controllers. It requires absolutely no additional server-side code if your controller fulfills the following REST preconditions:

  • It uses the HTTP PUT method to update a record
  • It delivers an object in JSON form for requests with “Accept: application/json” headers

The editor works by PUTting the updated value to the server and GETting the updated record afterwards to display the updated value. That way any authentication methods or otherwise funky workflows in your controllers are used for the inplace-editors requests.

» Github repository

» Ruby Toolbox

» rubygems.org

Tumblr Pushstate Extension

As much as I love tumblr’s auto pagination, of of the big gripes I have with it is that after a while of scrolling it becomes absolutely deadly to mistakenly click on a link that makes the browser leave the page. Because all that content was loaded with Ajax, there’s no way of getting back to where you were except to repeat the scrolling orgy again.

My Extension fixes this by using the pushState-API to update the browser location with the current page while you scroll. When you leave the page, you can hit back and continue where you left instead of having to scroll there again.

» Announcement Post

Haskell-NXT

Haskell-Nxt is a library to control Lego Mindstorms NXT Bricks from Haskell. Since the nature of the communication with the Brick is stateful, the library consists almost entirely of IO monads.

Haskell-NXT was my first piece of Haskell software and probably has a lot of rough edges. I wrote it for a first attempt at finding a topic for my diploma thesis.

» Github repository

HAML-Coffee

HAML-Coffee is a HAML parser that understands coffeescript. It will generate a javascript file containing templates that can be rendered to HTML. Those templates can be used in a backbone.js application or anywhere else. It is heavily inspired by Tim Caswells haml-js.

We developed this at 9elements because we love HAML, we love CoffeeScript and we don’t want to have a media break in our toolchain. If you want to see it in action, feel free to take a look at the 9elements homepage.

» Github repository