Saturday, 11-Sep-10 17:51
...and the best car is...

When I was a kid, one of the major questions in life whether Matchbox toy cars are better than Corgi, or perhaps Majorette (yeah, I had a happy childhood). So, after about 40 years of intensive testing, I think I've arrived to a conclusion.

Corgi - especially the Whizzwheels series - is the best.

Their cars have withstood the damage from two generations of kids with nothing but paint and occasional window damage. And their wheels still roll as well as the day they were new, whereas Matchbox wheels invariably are squashed or twisted or loose. Majorette scores second best, and unfortunately the infamous Matchbox comes last.

Well done, Corgi.

(I know I'm a bit late, since all three brands have been sold and resold a number of times. Corgi Toys, owned by Mattel, still seems to produce stuff tho'.)

Some nostalgic drooling pictures for you:

Friday, 10-Sep-10 23:20
Stripes and Shiro

I've been a long-time fan of Stripes, a really simple but powerful way of doing web apps in Java. It throws away complicated XML configuration and just prefers convention over configuration and uses annotations heavily to denote actions. It's clean cut and fast to develop in. However, it doesn't really do security (as in authentication and access control), but leaves those to the application.

Enter Apache Shiro (incubation), which is another really simple but powerful library to add access control and authentication to your Java application. It's not limited to webapps, but can be used in anything - though I don't think too many people are doing Java clients these days anymore.

Shiro comes with Spring integration built-in, but I figured I should try to make it Stripes-compatible too. Turns out this was a fairly easy task, though it was made a bit extra difficult by the fact that the AOP libraries of Shiro are not very well documented.

The way this works is that you add a new Stripes Interceptor that just delegates the access control checking to Shiro at just the right point. It even uses Shiro's built-in annotations, so it's fairly simple. Just add the following class to whichever package you like and play with it.

package stripes.util;

import java.lang.reflect.Method;

import net.sourceforge.stripes.action.Resolution;
import net.sourceforge.stripes.controller.ExecutionContext;
import net.sourceforge.stripes.controller.Interceptor;
import net.sourceforge.stripes.controller.Intercepts;
import net.sourceforge.stripes.controller.LifecycleStage;

import org.apache.shiro.aop.MethodInvocation;
import org.apache.shiro.authz.aop.AnnotationsAuthorizingMethodInterceptor;

 *  A Stripes Interceptor which will check if the given handler method has a {@link Require}
 *  annotation, and checks from Shiro whether the user has access to it.  For example
 *  <pre>
 *     public class AdminActionBean implements ActionBean
 *     {
 *        @DefaultHandler
 *        @RequiresRoles("admin")
 *        public Resolution doAdminThingies()
 *        {
 *           ...
 *        }
 *     }
 *  </pre>
public class AccessInterceptor extends AnnotationsAuthorizingMethodInterceptor implements Interceptor
    public Resolution intercept( ExecutionContext ctx ) throws Exception
        // First, execute the HandlerResolution
        Resolution resolution = ctx.proceed();

        MethodInvocation mi = new StripesMethodInvocation( ctx );
        // This throws a SecurityException if there's no access, which will
        // be caught by the ShiroFilter and acted upon.
        assertAuthorized( mi );
        return resolution;
     *  Private class which wraps the current ActionBean/Method invocation
     *  information into a Shiro MethodInvocation.
    private static class StripesMethodInvocation implements MethodInvocation
        private ExecutionContext m_context;
        public StripesMethodInvocation(ExecutionContext ctx)
            m_context = ctx;

        public Object[] getArguments()
            // Stripes handlers never get arguments, so this is cool.
            return null;

        public Method getMethod()
            return m_context.getHandler();

        public Object getThis()
            return m_context.getActionBean();

        public Object proceed() throws Throwable
            // This is not actually used by us
            return null;

Enjoy :-)

Thursday, 09-Sep-10 11:41
Native2ascii on web

Java folks know that in order to make sure your source code survives on multiple platform, you need to encode anything outside of ASCII (or Latin1) in the Java escape format (\uxxxx). This can be a laborious job, since you need to use a command line tool, native2ascii to do the conversion.

I got tired of doing the conversion manually (the alternative would be NOT to run my unit tests in non-ascii characters, but that's clearly the path to i18n hell), so I whipped up a small tool that can do the conversion directly on the web for you.

Enjoy; please comment here or directly in email.

Tuesday, 07-Sep-10 13:28
Running JConsole through firewalls

For anyone who have tried this and failed (and most people doing sysadmin stuff for Java programs have, I think), here comes a really simple solution for running JConsole over, well, firewalls and NATs and what-have-you.

Use SSH as a SOCKS proxy.

A minor caveat - the $jconsole_host from the original article refers to the name/IP address of the host you're connecting to - NOT the machine making the connection. Especially with EC2 it needs to be the local address from the 10.x range, not the DNS name.

I can't count the hours I've tried to figure out how to do this. RMI is so deeply unusable for all situations except when you're running machines in your own intranet. It reeks bigco all over the place...

Saturday, 07-Aug-10 23:58
Explaining agile through

Here's a fairly simple way to explain agile programming: When cleaning your apartment, you can either clean it bit by bit so that you keep a reasonable amount of cleanliness all the time - or you can just let it be, and then have big cleaning days.

With the first, agile, method you need to maintain strong discipline and actually make the effort of keeping things clean, even though it isn't fun. The second method, is a lot easier day-to-day, but the cleaning day is usually a source of agony to all participants. Neither method is inherently superior to the other, but they have different advantages and disadvantages.

For example, if you have surprise guests, or your spouse arrives a few hours early (ahem), the agile method of keeping the house clean all the time works well. The house is already in a good shape - just do some dusting and that's it. With the second method, you will find yourself apologizing for your messy apartment many, many times. Or out of laundry detergent just when you need it. On the other hand, the second method works really well if you don't spend a lot of time in the house, and/or if you have contractors, er, a hired cleaner coming in every week.

Agile methods can usually cope with changed plans, schedules and scope - but they require a lot of discipline to maintain, and they're not necessarily fun. The laissez-faire methods may be fun, but they're inherently brittle when it comes to change. Waterfall (=doing lots of planning what to clean before actually doing any cleaning) is usually brittle and NOT fun ;-).

Wednesday, 04-Aug-10 00:36
On changing reality

There's a bit of a public debate here in Finland again: a Green city council Kaisa Rastimo member asked the police to investigate whether a Pirate Party member had broken the law by reposting some comments she did on a public mailing list. She apparently doesn't quite know what the problem is (she keeps hovering between libel and email confidentiality), but asked the police to figure it out anyway.

Ok, so it's kind of fun to laugh at people who don't quite get the Internet. I'm personally kind of pissed at the Green party, who doesn't seem to be able to pull any coherent opinion on these internet things and tends to treat them as matters of conscience more than a party line. Not even individuals in that party seem to be able to form a defensible opinion.

Then again, this internet shit is actually really hard to grasp. Think about it: there is a growing mass of twentysomethings, who have been living on the internet their entire life. They are digital natives. They can build a world-changing service in a weekend (not all of them can pull it off, but some do). They live in two worlds at the same time - in fact, they're one and the same for them. They rewrite reality as they see fit and they LIKE to twiddle with it. They are used to rapid iteration - you build something, you toss it out to the public; if it doesn't work - you change it or abandon completely. Doing, not planning.

In contrast, the politicians talk endlessly, and then they vote, and that's it. No iteration - bugs may get fixed after a long process. The Finnish criminal code - which is still in use - dates from frigging 1889, though obviously it's been patched since. The entire legislation runs on waterfall, but the current generation is growing in complete agile mode. Mark Zuckerberg (CEO of Facebook) doesn't care about what the legislation says about privacy - he does it, and if enough people complain, he changes it. That man is one of the most influential people on this planet when it comes to privacy, and whatever politicians talk about it does not matter.

And no, I'm not advocating using SCRUM for legislation - I wouldn't like to be tried under "law 2.0 beta" - but the clock speed difference is real and it's there. As Lawrence Lessig says: "Code is Law". I would even go as far as saying "Code is Reality", since many aspects of our life are now completely dependent on the Code: banks, jobs, communication, traffic... It's everywhere: we almost breathe it. But few people are really, truly aware of it.

And to me it seems that this is what is missing from this whole discussion around "digital property" and DRM and piracy - at least here in Finland: the realization that piracy is not a disease. It is a symptom of something more profound which is happening in the society as we speak, and henceforth any attempt at stopping piracy is about as useful as painting the walls when the house foundations are crumbling: might fool some people all of the time, and all people for some of the time, but the house will still collapse.

The interesting thing is that since it's unstoppable, watching people and corporations kick and scream while they're being dragged into the new age is kinda fun. In 20 years, the 20somethings of today will be in their fourties and start to have major power in corporations and governments. And in 40 years, everybody who gets to make decisions is a digital native, and they'll be fighting their own inability to grasp the changing world.

It just really bugs me that people just paint the walls and try to sell me the house as "fully renovated."

Tuesday, 03-Aug-10 13:59
Nyt vihreät vittu oikeesti

Pitäkääpä se Rastimo nyt kurissa, jooko?

Yksi Rastimo kumoaa yhden Kasvin vaikutuksen, enkä koe enää sopivaksi antaa ääntäni puolueelle, jossa ollaan noinkin pihalla nykyisyydestä - saati sitten tulevaisuudesta.

Sunday, 25-Jul-10 18:43
Roleplaying With A Clock

Since I've been asked a couple of times - and apparently quoted as an example - I figured that it might make sense to put some words on paper on this one. Note that this technique is not my invention, but it is an adaptation to horror gaming from a little-known game called "Puppetland" by John Tynes (rules freely available from the internets).

One of the key ingredients in horror genre is stress. Usually this comes from powerful visual imagery or - in the case of gaming - the players own imagination as they visualize the horrors that their characters encounter. Or it can be more subtle and come from collapsing relationships or watching someone you love destroy themselves. However, it's a bit difficult to get yourself into the horror genre when one player is hunting for Cheetos and another one is reading a rulebook. Focus is very important.

Deadlines tend to focus people very efficiently. They also generate loads of stress, as anyone who has to live by a calendar knows. So I figured that it's worth a shot: introducing artificial deadlines into gaming should introduce stress and focus into the game, even though it is not a horror element as such. As players are very good at suspending disbelief when it comes to imagining that dice can represent monsters, surely it would be easy to believe that one kind of stress is actually some other kind of stress?

Turns out this theory works wonderfully. So I'm running a Call of Cthulhu game, in which each game is limited by a chess clock to a period of maybe 35 minutes at its shortest to 1h 30min at its longest. I set the clock to a shorter time if the scenario is straight-forward and needs lots of action; if I want to get a darker, threatening but slower game, I give the clock a bit more time. There is an in-game device which does tell the characters the time as well, and it's fairly easy to explain as an "alien device which tells how much time there is left before the portal closes, but sometimes it runs faster and sometimes it runs slower and you don't really know when and how." If they players say "we fly to Paris", then the clock runs really slow; if they enter combat, the minutes drain very fast. But I am unsure whether you would really require that kind of an in-game device at all. Do try and tell me.

Of course, since the clock does not stop for anything it means that the GM needs to be very knowledgeable of the game as well. There just isn't time to go leafing through the sourcebooks: everything has to come out in a snap. I joke that in this game, writing a scenario takes longer than playing it. But the increased intensity of the situation is well worth it; it's very rewarding for the game master to get swept away by the emotion flowing from the players.

And buy, is there emotion. I am not sure as I was rather immersed in the game myself too, but I think I saw a player jump to his feet in excitement last time we played. And you can hear the creeping terror in their voices, as they try to figure out exactly how to keep a gigantic fluid creature in a barred cage (answer: there is no way) with 15 minutes left on the clock and the friendly receptionist they tied to a table so that she would be safe is going to be EATEN ALIVE by a thing that crawls on the floor and ululates in a terrible, forgotten language and they possibly don't have time to do everything they NEED to do and they simply have to choose who to save...

For a middle-aged guy with a family, gaming with a clock does bring in other benefits as well: games have a well-defined length, which means that they're easier to plan for. They're also easy to play as fillers or when all people can't make it - since the sceneario ends by clock, there's never a case where the scenario gets "adjourned in a suitable place so that we can continue later on". It does not preclude long campaigns, but it does require certain advance planning, since the players will not spend time digging up all the clues.

Obviously, this wouldn't work for everyone and for every campaign, but I was surprised to see how well it worked for us. Instead of a book, think of a TV series: 42 minutes, and that has to be the whole story. Think Pecha Kucha: you have time to tell maybe one or two things, and then it's over.

And hey, if it's boring, at least it's over fast. ;-)

Thursday, 22-Jul-10 19:54

There's positive feedback and there's negative feedback. The old rule is that you should also try to be constructive in your feedback, so that's clearly a third kind. However, there's still a lot more than just those tree, so here's a list of some of the different kinds I've met over the years.

  • Whining. This is the lowest form of feedback, because it mostly just concentrates on why the complainers life is useless without such-and-such feature, and often also includes predictions of doom.
  • HelloKitty. OMG LOL LOV UR SITE KTHXBYE. Probably positive, but one can never be too sure. Also known as "fly-by thanks."
  • Complaints. People who have a genuine problem and have gone through the effort of actually filing a complaint. While they can be annoying, the concerns they do raise are genuine and can really make a positive impact on your product. After all, they care about your stuff. Can become good allies, even ambassadors.
  • Reviews. These are an old-fashioned and not always very relevant form of feedback. Since they come conceptually from old media, they usually are not changed after publishing, and therefore work only for products which are changed rarely. For a modern web site which are updated sometimes several times a day, they are obsoleted quickly.
  • Bonepicking. No matter what you do, some people have a bone to pick with you or your company, and will take everything that you do in negative light. Slips easily into whining, but can be a genuine complaint too.
  • Awards. Awesome stuff, if given genuinely.
  • Ambassadors. Folks that are so into your product that they go out and spread the word. Treat these people well, for their feedback carries extra weight.
  • Faux criticism. This is usually just cloaked whining. It appears on the surface to be useful, but often turns out to be a complete failure to understand what the product is supposed to be doing and applying it to a focus group of one. ("My cell phone does not whip cream very well. I think there's a big portion of people in the world who would like to whip cream with their phones. If you cannot bring such a product to market, you will lose all those people.")
  • Fair criticism. This is the kind of stuff that one should really grip when it comes in. It doesn't mean that you should do what it says, but at least you should understand where it comes from, and preferably respond kindly.
  • Mehs. "Yeah, it's kinda okay." This is a good warning sign that your product isn't rocking the boat, but as for its informational value it's pretty much zero.
  • Anons. Anonymous/pseudonymous commentary on web sites. This is almost like noise, and going through it is usually as useful as peeling your skin with sandpaper. Yeah, it does exfoliate, but it's painful and you could spend the time more wisely.
  • Peekaboo. Comes in, gives you an incomplete bug report, and then completely disappears or is unable to give any more information. Often does not have very good language skills.
  • Thanks. Just simple, heartfelt thanks. While they may not make your product better, they do make you feel better, and that's really why you do what you do, don't you?
Monday, 14-Jun-10 10:48
MoonTV gone from Facebook

MoonTV, a Finnish independent web TV channel, got axed from Facebook last Saturday. No explanation given.

In addition, everyone who was an admin in the FB fan group, got their accounts disabled as well.

Will write more on this topic soon; at the moment my head is full of snot, I'm feeling feverish, the kid is tired and screaming, and a neighbour has decided to drill a gigantic hole in their apartment (the relationship between the last two is left as an exercise to the reader). My life these days is all about distractions.

Wednesday, 02-Jun-10 21:07
Facebook Like-buttons removed

Decided to remove the Like-buttons from my blog. They were giving me nothing, yet giving something to Facebook. Not a particularly good deal, and they *do* cause privacy issues (=Facebook gets to see where you surf, even when you don't press the Like-button, if you're logged into Facebook at the same time).

Sunday, 16-May-10 16:41
Amiga nostalgia ftw

This Slashdot discussion made me go back to see and nostalgize my pinnacle of Amiga programming - PPT, an Image Processing Program. Taught me everything that I know about multithreaded programming - and I did it without protected memory or any resource tracking :-). Those were the days... Unlike many others, I tried to stick within the RKMs and refused to hit the hardware directly (though an occasional assembly routine here and there never hurt anyone).

One thing I'm fairly proud of still in that code are the RGB -> HAM/HAM8 conversion routines. HAM was this curious Hold-and-Modify mode in which you got to change only one of the RGB components, all the other ones were picked from the left neighbour pixel. Since that meant that in HAM you could only have 16 base colors (4 bit plans) and in HAM8 64, choosing the right palette was really hard. Many people just stuck to a preset palette, and tried to match it, but my routine built a histogram of the image and tried to choose the best possible palette. I still occasionally receive comments about how great the images look - though it's now been a couple of years since the last one - but for a program which hasn't seen active development since ~1995 that's pretty good.

Anyhoo, enough nostalgia. The code is GPL and available in this SVN repo if you want to see how badly I used to program. Lots of C code there... The HAM conversion routines are here and here.

Sunday, 09-May-10 13:35
Who really is iPad's competition?

IPads and other web tablets (which will surely arrive, now that the tech is at a level where they have become feasible and everybody loves to copy Apple anyway) will have an interesting competitive situation. On the surface, it does not appear that they have competition. Some people are pitching them against subnotebooks; some are saying that they are iPhone competition (which I think BTW is insane). Some people say that they will kill the personal computer as we know it.

Well, I've been thinking (which became my favourite phrase after @MikaelJungner said that every time he utters it in the Finnish Broadcasting Corporation's management team meetings, everybody starts screaming). Perhaps the real competition is the television.

I have a few arguments. First, the situation is analoguous to the early days of the mobile phone: everybody had a fixed landline, which was shared. It was in one place, and everybody had to take turns. Much like the current television set: it's in one place, we usually have one room which enshrines it in some way, and you only watch one channel at a time. Yes, now, if you find this a problem, quite a few households especially in the Western countries own more than one television these days, which makes them personal televisions. But they're still largely immobile and tied to one place.

The second argument is that media industry loves the iPad. Here they have an opportunity to keep going what they already have, outside of regulation, and have total control of who watches and what. No more worrying about the analog hole, because Apple doesn't care about interop. They will control, together with Apple, the entire production chain from source to screen. No need to change business models or worry about privacy.

Now, if pad computers become personal television sets, that means that the advertisers will get extremely accurate data on who saw what and who bought what. The knowledge that is accumulated in the Apple App Store and iTunes Music Store about consumer behaviour is simply the best data available anywhere on the planet, except perhaps for the data collected by Google. And people give this willingly and even pay for the privilege.

The fourth argument is the fact that internet distribution is way superior to broadcast. Get what you want, when you want.

The fifth argument is that people are getting very much used to now living in a virtual world. Smartphones and computers have given people the opportunity of changing few but intensive connections to a large number of less intensive connections - and people have chosen those en masse. Just look at how there is always someone who fiddles with their Apple/Blackberry/Nokia/Samsung wherever you are. So losing one of the bastions of togetherness in the living room doesn't sound that bad anymore. (Though this is a fairly controversial argument - I think that it might actually be good that living rooms become living rooms again as opposed to consumption rooms.)

The sixth argument is that TV set makers know this already. The new high-end TV sets have integration to Youtube and social media services - but I think it's not going to work. TV sets aren't personal to the degree that social media would work on them.

The iPad form factor is excellent (though the bloody thing is still way too heavy, but that'll be corrected in a year or two) for snuggling in bed and watching telly. It doesn't heat up the same way a laptop does; it doesn't keep noise like a laptop does; and it doesn't bring in the cognitive complexity as a laptop does.

So I'm going to hazard a guess here: pads will be the personal media centres for home, killing off television sets the same way mobile phones killed landlines. They won't kill television as such, because moving to the iPad is the path of least resistance for the media companies, but it will punish them because now there will be a new distributor in the chain who will grab a bite out of every sale.

Saturday, 08-May-10 12:18
Inner Circle

After many years of claims that it exists, the übersecret Finnish Bloggers Inner Circle was finally formed now that nobody really cares. I'm trying to let the world know before the "Swords of Jesus" come and take me away. Run, before it's too la

Friday, 23-Apr-10 12:19
Atheist propaganda

This NASA image of the Sun was just too gorgeous to ignore, so I put in a small reminder about one of the fundamental facts that we often forget.

It's alien, it's frightening, it's beautiful, it's dangerous and we're completely and utterly dependent on it. If it burps in the wrong way, we're all dead.

(For larger images, click on the link.)

Thursday, 22-Apr-10 16:44
Vihreämpi Suomi

Suomen hallitus siis päätti esittää, että tuulivoimalle tulee syöttötariffit ja että muitakin uusiutuvia energianlähteitä aletaan suosia melko aktiivisesti. Tämä on ihan loistavaa!

Sääli vain, että keskustelu on jäänyt jumiin ydinvoiman ympärille. Ymmärrän toki ydinvoiman riskit ja haitat (luultavasti jopa melko hyvin - olen kuitenkin koulutukseltani fyysikko), mutta yksi seikka jää näissä keskusteluissa usein huomiotta: pahimmatkin ydinvoimaan liittyvät katastrofiskenaariot ovat lokaaleja. Kyllä, ne voivat olla järkyttävän pahoja, mutta koko ihmiskunnan kannalta isonkin alueen saastuminen on loppujen lopuksi vain haitta. Sen sijaan jatkuva hiilidioksidin dumppaaminen ilmakehään ja hiilen ja öljyn aiheuttama saastuminen on globaali ongelma, josta kärsivät kaikki ja jota ei voi paeta. Ja sikälimikäli IPCC:n ennusteet ovat oikeassa (ja tämä peli kannattaa pelata varman päälle, ja olettaa, että ovat), niin ilmaston lämpenemisen aiheuttamat katastrofit ovat kertaluokkaa pahemmat.

Joten vaikka äänestänkin Vihreitä, niin en ole kovin myrtynyt ydinvoimaluvista. Ydinvoima on kuitenkin riittävän saasteeton (poislukien ydinjäte, joka jälleen on vain lokaali ongelma) ja antaa meille tarpeeksi energiaa, jotta voidaan siirtyä pidemmällä tähtäimellä tyystin pois saastuttavista energiamuodoista. Ja kuvittelen, että uusiutuvien energiamuotojen tuki oli Vihreiltä työvoitto ja riittävä hinta periaatteista lipsumiselle.

Monday, 19-Apr-10 23:00
No boom today, boom tomorrow

There's a lot of talk about how we could save the Earth if a stray asteroid was going our way. Wikipedia - who else - has a long page on different asteroid mitigation strategies.

But, as a software engineer, I cringe at techniques which haven't actually been tried out. It is scary to think that we wouldn't try any of those things before we really NEED it to work, or else all humanity dies.

So here's a question: why don't we test out one or two of those deflection techniques and bombard Venus? Take an engine and put something on collision course with an actual planet. We could also blow up one or two stray asteroids to see if theories about rock and nukes really hold up... Venus is quite similar to Earth in size, so we might get useful info on what to actually expect from a really large explosion. Or a bunch of small ones if we blow up an asteroid just close by.

Just saying... ;-)

Monday, 19-Apr-10 09:40
Scary computers 101

My serious laptop.
When my Macbook Air[1] decided to implode (well, just the hard drive really) I reverted back to my old trusty Thinkpad X40. It's actually a pretty nice small laptop, though now it's rather underpowered. I've got it decorated with Hello Kitty -stickers, which always gets a chuckle and a curious look in meetings[2], and extra attention at airport security control. However, it does have one pretty major design oddity.

Whenever it runs out of battery, it wails like a banshee. "EEEE-OOOO". "EEEE-OOOO". A horrible, piercing noise which cuts through silence like a high-powered laser through dissidents. Last night, it woke us both up, and we just laid there, panting, all ready to fight or flee, until I remembered that little feature and was able to calm my panicking wife.

Once, it went off in the overhead compartment during plane takeoff. I tried to look as nonchalant as possible as everyone else in the plane was gripping their armrests and peeing their pants. It's NOT the sound you want to hear at the possibly most dangerous phase of flying.

Luckily, the screeching doesn't last too long. It just rings a couple of times, before the machine runs out of battery and shuts down. And that's what's really curious - what on Earth did go through the designer's mind? I mean, I could understand it if it screamed five minutes before battery runs out, so that you could actually have time to find a charger and plug it in? But no, this really just informs about the "well, I'm out of battery and you can't do anything about it anymore" -condition. Why would I ever want to be signaled about something I can't really do nothing about, and what I will notice the next time I try to start the laptop anyway?

And why, in <deity>'s name, did it have to be designed to be so loud?

[#1] Which is, IMHO, pretty much a toy. You might be happy with it if you just need a typewriter replacement which can do email, but it is the lousiest and most underpowered tool ever. Not recommended for serious geeky work. Especially since it appears that it overheats easily and kills the hard drive if you do some heavy-duty work on it.

[#2] Yeah, always had trouble with serious meetings. Hm... As long as I had that one, I was never promoted. Since I got myself a Mac for work, I got promoted twice. Coincidence?

Monday, 12-Apr-10 09:02
Packing the bags

So… After eight very interesting years, I'm leaving the Mothership and taking a plunge into the great unknown. But the fact is - I have been with Nokia for eight years, and while the relationship has been mutually quite beneficial, fun and rewarding, I feel like I have seen now enough of this particular valley for a while, and I'm yearning to see what is on the other side of the mountains.

I am very grateful to all the people I have met during this journey, and who have taught me, both in good and bad. And it's been a long journey. Remember, I joined Nokia in 2002 when 7650, the first S60 phone, was still under wraps and was the thing which pretty much started all this smartphone brouhaha. Now, smartphones are everywhere, and there's a good, fresh and exciting competition on that promises to be every bit as interesting as the introduction of the internet to the whole world. Good luck to everyone, since no matter what happens, it's the people who win.

What's next then? Well, I'm taking up something more ambitious and challenging: I've accepted the offer to join Thinglink as their CTO. Yes, it's a startup. Yes, it's going to mean plenty of work. And yes, if stuff breaks down, it will be all my fault.

But Thinglink will also be a fertile ground to grow some seeds of fresh thought and opportunity. We'll be doing some really exciting stuff, and hopefully knock over a few established thoughts while doing so. As the "Godfather of NFC" (as I am sometimes jokingly referred as) at Nokia I've had my hand in making a part of the Internet of Things to go live, and I ain't done yet.

(Oh, and BTW, we'll be hiring. Watch this space.)

Saturday, 27-Mar-10 12:34
Recycling parties

I've heard lately people complaining how much stuff they have. It might be a common problem in my age group - you just accumulate things over time, but you never really need to throw them away because you keep moving to a bigger apartment, where the stuff can always be hidden. Looking at the amount of things we have (fairly regular amount of stuff for any six-person family - except, of course, there are only three of us) it really makes me wonder whether I need all of that.

Now, clothes are fairly easy to keep from multiplicating - at least for me - but I've got a ton of stuff which just simply isn't really necessary, yet too useful to throw away. But it seems that there never is time nor the will to start triaging things.

So here's an idea - and I'd like to hear if anyone has experiences with something like this before: a recycling party. You gather a lot of friends (preferably with some inkling of good taste) and let them do the sorting. All things go to four big boxes: "Keep & display", "Keep & hide", "Recycle" and "Throw away". Keep&Display are things which look nice and are worth keeping, Keep&Hide are things which have particular value but aren't used often (or are hideous but precious), the Recycle bin is for those things which are good but not necessary, and the last one is obviously for things which just deserve death.

The party host offers food & drinks, while everyone has fun rummaging through the host's closets and arguing about the things. Finally, the Recycle-bin is taken to a recycling center whereas the garbage is ceremoniously thrown away; and kept items are placed in their proper places.

Might work well as a part of move. Don't know. Let me know if anyone has tried something like this.

Friday, 26-Mar-10 21:34
Testing != reality

I've seen software fail. And inevitably, someone asks the question "why don't they test these things?"

But of course they are tested. Many companies spend incredible amounts of time and effort to test their wares before they ship.

The interesting truth is that testing is not real life. The old war truth says "no plan survives contact with the enemy", and role-players might say "no scenario survives contact with the players". Real life is just so full of variety, inventive people, even physical limits like dirt and grit that no amount of testing can truly represent real life.

Martial artists know that practice will help. But a real situation is always different. Practice too little and you're overconfident. Practice the wrong things and you're too rigid to adapt. Same with software testing.

When software ships, it goes to a battlefield. Many times it survives. But many times it does not.

Thursday, 25-Mar-10 00:29
The Avatar

Well, I finally was able to see the much-talked-about movie, Avatar. Those who follow my Twitter stream know that I've had some challenges with it.

Anyhow - and I fully realize I'm very badly late talking about it - I have to admit I was impressed. They're not paying Richard Taylor enough money, no matter how much they're paying. Such level of detail in the design is just insane and gorgeous at the same time (like good design often is).

I'm not going to talk about the plot - it's fairly straightforward and if you've seen fantasy flicks before, you can pretty much guess what happens. But the feeling of being there is tangible. It crosses the thin line between unbelievable and possible, and doesn't require a lot of suspension of disbelief to work. And that's so incredibly important, both in fiction and real life.

(The only thing that bothers me is the thought that the Na'vi all look like blue Gollums. And once that thought enters your head, it's difficult to dislodge.)

(And I loved the alien vs forklift -reference.)

Sunday, 07-Mar-10 15:01
Internet of what?

Here's something else I've been ranting about for a while now: A lot of about Internet of Things is fundamentally flawed, because it assumes that things have something interesting to say to each other. But I still can't figure out what my toaster would like to tell my oven that would be so important that I would pay for it. The internet works because there are people in it; I'm not sure it becomes at all better if there are things in it too.

Perhaps it's because we geeks like to anthropomorphise our precious things - yes, sometimes it feels like the computer has its own will. So we think that wouldn't it be wonderful if all the stuff we owned could talk to each other. It's as if we had a family. :-P

Of course communication is the alpha and omega of all intelligence, so perhaps it's just us trying to build our replacements. But knowing the difficulties we have finding meaningful things to tell one another, do we really believe that quantity wins over quality by enabling everything to be connected to everything else?

Wouldn't it make sense to figure out first what our things might want to say?

Saturday, 06-Mar-10 14:18
APIs and Architecture

Many geeks love boxes. And once you got that magic title, "Architect", in your job description you start loving them even more, 'cos that's what you get to do all day. It's really nice to design scalable architectures and think about how data flows between modules and how to tweak the system and argue and finally commandeer a large army of coders who build your dream. It's fun!

But there's a small problem. Quite often you also need to design an API - an interface through which other people can use the wonderful framework you designed. And here lies a danger: if you design your API after the architecture design is done, your API will reflect the internal design of the system. And that, in turn, means that if you change your architecture, you will have to change your API as well. Which breaks the promise you've given to the people who are accessing your system through the API. Unlike humans, who can figure out if a button has changed place on an HTML page, computers get really iffy when it comes to argument ordering and types. In a word, the API becomes brittle.

So the right thing to do is to design the API first, and then match the architecture accordingly. This way the API is not dependent on changes you do under the hood. This is much harder to do, and much less fun, but it will create you a better system in the end - because no matter how beautiful a thing you've designed, if it's a pain to use, it won't get used.

Love the boxes. But not too much.

Saturday, 06-Feb-10 19:48
Mathematical PC

Our kid got a Fisher-Price school bus as a birthday present. Of course, it is very healthy and politically correct: it has a black person and a hispanic person and a girl and a boy and a plump one and one with eye glasses and a disabled one and a responsible adult as a driver and whatnot.

The fun thing is the amount of optimization which has been put in the system to minimize the number of figurines they ship with the bus. There are only three figurines (and a wheelchair, so anyone of them can be disabled): Carlos, Maggie and Michael.

Somewhere in the world, there's a person who's thought all this through. And an engineer who designed the production line.

Amazes me always to think about it.

Monday, 18-Jan-10 01:15
JSPWiki on a cell phone

Click for bigger image.
I got encouraged by someone's tweet and decided to try this on my N900. And turns out it wasn't that difficult even, just did the following things:

  • Download Sun's preview of Java 6 on ARM and transfer to N900
  • On N900 mkdir /opt/java, untar the downloaded JRE there
  • Copied existing Tomcat installation with JSPWiki 2.8 to /opt/tomcat/ (could've also done an installation from scratch, should've worked)
  • Used QEmacs to tweak a couple of config files (server.xml needed the default Tomcat control port changed away from 8009, and needed to point at the right directory)
  • set up JAVA_HOME to point at the /opt/java/ejrexxx dir.
  • run /opt/tomcat/apache-tomcat-5.5.16/bin/
  • point browser at http://localhost:8080/JSPWiki/

And voila - we have a full Java JSP webapp (the same one that is currently serving you these pages) running on a cell phone. Since my setup stores all wikipages as flat text files, I can use it as a local text editor with hypertext editing capabilities. Or comes else comes to mind.


(Tried shooting video too, but it was too blurry on my backup camera.)

Monday, 18-Jan-10 00:20
Twenty years

It's been twenty years now that the first set of massive changes in my life started: that is, graduation from high school, moving from home to a whole new place to study in the university. So the past few months have been punctuated by a number of parties - the 20 year anniversary class reunion from high school; and the reunion from the class which started at the same time at the university.

It is interesting to see familiar faces and see how vastly different the life has become for them. But it's also interesting to see how more narrow the funnel becomes: the folks in my high school class ended up living all over the country and have all sorts of varying jobs from a farmer to nurse to doctor to engineer.

Then again, almost all the people from my university class work in middle management or R&D, live near Helsinki, and have two kids. The life story from almost everyone was eerily similar: studies, a bit of work abroad, back to Finland, get a couple of kids, get a stable job, and just do it. No artists, no farmers. Only a few had left Finland for good.

So we weren't really that different from each other. The passions that drove us to the same place in the beginning stayed with us and made us remarkably similar. It's as if we became who we were in the first 20 years, and after that we were unable or unwilling to change. Perhaps it just means that we figured out who we truly were and what we wanted to do.

But a part of me still feels as lost as on those early days as we walked through the corridors of the university, bright-eyed and full of ourselves. I didn't really know then what I wanted to be when I grew up. I still don't know what I want to be when I grow up.

I just have a lot less time to worry about it these days.

Sunday, 27-Dec-09 00:10
Priha alpha releases available

I'm happy to announce the availability of Priha 0.7.0 alpha release from!

Priha is an implementation of the JSR-170 Java Content Repository Standard. Essentially it means that if you design your Java app around JSR-170, you have a nice, structured key-value store with queries and you don't have to care about database schemas and other low-level stuff. Priha currently has full Level 1 and Level 2 support, and out of the optional features it supports locking.

Priha was designed to be extremely embeddable, and you can run it with no extra dependencies whatsoever, aside from the regular JRE. A single JAR file is all you need (and of course the jsr-170-api JAR)!

And yes, Priha does now pass the TCK test suite, in case you were wondering. I haven't yet bothered to go through the hoops of officially certifying it, though it might be cool at some point.

Friday, 25-Dec-09 15:37
Built-in epicfail

I like to juggle. I'm not particularly good at it, but it soothes my nerves and I can use it to focus my concentration if it starts wandering.

What's quite interesting that whenever someone sees me juggle with three balls, they invariably ask whether I can juggle four balls. If I juggle with two balls, they ask about three. If I happen to be juggling four, they ask about five. It never fails. I'm pretty sure that if I were to juggle something insane like twelve balls, I would be asked about thirteen.

I've come to the conclusion that it must be because people like to see others fail. It does not matter how much you can do, but it's what you can't do that interests people.

There's something utterly fascinating about that.

Wednesday, 23-Dec-09 13:49
Why suing TV-kaista is a really bad idea

Unsurprisingly, the media corporations have hit one of the most awesome services in Finland, TV-kaista with a lawsuit. They are using copyright law as their strawman argument ("you can't make money on the stuff that we produce"), but it's a bad argument because you can use the exact same argument against the guy who sold you a television or the digibox or the PVR.

Now, TV-kaista is essentially a PVR on the web, which is what makes it so awesome. They store all the TV programs for the past two weeks, meaning that if you miss something, you can always go back and watch it. I can even do that from my cell phone. This is perfect for consumers, and really changes the way you watch TV. They are lighting the way to media consumption for the future, and steer us away from using dodgy Bittorrent services. The use of my own PVR has been reduced to pretty much recording content from pay channels, which aren't yet on the service.

Interestingly, because of the way our ancient copyright legislation works, TV-kaista has no choice but to give everyone a personal PVR in their datacentre. So all the data and processing power is duplicated for every single user, leading an enormous waste and strain on the environment in duplicated electricity and electronics cost. If they were allowed to store the TV streams just once, they could essentially allow us to get rid of our digiboxes who sit idly most of the day and night and leech electricity.

Not only that, who would ever bother to innovate around content in Finland anymore, now that they know they will always be subject to short-sighted lawsuits?

Short-sighted? Yes, you see - TV-kaista is essentially an aggregator of multiple video streams. The media houses don't like that - they want you to go to their own websites for the online content. And because they cannot aggregate their competitor's streams, their service can never be as good as an aggregator's one could be. So their only recourse is to sue the superior competition out of existence. And in doing so, they're essentially condemning consumers to crappy services forever. "Only we can decree how you can best consumer our content." Where's the competition and consumer choice in that?

Moore's law says that we will get more. I can already access my PVR from the internet, if I want to. If services like are not allowed to prosper, the void will be filled by PVRs which actually can store eight or sixteen channels ALL THE TIME. And then we get those aggregation services anyway, but again to more cost to the environment, with the media companies having far less control over what can happen then. Or someone establishes a similar service in Estonia, or somewhere else. It is impossible to control a public access signal anyway.

You see, they could instead agree with how to best share advertising revenue. They could even start selling it through their own agencies, who are really good at it. TV-kaista isn't. It would be a very good match.

In this particular case, enforcing strict copyright legislation is directly reducing consumer choice, damaging the environment, damaging Finland's ability to innovate, driving people to piracy, and preventing new online services to emerge. I mean, come on: Did anybody learn anything from the Napster lawsuit and success of the iTunes Music Store? Music companies had their own ideas about music consumption, and they were all wrong, and it was left for innovative companies outside of their business to build the future models. This is no different.

So fuck off, will you MTV Media, Sanoma Television, Yleisradio, Kopiosto, Teosto, Tuotos and ÄKT, and let innovative companies make the world a better place? You'll get your money anyway, 'cos you control the source.

Thursday, 10-Dec-09 00:01
Työsuhdeolettamasta lyhyesti

Lehdistöstä on saatu lukea viime aikoina melkoista porua tekijänoikeuslain uudistuksesta, jossa työsuhteessa syntyisi automaattinen tekijänoikeus työntekijän tekemisiin, eli ns. työsuhdeolettama. Useampikin nimekäs taiteilija on kirjoittanut, kuinka uusi laki tulisi sortamaan heitä, ja vaarantamaan elannon.

Totta ja ei - sortamisesta toki on kysymys, mutta elanto tuskin vaarantuisi, koska toki työsuhteesta maksetaan korvaus, ja työsuhteen ulkopuolella luodut teokset olisivat edelleenkin ihan omissa nimissä.

Työsuhdeolettama on arkipäivää meidän tietotyöläisten piirissä. Kaikki pienetkin tietokoneohjelmat, joita teen työaikana tai työvälineillä, ovat automaattisesti (C) Työnantaja. Tästä saan korvauksena palkkaa, jonka summasta väännetään sitten aina kättä säännöllisin väliajoin, ja jolla voin mitata työpanokseni arvostusta tai firman taloudellista tilaa tai mitä nyt milloinkin. Samalla lailla se toimisi myös muidenkin luovien työntekijöiden kohdalta, eikä se tule olemaan maailmanloppu.

Muttamutta, kenenkään ei pitäisi oikeasti olla yllättynyt työsuhdeolettaman laajennuksesta. Joka kerta kun tekijänoikeuslakeja on maailmalla rukattu, niitä on aina rukattu isoja yrityksiä suosiviksi. Kun nyt kuluttajia on vaikea laittaa enää yhtään ahtaammalle rikkomatta erinäisiä perustuslakeja, niin seuraava looginen askel on alkaa kaventaa tekijöiden oikeuksia. Työsuhdeolettama on vain yksi näistä - luultavasti jatkoa seuraa, sillä toisin kuten Raimo Vikström ylläolevassa linkissä kirjoittaa, arvopohjaa ei ole käännetty tekijöiden vastaiseksi. Se vain on aina ollut omistajia ja levittäjiä suosiva. Tähän asti vain heidän etunsa on ollut myös tekijöiden etu, joten asiaa ei ole huomattu.

Ei sinällään ihme, että tietokoneohjelmistoja on kohdeltu näinkin pitkään eri lailla - vuonna 2008 hitec-vienti oli noin 11 miljardia euroa (ja likipitäen jokaisessa elektronisessa laitteessa on jonkinasteinen ohjelmisto, joskin nykyään on hirveän vaikea sanoa missä ko. ohjelmisto on tehty), kun taas musiikkivienti oli arvoltaan 2007 n. 20 miljoonaa euroa - eli siis 500 kertaa pienempi. Vaikka tässä vertailussa onkin oiottu kulmia (on muitakin luovan työn tekijöitä kuin muusikoita, ja numerotkin on eri vuosilta), niin suuruusluokka osoittaa, että tähän mennessä muiden luovien työntekijöiden panos on numeroissa yhtä tärkeä kuin rekan alle jääneellä siilillä, minkä takia he ovatkin näin pitkään selvinneet ilman huomiota. Tämä työsuhdeolettaman korjaus on "vain" toimenpide, jolla yksinkertaistetaan tekijänoikeuslakia ja korjataan kauneusvirhettä.

Tekijänoikeudet ovat tärkeämpiä kuin tekijöiden ja kuluttajien oikeudet. Se on maailman tapa. Ja tämä tapa on huono ja tuhoava.

Se, mistä olen pettynyt, on se, että Suomen Piraattipuolue, joka yrittää profiloitua järkevien tekijänoikeuksien puolustajaksi, ei ole pihahtanut sanaakaan koko jupakasta. Nyt jätkät jäälle sieltä, täällä on peli.

(Ha, unohdin, että Effi on jo kentällä. Kiitokset Suvikolle muistutuksesta.)

(Pari päivää myöhemmin myös Piraattipuolue on herännyt. Höpisee unissaan hieman sekavia, mutta päätyy kuitenkin oikealle puolelle.)

Thursday, 26-Nov-09 22:59
Just sayin'

Just out of curiosity, I went through Helsingin Sanomat discussion board and picked a news item about how much the fight against the climate change is expected to cost per person. Of course, the discussion board was flooded with discussion on whether climate change is real, and how it's actually a green conspiracy rivaling nazism, aiming to create a new world order.

So I spent an hour and I went through each comment, and noted how many typos or grammatical errors they had, and put them in three bins: Sceptics, Defenders and Others. Factual errors or hard-to-understand sentences were not counted - only real grammar errors. Quotations were also not examined, because the errors in them would be the fault of someone else.

"Sceptics" are the people who don't believe there is anthropogenic climate change. "Defenders" were people who believed it is true. "Others" were people who were mostly just complaining about the price, saying things like "we should really make sure our war veterans are taken care of first" (neither confirming nor denying), or just so unclear it was impossible to say whether they were for or against.

As you can see, the sceptics had over 3 grammar errors/typos per comment, whereas the defenders only had an average of 1.13. Others were in the middle with 1.71 errors/comment.

While the sampling is a bit small to draw any real conclusions, the result does not exactly weaken the image of climate sceptics as uneducated people who spew thousands of comments online with their mouths foaming.

(However, it was interesting to note that the same error patterns seemed to occur even in posts by different aliases. So I suspect that some people are using multiple aliases to create the appearance that there is bigger consensus. Which would be quite normal online, and is one of the reasons why feedback should be always taken with a grain of salt. Also, thanks to Muprhy's law, it's almost certain this particular blog entry is teeming with grammar errors. Then again, English is not my native language. So there. Besides, I think my brain is bleeding internally after reading through all those comments.)

Friday, 20-Nov-09 23:44

I've been doing triage on stuff found from my cupboards. Here's the stuff which I think might still be usable to people, so let me know if you need any of this stuff before I drag it to recycling.

I've got the following stuff to share for the price of postage (or you can pick it up or suggest a meeting in Helsinki area):
  • Apple iPod/iPhone Firewire wall charger (needs Firewire cable)
  • Apple laptop US adapter cord (from transformer to wall) [reserved]
  • Apple EU adapter plug for laptop
  • Bluegiga WRAP Multiradio Access Server
  • 2x256 MB DDR2 SO-DIMM 667 MHz
  • 2xNokia ACP-12E charger
  • 2xNokia ACP-8E charger
  • Nokia ACP-9E charger
  • Composite video and stereo audio to EuroAV/SCART converter
  • ADSL adapter for phone line
  • Amiga A520 TV adapter
  • Apple iBook/Powerbook 45W power adapter (not magsafe)
  • Retractable phone cable (e.g. for travel modems)
  • DLink AirPlus DWL-650+ WLAN adapter for PCMCIA slots [reserved]
  • TRENDnet TEW-429UB USB Hotspot Finder/WLAN card (802.11b/g)
  • Cables. All kinds of cables. Ask.

Following stuff is also available, but you need to make me an offer

  • Canon Wordtank Intelligent Dictionary IDX-9500 (Japanese/English) [reserved]
  • Psion Siena 512 MB personal organizer (good condition) [reserved]
  • Psion 3MX (display broken) + 2MB SSD + Scrabble. Usable as spare parts.

Friday, 13-Nov-09 00:25
class Son<?> extends Father<?>

My parents got us a present for the naming day of our son. It was a photoframe, engraved with his birthdate - the exact same kind of a photoframe that they had for me. They also gave me that photoframe, so we could put them side by side and display them proudly in our livingroom.

The thing is, the photoframe had a stock image of a generic baby, not a picture of our son, 'cos we hadn't found a good picture yet. The frame looked nice, so we put it next to the telly, and kind of forgot about it.

What was fun that every single person who saw that frame afterwards commented on how much the boy looks like me. Nobody stopped to consider that the boy in the picture looked nothing like the entity crawling on the floor. So we had to take the picture out so as not to confuse people.

Our expectations colour our perception.

(That, or I look like a generic baby.)

Friday, 30-Oct-09 00:16
Last Men?

I had a discussion with a friend about the climate change (which I think should really be named as The Global Climate Catastrophe, just to point out the urgency). For some reason, the possibility of the death of the entire human race came up, and the non-zero possibility that my child might be there to witness it.

The thought is so painful that I have no words. So instead I must borrow the words from Olaf Stapledon's Last and First Men - the epic story of humanity through the aeons, and the final thoughts of the last men:

But one thing is certain. Man himself, at the very least, is music, a brave theme that makes music also of its vast accompaniment, its matrix of storms and stars. Man himself in his degree is eternally a beauty in the eternal form of things. It is very good to have been man. And so we may go forward together with laughter in our hearts, and peace, thankful for the past, and for our own courage. For we shall make after all a fair conclusion to this brief music that is man.
Sunday, 18-Oct-09 17:09
Mopo, käsi, karata

Jälleen uusi tapaus, joka osoittaa, että joillain firmoilla olisi syytä hieman harjoitella tätä sosiaalisen median käyttöä.

Lyhyesti: Helmetti -keskustelupalstalla nostettiin esille Helmikeskus -nimisen yrityksen hieman erikoiset palautusehdot, joissa mm. vaaditaan kiitoslahjojen palauttamista, ja erikseen ilmoitetaan, että asiattomista palautuksista poistetaan rekisteristä (siis ilmeisesti joutuu yrityksen mustalle listalle).

No, kullekin tavallaan, ja yrityshän saa toki valikoida asiakkaansa, mutta keskustelu eskaloitui melko vikkelästi tasolle, jossa nimimerkki "Helmikeskus" poisti omat viestinsä ketjusta ja laittoi tilalle merkinnän "rl 24.10.2" - ilmeisesti viite Rikoslain 24 luvun 10 pykälän 2 momenttiin, joka määrittelee "törkeän kunnianloukkauksen". Lisäksi myös ketjuun linkittänyttä, erittäin asiallisesti kirjoittanutta bloggaajaa on uhkailtu jo oikeusjutulla.

En nyt tietenkään ole mikään markkinointiekspertti, mutta eritoten Suomen kokoisessa maassa, jossa sana kiertää nopeasti ja merkittävä osa harrastajista pyörii samalla foorumilla, luultavasti eräs huonoimmista markkinointitekniikoista on vetää herne nenään arvostelusta ja uhkailla mahdollista asiakaskuntaansa oikeusjutuilla. Kannattaako tilata, jos on syytä epäillä, että mahdollisen ongelmatilanteen tullessa raastupa saattaa olla ensimmäinen askel? Se olisi melko kova hinta muutaman euron koruista.

Yritystä ja sen tuotteita ja toimintaa saa - ja pitää - arvostella. Jos yrityksen edustaja lähtee julkiseen keskusteluun yrityksestään, on syytä olla varovainen sanoissaan ja kasvattaa melko paksu nahka. Hyödyt ovat melko selkeät: parantunut kommunikaatio tekee asiakassuhteesta henkilökohtaisemman, mutta vaarana on toki se, että tunteiden leimahtaessa asiakassuhdekin palaa mukana. Fiksumpi yritys olisi tässäkin tapauksessa voinut kääntää tilaisuuden voitoksi havaitsemalla, että asiakkaat eivät pidä tilanteesta ja muuttamalla ehtoja. Siitä olisi saanut hieman näkyvyyttä ja asiakkaille hyvän mielen; mutta yrityksen edustaja päätti kuitenkin syyttää foorumin keskustelijoita "vapaamatkustelijoiksi" ja keskustelua "ala-arvoiseksi". Ei ihan se paras valinta. Jännityksellä odotamme aikooko ko. yritys ajaa itseään pidemmälle suohon.

(Disclaimer: yksi Helmetti-foorumin ylläpitäjistä on vaimoni.)

Päivitys: Yritys muutti ensin toimitusehtojaan järkevämpään suuntaan, mutta on nyt ainakin toistaiseksi laittanut lapun luukulle. Toivottavasti kuitenkin vain hengähtääkseen ja palatakseen sitten, no, yrittämään. Hieman asennetta asiakaslähtöisemmäksi muuttamalla varmasti pärjäisi, sillä laatu ja hintahan olivat käsittääkseni ihan kohdallaan.

Päivitys 2: Korucorneriakaan ei enää uhkailla. Pientä toivoa siis tilanteen korjaantumisesta siis on!

Sunday, 04-Oct-09 12:41
Scrobbling FTW!

Even though I use Spotify a lot, still is my favourite music service. Whenever I just need music to listen to, is way better in figuring out what I like, and is much better at discovering new music (or old music from artists I didn't know). And lately, it's become better and better at it.

Took me a while, but I just realized what's going on: Since I've enabled scrobbling on Spotify, every single song I play goes to the database. And since I use Spotify only when I want to listen to a certain band or song, has been collecting a fairly accurate representation of my music taste.

So the more I use Spotify; the more accurate becomes. This is a wonderful business model - the more you use a competing service, the better your own service becomes! And, the end result is more value for everyone, since Spotify is now even more useful to me as an interface to!


Thursday, 24-Sep-09 16:26
HTML5/CSS3/Javascript is the new x86

Web apps. Widgets. Websites. All dispersed along a line, where at the other end you have static HTML and at the other end you have fully self-contained Javascript applications (widgets), that only perhaps contain a single <script> statement in their HTML. These are the building blocks of Web 2.0; stuff that was growing in the background while everyone else ogled over Google Docs and Wikipedia and oh-my-god-but-what-does-this-all-mean.

Without much ado, the browser has become the operating system. But at least my personal problem has been for a while that Javascript is a really lousy environment to work in: tools pale in comparison to commercial grade Java tools (try to profile your Javascript app - you've only got bad and worse solutions) and the language is, well, gnarly.

But if we treat the browser as the operating system, then is it not logical to treat the Javascript/HTML/CSS environment like a binary interface instead of a programming environment? You can see already how inadequate the environment is by looking at the dozens of libraries that have spawned, such as JQuery, Dojo, Mootools, etc. This all reminds me of my early programming days, when I sweated with the 68000 assembly language on the good ol' Amiga. Everybody wrote their own support libraries at the time, and the most popular became essentially the basis of later operating systems.

So would it be too far-fetched to call the HTML5/CSS/Javascript combo (call it JCH, pronounce like you're coughing) the new x86 assembly language? They're both fairly sucky environments but if that suckiness is hidden by more rich environments and languages on top of them, they can simply become the workhorse on which all major development will occur in the future. And much like most current programmers don't understand about x86 assembly language, perhaps future programmers won't know diddly about Javascript closures?

The logical next step would therefore be to port well-known languages to create JCH instead of their own bytecode or assembly. Not surprisingly, these tools already exist: Google Web Toolkit creates JCH from Java; ScriptSharp from C# and Pyjamas from Python. And who web developer hasn't used an HTML editor ever to design their HTML/CSS page? Also, look at how Java Virtual Machines turned from the sloths they were into the performance monsters they are today - and then consider that all those lessons are almost directly applicable to Javascript engines. The development of JS engines in Chrome and Safari has been mindboggling over the past couple of years, just the same way JVM performance and x86 performance has beaten all expectations.

Perhaps the secret to the next web (and if you call it Web 3.0, I will break your legs) is the realization that there's now, finally, a unified binary interface for all developers which is already deployed on every desktop. It's, again, going to be the developer playground just like the original web was.

We ain't seen nothing yet.

Saturday, 19-Sep-09 14:10
The iMac moment

I bought yesterday a used iMac (the Aluminum kind, if you're interested). I figured that since the technology in iMacs hasn't changed in the past year-two significantly, a used iMac is better value than buying a new one. Recycling is good.

Anyway, I bring it home and start playing with it. Wife comes in, looks at the iMac standing on the desktop.

"What? A new monitor? I thought you were supposed to be buying a new computer?"

"That is the computer. See, DVD drive slot, USB..."

Stunned silence. Jaw dropping.

Such are the moments that every engineer and designer should live and strive for.

Tuesday, 15-Sep-09 17:09
NFC ピタゴラスイッチ

Pythagoras Switches (aka Rube Goldberg machines) are wonderful contraptions in which one small thing leads to another which leads to another, etc. One of the most cool examples is this Honda commercial a few years back.

Now, some old friends from Berg and The Oslo School of Architecture and Design put together this really awesome "Nearness" video demonstration, in which nothing actually touches each other. Everything is done with the power of Near Field Communications (NFC), magnetism, radio waves, and other unseen phenomenon. It demonstrates the point that I've been saying for quite a while: The power of NFC is its inherent hackability. Be happy it's not secure, because secure often means "locked down unless you agree to play by the rules". Security happens at application level, and it's the worry of the big boys.

If only we could see better, so we might better appreciate the unseen.

Just go have fun with the technology. That's how all the cool stuff always gets born.

Monday, 14-Sep-09 01:19
Things I've learned about food recently

Ever since the kid started on non-breastmilk, life has become rather fascinating. It's one of the major steps out of babydom, and the journey of discovery is fascinating for, well, the whole family.

Here are some of the things I've learned recently:

  • Porridge is as much as a paint as it is food.
  • Everything tastes better when eaten directly off the table
  • Any food can be bounced off the floor. Even oatmeal.
  • Blackberries turn the poo, well, black. No need to call 911.
  • Any food tastes better with a song.
  • Best songs consist of a single syllable and no melody, repeated ad infinitum. E.g. "LOL"
  • Though Imperial March and Star Wars main theme work fairly well too to open "the docking ports".
  • Rotating the spoon while humming Blue Danube might not work, but at least it amuses the father. Requires viscosity and adhesion of the food to the spoon to be above a certain level.
  • My accuracy at hitting randomly moving objects has improved radically over the past few months. Even though the mouth of a child can seemingly rotate to the opposing direction of the head, I can still hit it. Most of the time.
  • Feeding behind the corner is surprisingly easy, after you have had a bit of practice.
  • All foods are suspicious at first. Especially the ones you've had before.
  • Eating is an equipment sport. The sheer amount of anatomically formulated baby spoons outnumbers the amount of possible body configurations by at least a factor of four. Makes you wonder.
  • A hand can be faster than the eye. No magician required.
  • Shoes are a food group. As are soft puppet animals.

(Updated on 15th - forgot about shoes.)

Monday, 31-Aug-09 10:21
First Entry

Kasa is collecting the first entries of Finnish blogs. Quite a few of them are either "test message" or "Let me explain about this blog..."

I can still remember how my first message came along... I had been tweaking the system here and there (yes, I write my own blog platform, thankyouverymuch) for a few days, but I didn't want to start with a "Hello world" -post. I wanted to say something minimalistic yet profound, as significant as the first word of a child, but in the end all I could think about was the fact that a) I was frigging lonely but I couldn't say anything about it without appearing whiny, and b) it was REALLY cold outside. Something in the order of -30°C with a wind chill factor taking it down to -50 or so. I remember some friends in Oulu telling me on IRC that we had it warm in the South - it was even colder up there.

So there you go - that's the story of the first words of this blog.

Sunday, 30-Aug-09 23:20
Kiddie pictures on the evil internet

Father and Son
The Finnish "Oh My God We Must Protect The Children At Any Cost" - organization (aka "Pelastakaa Lapset") is again Very Concerned about people putting their kid's pictures online - "because they might end up with people who might do Evil Stuff with them". The implication is that the internet is filled with people who have nothing better to do than to spank the monkey at the sight of a funny picture of a kid in bath, and that hordes of perverts will descend from the sky and tear each other apart for the privilege of seeing a bit of naked child body.

Well, maybe I'm overexaggerating slightly, but these are folks who welcome almost any lengths of online censorship in the name of child protection. So the obvious reaction of any freedom-loving person is to laugh at the idea.

But hold on - I actually believe they are right in this case. Not because I would imagine that the online world is filled with perverts (which obviously do exist, but as usual, censorship is the wrong solution) - but because of a far larger concern: everyone's right to privacy.

A child is not able make an informed decision about choosing what to share or not, and therefore it is the job of the parent (or custodian) to make this determination for him. And, in this case, I think it makes sense to err on the side of caution. We know that pictures are difficult to remove from the internet, so once you choose to be open in this regard, the child cannot undo your decision once he gets old enough. It's a one-way street, and you must be careful when you go that way.

You don't know what your child will want when he's older. Until then, you need to choose wisely.

Private comments? Drop me an email. Or complain in a nearby pub - that'll help.

More info...  
"Main" last changed on 10-Aug-2015 21:44:03 EEST by JanneJalkanen.

My latest photos