Nemo is not quite dead yet. It’s been a long time since the last release, as I’ve been super busy with external contracting work at IOLA so I havn’t really had time to work that much on Nemo. There are some interesting things coming up in the Nemo space in the future, so far I can’t say much about what they are since they are still quite a bit up in the air, but be sure that Nemo is not dead yet ๐
The right medium
Just finished reading Jeff Jarvis book What Would Google Do. It’s an interesting study of applying google thinking to a wide range of other businesses. In the book he mentioned the Is google making us stupid article, which mulls over what happens if we can just search for everything, do we even need to remember anything anymore? And what happens if we shift our reading from books, to blog posts, to 160 letter twitter posts. Does that make us more stupid? Of course not! The only thing that twitter, blogs and facebook is making us better at, is choosing the right medium to convey our message. That is to say, in a more effecient way.รย Some ideas are best presented in a book, some in a blog post and some in twitter. Too often books could be cut in half (anyone else noticed that the sweet spot for books seems about 200 pages?) and sometimes a blog post might as well have been a twitter status update. It’s all of matter of choosing the right medium.
Luckily ideas can start out as a simple twitter post or idle chat in the hallway and then turn into something bigger. We often play around with ideas at the IOLA office. Sometimes they end at the drawing board, either discarded or put into the ever growing stack of fun ideas to try out when we got time, and sometimes they turn into sometimes bigger, like Nemo or YayArt. The interesting part of course is always what happens when you show your ideas to the world. That is often the litmus test, will people take the idea and run with it, or was it dead before it even started.
On designing libraries
I recently finished up a big project at IOLA which used two major components: Javascript and c# (.NET). It was interesting for me to see the big difference in the libraries for these platforms. For Javascript we used the excellent jQuery library. For .NET we used the very buggy Devexpress library. jQuery, like Javascript, is very simple. .NET on the other hand is overload with interfaces and concepts. What is interesting of course is that this philosophy shines through in libraries build on top of both platforms.
Devexpress is overloaded with concepts and the size of the library is just insane, the latest release is 221MB excluding kitching sink. Compared to jQueries 19KB. jQuery on the other hand focuses on a simple core with just the right amount of abstractions (very lispy), and delegates specific functionality to plugins, such as flot. The difference of course in part comes from the fact that jQuery is an open source project, while devexpress is a commercial project.
You just have to look at the release notes for each of these projects in order to see the difference. jQuery focused on making their already working code faster and fixing bugs. While devexpress spend most of their time added a number of new features. The problem is that in a commercial project fixing bugs doesn’t pay up as well as implementing new features. Or at least that used to be the case. In the era of google that simply is not true. Anyone can put in devexpress and find out if the library sucks (which it to a large degree does) or if it rocks. The sooner they realise that small is the new big, the sooner we will start getting better libraries.
Generators and decorators in Python
Was reading through some old blog posts today and found an interesting talk about Coroutines and Concurrency. The talk is pretty long but presents some nice ideas about how to split a problem up and making it more modular using yielding. It seems like python has extended this a little so that you can actually use generators to consume messages also. What I found particular interesting though in the talk, was when he briefly showed a decorator. Decorators are really powerful and seems to bring about the best of lisps macro extensability to Python without loosing the excellent syntax ๐ I googled a bit and found the following list of patterns that you can do with decorators.
My Media System 1.1.1 released
A minor bugfix release for the 1.1.0 series was released today. Special thanks to the many contributors.
Streaming media between two linux boxes
I was wondering why it wasn’t possible to playback a movie over a ssh connection using remote X11 forwarding and mplayer. It seems that the latency is simply just too high. I’m not exactly sure if it’s a ssh or a X problem. This was on a wireless link, which might be part of the problem. While researching the problem I found this pretty cool patch for openssh that should give better transfer speeds. It’s in gentoo as the hpn use flag (even a patch for openssh 5.2). Sadly it did not seem to solve the problem. The movie was still very laggy. Then I tried adding a -C to add compression. This help a bit, but it was still painfully slow and uses quite a bit more cpu on the server side. Also the sounds will come out on the server end, so this might not work very well if you’re not in the same machine as the server ๐
Back to the drawing board it seems… I found this excellent post on how to stream movies from a server to a Nokia 800 tablet with size conversion done on the fly at the server end. This script is pretty clever and truly UNIX style. It uses netcat to pipe the data from the server to the client, and just sticks a ffmpeg in front to scale the movie first. What is perfect about this solution is that it uses very little cpu (very good for small devices like the Nokia tablets) and it streams the sound to the client. The only downside seems to be that the data is not encrypted. But of course there are ways around that too if you really care.
On the client (mine is 192.168.0.2) do this:
nc -l -p 5000 | mplayer –
And on the server side to this:
cat /movies/nice-movie.avi | nc 192.168.0.2 5000
Ginger cookies
My lovely girlfriend Milda made ginger cookies again today ๐ The last batch of cookies went so fast that this time she made 3 plates full of goodies. The recipe needs the following ingredients:
100g butter
100g sugar, recommended brown
150g honey
1 egg
400g flour
a bit of salt
1 tee spoon of baking soda
2 tee spoons of blended ginger
1 tee spoon of cinnamon
1 tee spoon of hot wine spices
2 table spoons of sour cream
Put together as:
Mix well butter and sugar.
Peel off ginger and blend it together with an egg. Put it together with butter and sugar.
Mix baking soda with sour cream and put to the bowl for pastry (there should be butter, sugar, egg and ginger by now :)).
Add honey and spices and mix all the ingredients well.
Add flour to make pastry of a consistence for cookies. Put it in the fridge for half an hour.
Flatten the pastry, and form the cookies (I do that by cutting it to squares with a pizza knife :)). Heat the oven up to 180 degrees and bake the cookies for 10 รขโฌโ 15 minutes. Velbekomme.
My Media System 1.1.0 released
Finally the day has arrived when mms 1.1.0 has been released. After 9 release candidates the release is finally here. The last couple of months of only focusing on bugs has really payed off. Everyone was only fixing bugs which means that we where able to squaze in 67 bug fixes in 2 and a half month.
See photos of mms running in the flickr group.
Spank my monkey part 2
This is a list of scripts that I have been collecting over a long period of greasemonkey use. The extension to firefox just keeps getting better and better all the time.
Flickr
- Allsizes+ – Now with nag screen galore, but still very nice to snatch bigger resolution pictures.
- Cross recommendations – This really makes browsing random pictures on flickr much more interesting.
Last.fm
- Chart changes – See which tracks goes up and down in the most played tracks of yours.
- Aaverage plays on artist pages
- Lyrics – My favorite for last.fm, adds lyrics to the track pages.
- Normalised charts – Show charts by amount of play in time instead of number of plays. Good for artists like Opeth with long songs ๐
- Top tracks on artist pages
IMDB
- imdb runtime fix – Show runtime in a sane way instead of in minutes only
- Enlarge actor images – on hover. Not really that useful, but the pictures are small.
Google/Gmail
- Block unwanted results – like the damn Experts Exchange described here
- Replace http with https – for better security