Sunday, April 05, 2009

Crystal ball 2012: The history of stranger chats

It all started in March-April 2009, when the first stranger chat, omegle, gained enough users to become an internet fad. The UI at the time was minimal, it just connected random people to chat with each others. It suffered from many problems: trolls, quick disconnects, drunks, people having different expectations about goals of chatting, etc. Because of these problems, many people didn't yet realize how big thing it was going to be. But some did.

Since many chatters seeked contact with the opposite sex, it was the first market which got split away. In July 2009, Speeddatestrangers.com came online. It filtered chat partners by sex. When the user count increased, it was possible to do more fine-grained filtering by country and age, as large number of users ensured that connect times were reasonable even after filtering most people away. Speeddatestrangers.com also had mail: after disconnecting the chatters could send anonymous private mail to those they really liked, and just as easily ignore private mail from others.

At this time, the movers and shakers of the web industry realized that stranger chats were a natural oligopoly: The more users you have, the heavier filtering you can do, and the better match you get between the conversants. There is room for only a few megachats who can do heavy filtering to match like with like. The big players started to implement their chat engines, but it took years before the effort bore fruit.

1.7.2009 - 31.12.2010 was time when many small stranger chats surfaced and different methods were tried. The major features that developed were:
  • Filtering matches.
  • Soft matching based on optimizing large amount of lesser criteria.
  • Anonymous mail after discussion.
  • Ignore features for excluding creeps and too enthusiastic private mailers.
  • Reputation points. Machine-rated reputation points excluded quick disconnecters and copy-pasters, while peer rating effectively removed overly rude talkers.
  • Option to reveal full identity during chat.
  • Visually themed chats.
Also, specialized chats for specific target audiences mushroomed. The long tail behind the few big filtered megachats surfaced.

Two business models emerged. Big chats brought ad revenue. The second model was to commodize the stranger chat engine. StrangeWays, Inc. and ConnectBox were the biggest players. They started with very simple, omegle-class engines and kept adding features as time passed, copying and integrating the most successful features which surfaced in various stranger chats. StrangeWays was an offshoot from a web design company and it specialized in flash/silverlight clients and visually impressive chats. The revenue came from customization. ConnectBox was easy to install and scaled well, and was the engine of choice for smaller communities. Also open-source chat engine development started, but as always it was years behind the commercial offering.

Just like peer-to-peer networks beat video stores by instant gratification, stranger chats started to beat traditional dating sites when users got fed up with writing 20 mails without a single response. Stranger chats were a way to ensure that the other side was at least minimally interested.

Nowadays, all big dating sites have stranger chats, but true to their roots they are a bit different. Match.com has the biggest user base. The user chooses a set of strict criteria (sex, age, country) and further soft preferences (hair length, eye color, hobbies) from traditional dating criteria. Be2.com also has strict criteria, but it uses keywords in user's profiles to do soft matching. Eharmony.com puts once again quality over quantity: They use exactly the same algorithm to calculate compatability, and the users tell the server how much they are ready to wait. If they are ready to wait 10 minutes, they can expect pretty likeminded company.

All big webhosting companies offer stranger chats as extra service for any customer, just like they have offered web stores for ages. Smaller chats are commodity, and the open-source engines do the basic service well. Some big companies have tried stranger chats to promote common company values, but fears about spreading trade secrets and rumors have made them rare.

Once again the big companies which integrated the new innovation into their basic business model collect the biggest bucks, and a few quick entrepreneurs got rich during the time it took for engine commodization to run its course.

Saturday, April 04, 2009

Wednesday, April 01, 2009

I'm getting married

At eight o'clock, the doorbell rang. Behind the door were 3 dark-skinned men. When I instinctively pulled the door shut, one of them put a shotgun in the gap. Boy was I frightened! But when they said "You're getting married." I realized it was something worse than a robbery or a quick death.

In India, there was a girl named Smita in the next cubicle. Pretty face, young body, the stress of working a long shift in the middle of an alien culture in an officially certified shithole country, lack of other things to do; all these factors combined into an volatile coctail which made me to stupid mistakes, and now I'm going to pay full price for them. She's now pregnant.

Her relatives knew people in Finland, and they made it clear that they won't hesitate to use force against me to maintain her and the family's reputation. So I'm not sure how much longer I'll be here in Finland before going back there. The ultimate threat is not what happens to me but what happens to her if this is not solved.

Initiative of the day

Being untrained in quick talk, all I could say was "Oh, they started this kind of campaign!" when I entered gym and noticed a new "exercise 30 times in 90 days" campaign. Two girls were recording their gymgoings to the public tables.

It took some time to find the humorous angle. After exercise I went to sauna and commented to the other person there "Now they have started a public humiliation campaign! If you don't come here for 90 days, they are going to write your name on the table: Simo, 0 times." The other person expressed disbelief, after which the conversation quickly petered out.

Last week was tired and uneventful.

Wednesday, March 25, 2009

Advanced forms of the Game of Talking

In groups of 5 - 20 people, it gets more complex:
  • Usually there is some social organization, which gives people specialized roles.
  • Groups of that size usually fill some purpose. This brings "subject matter" element forward more strongly. This may make the game easier or more difficult.
  • Time becomes an issue: In a group of ten, not everyone can talk 10% of the time. Game of Talking is partially shut down. This does not mean that you can stay quiet: often Game of Talking is restricted to certain periods between "real talk" and you win or lose the game during these intervals which sometimes require quick thinking to even spot if the game is being played or not.

Monday, March 23, 2009

Impulsive initiative of the day

15 seconds before exiting bus, a man in front of me took a dvd for "History of Violence" to show it for the woman by his side. They talked something. When I went past I said "That's a great movie!" Should have added "because it probes the dark side of relationships between men and women", since that's why it's such a great movie for couples to watch and discuss, but invented that line 60 secs too late...more practise needed.

I'll keep logging these to remind that I'm on a training program.

Saturday, March 21, 2009

A better "bar" evening

This evening I achieved two conversation openers, and wasted only one hour.

Timeline of events (skip if you're in hurry)


After a lazy day I went to gym until it closed at eight. After eating at the Chinese restaurants which has replaced Atig Pizza (the meals are big and cost about 9e but it is not as fast as fast food. Overall, a good place if you're genuinely hungry, you get a big and healthy meal for a slightly bigger price.) I went to a party. I had talked with the organizer before and wanted to try my new social skills with him. I also wanted to dance to stretch my hands after gym training.

I entered at the same time as a man and a woman. After ordering I opened conversation:
me: "Have you been in this kind of sweg events before?"
he: "No, we just came here to wait for bus."
me: "Good way to spend a few mins...anyway, they don't usually have it here, it's usually at vastavirta or klubi."
After this the talk ended and they went to a table.

I waited for an hour for the dance to start. It didn't. After sipping the beer for one hour I left the bar.

In the bus stop, timetables had been torn away. I commented to a girl near the time tables "Of course _Saturday's_ time tables have been torn away!". She replied "Nii." Then I noticed that the electric display showed that bus would arrive in 10 minutes - enough to walk to the next bus stop. I realized that having opened the conversation I could ask the girl to accompany me in walk to the next stop, but 30 seconds has already elapsed, so the opening had "closed".

Initiative and implusiveness


Both conversation openings were exercises in making implusive initiative based on context. I want to practise impulsive initiative.

The two big differences between me and the men in relationships in India were exactly that they talked more and made more initiatives. If I become fluent in the game of talking and in making impulsive initiatives, the gap between me and them becomes much smaller.

Also, they say that impulsiveness is attractive to women.

I also missed one opportunity to impulsive initiative. When dancing didn't start at bar, I should have simply walked to some group and asked them if they want to dance to drive boredom away. A polite "no" or silence would have been the worst outcome, since in a dance music event the proposition would have been reasonable.

Didn't you just say you don't like bars...


I achieved the conversation opening in the first 2 minutes and just wasted the next 58 mins. The bottom line was positive only because I cut the losses, not because the bar gave much value for money and time spent. Stretching hands was necessary anyway, so having failed to do it at the bar I did it with some pp videos at home.

Thursday, March 19, 2009

The Game of Talking

My late big realization, of once-in-ten-years scale, is that there is a Game of Talking going on all the time when people meet. You always participate in it even if you don't register it consciously. I believe that in the last 10 years most of the unexplained shit I've received as well as almost total failure in human relationships were caused by too frequent losing in the Game of Talking.

The Game of Talking requires 2 - 4 players. The basic rules are simple:
1) You win if you talk more than anyone else.
2) You lose if you talk less than 20% of the utterances.
3) Your result is decent if you neither win nor lose.

In addition there are extra rules which make the game complex. The first extra rules ensure that conversation keeps flowing:
1) You get minus points if you shout, insult or say inappropriate things.
2) You get minus points if your comments are neither relevant nor funny.
3) You get plus points if you remove an obstacle which distracts someone else from playing well.

Too many minus points lose the game. Plus points can change a decent outcome into a victory,
but usually they are an extra game for someone who is already winning.

In addition, there are context-dependent rules, especially the balance between
sheer amount and relevancy varies wildly in different situations.

Losing too often spells serious trouble.

Signs that you are losing


There are two main punishments, which are usually meted out by the most extroverted person
in the group.
1) Insults.
2) Being treated as a child or otherwise helpless. This is more common among adults, where direct insults are often considered too game-breaking.

Earlier, I used to get punished for losing the game. I could analyze people's despise far too well, but couldn't figure out why I was being despised. After all, I didn't do much anything! I didn't realize I was participating in a game and losing hands down, every time.

Need for speed


Unlike in go, in the Game of Talking you don't have time to think. Quite the contrary, the aggressive players are all the time talking on each others, switching topic and even distracting with stuff that leaves you speechless if it catches you by surprise.

Earlier, I couldn't have played the Game of Talking because I wasn't quick enough in generating talk. It would have helped to know the factoid that to avoid despise, the amount of talk beats quality any day. However, the Game of Talking is not a factoid but a much deeper attitude.

Nowadays, if my talk percentage goes too low enough, I get a physical emotion of disgust, anticipating all the bad things that may happen if I don't open my mouth very soon. Since my natural instincts don't give much help, having the Game of Talking in the physical/emotional level is the only way to react quickly enough in deteriorating speech position, when I have nothing to say.

Tuesday, March 17, 2009

WOW: First raids

It takes about 30 raids to get used to the basics. These first 30 raids increase your self-knowledge by putting you under new kind of pressure. The pressure goes away when you log off and is totally harmless.

My first raid was to Shadowfang Keep in a group of 5, and it was pure chaos: I used wrong spells and had trouble with targetting and camera. I got lost twice and finally couldn't return to the group after a death. (Death in wow is a mere delay.) Then I left group, and got angry comments because the remaining 3 persons couldn't kill the last boss. Talking was out of question, since everything else took too much attention.

When your raid count increases you see how practise makes perfect and how panic and fear is replaced by routine. Also your knowledge about raiding increases: this includes especially the basic roles (tanking, healing, damage dealing) and rules of good raid behaviour (pulling, aggro, mana breaks, ready checks).

Brats who shout at you in a way you don't see among adults, as well as players who don't know anything about raid behaviour increase the stress and novelty of the first 30 raids.

Monday, March 16, 2009

Better body language and the new purpose of this blog

During the last 1.5 years, two events have notably improved my social skills and body language. At least Tommi commented once that he saw the difference, so it's not just in my head. For the first time in my life I see light at the end of the tunnel in getting a normal social life, including relationships with women. However, the base level was so low that there is still a long way to go.

In the first event I became a de-facto tech lead for a subproject of 3 people, being the only one who had earlier experience about the technology. For the first time, I had some responsibility for other people's work. Naturally, I didn't do it very well.

I had mental block against telling other people what to do, even when they expected it from me. (It wasn't born out of thin air. I remember quite well when there was Kanpai's meeting in Konttori. I was standing in the doorway. When it was time to choose a chairmain, Tarvainen jokingly said that at least not Simo, and everyone laughed at the idea of me being a chairman. I expected that mere hint of me in a position of responsibility would be answered with a sea of insults for years. It was surprising for me to notice that this didn't happen.)

Secondly, the abrasiveness of my interaction became visible in an ugly way. One person went into a kind of failure mode, where he let out helpless sighs of an oppressed victim daily. It irritated the hell out of me, but also made me realize that he probably expected me to debug the problem, but I couldn't really do anything about it. When I looked at other people around me they were surprisingly confident, encouraging at each others, and relaxed. Their pressure-relief skills and mechanisms would have solved the problem before it started.

Overall this experience made me smile more, made my interaction style less abrasive and removed many mental blocks.

During the trip to India two things happened. First of all, I noticed the importance of talking much. In small groups, talking less than 20% of utterances spells serious trouble, but this is a topic for a whole new post. Secondly, I was able to see how other people spend their days. Normally people keep their work/school, hobbies and chores so separate that I had very little idea how people of my age and social class live.

As a result, I saw that I'm not such a hopeless case, although the difference between the men in relationships and me is large in a few areas. Secondly, I talk more nowadays, and I've seen it have a positive effect.

Now it's a tight race between improving social skills and aging, which is going to cripple my ability to learn new social attitudes as well as my body. It's possible that I've already lost: they say that if you don't have sexual experiences by age 25, you are doomed. However, since there is a lot at stake (living alone 50 years without purpose vs. achieving middle-class happiness of an apartment loan, spacious car, 2.5 kids, and let's not forget the golden retriever) and since I'm seeing slow but steady improvement, I'm not ready to give up just yet.

The latest renaming of the blog is a sign that I'm raising the cat on the table and fighting to reach the end of the tunnel before the approaching train of aging hits me.

If I successfully solve this practical crisis, then I can again concentrate my blogging on technology, culture, politics, economics and philosophy like the rest of you. But before that I'm going to be anti-intellectual and keep both feet on the ground and blog about myself and practical daily life.

Sunday, March 15, 2009

My neighbour's wireless headphones

Bought Philips wireless headphones from Clas Ohlson. Now I can practise dancing pp in the middle of the night without waking up neighbours.

One of my neighbours must own similar headphones, since twice I've heard his/her music when my receiver is on but sender is not. First time some rap, second time some finnish rock.

So I won't watch porn with these headphones on...

BTW. I'm totally uninterested in his taste for speech & music and expect the same from him.
BTW2. Wireless keyboards can do the same. (Source: a stopped Helldesk blog.)

Saturday, March 14, 2009

Things I hate in bars

Last night was both unusual and usual. It is unusual for me to go to bars (go & pool with male friends don't count). When I do go it always reminds me why bars suck.
  1. Going there alone. Boring. Dancing makes it a little fun.
  2. Hangover. The next day is lost.
  3. Remembering all the little drunken mistakes.
  4. Watching how everyone else seems to know something about bar behaviour which I don't.
  5. No contact with the opposite sex (eye contact, for example). This is the advertized benefit of going to bars and bearing with the downsides, but in fact it never realizes.
  6. Vague feeling that clever advertizers are manipulating me out of my time and money and giving back nothing but frustration.
After staying away for a few months I forget these and conclude that it must be better to spend the evening in the middle of people...in the middle of opportunities...which never realize.

Friday, March 13, 2009

Signs of low market value

Today, I started the evening by drinking with a friend. Then he went home, and I continued to a disco (no proper band was playing, and I wanted to dance instead of just sitting and sipping bear alone, which is boring).

One woman made eye contact with me and danced as my counterparty for some minutes. She was over 40 years old, clearly past her reproductive age.

No younger woman made eye contact with me during the evening, despite the fact that I spent a lot of time in the dance floor and in some cases the imbalance between men and women was big to my advantage. There are 2 possible implications:
1) My sexual market value is very low, and women instantly see it or
2) I have no idea how to make contact with the opposite sex in drunken bar situations, and this lack of skill is crippling my ability to start relationships.

Wednesday, March 04, 2009

WOW: Easy social interaction

In WOW you can only win by aking others in the game world to join you. As long as you have manners, the worst result is a polite "no" and at the best is that you have company and you advance faster.

I'll talk about raids/dungeons tomorrow, but outside them you complete quests to advance your character. There are plenty of them open simultaneously. The quests become repetitive after intial novelty. Some quests are too hard to complete alone, so you ask others if they also need to do the same quest.

Then you notice that there is plenty to win. It's faster, you die less and you have company. You may even have fun discussion about some topic outside WOW, but that's quite rare, since most players are too young for that.

Group play also has it's problems, especially new players. The other seems to do everything fast, needs no pauses and talks all the time even in the middle of tight fight. Then you make some mistakes - get lost, die many times etc - or get pissed at someone hurrying you .

Then you notice there is nothing to lose. The following day you probably don't even meet that character, and there are plenty of other players.

The game structure puts incentives to cooperation while enabling you to exclude harm. I've never seen a place where it is so easy to talk to strangers.

Tuesday, March 03, 2009

In the beginning

WOW is a fun game to start. Each race in the game world has a background story and the quests you complete and the discussions you have with the non-player characters play together well. The graphics were also quite good for me, not having played any 3D game for ages. The lush forests, small cities surrounded by hostile populations and constant quests about war and struggle create a good atmosphere, and there is sense of wonder in stepping onboard a zeppelin for the first time.

When the novelty wears off, other elements fill the void.

Monday, March 02, 2009

HOW-TO: Get sick with WOW!

Simo' WOW guides is a new series of high-quality playing guides which help you achieve what only the most experienced and talented players used to! Today I tell you how to get sick with WOW!
  1. Season must be winter, the colder the better.
  2. Do some light exercise in the room where you play WOW, like jumping on a dance mat. Turn off heating to avoid excessive sweating.
  3. The next time you have a free day, use it entirely to play WOW. You should be able to log at least 16 hours when you play WOW with only food & toilet breaks in between.
  4. Repeat 3 until you get a cold!
Also other games which are immersive enough to make you not register cold will do.

Sunday, March 01, 2009

No more WOW

WOW is so damaging to real life that you can actually collect statistics about it. When I was in India and missed stuff (didn't go to some event where some others went) it was always due to playing WOW to early hours. Other people missed stuff by drinking too much and by disease.

Here are some gym statistics about the 6 weeks I've been in Finland:


WeekHow many times to gymDid I play wow
Week 45no
Week 53no
Week 64no
Week 74no
Week 83yes
Week 93yes


In the last two weeks, I've done nothing but WOW and gym in my leisure, a fact which is hidden by the statistics.

Today I cancelled my WOW subscribtion.

Friday, September 05, 2008

Tuesday, August 26, 2008

Pävämäärä ja päihdeongelma

Ensin sanottiin 1.7. silloin lähdetään
sitten sanottiin 1.8 lähetetään muita ihmisiää
sitten lähtö "varmistui" ensimmäinen yhdeksättää
sen jälken ei edes ilmoitettu päivämäärää

älkää kysykö missä loppuu uskottavuus
älkää kysykö milloin loppuu suomessa-asuvuus.

Thursday, August 21, 2008

The assignment to india realizes, in cancelled, realizes, ...

Now it seems that I'm going to India anyway, with 90% probability. They say around 1.9.2008, but there are reasons to believe it in fact happens later.

I've learned to hate the phrase "nothing has been signed yet". Last year, 2 people (not me) were going to be sent to India for a 2 months. That assignment was cancelled one week before it was about to start. Also this assigment has been postponed twice, and once they told me that they're not planning to send me even if it does realize. Due to this uncertainty I've been reluctant to announce the trip here.

Meanwhile, I've been playing World of Warcraft to get my mind out of the biggest change in life since military service.

Friday, August 01, 2008

EGC: My Final Results

My rank is 4kyu. The games ended 4k- 5k- 5k+ 4k+ 4k+. This is a solid 4kyu result. I expected that not playing much for a few years would have weakened me, but it didn't. I managed to avoid most 3-4 josekis, which I wouldn't have remembered anyway.

Thursday, July 31, 2008

EGC: Foreign Languages In EGC

First of all, I want to tell two stories that underplay the importance of language skills. First of all, Tommi said that learning foreign languages is mainly a hobby for the leisured. Secondly, a relative (mother's sister) told that she was visiting China as part of a tourist group, and the one person who had the best contact with the Chinese didn't even attempt to learn or speak Chinese - instead she used gestures. She was a nurse by occupation, so she was exposed to huge amounts of human relationship training in her work.

Here, I've met Swedish, German, British, Japanese, Korean and Chinese persons. I bought a Swedish novel (Kafka On The Beach) and to my surprise understood most of what I read. Despite that, spoken Swedish is producing problems: I couldn't understand anything announced on the train, nor anything spoken by the organizers. Reading the written notes poses no problems, though.

I've read the mandatory 6 years of Swedish, voluntary 2 years of German, and one course of Russian. In addition, I'm making good progress on Chinese (level of knowledge: 1500 - 2000 characters, while uneducated Chinese know 3000 - 4000 characters and educated ones 5000 - 6000). Also, I've banged through Slime Forest Adventure, a teaching game for Japanese. Being fluent in these these languages would give quite good coverage of the languages used in EGC (except for Korean), but I've noticed that even spoken English is quite difficult to understand when spoken by totally unknown persons with whom you haven't got a second of communication before, and on the other hand that most communication can be done with very little simple speaking. And English is fine for that little simple speaking.

There were some lectures where the lecturer couldn't speak English at all and all content was translated. (A Chinese speaker read straight from written notes which were also displayed on screen and immediately translated, which was great for me who am studying Chinese.) Translation slowed down the lectures and drew attention away from the content (which wasn't interesting at all in those translated lectures anyway).

Also I've spend most of my leisure among the Finns, and when people gather up, they usually gather according to their language group. Exceptional are mainly the British, who can go anywhere and be understood in their native language.

To sum it up, EGC underlines the importance of knowing well a few languages, so that you can actually understand what is spoken, the unimportance of hard-to-develop foreign language skills, the fact that the most widely teached and spoken languages really do cover the languages you'll meet, and the fact that mutual effort to be mutually understood by any language (gestures, speech, prices) easily overcomes language barriers when there is need.

Life Around Lake Siljan

Yesterday, I was on a tourist bus trip. The trip took whole day and we visited towns around lake Siljan.

Half of the participants were Japanese. They're a nice group of people to go to tourist trip with, since they're unashamedley conformist, which is usually good when visiting totally new places.

Pretty much the whole region is full of houses which are similar to the picture below. They are made from wood, and painted either red or black. The corners are painted either white or black. The guide told me that that in many places they don't give permissions for other kinds of houses anymore, and also that many families build the houses from their own forests.

red house

What do people around Siljan do for living? Very, very few get living from farming, the tourist guid told that Leksand has about 10 farmers. Even if you add part-time farming and animal husbandry, it doesn't do much.

The guide told a lot about tourism, probably because she knows the industry inimately. In Rättvik, pop. 12000, there is an old car event which brings 30000 people there for one week. And the go congress of 1000 persons for two weeks is quite big event for Leksand, pop. 6000. He told about a village with pop. 200 and 6 hotels.

We also visited a Dalacarlian horse workshop. The horses are 5 - 50 cm high. The factory makes a rough cut with a bandsaw, sends the rough horses to carvers who work in their own houses, and then to painters. They have about 50 carvers making these dalacarlian horses.

Dalacarlian horse

Naturally there is also a lot of services which are essential for maintaining modern standard of living and industrial base, but the guide didn't tell about any specific big export industries apart from tourism, hadicrafts and forestry.

Tuesday, July 29, 2008

EGC: Europe: An Emerging Market For Go Education

It's funny and scary to see how others take dead seriously something that is only a hobby for me.

AC Nielsen is a big market research company, which collects market research data by web panel, among other means. The web panel works so that about once a month they send a web questionnaire, which takes 5 - 30 minutes to fill.

Typical market research questions include:

  • Brand recognition: They list a set of brands and ask which of them are familiar.

  • Brand image: They ask what kind of associations some brand brings into mind (quality, price, user group, etc.)

  • Advertisement coverage: They ask if I've heard about a specific campaign.

  • Buying habits, needs, preferences



Well, some players from Korean Myongji Baduk University were collecting similar information about go teaching. The brand recognition part was replaces by asking people to compare Japan's, Korea's and China's influence and contributions to go.. The need part was directed at gauging how much demand there is for professional teaching either face-to-face or over the internet, and what attitudes people have towards go and teaching.

Some questions were quite far-fetched: Since in Europe we use a mix of local language, English and Japanese, unification of go terms and concepts couldn't be less meaningful - it's such a small part of the whole body of knowledge. Also material is widely available. Therefore I guess it does produce new information for those who do it, and you are going to make your living as a go professinal, this kind of market research is the things to do.

Sunday, July 27, 2008

EGC: Trust And Social Condemnation In The Countryside

Greetings from the go congress. Arrived on Saturday, will spend 7 days playing go, meeting foreign people and idling. This is also my first trip to a foreign country, so I'll use this to decide if I like travelling or if watching TV has brainwashed me to believe that I MUST travel, MUST travel, MUST travel...

I grew up in Pinomäki, a farming area near Pori (pop. 80000). The go congress is at Leksand, which is very similar to Pinomäki. Big, spacious farm houses and crop fields everywhere. The distances (1 - 5km to everywhere) are also pretty similar.

What really sets small town apart from cities is the high level of trust among citizens and the power of social condemnation. I'll tell you an example. When I arrived at the Bed & Breakfast accommodation house (3k from center), there was nobody present. The door only had a note announcing opening hours and a phone number to call outside opening hours. When I called the number, a female instructed me to just open the door (no lock!), to take the room key from reception and to mark my name from the list of guests. They trusted that the person who came there will act according to their assigned role (hostel customer) and won't do any damage, that is, they'll use their common sense.

The rooms and public spaces also had lots of notes. You shouldn't take soap from the toilet, because it will prevent other guests from using it, said one. Another told that you can use the kitchen facilities as long as you leave the dishes washed where they were. I've never seen so many notes in urban premises. Basically, they believe that people will to what they are told.

This works in the countryside: They know that the people who come to the house are go players, they know their names, and should there be "rotten eggs" then the group of go player would probably get forever socially condemned. They save huge amounts of works by not keeping the house manned, and most people know how to behave, so it is economically rational to trust to the power of social condemnation.

Next, I'll compare the experience to Queen's Hotel in Stockholm, where I spent Friday night. It was in the main walking street in Stockholm (Drottingsgatan) so huge amount of people walked past, certainly containing some rotten eggs. To get inside the building you just needed to open the door, which was not locked in the first place ... no!!! you had to use a doorbell and talk with the receptionist, which opened the door. They had few instruction notes, they offered the basic hotel services which everyone knows.

The price for a night in Queen's Hotel was ~80e. In the guesthouse it was ~35e, so trust clearly makes transactions cheaper. The service is essentially the same.

Tuesday, June 17, 2008

Potential Offshore Assignment To India...

...didn't realize. My life continues to be pathetic and insignificant in a mediocre way.

Preparing for it was nice though; I would never have read travel guides about southern India nor God of Small Things without the looming trip to another country. It kind of made me realize how boring my life is.

Friday, April 18, 2008

Drunk: The Essence Of Social Life

Lately, I've noticed the importance of social skills. They didn't matter a year ago, when I was just expected to do what I've told and to apply a little proactive attitude in it. But then I had a worldview-changing experience: Having a little responsibility about other people. That made many things click, especially the motto "Judge talent by its best, character by its worst." Social skills still don't matter in the leisure, since social skills don't produce much fun in the leisure, and the marginal benefit of being more skilled is very small.

The two things I realized were:

  • Social skills matter, since there is a process which tends to put me to a position where I run into trouble if I don't have enough social skills. The process has repeated thus far two times. There are valid reasons to believe both that it will repeat itself and that it won't repeat itself a third time .

  • Having your shit together goes a long way. Even without social skills, you may become a one-eyed king in the land of the blind.



So, here are a few posts about getting a rich social life.

Mostly, we thing you're boring.

Loud for sure. Less reckless than you might think.

Tuesday, April 01, 2008

Joining karhukerho

Bought a skiing set for 90e: Karhu planks, sticks, skiing shoes and a connection piece between skis and skiing shoes. Walked home carrying them (no snow left), but no one looked at me in a strange way nor commented anything.

Monday, March 24, 2008

Review

It captures well the frustration that I have with approaches to life that require IQ and wide reading.

It also blames others for my own faults, which is not a good thing. The disclaimer shows that I was aware of it but couldn't formulate the thoughts in a proper way which would have avoided it.

It ignores the notable entertainment value of hanging out with go players, concentrating on utility.

It could be more focused.

Sunday, March 23, 2008

Drunk: Can't Stop Blogging

First, a disclaimer. This post is not about you, it's about me noticing that the approach which has evidently brough much happiness for you is totally useless for me, and about formulating an alternative.




Being the attention whore that I am, can't stop blogging. The problem with blogging is that it brings indifferent kind of attention. Not good attention - the attention of new people in general and women in particular. Not bad attention - the attention of people who are waiting to use the info against me. Just indifferent attention - attention which does not have even potential significance to my happiness now or in 10 years.

There is something peculiar in the circle of people who read this blog and who I've seen face to face. I'm referring to the go player demographic. Their talk seldom touches relevant and important things, but always lingers around and teases enough to have kept me in their company for years. Here are a few examples.

1) Market value talk.
This talk peaked in the Habsburger days when finding girlfriends was a timely challenge for them. They talked about it in very abstract terms, using evolutionary psychology for justification and quoting the behaviour of apes. Maybe they were able to draw links between everyday behaviour and the high theory, but for me, something way more concrete like Rules of the Game would have much better.

2) Despite many of them working in the same profession, not once have I heard them tell their pay. Yeah, thanks a lot for the help in pay negotiations. Instead, there is an unwritten rule to avoid discussion about work-related topics.

3) Political crap. Talking about it is a fun pasttime, but who cares?

One important exception is programming, a topic which is both practical and where their talk is on the same level, at least as long as no one mentions category theory.

Wednesday, January 09, 2008

Warnings (2003)

This cheap thriller is in my opinion a masterpiece, but most people hate it deeply. I can't recommend it to anyone, since most people have the same taste as most people.

The atmosphere is really thick, and keeps the viewer in suspense all the time. It starts in Stephen King style with an extremely intense scene. There is a man living alone in a farm house. He's drunk, carrying a gun and scared as hell that aliens are coming to get him, proclaiming loudly that he's ready to take them. There's a psycho-style scarecrow in a sofa, and he's talking with it all the time. Then there are noises and strange lights and the man starts to chase them, but it's not clear if he's just lunatic or if he's after something.

The main events start when a cousin of the man in the farm house hears that the he's dead. He goes on to clear the house with a group of his friends. The suspense stems firstly when they discover various signs of lunacy, secondly when they start to see inklings of the phenomena that caused the lunacy, and lastly about aliens themselves.

The strength of the film is that it relies on dialog and instead of showing the beast, it describes people's reaction to the signs left by the beast. The second strength is the intense atmosphere, which is created by skillful play with viewer's expectations, good soundtrack and massive but controlled onmarch of pretty much every suspense trick you have ever seen in any thriller.

On meta-level, the film works even better. The director is showing off and making a challenge to others. He's saying "I'm showing you how thrillers should be done! I can make this good film by concentrating on storyline, atmosphere, social interactions and other things that matter! Keep your special effects, all I need is 12 days and a budget under one million!" Here are the observations that support this:

  • He packs all known thriller effects to same film - haunted house, scarecrows, traces of something big and scary, tarot cards, beasts that are not seen, claustrophobic corn field, not knowing what is lunacy and what is real, kitchen utensils that cut, sudden appearances that are sometimes other people and sometimes the beast.

  • When the beast is finally shown, it is almost anti-climax, as if he was making a tribute to films that are free from supernatural forces.

  • The film is very consistent. By consistency, I mean that it doesn't contradict itself, doesn't invoke "people just don't behave that way!" reaction and sticks with its assumptions. Consistency usually means that the person making the film knows exactly what he's doing.



Talking about assumptions, it makes one big assumption (which is spelled out in the end) and sticks with it. On my own thriller consistency meter, Wicker Man and Witchfinder General score the highest level. Everything is explained by personalities, situations and social dynamics, no supernatural beings are assumed and large-scale consistency reigns to the end. Warnings gets to the second-highest level: it makes one assumption and sticks with it, and pretty much everything is explained by that assumption and its lemmas. I'd put The Excorcist to the same consistency level.

If I had to choose one film that captures the spirit of Stephen King's novels, this would be it. The intensity structure is the same. It starts with a short, intense scene that gives foretaste of what is to come. Then it does a series of "speed tests" that start out in normal, sane and peaceful conditions, increase intensity gradually and end up in a panic. In the end, there is long uninterrupted mayhem. When it ends, the whole film ends - there is no clean-up. And did I mention the atmosphere, skillful assembly of standard building blocks and emphasis on people's reactions?

Here's one review from IMDB which explains why I like the film but others don't:

"I saw this movie on the sci-fi channel, and I was suprised how good the story line was. I was enjoying the movie until the pitiful cartoon computer generated looking aliens showed up. They should have had men dress up as the creatures, at least they would have looked more realistic than the cartoon looking creatures. The storyline gets a 8 out of 10, but the effects get a very lousy 1 out of 10! Overall the movie I would give it about 4 1/2 out of 10!"

Thursday, November 08, 2007

What do we need to save the world?

Guns. Lots of guns.

And since it's not guns that kill but humans, also concealed carry permits are needed.

Friday, October 19, 2007

Not for, not against (France, 2002)

Caty, a 27-years old news photographer meets a chance to make money quickly by photographing a robbery. She starts to hang out regularly with the gang ...

The back of the film box tells this much, and I won't spoil more. It's a noirish film, where an ordinary citizen is gradually attracted to the dark side. "In the beginning: How I became Femme Fatale" could be its second name.

I like the first half for several reasons.

Firstly, it meets my minimum standards of realism. There wasn't any single scene which would have invoked "People just don't behave that way!" alarm. The petty criminals have low impulse control and don't care about harm done to others, and are attracted by glamorous life of bling-bling and sex. The criminals as well as the girl believe that you can get something for nothing - the lottery ticket which the girl scrapes sum it up quite well.

Secondly, the sexual market value interactions were about right. The man showed high status by demonstrating his affluence. He demands that thing are done his way; at the same time he signals indifference by making it clear for the girl that she simply leave if she doesn't like his way. The man also gives protection for the girl; the gang liberates the girl from unwelcome approaches by threatening with violence those who try to approach.

Thirdly, it captures well the sense of urban existential void and isolation, both in some scenes and in the background music.

The girl is somewhat contradictory combination of high class and low class. The fact that she practiced ballet dancing, chose a semi-artistic profession and lives in a spacious apartment implies middle-to-high class. His eagerness to make quick money and lack of parent involvement during the whole film implies low class.

The second half is like an entirely different movie, but the final solution is superb.

Monday, September 10, 2007

Sexual Market Value 101

That could be the second name of Dumplings, a Korean thriller/horror movie. The main character is a formerly beautiful woman who has attracted a rich man to his side. Her decreasing looks cause a temptation for him to trade up...

The best thing about the film is that it is free from hypocritical feminist undertones. Both men and women are equally capable of evil, and both view the sexual market as a game with losers and winners.

FTO 3/3: If You Already Are Rich, FTO Is The Key To Stay Rich

The title sums it all. I intended to tell about a super-rich relative of mine (which I've met once) and quoting Millionaire's Daughter, but that wouldn't add anything relevant.

Here are some mottos with the same message.

Those with affluence and FTO can afford their expensive cars and houses in the same sense as a middle-class person can afford a bathroom renovation.

Take a luxury good that creates most envy among the poor. The envious poor can't imagine how little it means for those with affluence and FTO.

If you fear that your clothes get stolen from the drying wire, despite the fact that it hasn't happened earlier in that neighbourhood, it means that you are wearing too expensive clothes.

Monday, August 27, 2007

FTO 2/3: Future Time Orientation in The Damage Done

Damage Done is an autobiography of an Australian drug mule who got imprisoned in a Thai prison for 12 years. It also shows the strengths and weaknesses of short FTO: brilliant short-term tactical decisions combined with insane risk-taking and ignorance of warning signs.

FTO 1/3: Future Time Orientation in Oldboy (Korea, 2003)

Oldboy depicts a man with short FTO right from the first scene. In this scene, he's drunk in a police jail, noisy, impatient, resisting his chums and police, a disgusting and unempathic anti-hero. This image is strenghtened in later scenes.

The film also shows the strength of short FTO - namely, ability to make the best out of every situation. This is especially visible in his popularity with women. The film shows two successful seductions and hints at much more. (That bring this post by Bulletproof Pimp into my mind. In both Oldboy and this post, physical fitness was the only factor where the men showed long-termism.)

There are also two few scenes where long-term approaches turn out to be useless. The first of them happens at the imprisonment period, but I won't spoil it. The second happens some hours after the main character has been released. He faints and wakes up again. He utters a scientific-sounding hypothesis that lack of vitamin D and sudden sunlight made him faint. His girl answers "I hope you don't always talk like that." In the end, the hypothesis turns out to be false. Reliance to scientific explanations, a long-term strategy, turned out to make him unpopular and misguided.

The short-termist philosphy of life is also pronounced explicitly. In one scene, a gangster boss takes a tooth out of the protagonists mouth as a revenge. Then the gangster puts the pliers close the his mouth as if planning to pull another teeth. The protagonist shouts, expecting pain. At that point the gangster takes the pliers away and says "Don't imagine. You fear because you imagine what might happen. Don't imagine, so you don't fear."

The ending reflects well the main character's revulsion towards long-termism. The most important causes and consequences of the plot turn out to be arbitary and unbelievable. Things are not really explained in the end; they are messed up in the end. And in the eye of the madness, the short-term tactician wins over the long-term manipulator.

Sunday, August 05, 2007

Smoking in Oldboy (Korea, 2003) and Lady Vengeance (Korea, 2005)

Oldboy and Lady Vengeance are two revenge-themed films by Chan-wook Park. They have the coolest smoking scenes ever.

In Oldboy, the main character has trained martial arts against a wall in prison, not being able to practice against opponents. When he gets free, he wonders if "15 years of imaginary training can be put into use". He goes to a gang of 5 juveniles, takes a cigarette from one gang member's mouth and inhales. In the next scene, he gets a strong kick to stomatch and falls on his back, arms and legs spread. He raises the hand holding a cigarette, puts it to his mouth, sucks a dose of Nicotine Power, and rises up to beat the gang with bare hands.

In another scene he's in a schoolyard. There is a girl riding bicycle around the yard. In order to see better under her skirt, he goes to a push-up pole, hangs upside down in it and lights a cigarette. A schoolteacher comes to say that he can't smoke in a catholic school, but the main character dismisses it with a cool rebel attitude by saying that he leaves the school tomorrow. After some minutes, he goes on to seduce the girl.

In Lady Vengeance, the strong and independent main character lights a cigarette after soul-shaking session of sex.

PS. 50% of Korean high school males and 30% of females smoke more than 5 cigarettes a day.

Saturday, August 04, 2007

Life Is Full of Choices

On the one hand, there is Kiuas performing at Jalometalli festival at 18.8.2007. On the other hand, there is Culture Beat performing at D-Fest at 17.8.2007. These events are exclude one another, since if I go to the (chronologically) first, I'll drink so much that I won't be interested in travelling to the second. Is any of my dear readers willing to go with me to either event? If there are several readers, youung, fertile women are preferred. If no reader is interested, I may be too lazy to go to either event.

Friday, August 03, 2007

Bang Rajan (Thailand, 2000)

The cover of the film advertised it as "the Braveheart of Thailand". After summarizing the plot, I'll compare it to Braveheart.

The film is set in 1800th century Thailand. Two Burmese armies are on its way to Thailand's capital Ayuttaya, destroying, looting, raping, killing and enslaving everything on their way. Bang Rajan has successfully resited earlier Burmese conquest attempts. The survivors from other destroyed villages are escaping there for a final showdown, having few other places left to escape to.

In Braveheart, I wondered why the Scottish preferred the abstract concept of freedom to a violence monopoly of the most successful and enlightened sea power of the time. In Bang Rajan it is more clear why people choose to fight. There are long flashback footages where the Burmese come to burn and loot Thai villages. There also seems to be a mutual acceptance of killing: both the Burmese and the defending Vietnamese are very keen on killing them all in the opposing side. However, there are two scenes where the Burmese imprison and enslave the Thais instead of killing them, so it's not all about genocide.

Braveheart concentrated on one heroic individual and his defining experiences. The main characters of Bang Rajan represent the wider experiences of the villagers. There are escapees from another village who witnessed the destruction of their homes and killing of the people with whom they lived. There is a squad of men who have successfully fought against the Burmese before. There are pregnant women who are worried about the future of their men and offspring.

The most striking difference between Bang Rajan and Braveheart is the total lack of sophistication in Bang Rajan. The motivations or the villagers are very simple, usually linked to survival, sex, security and food. When they choose a leader, the best justification they give for him is that he is "strong and hates Burmese". There's very little tactical reasoning, which could be compared to Braveheart's long spears that are used against a cavalery attack. Even the Western-style moral sermon - where a Buddhist monk claims that also Burmese are human beings - is quite naive.

I didn't watch Braveheart to the end, since the rugged individualism got too thick. But I did watch Bang Rajan. Despite its crudeness or thanks to it, it stays consistent ("pysyy kasassa") through the whole film. It is the perfect propaganda movie: There is nothing abstract or delicate or implicit, but instead it blasts its message to viewers' face in cat-sized letters in its long, unambiguous, repeated, gruesome scenes.

Thursday, August 02, 2007

I Have Nothing To Say

During the last month, I've started renting movies, so this blog will become a movie review blog for a few months. The following three changes have caused me to rent movies:

1) No more any obligation to try to use my leisure productively. As a student, there was always some book to be read or exercise to be done for a test or something. Not that I ever did them.

2) Being employed, the cost of renting a movie is insignificant to the time cost of watching it.

And, most importantly

3) I've found a way to pick non-boring movies! I look at the country of origin. If it is Asian, the movie is probably ok. Firstly, they are not Hollywood movies, which means that they don't make you so bored you stop watching in the middle. Secondly, they originate from a different culture, which means that they have lots of oddity and strangeness in details and the way things are told. Thirdly, the filter is really tough: only a small fraction of films reach the renting store, so the level is high.

Wednesday, June 20, 2007


  • Bought a shirt reading "Perfect Waves". It's perfect for a situation, where perfect sound waves are being played.

  • Perfect sound waves can be downloaded from Cantata Sangui's website. It's a goth metal band with two vocalists: an extremely high-pitched and clear female singer and extremely low-pitched male growler. The combination sounds really funny.

  • Steve Yegge is back, after almost being eaten by wolves!


Monday, May 14, 2007

... everybody has one.

This video ranks 20 Eurovision songs, showing 30-second clips from each.

It's funny how taste correlates. I agree with the person who made that video that Bulgaria, Malta, Slovenia and Georgia earn a place in Top 6.

It's also funny how taste doesn't correlate. Malta's song has catchy melody and exactly the kind of words that you could memorize and sing when you're walking and nobody's around. Still, it was dropped in semifinals, and the other Subjective Top 6 countries were evenly dispersed in chart.

Regarding the winners, Serbia is ok and the singer is clearly a pro. I have to admit that I just don't "get" Ukraine's song. Russia's song had the sexiest performance, despite the fact that many other performers were more scantly clad.

Friday, April 13, 2007

Ugly Betty

Being on the topic of marketing, it is nice to see Ugly Betty ads decorating the outdoor advertisement spots. At last a clothing style which distinguishes itself from the mass.

The other clothing ads don't even try. In live environments conventionally pretty girls work, but in media bland sexiness is boring and alienation kicks ass. Just like in Eurovision song context.

Simo The Mobile Application Developer

Do you think it is cool and hip to develop mobile applications? Send your congratulations to Nokia's marketing department. This post sums up nicely the image that Nokia wants to create about mobile application developers.

Mobile application developers are social and active extroverts, who participate in commonplace activities of young people:

Whether it's at a dinner-party or late night foray into a strange bar, the fact that I work for Nokia is an easy ticket to talk. People generally have powerful reactions, as more often than not I'm working for the company that makes the product that gets them to work, connects them with who matters to them, and gets them laid.


Mobile phones are sexy status objects, but also deeply personal companions to which the user attaches on emotional level:


(Sure there are often also comments along the lines of "why on earth don't you bring back that beautiful silver bullet phone [6310] - it was my favourite thing ever..." etc.) But the fact remains - we are still carrying a good deal of people's goodwill, and we mess with it at our peril. And nowhere is this goodwill more obvious than in the trusty familiar contacts book ...


Especially Nokia mobile phones are high quality:


... with a well-deserved reputation for solidity, easy to use, reliability and the fact that the damn thing just works.


Mobile application developers are open-minded and innovative, and not afraid of breaking rules and shifting paradigms:


One of our recent Nokia speaker series guests put it like this - the telco industry has lost the opportunity to innovate in the contacts book, whereas the internet industry has come along and invented an entire new industry - social networking - to fill this innovation void. Hmmm, food for thought?



Messing with the contacts book would be like painting a moustache on the Mona Lisa - an act of vandalism, surely. Surely? Well, I'm not so sure. I am deeply uncomfortable with the idea that things must stay how they were because that's how they have always been.


Nokia phones were created for trendy, sexy, active and successful people, by trendy, sexy, active and successful people.

Tuesday, April 10, 2007

Appendix I


  • Symbian folks know that C++ is not the fastest way to implement functionality. They demonstrate it by their actions: Symbian's IDE, Carbide.c++, is Eclipse-based which means that it is written in Java. Symbian's build system is a bunch of Perl macros.

  • Ilkka describes the irritation of low-level languages well in this post.

Monday, April 09, 2007

What's Wrong With Symbian

In short: Crippled C++. C++ is already quite a low-level language. Symbian has plenty of coding conventions and classes, which make this even worse. There is cleanup stack to prevent memory leaks; leave mechanism to simulate exceptions; and RArrays and RPointerArrays to simulate std::vector. Finally, there are active objects to simulate threads or message passing or callbacks or whatever, I'm still not quite sure despite using them for years.

Nowadays Symbian phones have as much memory as late 486s or early Pentiums, although the memory is slower. So is it really worth it to save miniscule amounts of memory and make programming harder?

The era of mobile Java isn't here yet. I mean, the era when the operating system consists of Java VM, device APIs, and some core high-performance units like phone calls, video codecs, OpenGL, etc. Java is still too slow. Therefore, C++ is still a necessary evil.

In addition to crippled C++, also APIs are less-than-perfect. Java developers who have used entity beans or Hibernate may feel schadenfreude from this fact: Symbian has an internal database in every device, but you can only access it with SQL. No object/relation mapping tools for you. In general, there aren't any helper APIs which wrap the functionality to an easier form. 2.5 years ago when I last programmed Symbian, the APIs also has stupid bugs, but I hope that is fixed now.

Friday, April 06, 2007

The Glass of Success is Half Full

As planned, I applied for J2EE jobs using Finnish annotator (FA) as a merit. FA was implemented with embarrassingly low technologiy: HttpServeltResponse.GetPrintWriter().println() produced most of the web pages. I got to 3 job interviews based on it.

After one interviewer told me that they used JSP and servlets to implement web services in 2001, in no uncertain terms, I realized my J2EE experience was inadequate and that I would rather be an experienced Symbian programmer (despite the shittiness of Symbian, which is worth anoter post) than a J2EE trainee. After that, I applied for Symbian jobs and got one from a mid-sized Symbian subcontractor. I'm not going to tell the name of the company, since I have no idea how it differs from other mid-sized Symbian subcontractors, and because they have their own marketing department to take care of their external image, thank you veeery much for your suggestion of advertising by blogging but no thank you.

The Symbian job I got pays 600e/month more than what I got at Nokia. I started 1.4. I still haven't been assigned to any project, but anyway I'll get more pay than ever before for carrying less responsibility than at the last months of Nokia.

If I had really wanted to get a J2EE job, I could have applied at J2EE Professional Trainee Program at Tapiola. But I thought that it was too easy, since from the 4 technologies they list (JSP, XML, EJB, WSAD) I already know JSP and XML and have read a book about EJB, so that only WSAD (whatever it is) would be totally new. Also, applying to the program would be dishonest, since my interest in J2EE is not about becoming a Tapiola man, but about developing the FA.

By the way, "professional trainee" is an oxymoron. Who wants to be an oxymoron?

My initial plan with Finnish Annotator was to collect a 5000 word Finnish vocabulary by September. This would have required me to write English definitions for about 24 words a day. Now that I actually work, I have noticed that I have no energy to write word definitions after work. So 5000 words is utopistic. I'll have to either overcome procrastination or find out just how many words I have patience to write before contacting a Finnish teacher and sugggesting co-operation.

The glass of success if half full or empty in the sense that I failed to get a J2EE job but succeeded in getting a job that pays more than anything I have done before.

What to do with the money when I've accustomed to a student budget? There are practically only 3 ways to spend it in a way that actually increases my standard of living:

  • Get a mortgage instead of paying rent; this would mean that in the future, if I want, I can loan money and use the apartment as a guarantee.

  • Travel to foreign countries. Among my peers this is a popular hobby which I haven't done much.

  • Buy sex, an option I should try since I'm never going to get any with my current levels of nerdiness and muscularity without paying for it.

Tuesday, February 20, 2007

Get a Haircut And Get a Real Job

Big brother Simo got a haircut and is having 3 job interviews this week. Meanwhile, my brother is doing fractal art.


fraktaali
Frozen turboflowers


However, the difference is not as big as in the song of George Thorogood, since I have my own semi-creative project of questionable utility.

Monday, February 19, 2007

One Encoding to Rule Them All

In Java, all strings are Unicode strings. The Swing GUI components also support more advanced features of Unicode like Arabic right-to-left writing. It is almost trivial to make a GUI application that support all possible scripts from Katakana, Cyrillic alphabets and Korean Hangul to thousands of Chinese characters and various right-to-left scripts. The only thing you need to take care of is that when you access external interfaces, the data is passed in Unicode.

In traditional GUI applications, this means reading and writing text files in Unicode instead of the default encoding. Here's how you open a file for writing in UTF-8 encoding:


File file = new File( fileName );
FileOutputStream fos = new FileOutputStream( file );
OutputStreamWriter osw = new OutputStreamWriter( fos, "UTF-8" );
BufferedWriter writer = new BufferedWriter( osw );



The difference to opening a file in the default encoding is really small:



File file = new File( fileName );
FileWriter fw = new FileWriter( file );
BufferedWriter writer = new BufferedWriter( fw );



The difference in reading a file is equally small. Not too difficult, huh? Turns out that it is for those who haven't confronted foreign character sets before. Before starting to roll my own flashcard program, I tried some free ones, some of them written with Java. Turned out that many of them didn't support Unicode. Well, that's one way of making sure that communists don't use your program.


don't support unicode


You may also want to write unit tests to ensure that the Unicode support really works. To embed Unicode into the source files of the test cases, you need to signal the compiler that the source files are encoded with UTF8.



C:\>javac -encoding UTF8 MySource.java



Ditto with the editor (in this case, Eclipse)

eclipse and unicode

With web services, it's a bit different issue, since there are so many external interfaces. First of all, the source file UTF8 switch must be embedded to the Ant build file (assuming that you use Ant):


<javac destdir="${build.dir}"
target="1.5"
debug="true"
deprecation="false"
optimize="false"
failonerror="true"
encoding="UTF8">



Now, let's look at the generated XHTML page. Firstly, to make it valid XML, you have to define the encoding in the first line that describes the nature of the document as XML.



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="FI" lang="FI">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>



The second instance deserves more explanation. When a web page is delivered from a server to a browser, it is delivered by the HTTP protocol. The HTTP protocol includes HTTP headers that describe the package. Usually, the default values of the headers are just fine and you can forget them - except for the character encoding. The <meta> element is trying to say that the document IS encoded in UTF8, not matter what the HTTP headers say.

Unfortunately, browsers tend to believe HTTP headers rather than the <meta> tag. This code snippet is from the Perl exercise work where I first run into this problem:


# The final part of this line (charset=UTF-8) is
# absolutely essential. Without that line,
# the UTA webserver somehow convinces the
# browser that the encoding isn't UTF8,
# even if the .html says otherwise.
print "Content-type: text/html; charset=UTF-8\n\n";



In servlets, the equivalent code is:



public void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html; charset=UTF-8");

PrintWriter out = response.getWriter();
out.println( "<html>" );
out.println( "<head>" );
out.println( "<title>Helo World</title>" );
out.println( "</head>" );
out.println( "<body><h1>Helo World</h1></body>" );
out.println( "</html>" );
}



In addition to writing data in UTF8, we also need to read characters typed by the user. This is done by setting the encoding propery of the request object (the object that contains the form data from the user):



request.setCharacterEncoding( "UTF-8" );



The Java documentation says that the encoding of the request object must be set before you pull any data that the user just typed. Sometimes the servlet is provided by some third party, and you can't set the encoding just-in-time before reading data. For example, if you use Spring's SimpleFormController to structure to validate forms, Spring automatically reads the form data to a more convenient structure before giving it to you. In these cases, you have to configure a filter that is run before the servlet. Filters are classes that are modify the input or the output of a servlet. This snippet is written to the deployment descriptor, web.xml.



<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<servlet-name>springflash</servlet-name>
</filter-mapping>



Finally, if you use JSP to generate the final pages, you need to put the following headers to the JSP files.



<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page pageEncoding="UTF-8" %>



Now, after shouting 11 times "USE THE DAMN UNICODE!!!" the system finally believes. We're still waiting for the one encoding switch to rule them all.


The encodings not so blest as thee,
Shall in their turns to limitations fall;
While thou shalt flourish great and free,
The dread and envy of them all.

Rule, Unicode! Unicode, rule the scripts:
Britons never shall need more glyphs.

Friday, February 16, 2007

Configuration Considered Harmful

Half a year ago I downloaded my first Java 2 Enterprise Edition, also known as J2EE, the version of Java you use to build websites. It uses a very complex build system named Java Blueprints, spanning 26 files and 2000 lines of XML and settings. Coming from Symbian background, I though that the build process really is incomprehensibly complex: In Symbian, the build process uses ~100 or so perl modules, and you are not supposed to modify them. To give you an idea of how much 2000 lines is, note that this applet, which packs some real functionality, takes ~1500 lines.

In fact the J2EE build process is really simple. First, you build a jar file with a specific directory structure. Then you deploy it to some application server. Knowing this is useful when you switch from one application server to another (in my case, from Sun's server to Tomcat). Therefore, it's really stupid to use a huge build system.

Complex systems are OK when they really work and make things easier. Anyone who has converted a medium-sized application from manual building to Make or Ant knows this. However, when they become complex enough without being nicely encapsulated, they introduce an extra moving part. Useless moving parts merely make things more difficult.

Java is famous for giving good and accurate error reports in the form of exceptions and stack traces. The compiler checks the code extensively before you can execute it. There is also a standard way to produce good documentation for Java modules that are delivered to third parties (the Javadoc tool). Configuration systems tend to be exactly opposite: They use custom formats, often XML, which are often poorly documented. Their error annoucements leave you wondering what the hell went wrong, if they give any in the first place. Often, you can't be sure whether the error is in the configuration files or in the code.

Next, I'll present a truly minimal hello world J2EE application. Here is the list of files:



build.xml - the Ant build file
src\HelloServlet.java - the source code
web\WEB-INF\web.xml - the deployment descriptor



Here is the source code. When you type the address of the web service (usually http://localhost/hello or something similar), the program calls the get or post method of this servlet. The request object contains the things that the user sent to you: for example, if the user filled a form and pressed submit, the contents of the form are in the request. The response represents the HTML page that you return to the user.



/* Minimal Hello World servlet */
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloServlet extends HttpServlet {

public void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
doPost( request, response );
}

public void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html; charset=UTF-8");

PrintWriter out = response.getWriter();
out.println( "<html>" );
out.println( "<head><title>Helo World</title></head>" );
out.println( "<body><h1>Helo World</h1></body>" );
out.println( "</html>" );
}
}



The deployment descriptor tells that the application should be deployed at "hello" subpage (http://localhost/hello) and that the HelloServlet generates the page (there may be several servlets).



<?xml version="1.0" encoding="UTF-8"?>

<web-app>
<display-name>hello</display-name>

<servlet>
<display-name>HelloServlet</display-name>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

</web-app>



The Ant build file build.xml is still somewhat more complex than needed, but a far cry from 2000 lines. There's nothing worth reading happening there, it is here merely for completeness. It has been simplified from the spring tutorial build file, which strikes a very good balance between simplicity and functionality.



<?xml version="1.0"?>

<project name="flash1" basedir="." default="build">

<property name="src.dir" value="src"/>
<property name="web.dir" value="web"/>
<property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
<property name="name" value="hello"/>
<property name="tomcat.dir" value="/tools/tomcat5.5"/>
<property name="deploy.path" value="${tomcat.dir}/webapps"/>

<path id="master-classpath">
<fileset dir="${web.dir}/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
<!-- We need the servlet API classes: -->
<!-- for Tomcat 4.1 use servlet.jar -->
<!-- for Tomcat 5.0 use servlet-api.jar -->
<!-- for Other app server - check the docs -->
<fileset dir="${tomcat.dir}/common/lib">
<include name="*.jar"/>
</fileset>
<pathelement path="${build.dir}"/>
</path>

<target name="usage">
<echo message=""/>
<echo message="${name} build file"/>
<echo message="-----------------------------------"/>
<echo message=""/>
<echo message="Available targets are:"/>
<echo message=""/>
<echo message="build --> Build the application"/>
<echo message="deploywar --> Deploy application as a WAR file"/>
<echo message=""/>
</target>

<target name="build" description="Compile main source tree java files">
<mkdir dir="${build.dir}"/>
<javac destdir="${build.dir}"
target="1.5"
debug="true"
deprecation="false"
optimize="false"
failonerror="true"
encoding="UTF8">
<src path="${src.dir}"/>
<classpath refid="master-classpath"/>
</javac>
</target>

<target name="deploywar" depends="build" description="Deploy application as a WAR file">
<war destfile="${name}.war"
webxml="${web.dir}/WEB-INF/web.xml">
<fileset dir="${web.dir}">
<include name="**/*.*"/>
</fileset>
</war>
<copy todir="${deploy.path}" preservelastmodified="true">
<fileset dir=".">
<include name="*.war"/>
</fileset>
</copy>
</target>

</project>



This example gives us another case about configuration and its discontents: The deployment descriptor. When you do traditional graphical user interfaces with Swing, you create the elements by code. Imagine that instead of writing an XML deployment descriptor you would configure the application by code, applet style, demolishing the second big instance of configuration in J2EE. What would it look like?



import javax.servlet.*;

public class HelloApp extends Weblet {

public void init() {
setName( "hello" );
addServlet( "HelloServlet", HelloServlet.class );
mapServlet( "HelloServlet", "/" );
}
}



In what way is this inferior to web.xml?

Thursday, February 15, 2007

Time stopped?

In the good old days of the old Republic machines doubled their speed yearly. My three-year-old 2GHz laptop is getting slow, so checked the new machines. To my surprise, the low-end is almost the same. Something fundamental has changed while I didn't look.

This post is being written on AMD Athlon 2600+, and here they sell AMD Athlon 3000+. For the first time in my life, a memory upgrade may be enough to transform and old machine into a modern one.

Eclipse takes 100MB, Firefox takes another 100MB and the app I run on Tomcat takes 100MB. And then you should compile. Not something that fits to 500MB.

Wednesday, December 13, 2006

Electronic Test in Tampere University

Tampere University has new facilities for taking tests electronically instead of writing them with pencil and paper, which is cool since dead wood is soooo 20th century.

The tests are done in one of two Test Aquariums. Test aquariums are special computer classes. The user who logs on to a computer can use only the dedicated test software. The software has a web-based component that is used for enrolling to a test well before the test date. The student can choose her test date and time from a calendar. In the Test Aquarium, the same web-based software fetches the questions.

The answering software is a normal "thick client" and enables the user to navigate between questions and write answers to them. The test I took contained only open writing questions, rather than multiple choices, but the system seemed to be capable of automatically rating multiple-choice questions. There is also an automatic time limit for the test.

The system has some traces of being experimental. There was an Opera logo in the upper right corner, and instead of a normal edit box control the answering was done with a more limited control. It enabled normal typing in monospace font, and you could copy-paste text with menus, but not with shortcut keys. For me it worked overall like a dream, but a girl that participated in this test aquarium experienced problems: The system threw him out without any specific reason in the middle of the test.

Anyway, it's a huge improvement to current practice. It enables one to take tests when one is ready, rather than when the Official Test Date is, enabling one to take courses that are not lectured every year, and making it easier to get credit units in the summer. And typing the answer instead of writing it with pencil is a bit like writing a blog post.

By the way, if the test participation can be recorded on video, why can't lectures be recorded? With recorded lectures and Test Aquarium tests, many courses could be removed from face teaching. Face teaching should concentrate on the few areas that are worth human contact, like groupwork, honing writing skills and keeping presentations.

Wednesday, November 01, 2006

Winter

Today, the first 10cm of snow fell from the sky. I had to be at test by 10.00, so I left home at 9.05 to make sure there was enough marginal for possible problems.

At the bus stop, there were 10 people waiting, which is about double the amount that is withing normal daily variation. Some of them had waited for 20 minutes. When I was waiting, a car stopped at the bus stop and offered ride for some people. Then this happened again. It seemed to be the main way to get forward.

Well, I though that the marginal just may not be enough, if the buses don't come, so I started walking to ensure that I made it in time, while there still enough of it. Unfortunately I was stupid enough to choose a marginally shorter route, where the snow had not yet been pushed away, so I had to walk a kilometer in snow. In the end I made it in time, but only with ~5 minute marginal.

Anyway, I don't understand people who take stress about weather and curse it, even if it barely affects them during their commutes. Since weather can't be changed, it's a bit like being disappointed that you only have two eyes, while it would be sooo nice to have a third eye in the backside of the head.

(People working at transportation and farming sector have good reasons to be stressed about weather, so they are exceptions.)

Sunday, October 29, 2006

Fake Headlines

This has potential to become a meme ... started by Vera. Here are a few fake headlines on energy.

"EU has decided to cut economic growth by 8% in order to comply with Kyoto targets. The decision is expected to have no effect whatsoever."

"Environmentalists support a scalable electricity production method!"

Comment afterwards: This post is really lousy. I intended to write a longer one about electricity generation to support the attitudes expressed here; however, I don't have patience to dig up the numbers. The points would have been that(1) economic growth and electricity consumption are inseparably linked; there doesn't exist a single 10-year period of economic growth combined with a decrease in energy consumption. (2) burning hydrocarbons and splitting atoms are the only scalable ways to generate electricity; the post would have argumented against wind.

Tuesday, October 17, 2006

Behaviorism Is Alive And Kicking

Marginal Revolution linked to an article about a school/mental asylum that uses behavioristic methods to keep the special education students well behaved.

They use electric shocks as a punishment. The shocks are administered by devices that are all the time connected to the clients. If the clients behave badly, the staff members can zap them, producing a shock that is comparable to a bee string. The punishment is not arbitrary, but "each student has a sheet listing the types of behaviors that prompt a staff member to administer a shock".

One of the basic ideas of behaviorism is that punishments and rewards should be (1) immediate (2) recognized as punishments/rewards and (3) appropriate for the student's level of understanding. The immediacy is important to ensure that "even a student with a low IQ or a severe psychiatric disorder might be made to understand that whatever he just did was unacceptable". The shock is unquestionably recognized as a punishment. However, it is important to notice that a punishment is not always experienced as a punishment - the article lists counseling as an example: "School literature states that counseling is done "as needed," but not when it could be seen as a reward for bad behavior".

In addition to electric shocks, the school uses a wide range of positive reinforcement. Also the mere threat of shock is for many clients enough to keep the behaviour in line so that actual shocks are not needed.

My take? Wish I could buy an alarm clock that would deliver an electric shock if the I don't rise from bed and press the button three times during the next half an hour.

The article also mentions that the founder of the institute tried to manufacture behavioristic teaching machines in the 60s. I've written about them here. Basically, the 60s teaching machine movement was trying to build mechanical and electric teaching devices to help with rote memorization, but the 60s technology was too inflexible. Present-day flashcard programs, including the ones I've written, are descendants of this tradition.

Sunday, October 15, 2006

Dating meme: I am an asshole ... give me your candy!

Real men like me don't wait to be challenged to memes but take the initiative themselves, so I'll answer to Hurina's dating meme.

I'm short (163cm) and unmuscular. I like to wear yuppie-style collar shirts and cotton pants. I have a sense of humor, which I express mainly in writing.

Although I don't own a house nor a car and am not currently working, my financial situation is good thanks to disinterest towards the aspects of life that cost a lot of money.

My hobbies include writing computer-aided language learning software and playing go. It's also nice to play old Finnish popular music by electric organs, and go to electronic music events and dance myself legless.

I like to be in control of my own life, and I have succeeded in that a bit too well, since also in my sex life the initiative is in my own hands. Will you change it? I'd like to be tied up and shat on.

Update to avoid further misunderstandings: This dating annoucement is directed exclusively at women.

Saturday, October 07, 2006

Happiness



















































Topic Absolutist view Relativist view
What makes you happy The absolute amount of resources determines your ability to satisfy your wants, needs and desires. Humans determine their level of satisfaction with their current situation by comparing themselves to others, so that your status relative to others determines your happiness.
Game metaphor of life Life is a positive-sum game, full of opportunities that benefit both parties and just wait to be exploited. Are you taking advantage of them? Life is a zero-sum game, where the spoils of co-operation are divided unevenly between participants. Are you a wolf or a sheep?
Attitude to power Power is legitimate, it hierarchy enables a group of people to get things done better. There's nothing wrong with being a servant in a legitimate hierachy that gives you better results than you could achieve alone.
Power is means for the strong to exploit the weak. You should get as much of it as possible. Serving others is necessary sometimes, but in the long run a sign of failure.
To gain happiness, you should be...
1. Resourceful in order to have something to give, so that you can participate in exchanges and get things you want.

2. Trusted so that other people are willing to engage in activities that carry a risk.

3. Networked and Informed so that you hear about the opportunities.

4. Social so that you can organize things and exchange views and information.

5. Intolerant agaist people who break the rules in order to create a deterrent.


1. Strong so that you can bully others into submission.

2. Ruthless so that you are not prevented by so-called "moral".

3. Cynical in order to prevent others from exploiting you.

4. Able to fake it to create a good impression.

Attitude to other people
Other people are an opportunity to gain information and get deals. You should take a positive attitude to socializing with other people, until they prove themselves untrustable or send signals that imply untrustability.

Other people are trying to manipulate resources from you by their emotions. You should be careful and wary of them.
Other people's happiness
Most people can achieve happiness, since if we set some reasonable standard of living, with suitable economic growth it is achievable for Joe on the street.

It is impossible for everyone to achieve happiness, since for each person who is above average in wealth or status there is another person who is below average. In the end, other people's happiness is your misery.
Opinion on current system
Democratic free martket system has achieved unprecedented standard of living. If you are not happy in this environment, the mistake is either in your attitude or the company you keep. The unemployed are nowadays enjoying many benefits unavailable for the nobility in the past, and this trend of improvement is continuing.

The income differences are starker than ever due to economies of scale and winner-takes-it-all competitions. Due to media, people increasingly compare themselves to the top, making them feel more inferior than before. Global competition for scarce resources is tougher than ever, forcing people to take desparate actions.
Attitude to information
Trying to talk true and insightful facts enhances other people's trust towards you. It is also important that other people know your interests, since it increases your chances to hear about opportunities to further those interests.

You should talk sentences that create positive/negative associations that serve your interests. Talking truth is unessential, since everyone knows it anyway and if they don't, it gives you a competitive advantage. The main thing is that the other believe you. You should always ask: Whose interests are these "facts" serving?

Wednesday, October 04, 2006

What's Hot

Good Ear: Ear training for amateur musicians; trains your skills to identify intervals, chords and scales. Requires QuickTime.

Big Ears: Identify intervals. Requires Java applets enabled.

Tuesday, October 03, 2006

Werewolf Masquerade

A week ago me and my brother had a conversation about live gigs. He had seen an electro band Imatran Voima and was impressed by a combination of powerful music and good show. Since I used to visit rock gigs, he asked if that was usual in live performances.

I answered no, and listed the self-ironic bands ? the only ones that had made any impression on me.

Yesterday, I went to a gig by Moonspell, and it changed my views.

(By the way, it has nothing to do with my brother possibly listening to Moonspell in the past. I don't have any memories of being present when my brother put the cassette mentioned in the previous post to a cassette player. In high school, there was a metal fan named Leo who had Moonspell's songs Opium and Mr. Crowley in his hard disk, where I copied them via network share. Later, when I first connected to P2P network I copied more of Moonspell.)

In an earlier post, I?ve listed the reasons that I stopped going to rock gigs and preferred electronic music events: (1) that DJ music is better, since it is done by world-class composers and players, (2) that in your typical live gig the guitars, drums and vocals mix up into an incomprehensible mess, while record music tends to be well mixed, (3) the sound samples of the electronic music are optimized to stay clean and separate even in bad acoustic conditions, while electric guitar is not, and (4) the rave culture involves dancing, which is active participation; after getting used to it, it bores you to tears to just drink beer and watch bands come and go.

Well, in Moonspell?s gig it was all fixed! Moonspell?s musicians are some of the best metal composers and players. The sound was clear and instruments and vocals could be distinguished from each others without effort. And since they were popular, a huge mass of people gathered in front, making the participation more active than just sitting and drinking beer. Regarding the music, I had listened to some of the songs beforehand tens of times. That definitely helps immersion but that is a bit beyond point, since maybe 2/3 of them were still unknown to me.

And to top it all, the singer could really interact with the audience. Especially his hand gestures were really controlled, oscillating between sudden, violent movements that perfectly matched the rhythm on the one hand, and conscious, steady, fully-in-control movements that gave the audience guidance on when to raise hands. The hand dynamics are clearly visible in this video.

Earlier, I?ve noticed that the best of metal and the best of electronic music are equally good on record. Now I know that in the top end, also the live performances are equally good. However, this won?t make me a rock fan, since acts of this class are very rare and the quality of local, Tampere class bands is waaaayyyyy higher in electronic music.

A combination of heavy drunkenness on my part and dancing instincts trained on raves probably resulted in me looking distinctively like the drunken idiot I was, but that?s what people get drunk for. Immersion isn?t possible without a suitable level of drunkenness.