Saturday, July 22, 2006
Israeli CS player continues to play regardless of bombs
Via ircquotes.net.
Monday, July 17, 2006
Kevin Rose says "haha totally" in response to comment
There's a story on Digg about a Youtube vid where a weird naked
In other news, Paul Graham had breakfast. Again.
Sunday, July 16, 2006
Can you speak Japanese?
Saturday, July 15, 2006
Computers ARE part of the crazy utopia!
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?
Tuesday, July 11, 2006
Evil Dr. Kraft acquires biscuit company
"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
Sulake Gets $7M Funding From Japan
Sources:
TalousSanomat (Finnish)
Sulake press release
Pirate Bay ad revenues being sent to a Swiss bank account?
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
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
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
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
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
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.
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
What, no place for positive stories in the world?
Tuesday, June 13, 2006
Faster scrolling in Windows
Wednesday, June 07, 2006
"Easy" Internet Cafe
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
Monday, May 22, 2006
Improving AdSense relevance (especially for PhpBB forums)
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 ) ? '&' : '&' ) : '?' ) . $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.