Friday, April 11, 2008

Silly Facebook apps are keeping my stomach full and a roof over my head

This is a long post, but lots of exciting things have happened since the last one!

The Facebook melody composing app I was making in August 2007 didn't take off. Perhaps it just wasn't a very good app for making melodies, or perhaps people just aren't creative enough for it to become viral. I abandoned it and carried on making other ones.

Boy, was that a good decision! It's been a jumble, so I can't even remember the proper chronological order of things, but I think the next app I made was "Your Japanese Name". I thought it would have a very limited appeal, but actually half a million people have installed it now! Wow. Also, it's now making enough money for me to pay my rent.

This got me thinking that perhaps other easy-to-use things that let people express their identity on their profile would do well also. Therefore I started adding to my list all kinds of other apps that fit that description. Some people are looking down on these apps and calling them "badge apps" with no real value, but I believe that ultimately it is the users who decide what is entertaining for them.

I made several. Lots failed. I think failure is good too, it's great to know what doesn't work and try to ponder why. I made one which comes up with a description of the past life of the user. Like it might say that you were a cave explorer in your past life, and that's why you are so adventurous now. Perhaps that was a bit too random, showing that off in your profile doesn't really tell anything about your identity. I'm happy that it failed, because it raised my belief in humanity a bit, that people won't accept just any crappy app :)

Just to make sure though, I had another app made which is similar, but it shows you what you will be reincarnated as in the future. That failed even harder. Strangely though later someone else made a past life app similar to mine, except it was a huge huge success. I believe it was because of the forced invite system though, and not because the app itself had some merit above mine. Well, the author got away with that and made a lot of money, so maybe I should have put such a system in place too.

There are about a dozen failed apps which I made. I'll describe more of those in other posts. Let's talk about one success for a change. It's called "Name Analyzer", and like "Your Japanese Name" it displays your name in your profile, but just in plain english, with some adjectives attached to explain what each letter in your name means. I can't claim it's an original idea, but it hadn't been done for Facebook yet. Basically it has the merits of "Your Japanese Name", but doesn't limit the userbase to only those with an interest in Japan.

It took off like a rocket and now has nearly 7 million installs, with a hundred thousand people using it every day. I wrote last year about my scalability and bandwidth worries, but now in retrospect that hasn't been an issue. I'm not paying significantly more for hosting now, and just one server has been enough to handle the load, and even that server has been mostly idle, even though the server logs are really flying.

Oh, I lost a lot of impressions though because the logs are REALLY flying, and I hadn't realized how large they would become! I had 8GB of space left, so I thought I would be OK. However, with 100k people each doing several page loads and causing longish lines to be appended to ever growing log files, I actually ran out of space. Many times. Every time the velocity of the expansion of the server logs took me by surprise! Running out of space is a bit nasty though, because it corrupts MySQL tables. Luckily the repair worked!

After seeing that people have an interest in it, I have added more features to make the app stickier, with pretty good success. Now there is functionality to decide analyses for your friends, change colors and fonts and backgrounds, make your own themes that others can use etc., all ever so slightly increasing the frequency of people visiting the app and the length of time they spend in it. Not a big difference, but with user numbers this large even a small percentage difference can be significant.

With monetization, I believe I have signed up for the best advertising network, which is Social Media. I do feel that I haven't really tried out all the other alternatives, but they pay so well that it's difficult to imagine that the others could be better. From discussions on the developer forum, there seems to be a consensus that Social Media pays the best. Only other options I have tried are Google AdSense and selling merchandize through Zazzle, but both of them paid an order of magnitude less than Social Media. Perhaps I should properly try out Cubics, VideoEgg and the others though, just to be sure.

Even though the merchandize (mug cups with your name on it) failed, I'm not sure that it was because the idea itself was flawed. Maybe the product, or having a link to an external site was the problem. Maybe if there was something that could be easily purchased while on Facebook, I could monetize better. Only ideas I've had so far are mobile phone background images or premium SMS subscriptions to get your name analyzed for your phone. That's something I might explore more.

So, how has this increased ad inventory affected my life? Well, I already told you that "Your Japanese Name" has allowed me to pay my rent, so you can guess that "Name Analyzer" has been even more significant in that respect. I won't make any big purchases though, only major thing is that I'll probably travel a bit more, still on a shoestring budget though. I'd like to think I'm pretty responsible when it comes to my spending. I don't have a car, I live in a normal sized shared apartment. I eat pea soup out of a can for dinner. I even have a spreadsheet with an inflation-adjusted plan for until I am 74, the age at which an average Finnish male tends to die. I don't have enough to live until then, so I'll keep saving. Couldn't resist getting a projector and a Nintendo DS though ha ha :p

I've gotten some very VERY interesting requests to appear at job interviews, but I don't really feel comfortable letting others decide what I should be making, now that I'm having so much fun thinking up new apps :) And I do have a lot of ideas! That list I started last year is getting really long. Lots of them are obviously stupid ideas when I look at them now, but for some it's hard to say! I hope I'll have success making some other type of app, I wouldn't want to be a one trick pony!

Wednesday, September 19, 2007

Five US citizens seeking asylum in Finland

This news was ignored in foreign media, so I guess I have to translate it.

"Finnish border officials were amazed when five US citizens applied for asylum status yesterday evening at the Helsinki-Vantaa airport.

The applicants had arrived to Finland from inside the Schengen area and informed The Border Guard of their desire for asylum status. From here on the actual application process will be handled by Directorate of Immigration.

- In near history this is the first time adult US citizens have applied for asylum status in Finland, major Janne Piiroinen told reporters.

According to the information made available to reporters, the US citizens are part of the same group. Officially the reason of the asylum application is still unknown, but it is not related to protests of Iraq war."

Wednesday, August 08, 2007

Decided which Facebook app to make .. NEXT =)

This post is mainly meant for myself to organize my thoughts.

I finished my composing app mostly. I got around 200 people to install it, now I am waiting to see whether it is viral at all or not. Currently it is showing growth of 2% per day, but I'm not sure if it's really spreading at that rate, it could just be chance. Would be wonderful if it were true, because 2% increase per day is over a thousandfold increase per year. Personally I think the app sucks, but I've seen other apps get popular which suck even more, so I guess it's not totally impossible ;)

My friend made a great suggestion for the subject of the next app -- one which would let people take and make tests. It seems extremely viral, because it has two ways of spreading. Firstly, if a user creates a test, it seems very likely they would send it to their friends. Secondly, people always like to share with friends their test results and encourage them to also take the same test, so that the results can be compared. I'm amazed nobody has made this kind of app yet. I might feel paranoid about sharing this idea, but luckily nobody except you reads this blog.

There are tons of different types of tests, so I am now trying to decide which ones to include and which not. For example there are IQ tests where the question and possible answers are images ("which picture comes next in this series?"). Then there are knowledge tests where the question and answer are text ("what is the capital of Japan?"). Also there are image recognition quizzes ("which Simpsons character is this?") where the answers are text. Rarer, but possible would be reverse image quiz, where the question is text and the answer a multiple choice out of a set of images. Then there are multivariable quizzes which are a bit more complex ("answer this set of questions to discover which 24 character you are"). I think I came up with a way to create even multivariable quizzes that isn't all that confusing ...

Those were the different quiz types I could come up with, but there are also some features that could be included or left out. When answering a question, sometimes in quizzes additional information is provided about the correct answer ("what is the capital of Japan?" - "Tokyo" - "correct, did you know Tokyo is blah blah"). There could be time limits when answering. In addition to getting how many percent were correct, sometimes there is textual feedback ("80% - very good"). The questions could come in a predetermined order, or at random.

On implementation side the normal way to do this would be a straightforward HTML (well FBML) interface, but to make it faster it could be done with Flash or javascript. It's kind of annoying to wait for page loads after each question. I have done some scripts like these before, and the biggest problem I had was keeping track of which questions have already been displayed to the user (when random order) and making sure that no duplicate options are included in multiple choice questions. Why is that tricky? Well suppose there are two questions "what is the second largest city in the state of New York?" and "what type of animal is the wild Arni?". Both of the answers are "Buffalo". This means that randomly chosen multiple choice answers could contain two identical answers with different meanings, which should be avoided.

Friday, August 03, 2007

App mostly finished

Alright, I worked hard for a week straight and managed to finish the Mini Mini Melody application for facebook. Please follow that link and install it if you have a Facebook account, then send me some feedback!

Wednesday, August 01, 2007

Tay Zonday, tour for us!

Dear mr. Tay Zonday. You rule. For now. People want to see you, but soon they will forget. That's the fate of an Internet star. So go along with this, live your "Internet dream". See the world. Make a zillion dollars in the process.

Let go of the hesitation.

Monday, July 30, 2007

Totally tired with this app

I'm exhausted! I've been working on this melody Facebook app for around a week now. At first it was very exciting. I had big dreams of making a hugely popular app, but now that the app is becoming more concrete it is starting to become obvious that this will be marginally popular at best. Why? Well, turns out it's a lot more difficult to express yourself with music than by drawing!

Currently in the app you can selected between a piano, a cat's meow, a dog's bark, human voices or drums. The app allows you to make a very short composition, around 30 seconds at the longest perhaps. There is a staff on which you can place notes to make your tune. I haven't done the sending part completely yet, but the idea is that you could send these tunes to your friends.

The path from an idea to reality is always less smooth than one would hope. An idea is very vague. Even if you try to work out an UI on paper, it's still vague, even if you don't know it. There are just so many little details that you will never be able to think about until you make the app. And that's fine, because making the app is all about describing those little details to the computer anyways. I'm struggling to provide a concrete example here, but for example in this case the idea was "a graffiti-like app for sending melodies". Then in the paper UI mockup I realize that there has to be some way to put different instruments on a staff. Then when really trying to make it, I realize that when you are placing those instruments, there has to be some kind of indicator of what you are selecting. But that indicator shouldn't be shown if you are outside the area ... and if you select drop-down menus they should appear ABOVE all the notes, not below. And a million details like that.

After you spend days just basically tangled with these small details, you become very exhausted even though from previous experience you knew that it would be like this, while of course secretly hoping that this time would somehow be different. There is some satisfaction in seeing your idea become a reality, to interact with what you have created, but at the same time you have to face the depressing reality that perhaps your idea wasn't as great as you had hoped. What seems like a fun idea often isn't as much fun in reality.

A tale of two Graffiti

If you use Facebook, you have probably used or at least seen the Graffiti app, which makes it possible to send doodles to your friends. But did you know that there are actually two different Graffiti apps? One wildly popular (5,713,050 users and counting) and another more obscure one (mere 11,367 users). Surely the one with less users is just a clone? No, according to the creators, the more obscure one came first.

I remember installing the more popular one and instantly writing graffiti to my friends, which was kind of fun for a while. Out of curiosity I installed the more obscure one as well, but the thing is that I can't figure out how to use it. It keeps showing error messages. The lesson here of course is that it doesn't matter how cool your idea is -- if it doesn't work or the users can't figure it out (which amounts to the same thing) then it will never be popular.

The creators of the original graffiti must be kicking themselves now...

Saturday, July 28, 2007

Melody app progress

I have been actively working on the melody app lately. Learned basic Facebook API usage and started making the UI part in Flash. Progress is nice, I can already arrange piano and drums on the tracks. A surprisingly difficult thing has been trying to find the different sound samples to use.

I need at least a basic piano sound, a guitar sound, drums and some funny sounds. The temptation is great to go to one of those "free samples" sites to grab something, but I want to be sure that any sounds I use are properly licensed. So instead I have been trying out sites where you can download sample packs. I am really surprised at the poor quality of the sites and the sounds they provide. For example some drum hits might have an audible hiss in the background, in some cases almost to the point of being static. Finding drum loops is easier, but I want single hits, not loops.

Come on, I just need around 28 different sounds, hopefully for under $100 total. How hard can this be?

Wednesday, July 25, 2007

Decided which Facebook app to make

The idea that found its way to the top of my ideas list (it's a long list!) is a music composing app. Basically like Graffiti, except that instead of drawing stuff, you can compose little musical pieces and send them to your friends. You would do this by arranging notes on a small staff (the classic "like X except Y" pitch). Taking Graffiti as the inspiration, everyone would have a wall of composed musical pieces.

What I am concerned about a bit is the bandwidth. I wouldn't even be doing this if I didn't intend it to be popular. So assuming it is popular, perhaps people would be loading the composing/playback Flash application about 100k times per day. I did some calculations in my notebook (in a section titled "slimy biz talk corner") and this could mean a bandwidth cost of about $600/month. From my prior experience 100k page views per day for random people isn't necessarily greater than $600/month, so it might be that initially this makes no sense. However bandwidth is getting cheaper, and with Flash 9 there are things that would let me cut the size of the player/composer down A LOT so perhaps it would make sense in the future if not right away.

Oh yeah before settling (at least for now) on this idea, I spent two days basically pondering nonstop about which Facebook application to make. I wrote a long list of ideas that occurred to me, then ranked them based on how promising they seem. It's funny how many ideas for social apps you can find by reading a book containing playground games for children. For example there was a game where you must come up with something that you have done, but none of your friends have done. That would make a nice app as well. Anyway the point is that playground games books are a great resource =)

Sunday, July 22, 2007

But what to develop?

I have been trying to come up with something to create for Facebook, but how to know what is worth spending a week of development time on? Some criteria I have come up with:


  • Coolness - If a potential user encountered this app all alone, with just a few sentences to describe it, would they likely be excited about it?

  • Virality - How likely would they tell their friends about it?

  • Monetization - How much money does each user translate to? Sometimes the right crowd (people wanting to install awnings in their home) is better than a big crowd (people looking for free software).

  • Stickiness - How likely would they use the app for long periods of time?



It's interesting to think about the top Facebook apps in these terms.

Top Friends - Slightly cool, very viral, not very monetizable, not very sticky.
Graffiti - Very cool, not so viral, not very monetizable, pretty sticky.
iLike - Cool, viral, monetizable, sticky.
... and so on

Developing for Facebook

Easiest hello world I've ever made was in Commodore 64 basic. The most difficult one was with Symbian -- I never had the patience to finish it! Facebook seems to fall much nearer to the C64 experience. Starting to develop a Facebook app feels really sweet. Seeing what you create instantly embedded on a major site is a strange feeling, because it's something that's completely new.

The thing I was most confused about at first was how the content you create would find its way to appear on a Facebook page. At first I figured that code must somehow be running on Facebook's servers, like in a sandbox. But it doesn't work like that, rather Facebook calls your server and displays the response it gets as part of the page it renders.

One surprise was that things are a lot simpler than you would expect. The PHP API include file is just around a thousand lines of code! I feel that now is the time to get in the game of building Facebook apps, because certainly after a while they will add a zillion new things you can do with the platform, which will make it even better, but also that much more confusing for those just starting out.

In my mind Facebook has won. With all the apps that have been created and are being created, Facebook will have thousands of times the functionality that MySpace is offering. The change in Facebook has been so sudden that people have not yet realized what happened, it will take a while before people understand that there are now these things called "apps" and that you can add them to your profile. People will gradually learn, and a few of those apps will be such gems that people will wonder how a social network could ever be considered complete without them.

Monday, July 09, 2007

Would you pay $10 per gallon?

Sweden is considering meeting its goal of reducing emissions by doubling the price of gasoline by the year 2020. This may raise the price of gas in Sweden to over USD $10 per gallon (2 euro per litre). Sweden has promised to lower their carbon dioxide emissions by 20 percent by the year 2020 and according to calculations the price hike would cause this goal to be met.

This news seems to have been ignored by the English media, so this was a quick translation of the source articles.

Saturday, March 24, 2007

Daniel Tammet

I read the book Born on a Blue Day, which is about a savant called Daniel Tammet. I got the book after seeing the documentary "Brainman" on YouTube. The name of the documentary is a word play on the famous movie "Rain Man", where Dustin Hoffman plays an autistic savant. The documentary is over-dramatized, but by concentrating my attention only on the interviews it was an interesting watch.

In the Brain Man documentary Daniel Tammet describes his number synasthesia. "Synasthesia" means the property of associating two seemingly unrelated senses with each other. In the case of Tammet his synasthesia manifests as seeing numbers in different shapes, textures and colors. We might see the number "117" as a boring compination of three digits, but for Tammet it is a very distinct visual object. By using these associations he was able to recite 22,514 decimals of the irrational number pi without a single error. He also has some enrichened sense of words, which enabled him to learn the icelandic language in a week (to some level).

After seeing the documentary I had this image of a super-intelligent person, devoted to mathematics and indifferent to what others thought about him. In his book I discovered a different kind of Tammet however, one seeking acceptance and trying to fit in, all the while having trouble with small issues in life, such as brushing his teeth. A person not single-mindedly devoted to numbers, but one with a personal life with his husband Neil, staying at home cooking meals for him out of materials grown in their own garden. Crying over their dead cat. For Tammet numbers aren't the sole content of his life to the level I had imagined. In his book he hardly talks about numbers, rather concentrating on describing his exchange study in Lithuania and his attempts to be a part of the world which surrounds him.

However precisely because the book was so different from my image of Tammet, it was a very refreshing read. Without realizing it, I had this stereotypical image of what a savant "should be like". Real life is not just numbers, it is about having a daily life which you can feel content with, it is about fitting in, making friends, being accepted. Savant skills for him were not only a gift, but came with significant downsides as well. He had to try hard to make it in the world, but seems that he succeeded.

Thursday, March 08, 2007

AdSense - things I love and hate about it

  • It tempts me to create spammy sites which provide no actual value to the visitors, that in turn makes me feel superficial, greedy and in turn unhappy. My most embarrassing secret: I have actually made a page about mesothelioma once. No more! Valuable content and functionality only! (yeah yeah)
  • It never pays enough. I console myself with the thought that my AdSense ads still make me more than the daily average in some super poor nations, but on the other hand at times I feel like I've worked for that money as hard as someone in a super poor nation (okay not true).
  • Sometimes it displays really unsuitable ads and it angers me that I cannot just tell it what types of ads to display and instead have to rework my content to help AdSense guess better. Example: I wrote a page about how to create objects using a toolkit for a computer game, using a beer bottle as an example of an object you could create. Of course, now AdSense is displaying ads about beer, not about games. Grrr.
  • Spending countless hours excitedly monitoring my pathetic AdSense revenue and click-through rates. Wow, I made $1 today! Hooray! (what?)
  • Moving to a different country requires you to close your AdSense account and open a new one, accumulated funds are saved in the process but it still feels like an unnecessary hassle.
  • The fear that my account would suddenly be closed, without any explanation, with all my funds frozen and not getting an answer when I ask why (apparently has happened to people who at least claim to have done nothing wrong). Not sure if this issue is real, but the fear is, and Google doesn't seem to be very open about it.
Time to get positive...
  • It is a real joy to set up, copy & paste goodness.
  • It provides a somewhat predictable revenue stream when contemplating about starting new sites, a real enabler for webmasters everywhere.
  • It gives Google a lot of money -> Sergey & Larry seem to be into using some of it for space and artificial intelligence research -> I get to take a ride to a distant planet in an AI controlled spaceship and have an intense battle with the AI when it goes berserk midway.
EOF

Tuesday, March 06, 2007

Thank you Sierra for all the great moments

The first time I saw Space Quest 3 was at the house of the literally richest kid in town. I mean really, his dad owns a factory and even a a theme park! So they had this computer called the "PC", with a nice sound system and an expensive Roland sound card. I was standing there while he was playing SQ3 and I was blown away, not even really thinking I could ever own such a system myself.

Later I got an Amiga 500 computer, which looking back kicked the PC's ass when it comes to gaming. I was so happy that Space Quest 3 was available for it, now I could actually play it myself. Of course with all Sierra games there were several disks that you had to change during the game, and you often spent more time waiting for things to load and swapping disks than actually playing. I couldn't afford to get an extra disk drive, let alone a "hard disk" (I had read about those in a computer magazine, apparently it was a device that eliminates changing disks!).

Well, actually I once thought that the disk swapping might come to an end. In that magazine they were talking about this new type of disk, which is readable in a normal floppy drive, but could store as much as 10 megabytes on it. With that I could possibly store the entire game on a single disk and actually afford it! It was called "bubble memory", the technique was apparently that the data was stored as the state of a layer of bubbles on the disk. I was so excited I could hardly contain myself. Then I found out that it was an april fools' day hoax and... I cried.

The most emotional moment from playing Space Quest 3 was definitely walking around in a space scrap yard in the game, discovering something that looks like a ship, then actually getting it turned on and flying off with it! After that discovery I didn't want to fly off right away, but rather I called a friend over and we continued from there together. I think I was so excited I hit my head on my loft bed when getting up from my computer.

Thank you Sierra for all those great moments!

Monday, February 26, 2007

Microsites - progress with image quizzes

My PhpBB extension for image quizzes is coming along quite nicely. 18 hours, 657 lines of PHP and 250 lines of HTML later users are now able to create quizzes and take quizzes. Most headaches I had were session handling, I couldn't figure out how to do it properly with the session handling build into PHP, so I resorted to just passing stuff around in very non-SEOed (lately the word SEO makes me cringe) obnoxiously long URLs.

If I had tried to do everything perfectly then I would have never finished, I think it's important to get a first version out before polishing it too much, see what the users do and then improve on it. Obviously it should mostly work, and it does. Currently it's just in Finnish and I enabled it just on one forum to have a limited test. I hope that people will like it and that it would cause people to spend more time on the forum (which I'm not sure Google Analytics knows how to measure), maybe even get some new visitors that come just to take the quizzes.

One benefit I didn't anticipate from integrating with PhpBB was that it's possible to know who the people taking the quizzes are, so I can construct a scoreboard for them. People love scoreboards, it makes them want to improve their score over and over in order to not look bad. My plan now is to see the effect the quizzes have, polish the code a bit, then create a new PhpBB installation (actually all my installations are virtual, not actually separate instances of the software, using a mod I made) which is focused just on image quizzes and redirect my existing quizzes there.

I love the feeling of publishing stuff on the web, not knowing at all if it might be popular or not.

Monday, February 19, 2007

Microsites - extending PhpBB to support image quizzes

One of the features I imagined any fansite should have is a quiz of some kind to test your knowledge of the series in question. One popular site I have is a Naruto quiz, which I made one evening just for fun. Adding images to that quiz required me to edit things in the database manually and copy images into the image directory manually as well. I want to improve that by creating a PhpBB extension that lets forum users create their own quizzes by uploading images. I have several motivations for making this.


First of course that it is one of the planned features for the microsites I've been talking about for the past few posts. Secondly it allows me to easily create new quiz sites similar to the Naruto Quiz, which seem to easily become popular. Thirdly I can use the feature right away on the forums which I host and get people to make their own quizzes - I'm sure they'll be more creative than me and create kick-ass quizzes.

Tuesday, February 13, 2007

Microsites - Kickstarting a forum

In previous posts I have been describing my idea of using my online Japanese book & record store as a platform for kickstarting microsites around the bands / series sold, the theory being that if there is a popular microsite hosted under the site's domain and with a link back to the products being sold, this will attract customers and result in more valuable conversions than if the microsite was just a separate entity with AdSense ads or Amazon Affiliates ads on it (one purchase from my own store is A LOT more valuable to me than a purchase through Amazon would be).

I'm already very busy with my studies and running the web store as it is, so as the first easy part of the microsite experiment I decided to attempt to launch a forum around the band Antic Cafe. One thing I have learned is that people go crazy over prizes, so I decided to offer a prize to the most active person on the forum. In addition I dedicated some valuable screen estate on the store's main page to promote the forum. Here's what happened:

(162 absolute unique visitors)

The forum was promoted on the web store from the beginning. I marked the beginning and ending dates of the competition in black. It is clear that the competition had a major effect on amount of visits. The 11 members of the forum have written 147 posts up to now, which while modest seems like a good start for such a niche (Finnish fans of the Japanese band Antic Cafe) forum. I neglected to measure how many conversions this forum has created, but I'm not sure if that's even possible. Suppose a web store visitors goes to the forum, then comes back and buys an Antic Cafe record, is that a conversion? There seems to be no way to know if they got excited about the band on the forum or would have bought that record anyway.

I would like to launch the main microsite as well (this forum would be just one part), but I don't want to do that with completely pathetic production values. Also the forum might well be 80% of the microsite's value in the end, so why even bother with the rest?

Features I imagine that each microsite could have:
  • forum
  • polls (but forum already has polls...)
  • quizzes (can you recognize these members/characters from the band/series X?)
  • personality tests (which X are you?)
  • embedded videos (">veoh! youtube is so last year)
  • fanart submission, voting (maybe just a thread in the forum from which these are pulled?)
  • info pages for the series (through a wiki or pulled from forum threads)
  • news (perhaps an embedded RSS reader)
  • gallery (some clever system to get legal-size thumbnails linking to images elsewhere)
  • fan fiction
  • links (perhaps by automatically monitoring server logs for incoming links and favoring those)
Cool but impossible things:
  • exclusive band member / manga author interviews
  • exclusive content from the band / author
Perhaps most of these could use some embedded elements from other sites and would let me avoid actually coding them. If I could just find some good solutions for doing these, then I can use the same formula for a hundred different sites and save a ton of work compared to people who start single fansites for fun.

One option to consider might be to extend PhpBB to support these things. Perhaps there are already plugins for these? That would at least make it very easy to have just a single login that could be used for all of the microsites (since OpenID isn't here yet).

Saturday, February 03, 2007

Did some site reorganizing

I run a small village of microsites on different topics, it's sort of an experiment to see what sorts of traffic I can get. I had the domain jackvalenti.com, which I bought on a whim and set up an unofficial page about Jack Valenti there along with AdSense ads. Well, after spending nearly $100 on the site I am averaging ZERO visitors per day, so to avoid some site fees I am moving the content to a subdomain instead. From now on Jack Valenti page will be here instead.

Another more successful, but still an infuriatingly unsuccessful small site I had was a sweepstakes site. It runs on pligg and used to be in English. Every day I would check the stats on Google Analytics and every day I was getting around 200 visits, but nearly 100% from Finland through one nice inbound link I managed to get, so I will yield under the pressure and turn the site into a Finnish site to serve those visitors better. From now on it will be here: kilpailut.

One thing I have learned while trying to promote my sites is that people respond well to prizes. I had a forum that I was spending some promotion efforts on, but hardly nobody registered to that forum. Then I offered a prize for registering and posting on the forum and suddenly people (in the target group, not just prize scavengers!) started registering and posting. Prizes are expensive though, difficult to say if it makes sense to give them out. On a forum it is very important to reach a critical mass of posts at first, so it may help at that and possibly pay off in the long run.

Sunday, January 21, 2007

Microsites feature - forums

In my previous post I wrote about my intention to leverage the traffic I get to my online store to start microsites around product groups, such as different bands. I took my first step into that direction by tweaking PhpBB and doing some mod_rewrite trickery to allow me to easily create several forums which appear distinct, but are actually all running on the same software and database. This allows me to maintain only one installation of PhpBB and create a new forum in about 20 minutes instead of a complete new installation.

Obviously a microsite is going to need more than just a forum, but I imagine that for a successful microsite the forum would be the most important part of it. To test out the system I created two forums around two bands whose products I sell, Maruru forum and Antic-cafe forum.

Deciding scope


The reason for starting several small forums instead of one big one is to create a sense of belonging / identity for those using them. People seem to feel stronger attach ment to smaller circles. For example people will feel a connection to those attending the same school as them, at a lesser level to those living in the same city as them, even lesser to those from the same country. I want to find the optimal "circle size" to get people to feel that attachment, while not limiting fruitful conversations that could have happened if those circles were combined.

For example I could have created a "japanese music" forum instead of having "maruru" and "antic-cafe" as separate forums. Perhaps I should have, not sure, still experimenting. Certainly someone who is an enthusiastic fan of Antic Cafe would feel less at home at a generic forum for all Japanese music. Still there clearly has to be some minimum size at which an active forum is still possible, if there wasn't I could create a forum for people from Vatican who like Michael Jackson and are into cross-dressing. It would be a small group, but man would they be into it.

Wednesday, January 17, 2007

Microsites

I run a webstore, which means that I get very targeted audiences to my website. They will often even specify their interest by doing searches, or by looking at certain items. Mostly they are only looking, not buying, which is fine of course. Lately I have been wondering whether these targeted visitors could not be used to launch "microsites" related to certain products or product groups.

Take for example a person who searches for "dir en grey", then looks at products from the band dir en grey. Clearly they are quote interested in this band. Perhaps I could tell them "hey have you checked this fanpage for the band?". This could be a very relevant thing to say, and when things are relevant they tend to not be irritating. The trick of course would be that these fansites would actually be sites that I have launched myself (perhaps clearly indicated by being a subdomain of my site, say dir-en-grey.bemmu.com). They would become destinations in themselves, possibly growing and sending back more traffic to the webstore than I originally sent to them, also being nice baits for Google to index.

The microsites could contain a standard feature set and customized skin. For example a forum for talking about dir en grey, but with a forum template showing the dir en grey members. Forums have the effect of getting people to come back to check if their posts have been answered. Another good one is quizzes, which tend to be viral since people like to post the results on their homepages or recommend the quizzes to their friends.

Of course this is nothing new, there are plenty of dir en grey fansites out there, but I would like to make the process of launching these microsites very organized. All the sites would actually share one codebase. There might be 100 different microsites for different bands or manga series for example, but only one forum software running, customized to display a different skin for different audiences, but only requiring one login to use any of those sites. Same for the quizzes or possibly other features. The skins might have been outsourced somewhere, quizzes could be created by the users.

This whole idea might be impossible in that a certain amount of manual labor is always required for the maintenance of those sites. Forums need moderators. Quizzes also need moderation, since if they can be freely created by users there can be inappropriate content. Still by being clever I imagine that I could organize the creation of such microsites to be more efficient than the normal work of creating a fansite (of course these would not really be fansites in the traditional sense, but feature-wise they would be the same).

Amazon and other big webstores might be missing a great opportunity when they are only pushing products at the visitors, where they could be pushing communities as well.

Saturday, January 13, 2007

eBay API experiences

Lately I have been trying to learn how to use the eBay API to list items and learning exponential representation for complex numbers in Algebra. Using the eBay API is the harder one out of those. Just a minute ago I finally succeeded at listing my very first item by using the XML API, it was a bit more complex than I thought! My mental model for how the API would work was that I would pass my eBay user id and password, along with the item details wrapped in some XML.

Nope, there are several different kinds of keys involved. All in all I currently have NINE different pieces of authentication! I have a DevID, an AppID and a CertID. Then there is the eBayAuthToken and the REST API key (which I admittedly only used once for testing, it is not needed for the XML API). But wait, that's only five? Yes, but you see eBay has two servers -- production and sandbox. The sandbox is for testing, which is useful since listing things on the production server costs money, so you definitely don't want to end up listing ten thousand items by accident. The sandbox and production servers have completely different authentication keys, except the DevID appears to be the same (making it nine different keys total).

The eBay developer site doesn't make this sandbox and production server difference clear. When talking about authentication keys, they casually mention that oh yeah, there is the sandbox server too. But what they don't say (on the intro pages at least) is that you need completely different keys for those. So imagine my frustration at attempting to access the sandbox with my shiny new production keys. With all those different keys I was getting really hopeless and uninformed, mostly reading reddit instead of focusing on the problem.

Somehow after a lot of digging I managed to figure it out. A DevID identifies a developer. A developer may have multiple applications, with each application identified with its own AppID. CertID is a magical entity the purpose of which I don't understand, but things seem to work when I bundle the same CertID that came with the AppID. The eBayAuthToken must be generated on their web page, and generating that requires providing correct DevID, an AppID and a CertID for the server which you are trying to use (sandbox or production). In other words you cannot get an eBayAuthToken for the sandbox server by using the production DevID, an AppID and a CertID + vice versa. The REST key is needed only for... you knew it, making REST calls.

After I finally had my keys I started to read the API reference. I tried to pretend calmness, but actually I was a bit shocked of seeing all the possible method calls and the arguments they take. Huge list. Maybe I'm not enough in the XML camp, but in my mind things work like this: you get a template string of a working XML call, then you change the things which are different from what you want and send that string at the server, which then does something cool. It's pretty difficult to try to come up with something that works by just looking at an API reference if there are 20 different arguments that could go wrong! Luckily, the developer center has very nice examples of using the API, so I was able to get things working by copying and pasting their examples.

Another thing which seemed like a showstopper at first was that they require usage of SSL to access their server. That is an excellent thing of course for security, but complicates things a bit when you are just trying to get a minimal example to work. I was planning on using PHP, but felt a bit intimidated at the thought of figuring out how to get SSL working on it. Just to get acquainted with the API, I decided to stick with Perl as they had some nice Perl examples in the developer center, complete with instructions on how to install SSL support for Perl.

So I had my keys, I had an XML request constructed from the example and I had ActivePerl installed on my box, with LWP and SSL support, aaand... it worked!

Update: After 30 mins of reading some example code I managed to figure out how to make the same request using PHP, HTTPS with cURL! One thing I was worried about was how image uploading would work, but turns out that you can just specify an image URL and eBay's server will go and fetch it -- no need to figure out how to actually upload the data, what a time saver! Just a bit more effort and I'll have this code integrated with my web store.

Saturday, December 23, 2006

Another day another launch

Check my new site out if you are looking for expired domain names. It's the best list available, period.

Internet Explorer quirks

I am hacking my new site to get it to work on IE. After trying for a while I am instead applying for a gun permit and looking for the home address of the Microsoft employee responsible for implementing PNG support for IE.


Monday, December 04, 2006

Friday, November 17, 2006

Neverwinter Nights 2

Instead of writing tutorials on Half-Life, I decided to start writing tutorials on Neverwinter Nights 2 instead.

Wednesday, August 30, 2006

Google makes ads more difficult to recognize

I was searching for Yu-Gi-Oh card information and clicked on the first organic link I found, like I usually do.




The page I arrived to was an MFA (made for adsense) site. I thought gee, how is it possible that an MFA site got such a high pagerank that they could be the first result?

At first I thought there must be some new SEO trick out there, but then I noticed that what I had clicked on was in fact an advertisement. They used to be separated with a different color but now seem to have a white background like other search results. Aligned to the right there is a "sponsored link" disclaimer, but on a wide screen it is easy to miss.

Saturday, July 22, 2006

Israeli CS player continues to play regardless of bombs

An Israeli Counter-Strike player is pushing the limits on CS addiction. He was seen playing on his usual server, even though the area he lives in might get bombed. When another player asked him what the situation over there was, he replied "I just heard a siren so perhaps I should seek a bomb shelter, but what the hell, my house walls should give me SOME cover". And he just kept on playing.

Via ircquotes.net.

Monday, July 17, 2006

Kevin Rose says "haha totally" in response to comment

"that's fucken hilarious that kevin rose got his comment pwned by his own system"

There's a story on Digg about a Youtube vid where a weird naked indian cowboy talks about what bad kids shouldn't do on YouTube (with a cigarette and a cowboy hat... yikes). Someone suggests that the video should be playing above the TOS at YouTube, to which Kevin Rose says "haha totally".. and GETS BURIED. -59 diggs and counting on the comment. We must save him, quick, go to the article and Digg him up! Otherwise who knows it will start raining frogs.

In other news, Paul Graham had breakfast. Again.

Sunday, July 16, 2006

Can you speak Japanese?

I met Kimmo yesterday and he thought I was prejudicous to think that that there wouldn't be any people with Japanese skills among anime/manga/jpop fans. Maybe I am wrong and there are actually tons of such people! The reason we had this conversation was because I was complaining how I am often wanting to have someone to help me with manga translation issues (not scanlation, real work) or adding products to the manga shop, but that people with the necessary skills don't exist. I would gladly be proven wrong, so if such a person is hiding out there somewhere then please contact me!


Saturday, July 15, 2006

Computers ARE part of the crazy utopia!

I spent two years studying Japanese at a university in Tokyo. Every day I spent around 5 hours with other students, doing reading comprehension and kanji exercises. We had spoken language classes as well. It was tough, exhausting but I think about the experience with warm feelings now that I have some distance to it.



A type of exercise I particularly enjoyed was having debates. I even attended an extra curricular debate club once, which was interesting because the debaters were all Japanese but they debated in English. They seemed so "in the zone" when doing the debating, forgetting about trying to speak perfect English but instead aggressively getting their point out. I decided not to join this club though as I felt I didn't need any more English exercise and because I'm not a club-attending personality.

Our in-class debate exercises had some great topics, nothing really controversial or anything, but interesting none the less. The university I was in is called ICU or "International Christian University", but some people liked to joke that it actually means "Isolated Crazy Utopia". It was surrounded by a small forest, which truly was crazy considering how tightly packed the area around it is. I'm seriously digressing here, but just look at the picture below. The green parts are the university and around it are very tightly packed houses.




Our debates were often about about kind of save-the-world utopistic stuff. As if we could actually save anything just by talking about it in class. Well I liked to take it seriously though, even if it was just language exercises it's that much more meaningful if you imagine that the debate is serious. One thing we debated about was what to do about poor people. And I suggested that computers could be the solution. I don't think they understood me at all. Instead of computers they need food and shelter. They were happy with that answer.

So let me continue the debate here. Computers can be part of the solution in my opinion. Not so that starving people can play Half-Life and watch videos on YouTube, but because with a computer almost anyone can become instantly employed. There are plenty of options for making money online and if you have modest expectations of what you can make, survival is possible through the net. Basically I believe that if I have an Internet connection then I will never go hungry. This happens to apply to me because I already have some skills which I can use to work over the net, such as programming and Japanese translation.


I'm not saying that we should fly over some starving country and drop iBooks with a satellite link to the net from an airplane. But even in poor countries not everyone is absolutely poor and there are people who are able to take chances. In India there are now some small companies which hire people to type in text. All you need to know is how to read and type. Materials are sent from abroad to be typed into digital form and then these people do the bulk work and send the results back over the net. This is a service for which there is a need as old archives and such get digitalized. Amazon's Mechanical Turk lets anyone make a few dollars through repetitive simple work. With RentACoder developers can compete to do programming work online.


Taking the digitalization as an example, not even a net connection is required to take part in the work, as the company takes care of that part. Then after acquiring a basic way of supporting oneself it becomes possible to advance to other skills and better pay. My explanation was a bit rambling, but the point is that through the Internet money can be made and your location doesn't matter. I really like the MIT Media Lab $100 laptop project, because through it more and more people can have basic skills on using a computer and take part in the global workspace. I've even personally hired some people through RentACoder. It works great!


So this is what I meant by computers being part of the solution for poverty, dear ICU debate teacher. Of course basic education is needed as well, but a computer is also a learning device. I'm sure many kids in developed countries have learned to read and write (or type) by using a computer. I personally learned English a lot through Sierra's adventure games and learned the basics of Japanese through material which I downloaded off the internet. With free laptops distributed by the millions for free to kids in developing countries they will have this chance as well. Based on what I've read a version of Wikipedia will be included with the computers, among other educational software. I hope they don't forget the games, they provide great motivation.

Thursday, July 13, 2006

Microsoft fined -- crazy?

Microsoft got a 270 million euro fine. Umm... seems strange that EU can fine a largely American company. I mean if you think about it, they really should fine Microsoft as much as possible if they are allowed to. After all, it's money coming straight from USA to EU's coffers. Let's fine every American company to their full worth and EU will definitely become the superpower of superpowers! I'm sure we can find something to accuse them of.

Tuesday, July 11, 2006

Loituma craze part 2

I just noticed that according to Google Trends, loituma is now more popular than Hamasaki Ayumi!

Evil Dr. Kraft acquires biscuit company

Kraft acquires United Biscuits Spain... for 522 MILLION DOLLARS *evil laughter*



"The selection and placement of stories on this page were determined automatically by a computer program" A computer program with a geeky sense of humor apparently.

Monday, July 10, 2006

Loituma craze

An already folded Finnish band got it's song used in a Flash video which has been spreading now like wildfire around the net. The band is surprised but welcoming the publicity. First time I've ever seen major newspapers write about a flash video. The band has even received fanmail from people who started to like them after seeing these vids.





Sulake Gets $7M Funding From Japan

Online and mobile games company Sulake Corporation has received $7M funding from Japanese SoftBank BB, Asian Groove formed Movida Group. Sulake is the Finnish interactive entertainment company which created the popular Habbo Hotel series of games. Habbo hotels operate in multiple language versions in 18 different countries and receive 7 million uniques visitors each month. Movida Group believes Habbo Hotel has great chances of becoming popular in Japan as well.



Sources:
TalousSanomat (Finnish)
Sulake press release

Pirate Bay ad revenues being sent to a Swiss bank account?

This is a quick translation of an article which appeared in Finnish. If you understand Finnish then by all means read the original instead.

Stockholm - The image of Pirate Bay as a movement with a cause is crumbling every day in Swedish media. It seems that the advertising revenues are ending up in a Swiss address (minus some fees), an address where a company running "tax planning" is operating. "Tax planning" means channeling funds to countries with low taxes.

Svenska Dagbladet is hinting that Pirate Bay, often considered the flagship of the pirate movement, has no ideology behind it. Not only are large sums of money involved, it seems that there is a Swiss party involved.

After several Swedish magazines attempted to calculate advertising revenues for Pirate Bay, Svenska Dagbladet said that the advertising revenues for the past four months reached 600000 SEK (84000 USD or 65400 EUR). This information was provided to the magazine from the advertising company Eastpoint Media.

Svenska Dagbladet reminds that in reality even larger sums are involved. Pirate Bay operates internationally and advertising sales are therefore also international and being sold by more companies than only Eastpoint Media. In addition it was recently written in Dagens Nyheter that going prices for advertisements on Pirate Bay have recently been on the rise.

Not all of the revenue ends up in the hands of Pirate Bay operators. The companies selling the advertising space take their own share first, after which the rest of the money ends up in the account of a company called Random Media (according to Svenska Dagbladet). The company appears to have a phone number in Stockholm, but its address is in Switzerland.

A company called Geneva Management Group (GMG) operates in the same address with Random Media. GMG deals in tax planning and funds management. Apparently in practice this means channeling funds into countries with low taxes, making it difficult for officials to get information as the banks are very secretive in these countries.

GMC is unwilling to comment on its relationship with Random Media. Daniel Oded, a representative for Random Media, also declined to comment on the handling of funds for Pirate Bay. Oded is said to have patented a system relating to Internet advertising in 1999 and is said to be currently working for an Israeli company called Target Point.

Friday, July 07, 2006

Son dls pron from dad on eDonkey, gets caught

A guy was downloading porn at home in his room with eDonkey, when suddenly he hears his dad yelling from the next room "hey! what are you downloading in there!". So he wonders how could his dad possibly know what he was downloading. In the discussion that followed it turned out that daddy also had eDonkey open on his computer and happened to be sharing the exact file that his son was downloading, realizing this when seeing a familiar IP in the downloaders list.


This must be true because it was said on IRC (#bf). Reported on ircquotes.net (similar to bash.org).

Wednesday, July 05, 2006

Steve Jobs' pilgrimage to India

Steve Jobs began to have an interest in religions while studying philosophy at Reed College. In 1974 he was working at Atari, saving money to make a trip to India, "to see his guru". After saving enough he asked his friend Dan Kottke to join him, even offering to finance his ticket after he was reluctant to go because of the expense (later in 1976 Kottke also became the first paid Apple employee). In India they encountered by chance a guru who takes Jobs up the mountain and shaves his head. Later Kottke also had to shave his because of the lice and fleas. They experienced poverty head first, traveling around in simple Indian clothing under the heat, bargaining for food in towns. In the end Kottke's travel cheques are stolen and the trip had to end. Apparently Jobs did not find enlightenment, but his experiences surely influenced his later work.



Please read these sources for a more detailed account:
iCon (PDF, page 23 onward)
http://www.fastcompany.com/magazine/78/jobs.html
http://answers.google.com/answers/threadview?id=408258

Monday, July 03, 2006

DIVs are the source of cool for Javascript

Back in the day people were obsessing about how to shave off a few clock cycles in their rotozooming effect written in pure assembler. You can understand why I feel a bit giggly when someone is fussing about how #000 is so much more smaller and more efficient in CSS than #000000. We have come a long way -- now it is not even possible to write a smooth rotozoomer that works in browsers in a compatible way (there is a trick for that on IE though). We just have to forget about that sort of effects. One sort of pixel-setting which is allowed though are horizlines, continuous horizontal spans of pixels. These are relatively fast to do since they can be simulated with DIVs. What can you make with horizlines? Polygons! In other words you can make 3D. It will be quite slow, so you can only use a very limited amount of faces, but a cube at least is still doable.




If you squint, you can see that it just consists of many horizontal lines. And you can create a horizontal line with a simple <DIV> tag. Use CSS to set the width to what you want, make the position absolute and set it on the screen where you want using the left and top styles. For the color, you can use the background style. Of course a single horizontal line will get you nowhere, so you need to have many of them. In the image displayed above there are around 500 of them. To create movement, javascript is used to calculate where they should be and the styles are modified on the fly. Pretty perverse, really. The inefficiency compared to assembler is mind boggling, but hey it works (mostly).


To create anything remotely cool, you want things moving. And to get things moving, you need to know how to modify styles in runtime. To do this, you first set a javascript timer to call a function say every 20 milliseconds. The setInterval function can be used to do this, as you surely already know. So you do setInterval("tick()", 20) for example, and then your tick function will be called 50 times per second. Inside this tick function then you do your magic and shuffle the pre-created DIVs around.


Okay, this set you wondering about how to precreate the DIVs. I feel sorry for even mentioning that, since now I will have to explain that as well. You could only create the DIVs as you need them and destroy them afterwards, but that would be slow since you would be altering the DOM tens of thousands of times every second. A better way is to just create those DIVs in the beginning. Just use document.createElement("DIV") in a loop.




        // First create a cache of horizlines
var i;
for (i=0; i<cnt; i++) {
hors[i] = document.createElement("div");
hors[i].style['position'] = "absolute";
hors[i].style['top'] = 0;
hors[i].style['left'] = 0;
hors[i].style['width'] = 0;
hors[i].style['height'] = 0;
hors[i].style['backgroundColor'] = "#000000";
document.body.insertBefore(hors[i], document.body.lastChild);
}



I will not go into any more details now, but suffice to say that inside your tick() function you can then reference the hors array and change the positions using hors[x].style['left'] = 400; for example. If some hors are unnecessary, just use the visibility style to set them to hidden or move them to a negative vertical position so that they will not be visible. Now all you need is some junior high school level math to create a cube out of them. Search the net for "triangle filler" to see how to do that.

Sunday, July 02, 2006

Majority Wins AJAX game

Yesterday I made an AJAX-based game. I don't say AJAX just because things are sliding around nicely, but it actually does use XMLHttpRequest to send some data back to the server. The idea of the game is to try to guess what others would guess others would answer to a question. Confused? Just try it at majority-wins.bemmu.com.


I was completely in the zone while making this game, it took maybe only 6 hours to make. It's funny how when doing something interesting I can be 10x more productive than doing something I'm forced to do. If I had done this at work, I'm sure it would've taken more than a week.


I posted it on Digg, but only got 4 Diggs. It was a real disappointment, since to be honest it was the whole goal of making this game. Maybe I should've been more blatant and use the words "AJAX" and "Amazing" in the title. It's a bit sad that I've missed my chance now, since reposting wouldn't be very nice.

Saturday, July 01, 2006

Jason Steele & Charlie the Unicorn

Update: New videos: Charlie the Unicorn video for YouTube LIVE and Charlie the Unicorn 2


I discovered a pretty funny video called "Charlie the Unicorn". After watching it I Googled for the maker "Jason Steele" and found another good one, "Spatula Madness". Great South Parkish animation and stories with that required sense of nihilism.


Charlie the Unicorn


Found some fan art too. On their site filmcow.net there are some other videos as well, even some live-action stuff, but perhaps it's not as good. If Jason Steele ends up big and famous, Charlie the Unicorn could become cult stuff.

Tuesday, June 20, 2006

Google reacting to click fraud

I had the Google support people as my pen pals for a while. I was complaining to them about one particular site (axill) which seemed to be doing something fishy with Google's ad blocks, and requested my money back ($70). They said they would investigate. They investigated. They gave me my money back. Thank you Google.


What, no place for positive stories in the world?

Tuesday, June 13, 2006

Faster scrolling in Windows

I got my first job writing software when I was 15. It was a summer job. I learned programming routine and in addition two things: it's possible to make big money by having your own company, and secondly, you can scroll down faster in Windows if you wiggle your mouse around while doing it.

Wednesday, June 07, 2006

"Easy" Internet Cafe

I'm still in New York, and since I'm spending a long time in here, I need to be able to access the Internet from time to time, in order to keep things running in my online shop, move my studies forward and that sort of stuff. But here's the problem: it's impossible to conveniently get onto the Internet from New York. It's incredible.

There are some net points in connection to some cafes, but they tend to cost almost $10 per hour, which is okay for just checking the map or news, but doesn't work if you need to spend 5 hours there writing a school report. Then one day, I managed to find this great place right in the center, on 42nd street, a net cafe called "Easy Internet Cafe". As a kind of disclaimer on what I'm about to say, the business is a franchise business, so the people at the easy group might not know how bad the situation is in here.

The setting is that of ghosts which are between the living world and the underworld, they have gone through a tragedy but they have unfinished business before they can find rest, which is why they are wandering, looking for the thing to satisfy their unfinished business. In the case of this cafe, the tragedy which happens is that people wander in here and decide to buy a pass for using one of these computers. You see, first you buy a pass from a vending machine, then find a computer where you can use this pass. But what you don't realize when you buy the pass is that although it seems as if there are a lot of free computers, actually almost none of them work. So you see these ghosts, wandering from computer to computer, hopefully moving the mouse or trying to turn on the screen, only to face darkness. But they have paid. They cannot leave satisfied until they find a computer which works.

You may think I'm exaggarating. I'm not. Maybe you think that I'm just upset because one out of ten computers doesn't work. Maybe you think I don't understand how fragile things computers are. No it's definitely not me, it's this place. About one fifth of the computers work. Seriously. The other ones either have frozen or blinking screens, windows has crashed, some system files are missing, the computer is endlessly rebooting or something similar. My favorite one is the computer which displays "this computer is free", blinking encouraginly, but then after you sit down, open your Red Bull, thinking that you finally found a computer which works and try to get to work, nothing happens. It's frozen to the "this computer is free"-screen. In desperation you try to hit the keys or move the mouse, but... nothing. That's just too cruel.

Update: One guy started warning others not to pay. The security guards got very angry and threw him out. Even though he had already paid. They said "you are now TRESPASSING" in a somewhat threatening voice, he apologised many times saying "I was only trying to get value for my money" and went outside, followed by the security guards, where the argument continued.

Sunday, June 04, 2006

New York

Finnair had a great offer of 300€ for a return ticket to New York, so I decided to make a visit. I also found a reasonably priced hostel called Wanderers' Inn, which costs just 20€ per night, making this a very cheap trip indeed. Joel Spolsky from Fog Creek Software invited me to visit for lunch, so I had something to look forward to. I have been in New York for a week now. Yesterday I became sick and only reluctantly left the hostel. Later I regretted it, almost throwing up in central park. After walking about 4 miles away from the hostel, the sky opened up and the heaviest rain I had ever seen began. There was so much water it started flowing over from the street into the sidewalks. I had no umbrella and soon I was totally wet. And I was already sick. There was nowhere to go. Inside cafes it is so cold because of the air conditioning. So I walked 4 miles back in the rain. About a mile before reaching the hostel I managed to find a shop selling umbrellas. I almost had a fight with another customer for the last umbrella. Next night at the hostel I was shivering, obviously I had a temperature. I was confused. One moment I was feeling hot, the next I felt shivering cold, all the time feeling a pounding headache. I hope the rain will stop and I could enjoy the city and still see Fog Creek later on.

Monday, May 22, 2006

Improving AdSense relevance (especially for PhpBB forums)

All you need to do for selecting the type of advertisements you want is to put an additional GET parameter into your URL!

If your site is about rats for example and is located at somewhere.com/something/blah.php, but Google insists on giving you advertisements about owls because that term just happens to appear somewhere on the page, it seems quite effective to simply make the URL somewhere.com/something/blah.php?owls.

On my server I have two PhpBB forums, both of which are displaying some advertisements. While they get ~20000 page views per week, advertisement clicks are zero. It was obvious why this was. While the target audience was teenager dog lovers, the advertisement Google's AdSense is displaying are about IT infrastructure and car parts, I couldn't imagine them being any more unrelated.

First of all I wanted to see in what kind of cases the Google server would come and reread the page content to target the ads. If I don't know that, then it would be impossible to make any improvements and know if they had any effect. So I made a test page and tried changing the ad channel name, create a new ad section and change the page content, but none of these caused the google bot to come. However I noticed that changing the name of the page does cause it to come, even if you just add GET-parameters after the URLs (I'm sure it filters out sids and such), the bot comes to reindex.

Okay, now I know how to make the bot come. How do I get it to understand what the page is about? I tried the putting the google_ad_section_start tag around forum posts, like adviced somewhere, but it didn't help at all. But here's the magic worth million dollars: Google AdSense really cares about the NAME of the page. If instead of view_topic.php you have dogs.php for example, it assumes it's about dogs! Well, I didn't want to rename all of my pages, so I tested if it would be enough to just add the a GET parameter about dogs, and sure enough it was. I was finally getting dog-related advertisements.

Now, how to make that happen in PhpBB? Here's how. Go to sessions.php and find a function definition for append_sid. Append_sid is the function which makes sure that even without cookies, sessions won't be lost. Also it's a very convenient place to add new GET parameters, as every URL which is displayed by PhpBB goes through this function. Here's my new function:



function append_sid($url, $non_html_amp = false)
{
global $SID;
if ( !empty($SID) && !preg_match('#sid=#', $url) )
{
$url .= ( ( strpos($url, '?') != false ) ? ( ( $non_html_amp ) ? '&amp;' : '&' ) : '?' ) . $SID;
}

// Try to make adsense understand that this page is about dogs!

return str_replace("?", "?dog&", $url);
}



After this modification, all of the forum pages now show ads which are relevant. I'm happy, the users are happier, advertisers are happy and Google is happy.

Friday, May 19, 2006

Faster software keyboard


I thought this was cool. Watch the video to see the researcher typing in text painstakinly using a "soft keyboard" (like in some PDAs) and then watch him do it again using an augmented one to speed up the input.


Textinput demo screenshot


I'm getting fond of reporting research done in my university, because there is a lot going on and very little of it ever gets reported outside the research labs, interesting though it may be.


The paper on this

Thursday, May 18, 2006

How I made a fortune with AdWords and AdSense...

I have a confession. I have one of those annoying landing pages which just mostly contain advertisements, but not much content. It started as a legit site where I hosted a sweepstakes competition for a while, but after the sweepstakes had ended and there were still people pouring in, I decided to replace the previous site with a simple link directory and some ramblings sometimes (so there IS content too), but mostly just lots and lots of Google ads. Still the people are hanging around, so I guess they don't totally despise the page as it is now.


It worked. What I discovered is that people who have an intent to participate in sweepstakes have extremely trigger-happy ad-clicking mouse buttons compared to most crowds. The clickthrough rate was 3%, which I feel is incredible (comment if you think it's just normal to you!), especially considering how high in value sweepstakes ads are (average $0.36 per click). As lovely as this equation is, the absolute amount of visitors is very low (200 per day) so only a few dollars at best are generated in a day.


I thought I'd try AdWords, so I started calculating this thing out on paper. If 1000 visitors bring in $10.75 on average, perhaps I could get that many from AdWords with that price and maybe even make some profit. I figured that if I buy site-targeted ads at the lower price, which is $0.20 for 1000 displays and if 2% of people click on the ad, I could get 20 visitors for $0.20. Twenty visitors for my site is worth exactly $0.20, so I could break even. Those people are already proven ad-clickers, so perhaps they would be worth even more.


So I ran a test. I decided to try it out with about $100. I wrote a quick and dirty ad, chose some sites pretty much at random and then started thinking which tropical island I would most like to spend the rest of my life in... After coming back later to check the situation, I found myself a wealthy man. Okay, actually it was a total shocker, it underperformed my wildest imaginations. After 300000 impressions there were only 75 clicks -- CTR of 0.02%!!! That's absolutely horrible. I spent $76 to get $.75!


I made a fortune with AdWords and AdSense alright... for Google.


Update:
When examining the situation a bit closer, I noticed that all of the ad dollars had gone to one site, axill.co.uk. When I went to check the site out to figure out why the CTR was so low, I couldn't even find the ad section. It seems to me that they are somehow syndicating their own AdSense ads away (is that allowed?). I contacted a Google support guy and am now waiting for his reply on this. I'll post again when I get the reply. I did some searching on Axill and they seem a bit shady...


The landing page can be found on http://www.bemmu.com/win/ if you are in a masochistic mood.

Thursday, May 11, 2006

Getting tagged as a bad neighborhood on Google

Google seems to tag some sites as "bad neighborhoods". Such sites are completely dropped from the index and links from these sites will negatively affect the sites being linked to. From my experimentation, I know of two ways to get yourself tagged as a bad neighborhood, and I thought I'd share them with you.


First way I know is being linked to from link collections. If there are large numbers of links to your site from such link lists, Google seems to think that you are attempting to game the system, and your site's position will suffer. It might be that this is just a property of their algorithm and that there are no "bad neighborhood" tags, but effectively your site will be punished if you try to submit to many such lists.


Eventually Google seems to forgive, though. Someone I know was left with the task of trying to restore a site into Google's listings after some excuse for a site optimizer had gotten their site delisted from Google. Of course there was nothing that could be done, as the links could not be removed, but as time passed the site eventually appeared in the listings again.


Second way to get slapped I discovered myself -- typosquatting. I made an experiment where I created a page which contained ten variations of the term "sweepstakes", with links to my own page (on another domain). Google's reaction was fast. Just three days passed, and all the subsites on the entire domain got completely delisted from Google. There were four subsites which had a fine ranking on Google for months, but had now completely disappeared from listings, so it was not just random fluctuation.


The page has been removed, and I'm waiting now if the badness tag I got was permanent or if I will be relisted again on the next indexing round. Moral of the story: don't be evil, and Google will like you.

Monday, May 01, 2006

Star Wreck team to announce new project Monday


Emperor James B. Pirk appeared today in his May Day speech in Tampere, Finland (4 hours ago). In his speech he reminded us that a good working class member is cheap, efficient and obedient. After a song in the Emperor's honor, the Star Wreck team also made an appearance, with director
Samuli Torssonen commenting their production team's intention to announce a new project on their homepage on Monday. He was tight-lipped about specifics at this point. A compilation of the Emperor's speech will appear later on the Star Wreck homepage.


Correction: the monday means 8th of May

Tuesday, April 04, 2006

Apple engraves "Apple rocks" instead of "Microsoft 4ever" on iPod


According to ircquotes.net (Finnish), someone placed an order for an engraved iPod from the Apple store, requesting the text "Microsoft 4ever" to be engraved on the back, but when it arrived the text "Apple rocks" was written there instead.


I feel this is in line with Apple's policy "We make every effort to ensure that personalisation text for engraved iPods does not contain any errors", since writing that Microsoft rocks would surely be a mistake the policy cannot allow.

Saturday, April 01, 2006

Measuring the effect of virtual reality on balance

In a doctoral dissertation (PDF) recently published by Timo Tossavainen at the University of Tampere, Finland (the same department where I study), the effect of different types of virtual reality stimuli on balance was measured with a pretty cool setup. A force platform is placed under the test subject and stimuli very similar to the ones in the 1992 scifi film The Lawnmower Man are shown. The platform can measure whether and how much a person is leaning in a direction. They tried using both head-mounted displays and a CAVE environment where the visuals are projected on walls.





"Dots with CAVE caused 3 test subjects to lose balance and 2 of them also lost balance during tunnel with CAVE" "The direction of leaning is generally the direction of rotation. For example, the subjects tend to lean left during counter-clockwise rotation around the line of sight"


Below are some images which were included in the dissertation, check out the whole PDF for more, including the actual "stabilograms" that the force platform produced.






Friday, March 31, 2006

Business squared

Tampere (Finland) is my home city, a city of red brick factories and green parks with trees, and a river flowing through the center. There are wonderful cafes around the town, trendy new ones near the bigger department stores and the train station, ones where you can order a cappuccino and they actually understand what you're talking about.

There are others with a spirit of the city as it used to be, where you better just order a normal drip-coffee or risk being seen as an icky new-world metrosexual (if they knew what that was). Not that cafes or the city have anything to do with anything, except that I had some thoughts about the different levels of business while searching for some of those old-style cafes.

I saw an advertisement in some restaurants about a new type of service where you can order food to be delivered to you by a telephone call or a visit to a website. The thing is, the restaurants themselves are not providing this service, rather there is a company which will take your order and then order the food and bring it to you. In a sense they are providing food for their customers, as your order can be picked from a common menu, but yet they do not actually have to cook it themselves.


They found a way to take ordering home delivery of food into another level. Instead of providing one type of food and making it themselves, they can provide a more varied menu and provide a better service. There are other examples of this. Take used book stores. How to take that a level higher? Well, there is a company which has contacted many used book stores and provided them with custom software and instructions which enable them to easily sell their books in a common marketplace. Now customers can search which books they can find in many book stores, instead of just randomly browsing through one. Of course the biggest example would be Amazon Marketplace, where Amazon provides the book descriptions and images and sellers can offer those books for sale. For buyers, all the books for sale can be conveniently be found at the same location and Amazon is happy as they can get a cut from all the sales made by others.


Wouldn't you agree that there is something similar about these examples of book selling and with the food ordering service? All of these are instances of taking a common thing and raising it to a higher level. What other levels could there be? If you think of a restaurant, the problem that it is solving is providing people with something to eat. So instead of people making food for themselves, someone might decide to make food professionally for others and start to work in a restaurant as a cook. This would be going up a level. Let me indulge in a bit of pseudomathematical masturbation and call this level x.


There could be yet someone else, who would see that by hiring many people specialized in making and serving food, they could control the operation in an even higher level. Instead of making food as an employee in a restaurant, he could control the whole operation on a higher level, removing himself from the drudgery of actually chopping onions. He has reached x squared in his thinking. Well, I'm sure you're ahead of me here and know what I will say next, but I'll say it nevertheless. The example of the service which provides customers with food from restaurants through a common menu is taking this thinking to x cubed.



Be a clerk at a book shop - x, own a book shop x², start Amazon Marketplace -- x³.



I feel that Amazon Marketplace and the food delivery service are providing useful services. But there are cases when going up a level can be unnecessary. When making computer programs, some things can be done by using ready-made functions or classes arranged into libraries. This can make difficult things easy, like using the Google Maps API to get a map instead of making such a component yourself. Well, there are people who might say that they don't like how the API is and would rather create their own wrapper to it. To which I would say that this "higher level" is unnecessary and possibly even a hindrance.


Where am I going with this analogy? An example of an unnecessary level of abstraction in business would be real-estate agencies. They are providing a service which admittedly does take renting houses to a new level, since they can offer many options, but I feel that this level is now becoming obsolete. People are perfectly capable of communicating with each other effectively enough to make this intermediary unnecessary. A digital camera and a message board on the net is all that is needed. Perhaps the need for this level is still there, but at least it is shifting. By the way, someone came up with a way to take message boards up a level and has a website where people can easily create their own boards for free, of course with advertisements by you know who.


This is an exciting time. I feel that the boom is not over, or perhaps my mind has been irreversibly damaged by it or I am living in a state of denial. I still feel that there are possibilities to take things to the higher level, positions of useful intermediaries still waiting to be filled. And the scary thing is that once these positions are filled, it is often very difficult to change them. eBay has become the intermediary of used goods, and it would be very difficult for others to fill their position, as they have all the users. This is why Skype was sold for that ridiculous price, they have the userbase and competition would now be too difficult. It would not surprise me much to see eBay still being around after a hundred years. I cannot imagine mass desertion of deviantART (according to Big Boards they have 5 million members, same as the population of Finland) or Flickr either, a competing service would have to be significantly ahead in their execution for users to even consider such a thing.


There are still such spaces to be filled, businesses to be squared or even cubed. Whoever manages to fill those spaces properly may get a userbase who will stay faithful. This is especially true for anything with a social aspect -- eBay is all the more useful the more users they have. When the size of the userbase is essential to the usefulness of the service provided, it might be impossible for a competitor to take over. Can it really be true that with a few years of effort, eBay has secured themselves a place in cyberspace which will bring them enormous fortunes for all time ever after until the sun runs out of helium, or will the need for an intermediary shift?


I will end this on a bit lighter note. If you think up from the business cubed to taking it to the power of four, what do you get? Lawyers and investment bankers, helping people like me who are utterly convinced of the unique possibilities of the Internet age lose all their money trying to become the next big thing. How about business taken to the power of five? Monks. No, really. They have realized that all this talk over achieving fortunes is nonsense, that really it is better to forget about wanting anything in the first place. Jules became such a monk in Pulp Fiction. At level six we have god, for whom the whole question of wanting is irrelevant as anything can be created and nothing is needed.

Thursday, March 30, 2006

Japanese ninja cockroaches

Warning: you will be grossed out. The first Japanese cockroaches I experienced in our western-style apartment (no tatami mats) taught me to respect these beings, even if they are just insects they are incredibly skilled superinsects at that. I believe each skill deserves to be studied and worshipped in turn in an orderly fashion.


Menacing appearance


They look so ugly and repulsive that if cockroaches made music, thousands of Kiss fans all over the world would jump ship and buy their records. This is a skill, because it is an effective deterrent to us evil humans trying to disturb their peace. I however have gotten quite used to them, they may be as long as my finger with their long black waving antennas but I refuse to be terrorized. They might intend to frighten me into chaos and retreat. But they have failed; I am strong.


Supersonic speed


Pop quiz: what is black, but moves like a lightning? One thing I couldn't read in a book was how fast they are, I mean you'd expect a creature this clumsy in appearance and so large to move at a bit more leisurely pace but oh no, dead wrong, when they move it's like zzzZZZAP. They are one of the few creatures on earth that can move faster than light speed, creating an appearance of several of them as light of the creature in its new location reaches your eyes while the creature is also being perceived in its old location simultaneously (see Picard Maneuver). Or maybe there just are many of them.


Advanced hiding skill


I had been chasing one around the room and managed to corner it into a metal box which had only a few items in it. I pushed the items to the other side of the box and expected what's left to be the cockyroachy thing I was looking for. No such luck. So I start looking at the items I pushed to the side, then remove the items one by one. As there are only two smallish items left I start to believe that the insect must have escaped. Nevertheless I continue to remove the remaining items and what do you know, it was hiding cleverly behind one of them!


Another incredible thing about cockroaches is their ability to fit through incredibly small spaces. I mean for a creature of their size it's not something you would expect. Case in point -- I am chasing a particularly nasty one around our loft and finally have it in a corner where it clearly has no place to escape anywhere. What happened next I could hardly believe, IT PASSED THROUGH THE WALL. Whooo... creepy. On closer inspection there was a tiny little space between two planks of wood but not such that I would have expected anything to be able to pass through. This infinitesimal crack (even if you added an infinite amount of these cracks together, I doubt it would make an actual crack) has since been filled in my neverending attempt to extinguish the stream of these spawns of satan.


Unmatched strength and bravery


I believe this little story will illustrate this well enough. I think this was actually the very first cockroach I ever killed. I had tried to capture it with all kinds of clever methods, without any success. Then suddenly in midrun it flips over. Then while waving its little legs hopelessly it just stays still, since its on its back, on its black shell. Rather than calling it quits and giving mercy, I decide to kill it. I put a newspaper over it and stomp it with my foot. Dead? Nope. I stomp it again. I lift over the newspaper and see it split into two pieces with some internal organs spilled on the floor. Success!


I approach it in order to throw the pieces away, but what happened next I could hardly begin to believe. The thing started moving. It's in two pieces, but it moves! It moves with a purpose, it starts escaping, quite slowly, but it attempts escape. While it's doing this, it's DRAGGING ITS INTERNAL ORGANS BEHIND, which is the reason why this attempted escape is quite slow. I mean come on, it's against the rules of the universe to continue moving when you are in more than one piece with your internals hanging out! They certainly have sisu (Finnish concept of not giving up and fighting 'till the bitter end).




Well, this concludes my little treatise on this wonder of nature. I hope you found it both educational and amusing. Thank you.


Sunday, March 26, 2006

Net citation collection

Found a really neat site today, bigcite.com. Citation from them: "At any rate after seeing many of the social bookmarking sites pop up I decided to throw some code at an attempt to take my quotes (and those of my friends) online in a searchable and shareable way... bigcite.com was born!"


Citation from me: "Why didn't I think of that!?"


Citation from Jung: "The creation of something new is not accomplished by the intellect but by the play instinct acting from inner necessity. The creative mind plays with the objects it loves."

Reason for Pirate Bay being down

The Pirate Bay, the ultimate place for finding links to torrents (such as Linux distributions), seems to be down now. I heard their search engine is just broken, so it will be back soon. Message from them: "thepiratebay is down - we work on it, so be cool :)"

Update: They installed new hardware.

Another thing. I posted about my reload compo before. Well, I had to take that compo down. I always did feel that it was a borderline case that Google might not like so much, but now I noticed that there is a part in their ToS which forbids giving incentives for ANY activity on a page. I was never giving incentives for searching and certainly not for clicking on ads, but I WAS giving incentives for visiting the page, therefore it appears I should not have the search box there and I decided to shut the site down.

Sunday, February 12, 2006

Yahoo offering prizes too

According to the San Francisco Chronicle "Yahoo Inc. is considering offering free music downloads, discounts on DVD rentals and frequent-flier miles to users who make the Web site their primary search engine". Microsoft was doing the same with their MSN Search competition page. A legit way to get visitors or a pathetic acknowledgement that nobody will use your search engine unless you pay them?

Thursday, December 01, 2005

BoingBoing post

Pretty cool post in BoingBoing about scientists being able to predict people's success at a computer game. Reminds me of what I read in a book called "The Singularity is Near" -- when considering what to do, you have already made a decision before you realize it. You are already acting on things which you do not even yet feel you have finished considering, but for consistancy's sake your brain will complete the thought process because you would get confused if it was stopped in the middle.