Stefano Mazzocchi, a software engineer, writes about CSS and design for programmers, open data, and Google's Dalvik and Java licensing.
HN recommends his CSS design guide as a step-by-step help for non-designers, and links his 2007 post on Dalvik and Sun's Java ME licensing.
Android, Inc. (the original company) chose Java because their target market (smartphones) nearly universally supported Java (JVM) at the time of the inception of Android, so the phones ran Java and phone developers knew and were comfortable with Java.
Ref: http://en.wikipedia.org/wiki/Android_%28operating_system%29#Acquisition_by_Google
I was unable to ascertain whether Dalvik came from Android, Inc. or was created by Google after acquiring Android. My memory says the later.
The Dalvik VM is an end-run around the Sun JVM licensing issue:
http://en.wikipedia.org/wiki/Dalvik_virtual_machine
See especially the reference http://www.betaversion.org/~stefano/linotype/news/110/
This raised more than one eyebrowse, and sure did make me raise mine: how did Google manage to get Sun to license off a platform that could very well kill their own?
Turns out, they didn’t: their move was even smarter than Sun’s.
Today Google released the Android code and I took a serious look at its internals... and found the solution for the licensing problem. It’s called Dalvik and it’s the new name of Sun’s worst nightmares.
I know what you mean. I've been trying as well to become better at design, if only so I can proudly say I designed my website myself. I've bookmarked several articles about design, but one that really helped me get started was http://www.betaversion.org/~stefano/linotype/news/169/
It's full of useful tips and tricks that I would never have thought of on my own. And for completeness, here are the rest of my bookmarks. Hopefully they'll be helpful for someone.
http://www.smashingmagazine.com/2010/01/28/color-theory-for-designers-part-1-the-meaning-of-color/
http://www.smashingmagazine.com/2010/02/02/color-theory-for-designers-part-2-understanding-concepts-and-terminology/
http://www.smashingmagazine.com/2010/02/08/color-theory-for-designer-part-3-creating-your-own-color-palettes/
http://sixrevisions.com/css/font-face-guide/
http://sixrevisions.com/web_design/the-960-grid-system-made-easy/
Slight tangent: why does Android use a VM, but not a standard JVM?
As said in this article: [C/C++ is better than Java when] very small footprint is required (these days that does not include most phones). You can get JVMs that run well in a few hundred KB.
The situations where a VM, but not a JVM are sensible seem to be totally squashed between C/C++ on one side and the JVM on the other.
There was some theory that it was to do with licencing (http://www.betaversion.org/~stefano/linotype/news/110/) but the argument got a bit obscure for me. Something along the lines of Google couldn't officially call it Java because it wouldn't meet the licencing requirements of the test suite.
But not being able to call it "JavaTM" seems like a small price compared with having an incompatible VM.
From the previous threads about design I would recommend "Non-designer's Design Book" which includes simple exercises. I also found this (http://www.betaversion.org/~stefano/linotype/news/169/) article very helpful. And "Designing for the Web" book (http://designingfortheweb.co.uk/) which focuses on core principles of design and how to apply them for the web. For basic understanding of usability I recommend "Don't Make Me think" by Steve Krug which is an excellent book.
I'm an engineer, but I design my own. I'm not a great designer, but most importantly, it's usable. I mainly stay away from too many fancy things, and stick with a general color palette, the right font, and most importantly, spacing and vertical rhythm.
I suggest you take a look at a book called design for non-designers by robin williams (not the actor).
And this post has really helped me.
http://www.betaversion.org/~stefano/linotype/news/169/
This article from 2007 might be of interest:
"How Google routed around Sun's IP-based licensing restrictions on Java ME": http://www.betaversion.org/~stefano/linotype/news/110/
It's apparently not a complete surprise, this guy in 2007 predicted that
... in the future expect a shit-load of IP-related lawsuits
on this.