<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://developer.db4o.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Carl Rosenberger's web log</title><link>http://developer.db4o.com/blogs/carl/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Debug Build: 61019.2)</generator><item><title>Paircasts - How we work</title><link>http://developer.db4o.com/blogs/carl/archive/2008/05/21/paircasts-how-we-work.aspx</link><pubDate>Tue, 20 May 2008 16:07:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:49152</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>0</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/49152.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=49152</wfw:commentRss><description>&lt;P&gt;Have you ever wondered how and when an idea was developed? Would you have liked to see how the corresponding lines of programming code were written to make a dream come true? Are you interested how the people behind the code are like and how they behave when they work together?&lt;/P&gt;
&lt;P&gt;Hey, I would really like to know a lot more about many of you guys out there and how you work.&lt;/P&gt;
&lt;P&gt;So here is an offer:&lt;BR&gt;When we work on code (usually programming in pairs of two), we record screen and audio of our sessions to make them available for download as videos.&lt;/P&gt;
&lt;P&gt;Let's call these videos "Paircasts".&lt;/P&gt;
&lt;P&gt;A first selection of 10 recorded sessions is available on our new &lt;A href="http://developer.db4o.com/blogs/paircasts/default.aspx"&gt;Paircasts blog&lt;/A&gt;. You may want to read &lt;A href="http://developer.db4o.com/blogs/paircasts/archive/2008/01/14/about-paircasts.aspx"&gt;"About Paircasts"&lt;/A&gt; first. It also tells you where to get a free video player and/or the right codecs.&lt;/P&gt;
&lt;P&gt;If you like the idea of Paircasts, please do try to record your own and tell us about them. Our team would love to peek over your shoulder also.&lt;/P&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=49152" width="1" height="1"&gt;</description><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Culture/default.aspx">Culture</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Pair+Programming/default.aspx">Pair Programming</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Paircasts/default.aspx">Paircasts</category></item><item><title>LINQ for Java</title><link>http://developer.db4o.com/blogs/carl/archive/2008/05/02/linq-for-java.aspx</link><pubDate>Fri, 02 May 2008 11:14:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:48827</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>7</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/48827.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=48827</wfw:commentRss><description>&lt;P&gt;LINQ - Language INtegrated Queries - are a developers dream come true. Queries are an integral part of the primary programming language. They are typesafe, compile-time checked, refactorable and autocompleted by the IDE. If you want to read up more on LINQ, &lt;A href="http://blogs.msdn.com/charlie/archive/2006/10/05/Links-to-LINQ.aspx"&gt;Charlie Calvert’s Links to LINQ&lt;/A&gt; are a nice starting point.&lt;/P&gt;
&lt;P&gt;At db4objects we really like &lt;A href="http://www.db4o.com/s/linqdb.aspx"&gt;LINQ&lt;/A&gt;. Isn’t it cool that Microsoft has come up with a standard that is a great fit for object databases?&lt;/P&gt;
&lt;P&gt;LINQ is available for .NET, but what do we have for Java? Nothing comparable really. What would it take to implement language integrated queries for Java?&lt;/P&gt;
&lt;P&gt;A plugin for the Eclipse IDE and compiler with support for basic LINQ queries would be a great start to get the Java community excited. Wouldn’t this be a very nice open source project to work on together?&lt;/P&gt;
&lt;P&gt;At the &lt;A href="http://odbmsjournal.org/icoodb/"&gt;icoodb conference&lt;/A&gt; we discussed this idea and the feedback we got from other object database vendors was very positive.&lt;/P&gt;
&lt;P&gt;With this blog posting I would like to pick up the idea.&lt;/P&gt;
&lt;P&gt;Are you interested to help implement a LINQ-for-Java prototype? If you are, please join the &lt;A href="http://groups.google.com/group/jlinq"&gt;LINQ-for-Java Google group&lt;/A&gt; and reply to &lt;A href="http://groups.google.com/group/jlinq/browse_frm/thread/b9d5a1cd42723307"&gt;this thread&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The group also hosts a poll thread: &lt;A href="http://groups.google.com/group/jlinq/browse_frm/thread/d80025a227bd5333#"&gt;Would you like to see LINQ for Java?&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;If you think that LINQ for Java is a great idea, please add your +1 vote to this thread.&lt;/P&gt;
&lt;P&gt;I have also &lt;A href="http://groups.google.de/group/jlinq/browse_frm/thread/4c9496fda5a7fdf3"&gt;posted&lt;/A&gt; an outline with the principle plan:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Collect supporters in the LINQ-for-Java group 
&lt;LI&gt;Start the LINQ-for-Java Open Source project (probably using the Google Code hosting system) 
&lt;LI&gt;Implement a free (as in freedom) prototype 
&lt;LI&gt;Promote LINQ-for-Java with key industry players 
&lt;LI&gt;File a Java JSR 
&lt;LI&gt;Create a reference implementation 
&lt;LI&gt;Promote LINQ-for-Java as the standard database access layer for Java &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;If you are in for this plan, please help.&lt;/P&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=48827" width="1" height="1"&gt;</description><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Java/default.aspx">Java</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/icoodb/default.aspx">icoodb</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/jlinq/default.aspx">jlinq</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>In Balance</title><link>http://developer.db4o.com/blogs/carl/archive/2008/04/28/in-balance.aspx</link><pubDate>Mon, 28 Apr 2008 12:47:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:48752</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>0</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/48752.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=48752</wfw:commentRss><description>&lt;P&gt;Whenever I have spent too much time in front of a computer, it's a healthy exercise to create something with my hands. Here is a picture from my most recent project:&lt;/P&gt;
&lt;P&gt;&lt;img src="/blogs/carl/attachment/48752.ashx" alt="Attachment: bookshelf.gif (134865 bytes)" border="0" /&gt;&lt;/P&gt;
&lt;P&gt;The reading corner in front of the fireplace is now surrounded by a new bookshelf. I have built it from scratch, using cheap Douglas-fir wood, which was originally intended for the floor of our veranda. I was surprised myself that it took me less than three days from plan to completion and the work was great fun.&lt;/P&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=48752" width="1" height="1"&gt;</description><enclosure url="http://developer.db4o.com/blogs/carl/attachment/48752.ashx" length="134865" type="image/gif" /><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Wood/default.aspx">Wood</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Life/default.aspx">Life</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Home/default.aspx">Home</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Furniture/default.aspx">Furniture</category></item><item><title>Back Home</title><link>http://developer.db4o.com/blogs/carl/archive/2008/03/18/back-home.aspx</link><pubDate>Tue, 18 Mar 2008 08:54:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:47876</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>0</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/47876.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=47876</wfw:commentRss><description>&lt;P&gt;After a very intense week in Berlin, I am happy to be back home.&lt;/P&gt;
&lt;P&gt;Zora is happy too.&lt;/P&gt;
&lt;P&gt;&lt;img src="/blogs/carl/attachment/47876.ashx" alt="Attachment: CatsAreAngels.gif (120692 bytes)" border="0" /&gt;&lt;/P&gt;
&lt;P&gt;Cats are angels.&lt;/P&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=47876" width="1" height="1"&gt;</description><enclosure url="http://developer.db4o.com/blogs/carl/attachment/47876.ashx" length="120692" type="image/gif" /><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Cats/default.aspx">Cats</category></item><item><title>I cood b in Berlin 2008</title><link>http://developer.db4o.com/blogs/carl/archive/2008/03/16/i-cood-b-in-berlin-2008.aspx</link><pubDate>Sun, 16 Mar 2008 07:14:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:47828</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>0</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/47828.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=47828</wfw:commentRss><description>&lt;P&gt;The &lt;a href="http://odbmsjournal.org/icoodb/"&gt;icoodb&lt;/a&gt; helped to find the &lt;a href="http://www.kudzuworld.com/blogs/tech/2006_09_02.EN.aspx"&gt;missing LINQ&lt;/a&gt;. I also found one of my own. IT all makes sense now.&lt;/P&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=47828" width="1" height="1"&gt;</description></item><item><title>Will Web 3.0 ( Android ? ) be Peer-to-Peer ?</title><link>http://developer.db4o.com/blogs/carl/archive/2008/01/27/will-web-3-0-android-be-peer-to-peer.aspx</link><pubDate>Sat, 26 Jan 2008 15:52:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:46197</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>0</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/46197.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=46197</wfw:commentRss><description>&lt;P&gt;Yesterday I gave Google Earth a try to see what the Sky view looks like. Playing around, I decided to switch on all content layers around my area. ( 47°51'49.49"N,&amp;nbsp; 11°22'41.96"E )&lt;/P&gt;
&lt;P&gt;Happily I discovered that the virtual world around our place is not yet polluted with YouTube smog. Curious to see what a busy place looks like, I flew over to San Francisco and here is what I found:&lt;/P&gt;
&lt;P&gt;&lt;img src="/blogs/carl/attachment/46197.ashx" alt="Attachment: AndroidEarth.gif (65670 bytes)" border="0" /&gt;&lt;/P&gt;
&lt;P&gt;Isn't this overvhelming already?&lt;/P&gt;
&lt;P&gt;How will you be able to find a recommended Thai restaurant on a mobile screen?&lt;/P&gt;
&lt;P&gt;Imagine every single person walking around using an Android phone, constantly sharing location, pictures, videos, going sightseeing and getting shopping hints from commercial offers. If this would work like Google Earth does today, the vertical extension of layered icons would make the phone screen shatter.&lt;/P&gt;
&lt;P&gt;What struck me when I used Google Earth was how long it took to load all the data. I have a very fast broadband connection but still it took minutes to load all these icons.&lt;/P&gt;
&lt;P&gt;When the usage of Android devices picks up, the amount of location-based data is going to double every other month. Obviously it is not going to work that all the data around you gets pushed onto your device every time you open a map.&lt;/P&gt;
&lt;P&gt;In this scenario caching on devices will be essential.&lt;/P&gt;
&lt;P&gt;Searches will not be fulltext only but possibly highly complex. For instance you may want to have a constant “my dream spouse” query running with all the criteria you like about a man/woman, to recognize a candidate when you run into him/her on the street.&lt;/P&gt;
&lt;P&gt;Imagine 1 billion people in China or India running this query. Can this still be handled well by a monolithic server architecture?&lt;/P&gt;
&lt;P&gt;Maybe full scalability could be the best scalability: Devices in geographical promixity talking with eachother directly.&lt;/P&gt;
&lt;P&gt;Even maths may tell you that peer-to-peer processing can make a lot of sense: How would a server farm look like that beats 1 billion 500Mhz processors?&lt;/P&gt;
&lt;P&gt;Does Peer-To-Peer functionality make sense on Android?&lt;/P&gt;
&lt;P&gt;What do you think?&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;(&lt;EM&gt;&lt;STRONG&gt;Hint&lt;/STRONG&gt;: If you take part in the &lt;/EM&gt;&lt;A href="http://code.google.com/android/adc.html"&gt;&lt;EM&gt;Android goldrush challenge&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; don't waste time using a &lt;/EM&gt;&lt;A href="http://www.sqlite.org/"&gt;&lt;EM&gt;shovel&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; when you can use an &lt;/EM&gt;&lt;A href="http://www.db4o.com"&gt;&lt;EM&gt;excavator&lt;/EM&gt;&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;B&gt;Related Content on this site&lt;/B&gt; &lt;BR&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx"&gt;Why Android will start the mobile Tornado&lt;/A&gt; &lt;BR&gt;&lt;A href="http://developer.db4o.com/blogs/christof/archive/2007/11/13/android-brings-handsets-to-the-next-level-and-open-doors-a-mile-wide-for-db4o.aspx"&gt;Android brings handsets to the next level - and open doors a mile wide for db4o&lt;/A&gt;&lt;BR&gt;&lt;A href="http://developer.db4o.com/blogs/product_news/archive/2007/11/13/db4a-database-for-android.aspx"&gt;db4A - database for Android&lt;/A&gt;&lt;BR&gt;&lt;A href="http://developer.db4o.com/ProjectSpaces/view.aspx/Android_Password_Manager"&gt;Android Password Manager Demo Application&lt;/A&gt;&lt;BR&gt;&lt;A href="http://developer.db4o.com/ProjectSpaces/view.aspx/Incubator/Android"&gt;Ideas for the Android Developer Challenge&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=46197" width="1" height="1"&gt;</description><enclosure url="http://developer.db4o.com/blogs/carl/attachment/46197.ashx" length="65670" type="image/gif" /><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Android/default.aspx">Android</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/db4o/default.aspx">db4o</category></item><item><title>Sun buys MySQL, Oracle buys BEA</title><link>http://developer.db4o.com/blogs/carl/archive/2008/01/16/sun-buys-mysql-oracle-buys-bea.aspx</link><pubDate>Wed, 16 Jan 2008 14:23:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:45914</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>3</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/45914.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=45914</wfw:commentRss><description>&lt;P&gt;Today seems to be a good day to buy companies.&lt;/P&gt;
&lt;P&gt;&lt;a href="http://blogs.sun.com/jonathan/entry/winds_of_change_are_blowing"&gt;Sun buys MySQL&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;&lt;a href="http://money.cnn.com/2008/01/16/news/companies/oracle/?postversion=2008011608"&gt;Oracle buys BEA&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;...and the day has only yet begun. Let's see what happens next.&lt;/P&gt;
&lt;P&gt;Tim O'Reilly has &lt;a href="http://radar.oreilly.com/archives/2008/01/sun_acquires_mysql.html"&gt;commented on the price&lt;/a&gt; for MySQL.&lt;/P&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=45914" width="1" height="1"&gt;</description></item><item><title>A DZone Feature Request</title><link>http://developer.db4o.com/blogs/carl/archive/2008/01/07/kudos-to-dzone-s-fresh-links-for-developers.aspx</link><pubDate>Mon, 07 Jan 2008 13:45:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:45618</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>0</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/45618.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=45618</wfw:commentRss><description>&lt;P&gt;Finally social bookmarking starts to be fun. I really like &lt;A href="http://www.dzone.com"&gt;DZone&lt;/A&gt; and the way voting works there. You really get "fresh links for developers". Reading along the &lt;A href="http://feeds.dzone.com/dzone/frontpage"&gt;Popular Links Feed&lt;/A&gt;&amp;nbsp;I feel better informed about what's going on than I ever was before.&lt;/P&gt;
&lt;P&gt;For some people the amount of links that pop up as "popular" may be too many to digest. In that case it can help to subscribe to the personal feed of a friend. &lt;A href="http://www.dzone.com/links/users/shared/52230.html"&gt;Here&lt;/A&gt; is my feed.&lt;/P&gt;
&lt;P&gt;An even better solution would be, if everyone could generate his own feed with criteria that a link has to meet. I suppose it would be very easy to have different feeds with a certain number of positive votes. ("Popular" currently means 4 positive votes, I think)&lt;/P&gt;
&lt;P&gt;It would be even cooler if you could have&amp;nbsp;a list with "friends" and "foes" of other DZone users. Votes of "friends" could be doubled. Votes of "foes" could be inverted.&lt;/P&gt;
&lt;P&gt;There is this one guy who always votes against the links that I post. I think I really want to read all the articles he is against. It's a good sign of quality if he gives an article a down vote. ;-)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;: This post is &lt;a href="http://www.dzone.com/links/a_dzone_feature_request.html"&gt;linked from DZone&lt;/a&gt;. People are starting to discuss more possible DZone features in the comments section there.&lt;/P&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=45618" width="1" height="1"&gt;</description><category domain="http://developer.db4o.com/blogs/carl/archive/tags/social+bookmarking/default.aspx">social bookmarking</category></item><item><title>Release Early, Release Often</title><link>http://developer.db4o.com/blogs/carl/archive/2008/01/02/release-early-release-often.aspx</link><pubDate>Tue, 01 Jan 2008 17:54:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:45475</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>2</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/45475.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=45475</wfw:commentRss><description>&lt;P&gt;If marketing would always have as much influence on release dates as it does in the software industry, airplanes would probably fly like this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.youtube.com/watch?v=UZq4sZz56qM"&gt;http://www.youtube.com/watch?v=UZq4sZz56qM&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Sometimes I wonder if I have the right job. I am considering the following&amp;nbsp;alternative:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.youtube.com/watch?v=ryMgZ0pyGS4"&gt;http://www.youtube.com/watch?v=ryMgZ0pyGS4&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;;-)&lt;/P&gt;
&lt;P&gt;Happy New Year 2008 !&lt;/P&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=45475" width="1" height="1"&gt;</description><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Cats/default.aspx">Cats</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Fun/default.aspx">Fun</category></item><item><title>How good is your favourite programming language?</title><link>http://developer.db4o.com/blogs/carl/archive/2007/12/31/how-good-is-your-favourite-programming-language.aspx</link><pubDate>Sun, 30 Dec 2007 23:30:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:45444</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>7</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/45444.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=45444</wfw:commentRss><description>&lt;P&gt;...it depends...&lt;/P&gt;
&lt;P&gt;Well yeah, of course it does. "Good" means nothing at all without "good at what".&lt;/P&gt;
&lt;P&gt;Three of the key metrics are of course:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;speed 
&lt;LI&gt;memory consumption 
&lt;LI&gt;size of the code base&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&amp;amp;lang=all"&gt;Here is a very nice website&lt;/A&gt; that let's you weight what you are interested in most to race your favourite languages against eachother.&lt;/P&gt;
&lt;P&gt;I recommend that you spend some time to play with the parameters. What happens if you rate CPU time (performance) to be most important? Which language is a good choice if you want the smallest codebase?&lt;/P&gt;
&lt;P&gt;Thanks to Miguel for the pointer on his blog and for &lt;A href="http://tirania.org/blog/archive/2007/Dec-28.html"&gt;his interpretations&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;When you choose a language for your next software project you may want to think beyond three simple metrics that are easily measurable. Here are some more factors that need consideration:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Potential user base for libraries that you write 
&lt;LI&gt;Availability of educated and experienced developers 
&lt;LI&gt;Strong IDE support 
&lt;LI&gt;Tool support (profilers, code coverage, obfuscators, build) 
&lt;LI&gt;Productivity (time needed to write one line) 
&lt;LI&gt;Readability (time needed to read one line) 
&lt;LI&gt;Safety (Does the compiler check as much as it can?) 
&lt;LI&gt;Advanced Concurrency Concepts (Actors, Software Transactional Memory) 
&lt;LI&gt;Elegance 
&lt;LI&gt;Reusability 
&lt;LI&gt;Availability of&amp;nbsp;powerful (free) libraries 
&lt;LI&gt;Supported deployment platforms and operating systems 
&lt;LI&gt;Future (Who will develop and support the language ?) 
&lt;LI&gt;Availability of the language source code 
&lt;LI&gt;Extensibility of the language source code&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;My 2 cents: No language is perfect. Comparing to all other languages, the big picture of Java is quite good. Functional languages are likely to have a bright future in a more concurrent world [1].&amp;nbsp;&amp;nbsp;Scala could give us the best of all worlds, if IDE integration were better and if there would be visible strong support by one of the big players (preferably Sun, IBM or Google).&lt;/P&gt;
&lt;P&gt;[1] While travelling over the holidays I spent some time to read in books on Haskell, Erlang and Scala. Mind bending! Great fun!&lt;/P&gt;&lt;/A&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=45444" width="1" height="1"&gt;</description><category domain="http://developer.db4o.com/blogs/carl/archive/tags/STM/default.aspx">STM</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Scala/default.aspx">Scala</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Java/default.aspx">Java</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Programmming+Languages/default.aspx">Programmming Languages</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Actors/default.aspx">Actors</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Haskell/default.aspx">Haskell</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Erlang/default.aspx">Erlang</category></item><item><title>Interview with Martin Odersky (Scala)</title><link>http://developer.db4o.com/blogs/carl/archive/2007/12/23/interview-with-martin-odersky-scala.aspx</link><pubDate>Sun, 23 Dec 2007 12:22:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:45296</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>0</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/45296.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=45296</wfw:commentRss><description>&lt;P&gt;If you are interested in &lt;A href="http://www.scala-lang.org/"&gt;Scala&lt;/A&gt;, make sure you watch &lt;A href="http://www.parleys.com/display/PARLEYS/Interview+with+Martin+Odersky+at+JavaPolis%2707"&gt;this interview&lt;/a&gt; with &lt;a href="http://lamp.epfl.ch/~odersky/"&gt;Martin Odersky&lt;/A&gt;, the key designer of the language.&lt;/P&gt;
&lt;P&gt;In case you don't know Scala yet:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;It's a fusion of functional programming and object-orientation, taking the very best of both worlds. 
&lt;LI&gt;It compiles to Java byte code and .NET IL code, so you can mix Scala with your existing Java or .NET libraries. Java support appears to be slightly better. 
&lt;LI&gt;Plugins for &lt;A href="http://www.scala-lang.org/downloads/eclipse/index.html"&gt;Eclipse&lt;/A&gt; and &lt;A href="http://blogtrader.org/page/dcaoyuan/entry/first_experimental_scala_supporting_for"&gt;Netbeans&lt;/A&gt; are being worked on but of course they are not yet as mature as JDT. 
&lt;LI&gt;The first Scala book &lt;A href="http://www.artima.com/shop/forsale"&gt;just came out&lt;/A&gt;. 
&lt;LI&gt;The Scala documentation that comes with the download is very good. I recommend to work through "ScalaByExample.pdf" to get a grasp of the language. 
&lt;LI&gt;Scala provides strong advanced concepts for concurrent programming, "Actors" for example.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;From what I can see, the Scala crew is doing a brilliant job at designing the language.&lt;/P&gt;
&lt;P&gt;I can see Scala superseding Java as the most popular programming language.&lt;/P&gt;
&lt;P&gt;(...and of course, Scala and &lt;A href="http://www.db4o.com"&gt;db4o&lt;/A&gt; play together very nicely in case you ever want to store objects or query for them...)&lt;/P&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=45296" width="1" height="1"&gt;</description><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Eclipse/default.aspx">Eclipse</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/db4o/default.aspx">db4o</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Scala/default.aspx">Scala</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Netbeans/default.aspx">Netbeans</category></item><item><title>Why Android will start the mobile Tornado</title><link>http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx</link><pubDate>Sun, 18 Nov 2007 15:57:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:43662</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>13</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/43662.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=43662</wfw:commentRss><description>&lt;P&gt;It &lt;A href="http://android-developers.blogspot.com/2007/11/android-first-week.html"&gt;has been a week&lt;/A&gt; since the &lt;A href="http://code.google.com/android/"&gt;Android software development stack for mobile devices&lt;/A&gt; has been released. For me as the founder of the &lt;A href="http://www.db4o.com/"&gt;db4o object database&lt;/A&gt; this has been one of the most exciting events in the lifetime of our product and our company.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://code.google.com/android/"&gt;Android&lt;/A&gt; will converge the fragmented mobile development platforms and it will make it possible to develop mobile location-based applications for a worldwide user base. This is the start of the mobile tornado. Here is why.&lt;/P&gt;
&lt;H2&gt;Content&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#landscape"&gt;Landscape for a Tornado&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#locationbased"&gt;Location-Based Services&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#money"&gt;Money and Advertising Resources&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#opensource"&gt;Open Source&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#ecosystem"&gt;Strong Ecosystem&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#applications"&gt;Applications&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#technology"&gt;Technology&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#database"&gt;Database support&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#myapp"&gt;My first Android application&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#friends"&gt;Android, let's be friends!&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#killers"&gt;Mobile Killer Applications&lt;/A&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#ride"&gt;Ride Sharing&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#meet"&gt;Meet Anywhere&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#global"&gt;Think Global!&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#notonlyphones"&gt;Just for phones?&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://developer.db4o.com/blogs/carl/archive/2007/11/19/why-android-will-start-the-mobile-tornado.aspx#web3"&gt;Web 3.0&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;H2&gt;&lt;A class="" title=landscape name=landscape&gt;&lt;/A&gt;Landscape for a Tornado&lt;/H2&gt;
&lt;P&gt;Looking from a global perspective, the landscape of mobile operating systems is highly fragmented. The key players are phone manufacturers and carriers, all with own proprietary technology. Thinking globally even &lt;A href="http://www.symbian.com/"&gt;Symbian&lt;/A&gt;, Microsoft and &lt;A href="http://www.apple.com/iphone/"&gt;Apple&lt;/A&gt; are small, with 60m, 20m and planned 10m deployed phones per year.&lt;/P&gt;
&lt;P&gt;Because there is no standard operating system, carriers tend to write applications for normal browsers using Ajax (Javascript). Ajax on phones has downsides:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The user experience on small screens is not good. 
&lt;LI&gt;Applications only work with a connection to the Internet. 
&lt;LI&gt;There is no solution for local storage and caching of structured data. 
&lt;LI&gt;Complex interactive applications are not possible because of transfer lag and transfer bandwidth. 
&lt;LI&gt;The local processing power of the devices is not used. 
&lt;LI&gt;Scalable server side applications are challenging to develop. 
&lt;LI&gt;Ajax application development is cumbersome, expensive and slow. 
&lt;LI&gt;There is no standard to reach out of the browser to access local device services like GPS, camera, contacts, call list, microphone or speaker. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Imagine you have an idea for a mobile killer application today, and you want to deploy it worldwide, which technology would you choose?&lt;/P&gt;
&lt;P&gt;If you are not in a hurry to release, you should use Android. Here is what Android has to be a winner:&lt;/P&gt;
&lt;H2&gt;&lt;A class="" title=locationbased name=locationbased&gt;&lt;/A&gt;Location-Based Services&lt;/H2&gt;
&lt;P&gt;Google has the knowhow for the server infrastructure to provide location-based services.&lt;/P&gt;
&lt;P&gt;The Android SDK already comes with two very useful packages: com.google.android.maps and android.location. You can create your own overlays on top of Google maps. LocationManager allows writing a 'ProximityAlert' to wake up the phone and make things happen if you come within radius of a location.&lt;/P&gt;
&lt;H2&gt;&lt;A class="" title=money name=money&gt;&lt;/A&gt;Money and Advertising Resources&lt;/H2&gt;
&lt;P&gt;Google.&lt;/P&gt;
&lt;H2&gt;&lt;A class="" title=opensource name=opensource&gt;&lt;/A&gt;Open Source&lt;/H2&gt;
&lt;P&gt;Android is free as in free beer, under the &lt;A href="http://www.apache.org/licenses/LICENSE-2.0"&gt;Apache License&lt;/A&gt;. Anyone can take Android components and use them in their own technology. Why should companies spend years and millions to reinvent wheels if they can reuse Android components? If Google engineers stay on top of developments, proprietary technology branches will eventually converge back into Android.&lt;/P&gt;
&lt;H2&gt;&lt;A class="" title=ecosystem name=ecosystem&gt;&lt;/A&gt;Strong Ecosystems&lt;/H2&gt;
&lt;P&gt;With Linux, Java and the Eclipse IDE, Google has chosen the strongest existing open source ecosystems.&lt;/P&gt;
&lt;H2&gt;&lt;A class="" title=applications name=applications&gt;&lt;/A&gt;Applications&lt;/H2&gt;
&lt;P&gt;Google has started a &lt;A href="http://code.google.com/android/adc.html"&gt;10 million dollar developer challenge&lt;/A&gt; to make sure applications will be available quickly.&lt;/P&gt;
&lt;H2&gt;&lt;A class="" title=technology name=technology&gt;&lt;/A&gt;Technology&lt;/H2&gt;
&lt;P&gt;The very first SDK shows that some of the smartest Java engineers had enough freedom and time to build the foundation for a skyscraper from scratch.&lt;/P&gt;
&lt;P&gt;The Dalvik Java VM runs with a compressed improved bytecode format and it can run multiple applications side-by-side with low resource consumption and without applications being able to disturb eachother. Both features have been on Suns Java RFE list for years, Google simply just built them.&lt;/P&gt;
&lt;P&gt;The use of the &lt;A href="http://harmony.apache.org/"&gt;Apache Harmony&lt;/A&gt; class library is a smart move. This way Google is independant of Sun's path to fully open source Java. Harmony also is a lot faster in many aspects.&lt;/P&gt;
&lt;P&gt;Eclipse integration is amazingly good from day 1 of the SDK. Anyone who is used to working with Eclipse can write his first running Android application within minutes.&lt;/P&gt;
&lt;P&gt;The DDMS perspective in Eclipse to control and monitor the emulator is the best emulator management console I have seen. Other emulators with years of time to mature, like the ones from Microsoft or Symbian give you the impression that they run far away from you and you have to "connect" to them with multiple tools. With the DDMS Eclipse perspective you immediately feel on top of what is happening, you have control from within. The logging view is not just a sequential dump of text, but you can filter, for instance by process, by severity or by your own tags.&lt;/P&gt;
&lt;P&gt;You can see all running activities, their heap usage and what the threads are doing. The system sums up the time taken for each thread for you, very nice.&lt;/P&gt;
&lt;P&gt;The tutorial tells you why it is very important to control the efficiency of applications on devices: Efficiency means longer battery life, less battery weight and lower device cost.&lt;/P&gt;
&lt;P&gt;Most of the application framework concepts look well done to me. Some of the key building blocks are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Activity - a screen of an application 
&lt;LI&gt;Intent - an action request 
&lt;LI&gt;Intent Receiver - application code to react to requests 
&lt;LI&gt;Services - shareable non-visual application components &lt;/LI&gt;&lt;/UL&gt;
&lt;H2&gt;&lt;A class="" title=database name=database&gt;&lt;/A&gt;Database support&lt;/H2&gt;
&lt;P&gt;"Content Providers" are intended to provide database-like functionality. Now that's very interesting for us, let's take a look at the API:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;public abstract Cursor query( &lt;BR&gt;&amp;nbsp; &amp;nbsp; ContentURI uri, &lt;BR&gt;&amp;nbsp; &amp;nbsp; String[] projection,&lt;BR&gt;&amp;nbsp; &amp;nbsp; String selection,&lt;BR&gt;&amp;nbsp; &amp;nbsp; String[] selectionArgs,&lt;BR&gt;&amp;nbsp; &amp;nbsp; String groupBy,&lt;BR&gt;&amp;nbsp; &amp;nbsp; String having,&lt;BR&gt;&amp;nbsp; &amp;nbsp; String sortOrder)&lt;BR&gt;insert(ContentURI uri, ContentValues values) &lt;BR&gt;update( &lt;BR&gt;&amp;nbsp; &amp;nbsp; ContentURI uri, &lt;BR&gt;&amp;nbsp; &amp;nbsp; ContentValues values, &lt;BR&gt;&amp;nbsp; &amp;nbsp; String selection, &lt;BR&gt;&amp;nbsp; &amp;nbsp; String[] selectionArgs)&lt;BR&gt;delete(ContentURI uri, String selection, String[] selectionArgs)&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;What?&lt;BR&gt;Sorry, this is not Java, it's not object-oriented, it's not even SQL.&lt;/P&gt;
&lt;P&gt;We will soon do a side-by-side comparison of &lt;A href="http://www.db4o.com/"&gt;db4o&lt;/A&gt; to this interface to show how much more elegant object persistence should be. In case you don’t know db4o yet at all, &lt;A href="http://www.db4o.com/downloads/db4o-7.0-java-tutorial.pdf"&gt;here is a PDF version&lt;/A&gt; of the tutorial that comes with the &lt;A href="http://developer.db4o.com/files/default.aspx"&gt;db4o downloads&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The Android database API is missing key elements for location based services:&lt;BR&gt;How do you set up a query for the "next car rental station from here" or "all my friends within 1 mile"? Clearly a standard for geospatial querying must be part of the database API.&lt;/P&gt;
&lt;H2&gt;&lt;A class="" title=myapp name=myapp&gt;&lt;/A&gt;My first Android application&lt;/H2&gt;
&lt;P&gt;So I moved on to write my first small Android app....&lt;/P&gt;
&lt;P&gt;Without tool support, I dislike XML for writing GUI. I am sure a visual editor for Eclipse is already being worked on. The widget set for GUI development looks more like a spike to have something visible ready than anything near a releasable final. Apple has set the bar for user experience high with it's &lt;A href="http://www.apple.com/iphone/"&gt;iPhone&lt;/A&gt;. Possibly Google is hoping for the community to create something nicer since "Rethinking of traditional user interfaces" is explicitely listed on the &lt;A href="http://code.google.com/android/adc.html"&gt;developer challenge website&lt;/A&gt; as one of the areas where they are hoping for developments.&lt;/P&gt;
&lt;P&gt;As part of my first Android application I simply store an object to db4o and I am pleasantly surprised. db4o for JDK 1.1 simply works as it is.&lt;/P&gt;
&lt;P&gt;So let's see what's going wrong when I use the db4o library for JDK 1.2. Wow, debugging the emulator with Eclipse works extremely good and fast. There are no time lags for deploying the app onto the emulator or for stepping through code like I am used to see them for other emulators. Niiiice!&lt;/P&gt;
&lt;P&gt;Now what's wrong? Apparently java.nio.channels.FileLock#release() throws an IoException without a further message. Looks like I have found my first Android bug.&lt;/P&gt;
&lt;P&gt;When I remove the offending #release() line from our code, our JDK 1.2 version also runs perfectly with my small test. Now let's change the field on my persistent object to private to see if AccessibleObject#setAccessible() allows access to private fields. Yeaaaaah! This very important test for us has passed, we have a fully functional uncrippled db4o running on this system and the Java dialect is rich enough to support everything we do.&lt;/P&gt;
&lt;H2&gt;&lt;A class="" title=friends name=friends&gt;&lt;/A&gt;Android, let's be friends!&lt;/H2&gt;
&lt;P&gt;Summing up, the basic building blocks look extremely strong, very stable and extremely well done to me. GUI and database support are not world class yet, but both can be improved by third parties &lt;A href="http://www.db4o.com/"&gt;like us&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;So finally the time has come to write:&lt;/P&gt;
&lt;H2&gt;&lt;A class="" title=killers name=killers&gt;&lt;/A&gt;Mobile Killer Applications&lt;/H2&gt;
&lt;P&gt;If I would not work on &lt;A href="http://www.db4o.com/"&gt;db4o&lt;/A&gt;, I would immediately try to found a startup to create the location-based applications I have been dreaming of:&lt;/P&gt;
&lt;H3&gt;&lt;A class="" title=ride name=ride&gt;&lt;/A&gt;Ride Sharing&lt;/H3&gt;
&lt;P&gt;It is not necessary that we all commute with one person in one car. We can do better than spending a tenth of our awake life in traffic jams. We can also do better for protecting our environment.&lt;/P&gt;
&lt;P&gt;A location based system could discover that two people always take the same route at the same time and it could organize to put them together in one car.&lt;/P&gt;
&lt;P&gt;With a huge installed base, you wouldn't even need a car to go from A to Z. You could just enter your planned route into your mobile and the system would find somebody that goes your way, in real time, changing cars could be part of the service.&lt;/P&gt;
&lt;P&gt;Similar like we have smog laws to protect our environment, it could be mandatory to have a ride sharing system installed in the car (just installed, you can't force people to use it). The overall benefits for the economy by saving oil and reducing emissions would be gigantic. Maybe even the government could pay for such a system?&lt;/P&gt;
&lt;P&gt;If security is considered an issue:&lt;BR&gt;Ebay has shown how ratings ("good driver, doesn't smoke, tells nice stories about hiking") make people feel well at ease interacting with unknown people. Women could drive with women.&lt;/P&gt;
&lt;P&gt;Today there are some internet-based ride sharing systems but to overcome the critical mass, the system has to be real-time, automated and extremely easy to use. Imagine your phone telling you by voice: &lt;BR&gt;"Stop at the next mall on the right, your neighbour Sue needs a ride to Santa Monica. She offers a cold coke for the ride and she would like to tell you what your kids did the last weekend when you were not at home."&lt;/P&gt;
&lt;H3&gt;&lt;A class="" title=meet name=meet&gt;&lt;/A&gt;Meet Anywhere&lt;/H3&gt;
&lt;P&gt;You run across old friends every day, but you usually miss them by half a mile or by a couple of minutes. Wouldn't it be nice if you would notice and could go for a coffee together? A mobile location based system could arrange this for you.&lt;/P&gt;
&lt;P&gt;Imagine you are in a foreign city and you don't have anyone to go to dinner with. How about asking your mobile who is available? Maybe the classmate you haven't seen for 10 years now lives in this city and owns the best bar in town. Go and visit him!&lt;/P&gt;
&lt;P&gt;You have a planned date for a meeting with someone in New York in two weeks and you were going to fly there just for this meeting. Currently you are in Philadelphia for another meeting and the person from New York happens to be there at the same time. How about using the opportunity and saving yourself a full travelling day?&lt;/P&gt;
&lt;H2&gt;&lt;A class="" title=global name=global&gt;&lt;/A&gt;Think Global!&lt;/H2&gt;
&lt;P&gt;A standard mobile Operating System will make the above two applications very easy to write.&lt;/P&gt;
&lt;P&gt;Not just for the United States but for the entire world !&lt;/P&gt;
&lt;H2&gt;&lt;A class="" title=notonlyphones name=notonlyphones&gt;&lt;/A&gt;Just for phones?&lt;/H2&gt;
&lt;P&gt;While Android seems to have been written with mobile phones in mind, there is no reason that an open and free software stack should not be used for other applications and devices.&lt;/P&gt;
&lt;P&gt;I can see the Android stack convincing device manufacturers that Java allows writing faster applications than C, given the same development time.&lt;/P&gt;
&lt;H2&gt;Web 3.0&lt;/H2&gt;
&lt;P&gt;The 10,000 feet summary from a business perspective was already obvious before Android was released:&lt;BR&gt;Web 3.0 will be location based and Google will be a big player.&lt;/P&gt;
&lt;P&gt;Now we know how they will do it.&lt;/P&gt;
&lt;P&gt;Android is &lt;A href="http://www.computerworld.com.au/index.php/id;1807448826;fp;2;fpid;1"&gt;not a half-hearted press release to make Steve Ballmer angry&lt;/A&gt;. &lt;BR&gt;It already is excellent engineering work, a superb foundation for the future.&lt;/P&gt;
&lt;P&gt;Well done! Good work!&lt;BR&gt;Congratulations to all the Google engineers that made this possible.&lt;BR&gt;Thank you!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://code.google.com/android/"&gt;Android&lt;/A&gt; is going to change the world.&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://slashdot.org/submit.pl"&gt;&lt;IMG height=16 alt=Slashdot src="http://images.slashdot.org/favicon.ico" width=16 border=0&gt;&lt;/A&gt;&amp;nbsp;&lt;A class="" href="http://slashdot.org/submit.pl"&gt;Slashdot It!&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Related Content on this site&lt;/B&gt;&lt;BR&gt;&lt;A href="http://developer.db4o.com/blogs/christof/archive/2007/11/13/android-brings-handsets-to-the-next-level-and-open-doors-a-mile-wide-for-db4o.aspx"&gt;Android brings handsets to the next level - and open doors a mile wide for db4o&lt;/A&gt;&lt;BR&gt;&lt;A href="http://developer.db4o.com/blogs/product_news/archive/2007/11/13/db4a-database-for-android.aspx"&gt;db4A - database for Android&lt;/A&gt;&lt;BR&gt;&lt;A href="http://developer.db4o.com/ProjectSpaces/view.aspx/Android_Password_Manager"&gt;Android Password Manager Demo Application&lt;/A&gt;&lt;BR&gt;&lt;A href="http://developer.db4o.com/ProjectSpaces/view.aspx/Incubator/Android"&gt;Ideas for the Android Developer Challenge&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=43662" width="1" height="1"&gt;</description><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Android/default.aspx">Android</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/db4o/default.aspx">db4o</category></item><item><title>Speech-Driven Development</title><link>http://developer.db4o.com/blogs/carl/archive/2007/11/17/speech-driven-development.aspx</link><pubDate>Sat, 17 Nov 2007 13:36:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:43653</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>1</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/43653.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=43653</wfw:commentRss><description>&lt;P&gt;Enjoy: &lt;A href="http://www.youtube.com/watch?v=KyLqUf4cdwc"&gt;http://www.youtube.com/watch?v=KyLqUf4cdwc&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Programming Perl from Notepad doesn't seem to work yet. &lt;/P&gt;
&lt;P&gt;Tight integration with Eclipse could be supercool though, if speech recognition could be smart about what makes sense in a certain context. Imagine speaking phrases like:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;"Generate constructor using fields name firstname"&lt;/LI&gt;
&lt;LI&gt;"New class BlockingQueueStoppedException extends RuntimeException"&lt;/LI&gt;
&lt;LI&gt;"For all classes for all fields startswith eye underscore replace eye underscore with underscore"&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=43653" width="1" height="1"&gt;</description><category domain="http://developer.db4o.com/blogs/carl/archive/tags/speech/default.aspx">speech</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Eclipse/default.aspx">Eclipse</category><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Fun/default.aspx">Fun</category></item><item><title>Coming soon: The db4o client battle</title><link>http://developer.db4o.com/blogs/carl/archive/2007/10/11/coming-soon-the-db4o-client-battle.aspx</link><pubDate>Wed, 10 Oct 2007 23:34:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:42446</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>1</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/42446.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=42446</wfw:commentRss><description>&lt;P&gt;Inspired by testing db4o with 200 clients on my machine (and running out of memory because each client needs 15 MB for a normal JDK6 Java VM) and after doing a 30 minute timeout test between Germany and China with Andrew (actually he was connecting through our pairing server in the US) I had the following idea:&lt;/P&gt;
&lt;P&gt;How about setting a fixed time and having all the members of our community around the world connect to a db4o server at the same time?&lt;/P&gt;
&lt;P&gt;Here are the first rules for a new game:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Playing time is 30 minutes. 
&lt;LI&gt;In this time you should try to make as many points as possible. 
&lt;LI&gt;You get points for storing objects and for deleting opponents objects. 
&lt;LI&gt;For each object that you store, you get 1 point. 
&lt;LI&gt;For each opponent object that you delete you get 3 points. 
&lt;LI&gt;For storing objects you should create a class with your name and a maximum of two fields. 
&lt;LI&gt;For the field type of the fields in your class, you may only choose your class or primitive. 
&lt;LI&gt;You can reorder the letters of your name for the classname, to make opponent attack harder. 
&lt;LI&gt;The server will record deleted objects and assign them to your thread using callbacks.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Probably there will have to be a limit to the number of clients for each player but for the very first test:&lt;/P&gt;
&lt;P&gt;Let's smoke the server!&lt;BR&gt;Let's see how many clients we can connect at the same time!&lt;/P&gt;
&lt;P&gt;I will donate my quadcore and my IP for the first battle.&lt;/P&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=42446" width="1" height="1"&gt;</description></item><item><title>Automating Debugging</title><link>http://developer.db4o.com/blogs/carl/archive/2007/09/13/automating-debugging.aspx</link><pubDate>Thu, 13 Sep 2007 11:52:00 GMT</pubDate><guid isPermaLink="false">573d810b-5d25-4172-b278-595dd24a71a5:41579</guid><dc:creator>Carl Rosenberger</dc:creator><slash:comments>0</slash:comments><comments>http://developer.db4o.com/blogs/carl/comments/41579.aspx</comments><wfw:commentRss>http://developer.db4o.com/blogs/carl/commentrss.aspx?PostID=41579</wfw:commentRss><description>&lt;P&gt;Yesterday I started reading in &lt;A href="http://www.amazon.com/Beautiful-Code-Leading-Programmers-Practice/dp/0596510047"&gt;Beautiful Code&lt;/A&gt; a book that Patrick has recommended to the team.&lt;/P&gt;
&lt;P&gt;The chapter on Beautiful Debugging immediately caught my eye:&lt;/P&gt;
&lt;P&gt;Why shouldn't the debugger automatically find the change that broke the tests? This is big, it could really save a lot of time.&lt;/P&gt;
&lt;P&gt;Chatting with Patrick just now, he points out that there even is an &lt;A href="http://www.st.cs.uni-sb.de/eclipse/"&gt;Eclipse plugin&lt;/A&gt; in the meanwhile.&lt;/P&gt;
&lt;P&gt;Worth a try, I think!&lt;/P&gt;
&lt;P&gt;Maybe there could also be a watchdog layer above the master source repository that runs all the tests and only lets changes in that pass all the tests. That way there would never be a failed build.&lt;/P&gt;
&lt;P&gt;If the system could then also automatically merge rejected changes after they were fixed, wouldn't that be cool?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://developer.db4o.com/aggbug.aspx?PostID=41579" width="1" height="1"&gt;</description><category domain="http://developer.db4o.com/blogs/carl/archive/tags/Debugging/default.aspx">Debugging</category></item></channel></rss>