Semira sings songs

Published at: 4.IX.2012 23:40 CEST

My pet store application is a music streaming website and has been so for over 15 years. Every 3 to 4 years I rebuild it using whatever tool is the sharpest in my shop at that time. I’ve build it using Perl, Java, Ruby and (the most recent incarnation) Clojure.

The feature set changed a lot over time; the early versions simply browsed directory structures, later versions extracted meta data from the audio files and, later on, used that to provide structure. Some versions had playlists, a news sections and even downloads. The latest version goes back to the basics; being able to search, browse and play music. But it does a bit more than that: it works on Android and iOS too.

So please welcome Semira to the world of Open Source Software!

source on github

I tried (Clojure on) OpenShift and I like it

Published at: 22.VI.2012 22:25 CEST
Categories: clojure, ec2, hosting, openshift

Yesterday I tried to deploy a Clojure web application on Redhat’s OpenShift and after some tries it runs! The rhc CLI tool is a bit quirky (gives a lot of warnings about usage of deprecated API) and the DIY repo comes with a demo application you need to get rid of first (merged an existing application into an orphan branch and pushed over the remote master branch with -f) but it does work as expected. It is not as smooth as heroku (yet) but, apart from the rough edges I feel it’s a platform to keep an eye on.

I especially like the openness of the inner workings. There is no magical “slug” compilation or “process” launching. When you create an application it sets up a git repository and something like a chroot environment for you on a shared Amazon EC2 instance and off you go. Your repository will have some script hooks to build, start and stop your server processes. It’s all very clear and without hocus pocus. Read through the architecture overview on the wiki for more information on how it works or dig into the source code of the platform on github for the fine details.

Thanks to the Phillip Meier for his blog post on getting a Clojure app running on Openshift and, ofcourse, Redhat for providing their PaaS as an opensource platform and letting developers test drive it for free. BTW, pricing information will be available “this summer”..

Oh, and for details on running a Clojure webapp on OpenShift look at this commit.

Gezocht: collega Ruby on Rails ontwikkelaar in Maarssen

Gepubliceerd op: 23.III.2012 09:50 CET
Categorieën: rails, ruby

Update: de vacature is inmiddels vervuld

Ja, het is weer seizoen! De vogels fluiten weer, er kan weer op terrasjes gezeten worden en de vacatures vliegen je om de oren. Ik heb er ook één: ik zoek een collega Ruby on Rails ontwikkelaar om me bij te staan in Maarssen. We werken hier aan een coaching platform en hebben veel meer ideeën dan handen om ze te implementeren.

Kom helpen en leer vanalles over oplosbare vezels, metabolische leeftijd en andere dingen die belangrijk blijken te zijn!

Lees voor meer informatie de vacature op de Lifestyle Interactive website.

Game of memory in clojurescript

Published at: 27.II.2012 17:10 CET
Categories: clojure, javascript

Waiting for ever and ever for a pre-ordered tablet I realized it would make a great platform for simple HTML/JavaScript games. So I wrote a very basic game of memory of my kids:

The code’s on github.

Bye bye Jobs, rest in peace mister Dennis Ritchie

Published at: 15.X.2011 14:12 CEST
Categories: english, rant
Comments: 1 piece

My first reaction to the news of Steve Jobs’ death was annoyance; here we go, a never ending stream of praise will hit the media “he changed the way we think about computers” and more nonsense like that. Then came the news of Dennis Ritchie’s death and nobody noticed. Hardly anybody I know even knows who he was, including people in the IT industry. Well, he is the guy who developed the C programming language, every time you touch something with software inside chances are astronomical there’s C code involved, and had great influence on UNIX, OSX is based on this work.

Everybody was still going on about how Steve gave them their pretty shiny laptop (in exchange for, on average, 2000 euros) and how happy it makes them everyday. Fact is: people like pretty shiny things and will more easily look passed their flaws. Our brains are wired to distrust ugly things and Steven Jobs turned that into gold. Now he’s being praised for his “contribution to the computing industry”.

He did make his contribution to the world, no doubt, but the scale is highly exaggerated in my opinion. Mister Ritchie on the other hand deserves much more credit. You, dear reader, are effected by his work right now, regardless of what brand of computer you’re using. That reminds me of a blog post by Linus Torvalds (google his name if you don’t know how he is), more than 90% of all your activity on the Internet touches his work and he was the nobody on the party and Warren Beatty is a star.

Rest in peace mister Dennis Ritchie.

EXIFR 1.1.1

Published at: 12.IX.2011 09:00 CEST
Categories: english, exifr, programming, ruby

I’ve added some convenience methods to access GPS because people really seem to want it. Is should be fully backward compatible with earlier versions;

EXIFR::JPEG.new('enkhuizen.jpg').gps.latitude  # => 52.7197888888889
EXIFR::JPEG.new('enkhuizen.jpg').gps.longitude # => 5.28397777777778

Enjoy!

NOS Tour de France live verslag op mobiel

Gepubliceerd op: 17.VII.2011 15:06 CEST
Categorieën: android, clojure, wielrennen

Omdat de dekking van mijn provider nogal slecht is, ik daarom te vaak geen radio 1 kan ontvangen op mijn telefoon en de NOS Tour de France live pagina mobiel onvriendelijk is, heb ik tijdelijk een kleine webapplicatie gelanceerd welke het live verslag van de NOS pagina serveert. Dit verslag wordt elke 15 seconden automatisch geupdate.

Zo, ik kan weer rustig in de trein zitten tijdens de etappe finales.

nos-tour-commentaar (broncode)

Update: De tour is alweer afgelopen en deze webapplicatie draait dus niet meer.

Partial content for ring

Published at: 9.III.2011 21:25 CET

When streaming audio or video or serving largish files over HTTP you’ll eventually want to provide seeking resp. continue download capabilities to your application. I’ve cooked up some ring middleware to respond to partial content requests and mangle your application responses accordingly. It works well with the commonly used ring.middleware.file wrapper but do read the fine print.

Et voilá: ring-partial-content