Wednesday, January 26, 2005

Future Virtual Learning Environment

I totally agree with this one. The importance of RSS feeds, web service API's (XML-RPC) and other ways to loosely join pieces is not to be underestimated.

If you don't understand this picture, maybe you should see a simpler version instead, already constructed by my fellow comrade Alan at Maricopa.

Take good specialized components, collect, mix and combine the way you want. The open standards like content syndication with RSS and XML-RPC for web servces make it cheaper and even possible.

We enable this with Dicole to some degree. We call it easy (and cheap) web application integration. More of it later. The problem with a picture like this is that the integration of such services usually requires some programmer to construct the interfaces into the VLE, which is costly and time consuming. Also, interfaces do change. I want this process to be as simple as possible for a teacher to do it herself. Still some work to do on that field but I guess the future VLE is not that far away in the future... ;)

Are traditional VLE providers going to support a more open and more component oriented approach to VLE construction for customers? Absolutely not. it's against their lock-in plan. In this case they are not controlling the pieces, say webmail, photo album or ePortfolio. It's their business to provide uhm.. the best proprietary combination of such tools to their customers and lock competitors out. Unfortunately this is not the benefit of the customer.

I don't have a business problem like this because I'm not making money out of the components. I also have an Open Source platform for creating such loosely joined group or personal environments. I can sell my expertise of Open Source tools and social software as a service to help finding good components, mix good components and create the customized targeted solution. Cheaply and affordably.

Monday, January 24, 2005

Spaghetti con pollo citron peperoncino

spaghetti con il pollo-citron-peperoncino rosso
spaghetti con pollo-citron-peperoncino,
originally uploaded by inf.
Some of my latest experiments. Good for coding: some citron chicken spaghetti with chili fast-food (well, it's fast to prepare, anyway). I don't know if the italian name I made up is correct or not. Maybe someone could shred some light?

Here is the recipe.

Spaghetti con pollo citron peperoncino

Cooking time: 10 minutes
Yield: 2-3 servings

Ingredients:
300-400g spaghetti (I used tricolore)

3 tablespoons olive oil
2 cloves of garlic
250g chopped chicken

2 tablespoons capers
2 teaspoons chili flakes
1 chopped tomato
2½ teaspoons grated lemon rind
3 tablespoons lemon juice

1 decilitre cream (optional)

1 decilitre shredded fresh basil, oregano and mint
1 decilitle shredded rucola leaves
2 decilitres grated parmesan
Lots of black pepper

Use half of the recipe when preparing for yourself (it's late night coding, after all).
  1. Boil spaghetti with 1 teaspoon of olive oil and 1 teaspoon of salt until it's al dente (half-cooked). While it's boiling, prepare the chicken mix.
  2. Heat olive oil on a pan until hot. Add minced garlic and chicken. Cook for a few minutes until the chicken is half-cooked.
  3. Add capers, chopped tomato, fresh chili strips or dried chili flakes, lemon grind and lemon juice. Cook stirring for a few minutes until the chicken looks ready.
  4. Add cream. This is optional, use it only if you want to make creamy pasta. Cook for a minute.
  5. Drain the pasta and mix it with chicken mix, shredded herbs, rucola, black pepper and parmesan.
  6. Serve with oven hot crispy bread and red wine. Start coding.

Monday, January 17, 2005

Cooperative categorization with folksonomies

Flickr and del.icio.us have popularized the use of folksonomies. Now Technorati has adopted the use of tags to join content from Flickr, del.icio.us and Technorati indexed blogs into one single location. Excellent job!

Folksonomies defined according to the original author Thomas Vander Wal:

Taxonomy is from "taxis" and "nomos" (from Greek). Taxis means classification. Nomos (or nomia) means management. Folk is people (from German). So folksonomy means people's classification management.


Simplest description of folksonomies are simply classification, categorization or defining keywords. The concept is not new: for a long time keywords have been assigned to web sites in meta descriptions and in controlled vocabularies.

Originally metadata has been in hands of professionals who use complicated vocabularies and tools for describing information assets. In some systems, the authors have had the opportunity to tag their content with a controlled vocabulary like IEEE LOM (learning object metadata).

The fundamental shift is the move towards an information system where the content is not tagged for personal use only but for a community to collaboratively describe information assets without any formal training in the subject. This enables wider adoption but the trade-off is that the taxonomy is not as accurate as it is in controlled vocabularies.

At first as you see Mac, Macintosh, Macs and Apple describing almost the same thing, the method seems more like chaos than control. The true benefit lies in the accidental browsing capabilities, as you find information you might never find otherwise. This enables a layer above the information to browse numerous information resources quickly and effectively, while still maintaining a level of cheer luck in finding new and interesting things.

Google is using masses to understand the content. They have abandoned the use of user provided metadata, according to their Director of Search Quality. This is because as long as there is a market to use the metadata to make money, people will abuse it (spam, fooling people to look after their commercial offerings etc). Instead, they are using the masses to find out relevant data.

When we look at folksonomies, the framework is using masses to help browsing in a similar way as Google does. Merholz notes that folksonomies could be used to create controlled vocabularies. Maybe this results in generally more useful vocabularities for personal use? This might also fix the problem with educational XML standards which have their problems according to many experts in the field.

For more information and a great analysis of folksonomies, see Grassroots Cooperative Categorization Of Digital Content Assets: Folksonomies, What They Are, Why They Work and Folksonomies - Cooperative Classification and Communication Through Shared Metadata.

It seems that in many things it's neither total control nor total chaos but the true capabilities lie somewhere in between.

Saturday, January 15, 2005

Open Source beer from Denmark


Finally freedom as in beer (not free as in beer)! Danish computer science students have started to brew their own 6% Vores Øl beer. It includes quorana and caffeine for added energy boost. Serious geeks only? Maybe.

The recipe and the brand are shared under the Creative Commons Attribution & ShareAlike license. I hope some local brewery takes this recipe so I could use it to aid myself with all night coding sessions...

Check it out.

Really simple tomato soup


Image originally by McBeth.
Well I always thought that making tomato soup from real tomatoes is somehow time consuming and not worth the effort. Well, I tried with oven today and I can say, it leaves you plenty of time to browse your RSS feeds. 45 minutes in oven and max 10 minutes on cooker and that's it. Not much chopping and hanging around in the kitchen.

My girlfriend left to Scotland with the digital camera, so no picture of the soup until I get it back (I'm sure I'm repeating this very soon).

Inf's tomato soup
Yield: 4-6 servings
Cooking time: 45 min + 10 min

Ingredients:
½ - 1 litre vegetable broth

10 medium to large sized tomatoes
1 complete unpeeled garlic
2 unpeeled onions

3 tablespoons fresh minced basil
2 tablespoons fresh minced mint
2 tablespoons fresh minced oregano (optional)
1-2 teaspoons black pepper
sea salt
  1. Heat oven around 150-160 degrees. Separate the unpeeled cloves of garlic from the complete garlic. Throw garlic cloves, tomatoes and onions in the oven for 45 minutes. Avoid playing World of Warcraft in the mean time. Play Tetris instead or you have burnt tomatoes.
  2. Take vegetables from the oven and leave them chill while heating the vegetable broth in a pot (avoid boiling). Use less vegetable broth (½) to make your soup thicker.
  3. Watch your fingers, they still might be hot. Remove the root part of the garlic cloves and squeeze out the contents in a bowl. Peel the onions, cut into pieces and throw in the bowl. Optionally, fry the onions on a pan for a couple of minutes. Add tomatoes in the bowl and you are set.
  4. Shred the contents of the bowl with an electric blender into rough pieces. Don't get haywire with the blender unless you prefer purée.
  5. Empty the shredded contents of the bowl into the vegetable broth pot. Mix well. Let your cooking simmer for a couple of minutes and add shredded basil, mint, oregano (optional), pepper and salt. Check taste.
  6. Let boil for 3-5 minutes and stir occassionally.
  7. Serve with French bread as a starter of your main dish (suggestion: creamy spaghetti with tomatoes, spinach and chevre) or as it is with good company and some red wine.

Tuesday, January 11, 2005

Pretty good predictions

New years promises must be the worst promises ever. How many of you have really stopped smoking? Predictions, in the other hand, are always interesting.

Sir Cringely comes once again with pretty interesting predictions for the new year in technology business.

Is this the year of online music stores, Long Tail and VoIP?

Is Microsoft finally taking over the gaming entertainment market from Sony? I think it's going to be a tough competition. Nintendo lost their markets to Sony because Squaresoft and Enix changed camps. Did you know, it's forbidden by law to release new sequels to popular game series in Japan expect weekends by those companies because teenagers are skipping school and workers get ill? Japan, as being the hardest gaming market to understand by Microsoft, will be the final frontier.

Is this the time when Sun Microsystems abandons their current strategy? Their current strategy might be a flawed one. Basic economics: smart companies try to commoditize their products' complements. Hardware is a complement of software and vice-versa. By promoting free software they are commodizing software. By promoting Java they are commodizing hardware. Oobs:

"OK, Sun, pop quiz: when the music stops, where are you going to sit down? Without proprietary advantages in hardware or software, you're going to have to take the commodity price, which barely covers the cost of cheap factories in Guadalajara, not your cushy offices in Silicon Valley".
-- Joel on Software

Saturday, January 08, 2005

Nostalgic moments with console RPGs

For many years I was not really that much into games. When I got my first PC I was mainly fiddling with software, networking, hacking and programming instead of playing games. This is the tradition up to these days. Yet there are two genres that I have played both for 24 hours straight and almost ruined my school projects. Yet I think all of that m4d gaming was worth of it for various reasons. The two genres I have played in long bursts during my life are console RPGs and 1st person shooters (got my skills playing Quake for several years, I'll tell something about that experience later).

My first console was the now notorious NES (Nintendo Entertainment System). My journey into RPGs started from Zelda and Willow, later followed by the long awaited Gameboy and Super Nintendo, which I remember as the golden age of Japanese RPGs. I also remember the disappointment of hearing of how many great titles went untranslated I had been waiting for. Heck, one of my friends even learned Japanese to play those games imported from Japan.

This guy called Ville really introduced me into the mystical world of Japanese RPGs. He and his family were really all about gaming from my point of view. They owned every single system from the time and I can still visualize the big game cartridge towers in their game room. Everyone was playing from father to son, only the mother was not really into 24/7 gaming. It was the "gaming pit" for me in both good and bad.

The first RPG games which really changed my gaming life and interest in buying games were the Final Fantasy II (FF IV in Japan) and Secret of Mana (Seiken Densetsu 2 in Japan), both for Super Nintendo (and both from Squaresoft). I also played some of the PC RPGs like Ultima series and Diablo but never got the same kind of vibes as I got from the orchestrated music, epic battles and complex plots in medieval fantasy settings of the Japanese RPGs. These titles really got me into playing for just one more hour. I think I have so far played through all the great Japanese RPGs released for SNES in the west. I'm in dept to Enix and Squresoft for delivering me with so many great experiences. Still when I'm playing with my Xbox, I dream of experiencing the same again.

In my opinion, the greatest title on SNES was Chrono Trigger by Squaresoft followed by excellent Chrono Cross on Playstation. Breath of Fire series from Capcom was not bad either. Few know that I have hacked together a Finnish translation of Chrono Trigger in the past just for fun, now surpassed in quality by another team...

I totally skipped Gameboy Advance, Playstation and Playstation 2, all which had great Japanese RPG titles and I still regret that move (I was playing Quake at that time ;)). Now I own the Xbox, my one and only evil swing towards Microsoft. It doesn't have any Japanese RPGs but it sure is a PC if you open the cover. If you have the skills you could modify your Xbox to run Linux and alongside with it, all the great emulators to emulate almost every single console available in the past. It's potentially a 100 in one solution (video).

Gamespot is featuring a series of articles about the part of gaming world I really love. Take a look at the history of Square, history of console RPGs and history of Final Fantasy.

I think I'm going to fire my emulator and load some Japanese SNES goodness which never really got through the trans-pacific cracks. Now it's done, unofficially. Nostalgia awaits...

Friday, January 07, 2005

Inf's beef with oyster sauce

Inf's beef with oyster sauce
Inf's beef with oyster sauce,
originally uploaded by Teemu Arina.
Very nice, pretty traditional chinese except the rice. If you are tired of feeling sleepy and full after eating Chinese food, try my rice vaporization technique. I got tired of traditional rice without any additions in the cooking process so I often try to experiment with different sauces, spices and vegetables while cooking rice. I haven't since returned to plain rice. Indian Pilau rice is so far my favorite. Here is my cooking for today, enjoy.

Inf's Beef with Oyster Sauce

Yield: 2-3 servings
Cooking time: 20 minutes

Ingredients:
3 decilitres Basmati rice
1 tablespoon butter
1 teaspoon salt
1 teaspoon yellow thai curry

350-400 grams roast beef
1 cup peanut or vegetable oil
2 tablespoon dark soy sauce
2 teaspoon sugar
3 teaspoons cornstarch

1 teaspoon cornstarch
½ scallion, green leaves trimmed
4 leaves Chinese cabbage
2 tablespoon shredded fresh ginger
1 red or green pepper
1 red hot Thai chili pepper
1 medium sized carrot

3 tablespoons oyster sauce
1 tablespoon rice wine (sake), dry sherry or some other wine
2 tablespoons water

Peanuts and scallion rings for garnish (optional)

Preparations:
  1. Take a kettle and a sieve bowl (you know, a bowl with a screen :) What's the correct name?). Place the sieve bowl above the kettle so that it fits inside it. Add water until it's about 2 centrimetres above the bottom of the sieve bowl. Flush rice under cold water and add in the sieve bowl. Place your construction on high heat and add the cover so that the vaporizing water is able to escape from a narrow opening. The rice takes about 20 minutes of vaporization to be ready. Every 3-5 minutes remove the cover and turn the rice over so that it cooks evenly and cover the rice again. Remember to do this while cooking the beef and vegetables. If your timing is correct the rice is ready just when you remove the main dish from the heat. This is my favorite method for cooking rice. The result is rice which is not too thick so you don't feel sleepy after eating it.
  2. Cut the roast beef using a sharp knife into the thinnest possible long slices you can make. This is easier to do if the beef is partially frozen. Avoid already sliced beef, make your own.
  3. Using a bowl, mix beef, 1 tablespoon of oil, dark soy sauce, sugar and 3 teaspoons of the cornstarch.
  4. Shred carrot and scallion into round thin pieces. Cut red pepper into small square pieces. Mince ginger and Thai chili into small pieces. If you want more spicy food, add more chili. Remove the white root part of the Chinese cabbage leaves. Add everything into a separate bowl for later use.
  5. Mix 1 teaspoon of cornstarch and 1 tablespoon of water in a cup and leave it aside.
Cooking madness:
  1. In a wokpan heat the remaining oil but avoid getting it too hot, otherwise it's hard to keep the beef separated from each other.
  2. Add the beef mixture and stir-fry cook for about 30 seconds. Keep the food moving constantly. This is accomplished by quickly and repeatedly sliding a spatula down between the food and the pan and turning the food over in a constant motion. Make sure all parts of the beef get contact with the hottest part of the pan.
  3. When the meat is half cooked (avoid overcooking, we heat that stuff again later), remove and drain the meat well in a sieve bowl. Catch the drippings! Do not let the valuable beef drippings away, we need that stuff for the vegetables. When removing, leave about 2 tablespoons of oil in the pan.
  4. Turn the heat high and add the contents of your vegetable bowl in the wokpan. Cook for 10 seconds and add the oyster sauce and beef drippings. Mix.
  5. Thinly pour the cup of cornstarch+water all over your vegetables. Add the beef, rice wine and the remaining tablespoon of water.
  6. Stir-fry to thicken and remove from heat. Empty the wokpan into a serving plate but leave about 1 tablespoon of the juices in the pan. Garnish your dish with fresh scallion and peanuts.
  7. Add butter and turn the heat low. Add salt and yellow Thai curry. Fry the spices for 15 seconds. Make sure the rice is ready and throw the rice in the wokpan. Stir for 1 minute, make sure all the spices and juices mix well with the rice. Remove from heat.
  8. Serve hot with beer (preferably Chinese) or sparkling water. Enjoy.

Thursday, January 06, 2005

Six Apart and LiveJournal: How to do a press release

It has come to my attention that Six Apart and LiveJournal are merging. Read this "exclusive first post" and compare it to what the LiveJournal author himself wrote in a press-release-kind-of-thing.

The interesting part is that the first one could be slightly edited to fit in the good old press release structure. It's boring and written in third person, looking like a journalist rip-off of a company press release to complete the day. It could be the press release of either of the mergers. It sprung quite a lot of doubt and disbelief on many fronts.

But if you read the LiveJournal authors post, which one you find more interesting to read, more to trust and to believe in? It's written in a form of a conversation. It really has a personal sound in it. I especially loved the "above is all gibberish" part and some muttering about TCO and core competencies. It's great self-irony at best.

Now this is how companies should write their press releases to build trust in the markets of conversations. Sure it doesn't sound "professional" enough but it has more effect in the market and user base, me thinks... It's very hard to write something like this if you are used in the old way of doing things. Almost like sailing upstream without a sail. No problem, these guys have pretty good wings.

Kick ass LiveJournal and Six Apart, I have my trust in the management of both companies.

Wednesday, January 05, 2005

Inf's Storm Chicken Soup

Inf's Storm Chicken Soup
Inf's Storm Chicken Soup,
originally uploaded by Teemu Arina.
What is better on a frosty winter night other than some spicy chicken soup thai style? This is one kick ass chicken soup I made to wake myself up, I tell you. So if you feel a bit drowsy after the holidays, get your wokpan and prepare yourself for a delicious ride.

Inf's Storm Chicken Soup

Yield: 4-6 servings
Cooking time: 30 minutes

Ingredients:
1 litre rich chicken broth
1 decilitre coconut milk

250 grams chicken

1 carrot
1 habanero or 3 thai chili
2 cloves of garlic
2 tablespoons minced fresh ginger
1 decilitre bamboo shoots
5 leaves of chinese cabbage

2 tablespoons dark soy sauce
1 tablespoon yellow thai curry
1 teaspoon chili powder or red thai curry
1 teaspoon cayanne pepper
1 teaspoon crushed green or black pepper

½ teaspoon monosodium glutamate (optional)
½ cup minced parsley

Note:
If you can't afford to make your own rich chicken broth a canned one is also acceptable but remember, the soup base is the most important one.

Warning:
Handle your habanero chili with care. That evil stuff really has some potent. Use gloves or limit your bathroom trips (really, I know).

  1. Mince carrot, habanero chili, garlic and ginger.
  2. Chop your chicken into small pieces, not bigger than your finger tips.
  3. Heat the oil in a wokpan and add garlic, habanero chili, ginger and chicken.
  4. Cook, stirring, over high heat about 2 minutes. Add the bamboo shoots and carrot. Cook briefly, stirring while preparing the next step.
  5. Heat the chicken broth, dark soy sauce and coconut milk separately. When it is simmering add to wokpan.
  6. Add yellow thai curry, cayanne pepper, red thai curry (or chili powder) and crushed pepper.
  7. Let your cooking simmer for 15 minutes. In the middle, add leaves of chinese cabbage.
  8. Add monosodium glutamate or some other stuff to thicken your soup if you want. Bring down the heat and add minced parsley for garnish.
  9. Serve with fresh bread and citron flavoured sparkling water on ice, preferably just after escaping the snow storm. Finish with sake.
  10. Start being productive.

Sunday, January 02, 2005

Open Source personal Tsunami Warning System

The president of Finland announced, that the Asian disaster which also affected some finnish tourists is the biggest disaster in our country during the slightly over 50-year period of peace-time. In Sweden things are even worse, as they haven't had any major events (last war was fought in 1814) in mid-term memory other than the sinking of Estonia, resulting in major difficulties for people to handle the issue.

I tried hard not to write anything about the Tsunami. Everyone else is doing it already in their weblogs and the level of information I'm able to provide to the collective pile is fairly low. Once again Wikipedia is a great source for updated "facts" of all of the noise.

Well, I guess I have found an element which connects to my overall interest so here it goes.

Robert Cringely has written a very interesting article about how to build a Global Internet Tsunami Warning System (or more conveniently, GITWS). The basic idea is that letting the governments build the multi-government warning system involves many many years of politics, new technology and great piles of money to build. The alternative?

We, of course - In a similar manner as weblogs provide alternative coverage to main-stream news and individual Open Source developers building great software from scratch.

A multi-government system requires a great ammount of data to process. Seismic sensors are monitored and as activity is detected, the data is combined and simulated automatically. From the simulation we can see how the event could affect certain locations and we could warn those locations beforehand. I expect a simulation like this requires a lot of calculation power.

If we attack the problem from another angle, i.e. "is my beach going to be devastated by a tsunami?", the ammount of information and seismic sensors you require to figure that out are fairly low. I expect there are many things you could leave out of your calculation compared to a full simulation. It's possible that this information could be processed fairly quickly on a single computer or on a local p2p application of some sort as a full simulation is not required.

If seismographs are online, all the data could be gathered electronically and a formula to calculate a disaster from your viewpoint exists, the system could be online in months, not in 10 years. The software could be released under Open Source for public good, of course. Everyone interested in if a tsunami is going to hit your location could have a nice tsunami icon in their taskbar, sending a horde of IM's, SMS's, email and flashing your screen to notify you in event of a disaster and give you plenty of time to sail with your precious cruiser to sunset.

It could be done?