Thursday, November 24, 2005

Dual Dishwasher

Darn it! I had this idea years ago (actually, so did these guys, but I was first). In fact, why have cupboards at all? Just have two sets of kitchenware and alternate dishwashers.

I had another kitchen appliance idea (whilst I am on the subject): Make all the applicance frontages smoked Pyrex, but make the panels the same size and able to slide out easily so you can rotate them between appliances. That way the dishwasher can help keep the oven or fridge doors clean. The smoked Pyrex look might be a bit 1980's if it wasn't designed stylishly, but at least it would be clean.

Originally posted on Gizmodo.

Thursday, November 17, 2005

$100 Laptop

Could this be the way for developing countries to leap-frog back to economic parity with the west?

$100 Laptop$100 Laptop, Handle
$100 Laptop$100 Laptop
$100 Laptop$100 Laptop
$100 Laptop

Friday, November 11, 2005

Arthur Ganson Presents a Few Machines

Originally posted on Cool Tools:

Cool and useless. That's my definition of art. A midnight engineer and MIT professor creates totally useless machines. They are exquisitely beautiful. They do absolutely nothing. At best they whir and click and shake. A genuine artist, he also has filmed his machines obliquely, only partially seen, behind a veil of mystery. You want to know how they work, what they do, how come? No answers. Only peeks at cool and useless machines in marvelous varieties and cleverness, turning, turning, turning. Utterly riveting, supremely inspiring, and very geeky.  Show this at a party, and everyone stops transfixed.

arthur_ganson.jpg arthur_ganson.shot.jpg arthur_ganson.shot2.jpg

Arthur Ganson Presents a Few Machines: Created between 1978 and 2004. 70 min. $20

Available from Arthur Ganson


My in-laws have bought this for me for Christmas, they just don't know it yet. I think my boys will also enjoy it, although B2 is happy with just about anything as long as it fits in his mouth :-)

Thursday, November 10, 2005

Evolution isn't progress

From BBC Online: Evolution suffers Kansas setback

What next, equal billing for "flat earth theory"?

Actually I think the flat earth people look like a lot of fun, whereas the ID people look like dangerous, fundamentalist hicks.

Visual Studio 2005 for free!

Well, the express edition anyway, and for just one year, but this is still a very generous offer from Microsoft. I think this will empower a whole generation of programmers, and is the sort of grassroots investment needed to revive the home-computer revolution that launched my generation of programmers.


UPDATE: Nice to known that I am not the only one who bemoans the loss of the home computer. Any angel investors listening? I have the solution, but it will take at least a year of funding.

Microsoft leaked memos

Obviously these memos will be all over the internet by now, but this is a shout-out to colleagues reading my blog: Heads up! Think services, think seamless.

Ray Ozzies original memo

Bill Gates endorsement e-mail

Friday, November 04, 2005

Why didn't Babbage use binary?

My mother asked me an interesting question today as research for her book on the history of textiles: "Why did Babbage use denary rather than binary in his difference engine?".

The short answer is that he should have used binary, but the reason why goes to the very heart of the digital computing revolution. Here is my answer:

The key thing about Babbage's "difference engine" and all modern computers is that they are digital (like an abacus) rather than analogue (like a slide rule). The reason this is important is to do with precision: If you want to make a slide rule 10 times more accurate, you need a finer, more precise, machine to craft it with, and every improvement in precision is increasingly expensive: a saw that can cut to the nearest millimeter is 10 times more expensive than one that is accurate to a centimeter, and so on. In comparison, adding more accuracy to a digital computer means just adding another "cog". For instance, if Babbage had 4 cogs in his machine and could crank out numbers like this: 43.25; he could add a single new cog and crank out 43.248, which is 10 times more accurate. The difference in cost is only ¼ of the amount he already spent on the previous 4 cogs. So for the same precision improvement, the analogue computer was 10 times as expensive, whereas the digital was only ¼ more expensive.

So Babbage made the right decision choosing a digital design, but why denary and not binary? One disadvantage of binary was that it would have complicated the printer he designed: it would have had to translate 101011.01 into its decimal equivalent (43.25) when writing out the results. However, binary beats denary because of the precision you need to use when manufacturing the "cogs", and it was the cost of achiving this precision that ultimately defeated Babbage.

To elucidate futher: the less states each "cog" has to represent, the easier it is to distinguish between states. Therefore, the parts can be manufactured cheaply and with more generous tolerances, allowing for greater bang-for-buck. The machines of Thomas Fowler realised this, and employed just 3 states. Obviously the binary system is the logical conclusion of this argument, although why we don't use base-1 is an interesting topic for a seperate post.

There are some nice features of analogue computers, and (I was suprised to learn) this area is not completely dead, but in almost all cases digital computing is the best choice.

As an epilogue to this argument, consider the three things important in a modern computer: speed, speed, and speed (to quote Bill Walster). Computers are getting faster and faster because of increasing density of components; the closer the components are, the faster electricity can travel between them. This leads to an ironic situation that greater component density relies on higher precision chip fabrication, which as we know costs increasingly more to provide. So why are computers still getting cheaper? The answer is that the size of the production runs gets longer and longer, so the initial cost of the foundary is spread more thinly. If the market for chips saturates, this will no longer hold true.

Thursday, November 03, 2005

Initialize STL container classes

Ever wanted to initialize a map container as easily as a built-in array? The boost assignment library has the solution:

map<int,int> bob = map_list_of(1,2)(2,3)(3,4)(4,5)(5,6);

Wednesday, November 02, 2005

Kids Programming Language

KPL is an interesting looking programming language and community for children (from 6+ years of age apparently). It looks like a mix of BASIC and LOGO.

One day I would like to have a really good go at making computer programming more accessible to children. I have plenty of ideas and absolutely no time.

.NET Generics FAQ

Juval Lowy has posted four excellent FAQs about .NET Generics on MSDN: Fundamentals, .NET Framework, Tool Support, and Best Practices.