Unknown error.

My blog

Here are the latest blog posts I’ve written. My plan is to write entries more frequent in the future, but often actual hacking comes in the way.

Mojo::IOLoop likes running programs asynchronously


Want to be able to run programs and arbitrary Perl code asynchronously,while being able to read from STDOUT and STDERR, and also write toSTDIN? Try out Mojo::Run3!When working with Mojo::IOLoop, you might find yourself in a situationwhere you want to run another program, but you also don…

Write and test Perl command line tools with ease


Writing command line tools often involves a lot of boilerplate and theycan be hard to test. Getopt::Appis a module that helps you structure your command line applicationswithout getting in the way.I already have a competing module calledApplify on CPAN. This module aims to…

Browser testing is hard. Let’s go shopping


Tonight at the monthly Oslo.pmmeetup, I gave atalk about how to test your web application in a real browser. This blogentry is a collection of the steps I went through while running livedemos showcasing my moduleTest::Mojo::Role::Selenium.My module usesSelenium::Remote::Driver…

Rewriting Mojolicious::Plugin::AssetPack


Update: I suggest checking outMojolicious::Plugin::Webpackinstead.AssetPackis a Mojolicious plugin which helps youprocess CSS and JavaScript assets. It can convert other formats, such asSASS, Less, CoffeScript (and many more) into a format the browserunderstands. This makes the development process a lot smoother.

How I write web applications


This blog post is about the standard components I use when I develop anddeploy my web applications.When I make a web page or web application I useMojolicious. Mojolicious is this awesomerealtime web framework, which makes web development a walk in thepark. It…

Testing with a real database


Writing tests against a database is a struggle. Maybe the best way is tonot test against a database at all, but providing a mocked interfaceinstead. Even if this could be true in many cases, you still need towrite integration tests for your models against a real database.

Convos revamped!


Convos is a chat application that runs in yourbrowser. It allows you to be persistently connected to IRC servers,where you can leave the office and up the conversation on the buswithout being disconnected.Convos was born in June 2012. It has been developed to scratch an itch…

Reasons for choosing Mojolicious


This blog post is a response to tried to reply directly, but I got “access denied” for some reason, soI decided to write a blog post about it instead.The post on perlmonks was:Good day fellow monks,I am starting a new project, with a clean slate, this is a wonderful…

@swaggerapi and #Mojolicious – How to validate your input/output with a schema


This blog post is outdated. You might want to check out A RESTful APIwithOpenAPIinstead.Mojolicious is an awesome web framework whichallow you concentrate on the business logic, while the rest Just Works™.Swagger is “The World’s Most Popular Framework for…

The Lenovo Thinkpad x240 is awful, but…


The thinkpad has an awful touchpad. Or even worse: it’s a clickpad! Aclickpad is a touchpad without physical buttons. This means that itseems like you only have one big super-sensitive button in Linux. You doactually have two buttons, but they are at the bottom of the clickpad,…

How to deploy #Mojolicious apps on @DigitalOcean


Mojolicious is truly a modern web framework.It keeps up to date with the HTTP, HTML, WebSockets and JSONspecifications so you don’t have to worry about doing that right. It’s aframework where you implement the core business logic, while everythingelse Just Works ™.

Howto set up Convos on @digitalocean


From is the simplest way to use IRC. It is always online, andaccessible to your web browser, both on desktop and mobile. Run it onyour home server, or cloud service easily. It can be deployed toHeroku or Docker-based cloud services, or you can just run it as a…

Mojopaste – A #pastebin based on #Mojolicious


Today I released my 13thMojolicious based project toCPAN, but the 1st open source Mojolicious based application.It feels good.The application is apastebin. That is a web application which you can paste text to, hit the“Paste” button and it will save it and generate a unique URL which you…

Continuous deployment with #Mojolicious and @github


After hearing Curtis Poe giving the talk“Agile Companies Go P.O.P.‎” atthe YAPC I thought I should finally getthe word out about my extension toMojolicious, which allowcontinuous deployment using a github post-receive hook.So… Mojolicious has this marvelous web server called…

Howto deploy #Mojolicious to @dotcloud


After sending sometweetswith dotcloud I’ve figured out how to deployMojolicious todotcloud as a perl-worker.The way I previously deployed was using the standardperl service, with auWSGIfrontend. The really cool thing about a perl-worker is that the mojoweb application is running persistently allowing it to:…

Applify: Scripting without boilerplate


Applify is a module which helpsyou write scripts with less boilerplate code. The scripts written withApplify can also be tested easily.I started out using plain , but I thought it was clumsy tocombine with my OO code. Then I started using and and life was starting to get good …

A #Mojolicious lite app that use @Cloudinary


So earlier this week I’ve written about How to deliver your imagesthrough Cloudinary withPerl andCloudinary examples for applying effects to yourimages. Today I’m posting aMojolicious lite app which can upload images to your Cloudinary account,show them on a web page and allow the visitor to delete them.

Cloudinary examples for applying effects to your images


So yesterday Ibloggedabout the basic functionality about Cloudinary, but there are so muchmore than scaling images that you can do.examples from Cloudinary’s ownblog.Mojolicious::Plugin::Cloudinary,but you can also use theCloudinary module directly ifyou are not inside a mojo template.

How to deliver your images through Cloudinary with Perl


Cloudinary is a cloud-based service for imagemanagement & manipulation. From their aboutpage:Use Cloudinary to: * Manage all your assets and web resources in thecloud. * Allow any web application, large or small, to enjoy modern webdelivery platforms. * Completely remove the tedious tasks of locally…

My x200 used to say “beep”


I’ve been using my Thinkpadx200 for about a yearnow, and I’m pretty sure it started beeping some time this winter: Ashort “beep” occurred each time it came back from suspend or the powercord was plugged in. It has been pretty annoying, but it has not been…

Xperia X10 mini


So I’ve been using my X10 minifor ten days now, and it has been quite a bumpy ride:Last weekend I had to charge it about every six/eight hour. I have toadmit that I did use it a lot in the beginning, but i was still shockedto see how bad the batteryAfter I got back from my weekend I decided to change back to my …

Online DOCSIS config file editor


I’ve written an online DOCSIS config fileeditor which (of course) can beused to generate config files for equipment that follow the DOCSISspecification.The frontend is written usingCatalyst, and the “backend” useDOCSIS::ConfigFile,meaning the whole thing is powered by …



I’ve written a module I think is rather useful:CatalystX::Controller::Sugar.This module (will hopefully) make chained actions be your default whenwriting a controller inCatalyst. I rememberwhen I first started looking at Catalyst – I didn’t see the reason for… – great fun!


I must say I enjoy getting rt-tickets. “Why?”, you might ask. Well, It’sprobably the only way I can actually know that someone use, or has triedto use a module I’ve written. Thebad (if you can call it bad) thing about getting a ticket is that it’…

Line noise: parentheses


I’ve been discussing how bad perl code looks and I’m a bit surprised: Iconsider () more noisy than $, %, @ and friends, while the people Idiscuss this with, really likes parentheses. Consider this:Versus:I don’t understand how the first one is less noisy than the second (!).

Wow, Moose is cool!


I was introducing Moose (and perloo) to a java guy the other day, and he replied: “No, shit. Is thatpossible?”, “Now I understand the fuzz about multiple inheritance” and“Wow, Moose is cool!”.I must confess: It brings comfort to my heart to hear a…

Which name to pick?


I’m writing a new module,which is currently named “Net::DHCPd”. It’s not a good name imo, sinceNet::DHCPd sounds more like a module that actually is a dhcp server,which mine is not.This is what it can, or is supposed to support in the future:So what should it be called? I…

Multimedia updates (partially old news)


I’ve been enjoying xbox mediacenter on my xbox 1.x for several years nowand I’ve finally gotten the opportunity to install it on myhtpc as well. This is because thexbmc-team has ported it toWindows,Macand Linux.To my big surprise I was able to install the …

More perl modules


I’m working on some more perl-modules now:YAML::Object andPOE::Component::TFTPd.I’ve also fixed some issues with SNMP::Effective, and written a newimplementation,that uses Net::SNMP instead of SNMP.The YAML-module is a result of bad typing: I’m quite sick of doing…

Fixed overscan


I’ve been googling for quite som time now, and finally I found settingsthat works for my 720p DFP.I don’t think the specs are important, but I’ll list them anyway:ModeLine “720p”: This is the modeline that works for me. I’ve commented out the other…

2007 09 01 quelea cable modems and cmts


This project is shut down.The idea was a system which could monitor and provision a variety of network equipment.The primary target was cable modems and CMTS, but to do that the project had to containmore functionalityThe cable modem and customer computer equipment need IP addresses. I decided to use…

YAPC::Europe::2007 Vienna


YAPC::Europe::2007 was a blast! Ican’t really put my finger on what was the best, because it was allgood. I really recommend every Perl-programmer out there to come to nextyears YAPC in Denmark/Copenhagen.I had a talk this year as well(Operator overloading, one of the magicks of Perl), but I wasn…

YAPC::Europe::2006 Birmingham


4th of September,2006{.blog_info_published}Hello peeps. It’s been a while now, but I finally got some spare time tocommunicate with the world again…I’ve been to the YAPC::Europe this week,and I must say it was quite fun — or at least the time I actually…



I’ve managed togetXgl to work! (Special thanks toDavidK-64 for A: telling me about XglIt’s really amazing, you just got tosee foryourself to get the real impression. Thecompiz manager features Wobblingwindows, transparancy, a new “switcher” and a whole lot more. I…



I’m done writing the code for SNMP::Effective now. It has show to bequite promising after some tests: 4000 hosts in 50 seconds is quitebetter than what I had with a previous module. I’m hoping to releaseSNMP::Effective on CPAN, later this year. But first I…