One Laptop Per Child

According to CNN, it looks like the One Laptop Per Child project is on its way to actually implementing its goal into the first set of countries next year. Which I think is great news and I think the project will go a long way in world education as well as spread Open Source technology and ideals across the globe.

I have been following this project for a while and if you don’t know what it is I encourage you to read more about it at their website. Basically they are trying to design and produce a laptop composed of durable yet cheap materials that can be mass produced, so they can give them out (or sell them cheaply to governments) around the world. It looks like they are set to move between five to seven million units in 2007. Their aim is to hit a $100 price tag per laptop.

Each laptop is water resistant and features a 10:1 crank charged battery (one minute of cranking yields ten minutes of power). It will have a basic Linux based operating system with just the basics, to be used for network communication (Web, Email, etc) and document viewing and modification (text, spreadsheet, etc). The laptop will use flash memory instead of hard drives and base network communication on a distributed network, so that if you get a laptop in range of another one they will be able to share data and build larger and further reaching networks based on how many laptops that can be stringed together. This will allow intercommunication at least on some level for even the most remote locations.

I chatted with some of the people involved on IRC for a little while and they seem very technology focused. They are working hard to get the hardware and software working together so they can give these units out for testing. Which makes it a little difficult to find opportunities to help outside of the realm of hard-core programming. I think as they get this project further along they will be able to outreach to more volunteer opportunities; the Getting involved in OLPC gives some ideas but is not complete.

It will be exciting to see this project develop.

Firefox 2.0 beta 1

The other day I saw this eWeek article commenting on the first beta release of Firefox 2.0. The article pretty well sums up my thoughts on the beta as well. Which is that not too much has changed for the user interface except that the tab closing icon has been moved from the right side of the window and onto the right side of the tab. Which I consider a good thing (however I have long since gotten past accidentally closing the wrong tab). They have also improved the extentions and plugins interface, but I didn’t really play around with it all that much myself.

However the one user interface feature they are adding to Firefox 2.0 that I think will keep Firefox’s features ahead of Internet Explorer (even IE7) is that addtition of the inline spell checker for form inputs. It will allow you to spell check forms before you submit them; which is a great feature for a blog or other community web system. This feature has been enjoyed by other browsers (i.e. Konqueror) for some time, but I think by Firefox adding the feature it will be a huge visual thing that will help convince the average computer users to leave Internet Explorer behind. And lets face it Firefox is the forerunner in converting average computer users away from Internet Explorer, so it needs all of the niceties it can get (despite where the inspiration may have come from).

They have also done a lot of work to improve the application efficiency. To be honest with you though, I have never found Firefox to be running noticeably slow. However the computers that I use have relatively new processors and a gigabyte or more of RAM.

Security is also tightented down as well; but you really wouldn’t expect anything less considering their track record. They have had six releases in less than a year since their last major release. Microsoft definitely can’t say the same thing (IE6 released August 2001).

Firefox 1.5 - November 29, 2005
Firefox 1.5.0.6 - August 2, 2006

Unfortunately Firefox 2.0 will not pass the Acid 2 test, but its standards compliance is improved some and still far outshines Internet Explorer 6 (and I imagine IE7 as well). Hopefully by the time Firefox 3.0 rolls around they will have compliance shored up well enough to pass the test. Right now Safari 2, Opera 9 and Konqueror 3.5; as well as a few obscure browsers (iCab, maybe a few others) are the only ones that pass the test.

Here is the link to download the beta. I encourage anyone to give it a test drive.
http://www.mozilla.org/projects/bonecho/all-beta.html

Here is a link to the Firefox Roadmap. It will give you an idea of when the next release will be.
http://www.mozilla.org/projects/firefox/roadmap.html

PHP’s isset() function

I did a quick experiment with the isset function in PHP that I thought might be useful to others (as well as myself down the road). I was curious as to how ‘isset’ acted when tested against function arguments that do not have default values set in the function definition.

Here is the code:

<?php

function one_arg($one) {
    return (isset($one)) ? 'true' : 'false';
}

class one_arg_class {
    public function one_arg($one) {
        return (isset($one)) ? 'true' : 'false';
    }
}

echo one_arg() . "\n";
echo one_arg(0) . "\n";

echo one_arg_class::one_arg() . "\n";
echo one_arg_class::one_arg(0) . "\n";

$object = new one_arg_class();
echo $object->one_arg() . "\n";
echo $object->one_arg(0) . "\n";

?>

The output came back:
false
true
false
true
false
true

There were warnings produced by the above code as well. I left them out for readability.

The the results show that no matter how you call a function; whether it be globally, or through a class by scope resolution or object declaration; if you do not specify a value to an argument that does not have a default value, ‘isset’ will return false.

{
}