Hashtables in javascript

I was looking into some performance problems with knockout yesterday and starting digging into the code. In particular I was wondering why it would take their mapping plugin several seconds to wrap an array of 500 objects. Profiling lead me to look deeper into the code, and the following code stroke me as very strange: Basically this is a hash implementation of only put and get operations using two arrays. I don’t think I need to tell you how bad the performance of this will be once you start adding lots of items :) ...

May 30, 2012

Time in a database

For some applications, the ability to be able to trace the different states during the lifetime of data can be very important. Especially when it comes to debugging. This is mostly relevant for data stored in a database, but could potentially also be interesting for in memory data structures. Luckily many databases today support this as change data capture. I would add to the article that the capturing the user as part of the change can be very effective. ...

March 27, 2012

Donation links

I really love the kickstarter concept, flattr and in general other great free projects, such as wikipedia and wikileaks. Then there are smaller projects such as The Project Hate MCMXCIX trying to fund the recording of their latest album. Or the interesting, but maybe a bit top low budget TV series Pioneer One. Or the excellent free android mod cyanogen. I donated to the recording of Obscura’s demo collection this month, what did you donate to?

November 18, 2011

mocomp released

I wanted/needed a web based frontend for mpmovie player so that I could play movies on my projector and build a quick little system in clojure to do it. Since there was quite a lot of code I could share from mucomp it was very easy to get running. I’ve been using it for about a month now and just thought I would share it.

December 22, 2010

A digital dictionary

One of the nice things about reading is that it enhances ones vocabulary, but only if one can learn the new words that one meets. I’ve always dreaded using a dictionary because one has to manually find the right page, and for them to contain all relevant words they need to be huge. When one is used to computers, this just seems terribly inefficient. Luckily now there are many online dictionaries. Sadly they don’t help very much when one is lying on the sofa or in bed and reading. This is where I think the kindle really shines. When reading a book on the kindle, one can instantly look up a new word without leaving the page. This alone is often compelling reason enough to buy it as an ebook than to buy it in paperback. ...

November 28, 2010

Learning from the web

While Paul Graham and many others have pointed out the virtues of web compared to normal desktop software. For Nemo Documents, working as a file manager for local files, it was quite clear that we needed a desktop application. Given this how could we then apply as much of the good things about the web into developing a Windows application? We quickly decided on WPF as it allows one much greater freedom in designing the application. We wanted something visually appealing and in this I think we succeeded (whether that is the case, is of course not up to me to decide :-)). But at least it is not the ordinary ugly grey programs that are so common in the Windows world. As for WPF as a framework I’m quite torn. On one side, it allows one to do a lot of fancy stuff, but on the other side there is way too-much architecture astronauting in the framework and that really hurts when you’re just trying to get something done. jQuery is a good example of how to do this right. ...

September 30, 2010

A messy desktop

Earlier this week we released a new version of Nemo Documents, the biggest addition is that we integrated google into the desktop. How this improves things have been documented on the official nemo documents blog, so instead of writing more about that I want to focus on a more personal angle, namely the subject of a messy desktop versus an organized one. My windows desktop is quite messy. You can see how it looks below. Then again, it’s mostly used to store temporary stuff. Projects we are working on always go into a neat folder structure inside our version control system. ...

September 22, 2010

Amazon Kindle review

I’ve recently bit the bullet and bought a kindle. I’ve been wanting to see the display of an ebook reader for a while but never had the chance, but the reviews of the display were all very good so I wasn’t too worried about that. With the recently announced 3rd generation kindles at a much more reasonable price I decided that it was time to see what all the fuss was about. ...

September 12, 2010

Nemo Documents released!

Today I’m pleased to announce something we at IOLA have been working on for quite a while. In essence it deals with how one can create a more humane interface for managing files an documents. By humane I mean an interface that is build with people in mind instead of computers. I’ve written a bit more elaborately on the official blog about how and why we have designed the system in the way we did. If this short teaser was enough of an appetizer, you can also just go ahead and try our beta version of Nemo Documents right now for free.

August 25, 2010

Language design

When talking to people about the benefits of clojure often people point out that most modern languages have evolved to “support” the functional paradigm with lambda functions. The argument is that one can stay in the familiar safe environment of imperative programming and use the functional constructs when they fit the problem better. That is a very valid and good strategy but I’ll show in the following that it brings a whole lot of accidental complexity with it. Some of this is specific to the way .NET is implemented and some are a clash of the functional paradigm with the imperiative. ...

August 6, 2010