Categories
On the web

The pirate bay declared illegal in Denmark

This is a major blow to anyone who cares about the future of media and distribution. I’ll just say that there is precedence for this already with the VCR. The motion picture studies at the time argued that it will kill them off because of the ability of the VCR to pirate. Today it’s one of their biggest sources of income. Those who don’t remember the history is doomed to repeat it, badly.

Categories
Blog

Remix: Making art and commerce thrive in the hybrid economy

Just finished reading Lessig’s latest book. I’ve been widely fascinated by his earlier work, but this one falls short compared to his other work on the subject of copyright in modern society. The first two parts is more or less just rehashing of old ideas, while the last part, about the future, is where the book really shines. More specifically it mentions five ways in which we can actually change copyright to make it better suited for the world we live in now.

He presents an interesting story about the problems they had in the southern states of America with racial discrimination. The problem was that if stores opened their doors to African Americans then they would be seen as pro-black and loose a lot of their original business. So in 1964 (!) a law was passed that made discrimination in public restaurants and other related establishments a felony. This changed the game completely. This reminds me of a law that was passed not that long ago in Denmark, that made smoking in the same kind of places a felony.

Categories
Blog

Google as a spell checker

If you also have been using googles “did you mean” function as a spell checker for words, you might find this funny:

  • Open google
  • Type in exadurate
  • Click I’m feeling lucky

🙂

Categories
Programming

Closures

I had a real “aha moment” today while coding some javascript. Let me first start this post with a quote:

The venerable master Qc Na was walking with his student, Anton.  Hoping to
prompt the master into a discussion, Anton said "Master, I have heard that
objects are a very good thing - is this true?"  Qc Na looked pityingly at
his student and replied, "Foolish pupil - objects are merely a poor man's
closures."

  Chastised, Anton took his leave from his master and returned to his cell,
intent on studying closures.  He carefully read the entire "Lambda: The
Ultimate..." series of papers and its cousins, and implemented a small
Scheme interpreter with a closure-based object system.  He learned much, and
looked forward to informing his master of his progress.

  On his next walk with Qc Na, Anton attempted to impress his master by
saying "Master, I have diligently studied the matter, and now understand
that objects are truly a poor man's closures."  Qc Na responded by hitting
Anton with his stick, saying "When will you learn? Closures are a poor man's
object."  At that moment, Anton became enlightened.

When I first read this some time ago I thought I understood it. I did not I now understand and my aha moment today proved that. I have written way too little pure functional programming to really appreciate and use the power of closures. Not to say that objects are useless. That’s exactly the point of the quoted text. Just that the ability to define closures inside closures inside closures is a really really powerful concept. The idea is that sometimes code gets repeated in a function inside a class. Typically you pull that into a helper function and stick it on the class, but sometimes the function is so specialized that it has no livelihood in the class. Secondly the ability to bind local objects to closures, and use those closures as state is another aspect of closures that is immensely powerful.

Categories
On the web

Bridging the gap between web apps and desktop apps or virtual homedirs

As anyone working on different machines know, keeping files in sync between different computers is really a pain. But it’s not only files, its as much the settings, bookmarks etc. that change when you shift to another machine. Not to mention backup. In large organizations this is solved using central servers where your stuff is stored remotely and synced to your local machine when you log in. This works fairly ok, except the whole centralized approach, but its a major pain to set up if you’re a small company or a dude with two machines at home. Especially considering your want access to your data anywhere you have an internet connection.

For a long time I had no great solution for this, but recently a very neat piece of software has surfaced. Dropbox hides the central server away in the cloud and more or less just gets out of your way and lets have a virtual home directory. They provide 2gb storage for free (as in beer), enough to store the most important stuff. and the software works is cross platform (Mac, Linux and Windows).

What has this to do with web apps? For a long time, one of the great advantages of web apps has been the ubiquitous access to your data. And with a virtual homedir you can getmost of that for normal applications as well.

Categories
Blog

Business of Software 2008 talk by Jason Fried of 37signals

This talk got me pumped today.

Categories
Blog

Location aware web applications

Firefox 3.1 will have geolocation support, allowing some interesting new web applications to come to the web platform. I really like what this will do for devices like the n810. They also announced alpha1 of their mobile brower version, fennec. Sadly its incredibly slow, something that hopefully will be fixed as the browser matures for the first real release.

Categories
Blog

You know you developing on Windows when…

Your editors notion of running the program is to “start debugging” 🙂

Categories
Blog

On the Death Magnetic production part 2

Following my first blog post, two interesting things have happened.

1) Lars Ulrich responds, and its almost as painful to read, as the production of the record is. Just listen to this:

Of course, I’ve heard that there are a few people complaining. But I’ve been listening to it the last couple of days in my car, and it sounds fuckin’ smokin’.

2) BBC has picked up on the problem, and is putting it into the spotlight. They talk to a mastering engineer and several people who have bought the album.

BBC part 1

BBC part 2

Categories
n800 nokia tablet

Summary of maemo summit

Some details for the next Nokia device was announced. It looks like it will have a 3x faster processor, be opengl es enabled (and will use clutter for it’s interface), will include tracker and have 3G. So it looks like Nokia wants to compete more directly with the Iphone.

In the talks it was also revealed that 2/3 of the tablet owners are developers. That is a higher number than I had expected, so either the tablets are not selling as well as one could have hoped or there is just a large number of developers owning them 🙂

Nokia was nice enough to provide all non-nokia people attending the desktop search hackfest with a n810. So I had some time to test it out in Berlin. Like going from n770 to n800, the upgrade is mostly only improvements and not very many “regressions”. Integration of GPS and keyboard combined with a smaller form factor are all very nice improvements. The keyboard makes the device much more functional as a IM device and is generally nice for inputting stuff instead of the virtual keyboard. Sadly I just bought a 8gb + 4gb memory stick for my n800 which won’t go into the n810, so I will have to hold onto the n800 for a while.

The hackfest went nice. A lot of decisions was made, it will be interesting how everything will pan out once everyone gets home and starts coming up with corner cases where the agreed upon solutions falls short 🙂 But overall it should be a good step in the right direction for xesam 1.0. It seems there was some tension between people which just want a functional xesam 1.0 (more or less just a cleaned up version of all the current api’s) and the semantic desktop people, but I think we came up with a nice compromise that made everyone happy. So that was pretty nice especially since it seems that the tracker guys have been punting the implementation of xesam support until the spec for 1.0 was finalized.