<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>John D. Mitchell&apos;s Blog</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/" />
<modified>2008-05-11T00:55:41Z</modified>
<tagline></tagline>
<id>tag:weblogs.java.net,2008:/blog/johnm/19</id>
<generator url="http://www.movabletype.org/" version="3.01D">Movable Type</generator>
<copyright>Copyright (c) 2008, johnm</copyright>
<entry>
<title>JPC: x86 Emulator on the JVM</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2008/05/jpc_x86_emulato.html" />
<modified>2008-05-11T00:55:41Z</modified>
<issued>2008-05-11T00:55:26Z</issued>
<id>tag:weblogs.java.net,2008:/blog/johnm/19.9778</id>
<created>2008-05-11T00:55:26Z</created>
<summary type="text/plain">JPC is an open-source emulator for x86 code. Sweet!</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>Virtual Machine</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p>
Okay, I must be slipping... I can't believe that I've either totally missed this or completely forgotten about it:
</p>

<p>At each JavaOne, I end up asking lots of people what, if anything, they've seen that's particularly cool, interesting, etc.  This year, I was chatting with <a href="http://blogs.azulsystems.com/cliff/">Cliff</a>  and he mentioned <a href="http://www-jpc.physics.ox.ac.uk/">JPC</a> -- an open-source emulator for x86 code.
</p>

<p><a href="http://www-jpc.physics.ox.ac.uk/">JPC</a> is written Java and so you can run all sorts of old DOS programs on any machine that supports the JVM.  This includes a lot of old DOS games.  [And now I feel old for playing too many of them when they were new.]
</p>

<p>
Hmm... I wonder if I can find some old <a href="http://en.wikipedia.org/wiki/GEOS_%2816-bit_operating_system%29">GEOS disks</a> and get it installed and running. :-)
</p>

]]>

</content>
</entry>
<entry>
<title>FindBugs in Anger</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2008/05/findbugs_in_ang_1.html" />
<modified>2008-05-09T19:06:43Z</modified>
<issued>2008-05-09T19:06:22Z</issued>
<id>tag:weblogs.java.net,2008:/blog/johnm/19.9771</id>
<created>2008-05-09T19:06:22Z</created>
<summary type="text/plain">If you&apos;re not using FindBugs, you&apos;re an ignorant twit! :-)</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>Tools</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p>If you aren't already using <a href="http://findbugs.sourceforge.net/">Findbugs</a> then hopefully you've at least <a href="http://weblogs.java.net/blog/johnsmart/archive/2008/05/javaone_2008_fi.html">heard about it</a> by now and have some idea of how useful it can be.
</p>

<p>
If not, then let me say that FindBugs is a <strong>must have tool</strong> in the arsenal of any Java developer and any development team that's not using it as part of their regular development practices is incompetent.
</p>

<p>
<a href="http://www.cs.umd.edu/~pugh/">Bill Pugh</a> has done a fantastic job making FindBugs a great F/OSS tool which helps detect a large variety of all too common programming mistakes in Java.
</p>

<p>
You can find an <a href="http://findbugs.sourceforge.net/demo.html">online demo</a>, slides from <a href="">last year's FindBugs introduction</a> , and can even <a href="http://findbugs.cs.umd.edu/demo/jnlp/findbugs.jnlp">run FindBugs over the web</a>.
</p>

<p>If you aren't yet convinced that FindBugs is really useful, let me point out that I've used FindBugs as an expert witness in cases where outsourcing projects had gone wrong and people were arguing about the quality of the delivered code (among other things). You have been warned. :-)
</p>

<p>Go wild!
</p>
]]>

</content>
</entry>
<entry>
<title>JavaOne Day 4: Urgent Public Health Warning: Stomach Flu</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2008/05/javaone_day_4_u.html" />
<modified>2008-05-09T14:57:57Z</modified>
<issued>2008-05-09T14:57:44Z</issued>
<id>tag:weblogs.java.net,2008:/blog/johnm/19.9763</id>
<created>2008-05-09T14:57:44Z</created>
<summary type="text/plain">A stomach flu outbreak is happening in San Francisco (including the area around Moscone) so be extra careful.  At this point, the JavaOne show will continue.</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>Community</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[Just received an emailed notice:

<blockquote>
<p>The JavaOne conference team has been notified by the San Francisco Department of Public Health about an identified outbreak of a virus in the San Francisco area. Testing is still underway to identify the specific virus in question, but they believe it to be the <a href="http://www.cdc.gov/ncidod/dvrd/revb/gastro/norovirus.htm">Norovirus</a>, a common cause of the <a href="http://en.wikipedia.org/wiki/Norovirus">"stomach flu"</a>, which can cause temporary flu-like symptoms for up to 48 hours. Part of the San Francisco area impacted includes the Moscone Center, the site of the JavaOne conference which is being held this week. We are working with the appropriate San Francisco Department of Public Health and Moscone representatives to mitigate the impact this will have on the conference and steps are being taken overnight to disinfect the facility. We have not received any indication that the show should end early, so will have the full schedule of events on Friday as planned. We hope to see you then.
</p>

<p>Please see the attached notification from the Department of Public Health.
</p>

<p>For further information, as well as Frequently Asked Questions related to the Norovirus, please visit the San Francisco Department of Public Health website at http://sfcdcp.org/norovirus.cfm 
<p>
</blockquote>]]>

</content>
</entry>
<entry>
<title>JavaOne 2008: Day 1, The Good, The Bad, and The Lame</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2008/05/javaone_2008_da.html" />
<modified>2008-05-08T02:13:50Z</modified>
<issued>2008-05-08T02:13:10Z</issued>
<id>tag:weblogs.java.net,2008:/blog/johnm/19.9738</id>
<created>2008-05-08T02:13:10Z</created>
<summary type="text/plain">What, if anything, talked about on Day 1 of JavaOne 2008 was of any import to Java developers?</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>J2SE</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p>Another year, another JavaOne.</p>

<p>It's always great to see so many old friends again.</p>

<p>This year seems to be continuing the attendance growth trend of the last couple of year so that's a good sign. Also, I've been able to find enough actually interesting and useful talks to keep from going back to sleep and that's an even better sign. In particular, this is starting to show how the "Java community" is growing up and outwards to encompass more than just the same old things.
</p>

<p>
Here's my list of the key things from Day 1:
</p>

<h3>JavaFX... NOT!</h3>

<p>What a joke.  JavaFX was announced with great fanfare at last year's JavaOne and yet what has actually been released in a year?  Nothing of value.  Just more hoopla and blah blah blah.  Way too little, way too late. Especially now that Adobe has started opening up Flash and friends.
</p>

<p>Indeed, with all of the improvements to the world of JavaScript/Ajax libraries, frameworks, and tools and most especially with the growing capabilities around the support of canvas in browsers, there's very little real reason to use those wretched "Rich Internet Application" packages like Flash and JavaFX.</p>

<h3>JavaScript</h3>

<p>Yep, there are now a number of sessions at JavaOne covering various aspects of JavaScript. Large rooms filled with Java developers who are using JavaScript is an interesting site to see.
</p>

<p>
As Roberto Chinici said in his talk, <em>JavaScript Programming Language: The Language That Everybody Loves to Hate</em>, JavaScript is basically yet another <a href="http://en.wikipedia.org/wiki/Common_Lisp">Lisp-1</a> language.  Alas, as was so clearly shown in his talk, JavaScript is a really horrible implementation of Lisp-1 -- so many nasty corners, gotchas, and just plain bizarre things.  That said, given JavaScript's ubiquity in web clients and its growing use on the server, it is pretty much required for all web developers to learn JavaScript.
</p>

<h3>JAX-RS: RESTful services in Java</h3>

<p>Yes, REST is here to stay.  JAX-RS is the attempt to standardize how to build RESTful services in Java.  Basically, the approach is to use a number of new bits of library (such as the URI builder that makes working with URIs actually not a completely bug-inducing nightmare) and a bunch of new annotations.
</p>

<p>
There are already at least a few implementations out in the wild including the <a href="https://jersey.dev.java.net/">"Jersey" reference implementation</a> and one for the <a href="http://restlet.org/">Restlet</a> framework.
</p>

<p>
The JAX-RS (aka JSR-311) <a href="http://jcp.org/aboutJava/communityprocess/edr/jsr311/index.html">draft specification</a> has just been released for public review -- check it out and send in your comments. 
</p>

<p>
As with JavaScript, everybody doing any web services in Java needs to at least check out JAX-RS (and Restlet).
</p>

<h3>Concurrency</h3>

<p>Is there anybody left out there in Java-land that hasn't yet gotten the memo that concurrency is a big issue today and is becoming a huge issue moving forward?
</p>

<p>
Brian Goetz's talk, <em>Let's Resync: What's New for Concurrency on the Java Platform, Standard Edition</em>, was primarly about one key way to solve a number of problems was very well attended and people should check it out online.
</p>

<p>
Basically, coming in Java v7 is an addition to the java.util.concurrent library which adds a lot of support for building Fork-Join style concurrency solutions.  For those who can't wait, check out Doug Lea's existing implementation that is part of his <a href="http://g.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html">util.concurrent </a> library.
</p>

<p>
Java v7 looks to have some nice features that both allow for very general Fork-Join solutions as well as things like the ParallelArray class which makes it ridiculously easy to concurrently process arrays of information.  Joe Bob says: Check it out.
</p>]]>

</content>
</entry>
<entry>
<title>JaveOne 2007, Enterprise Search-Driven Developement</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2007/05/javeone_2007_en.html" />
<modified>2007-05-09T20:23:47Z</modified>
<issued>2007-05-09T20:23:02Z</issued>
<id>tag:weblogs.java.net,2007:/blog/johnm/19.7326</id>
<created>2007-05-09T20:23:02Z</created>
<summary type="text/plain">Making developers lives better, one search at a time.</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>JavaOne</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p>One of the most exciting things at the show this year is that my company, <a href="http://krugle.com/">Krugle</a>, announced the beta of an <a href="http://corp.krugle.com/">enterprise search</a> appliance for development teams.</p>

<p>After all the months of labor, I can finally share our little bundle of joy with the world. :-)</p>

<p>In my experience, one of the biggest problems that enterprise developers face every day is finding useful information across the bazillion different silos of information that we have to deal with just to be able to work on our projects.  Specifications, design docs, source code, issue trackers, mailing lists, notes, blogs, wikis, souce code control systems.... Mixing in time-to-market pressures, cost reduction, reuse goals, agile methodologies, and the like pushes us to a <a href="http://blog.krugle.com/?p=82">just in time</a> way of life.</p>

<p>Finding relevant information amid that chaos is all too often painful and labor intensive. So, the core feature of the <a href="http://corp.krugle.com/product/features">Krugle Enterprise appliance</a> is to pull all of those silos together and make information available via search. This <a href="http://corp.krugle.com/articles/2007/01/Search_Driven_Development_LinuxWorld.com.pdf">search-driven development</a> approach is how development teams really work these days -- developers looking for example code, QA looking for bug fixes, maintainers trying to figure out the impact of making a change, managers looking at risk indicators, etc. -- we're bringing it all together.
</p>

<p>Of course, I'm totally biased so ignore my blathering and check it out for yourself and your team.</p>]]>

</content>
</entry>
<entry>
<title>JaveOne 2007, Keaton</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2007/05/javeone_2007_ke.html" />
<modified>2007-05-09T18:50:02Z</modified>
<issued>2007-05-09T18:49:38Z</issued>
<id>tag:weblogs.java.net,2007:/blog/johnm/19.7325</id>
<created>2007-05-09T18:49:38Z</created>
<summary type="text/plain">Keaton presentation wins best humor at the show!</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>JavaOne</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p><a href="https://keaton.dev.java.net/">Keaton</a> is a new java.net project for integrating Apple's QTKit with Java.  I.e., make it possible for Java developers to leverage the latest Quicktime support (since Apple seems to have abandoned Quicktime for Java) to be able to do cool media applications.</p>

<p>The project is looking for developers to join up and help out.</p>

<p>The presentation was given by java.net's own Chief Chief, Chris Adamson.  I know I can't do any justice to Chris's presentation but it was informative and incredibly funny and everybody who wasn't there missed out on a real treat.  Examples like this are the best reason that coming to shows in-person makes all the difference in the world.</p>]]>

</content>
</entry>
<entry>
<title>JaveOne 2007, Java Puzzlers Points Out Problems with Kitchen Sink</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2007/05/javeone_2007_ja.html" />
<modified>2007-05-09T18:48:01Z</modified>
<issued>2007-05-09T18:14:47Z</issued>
<id>tag:weblogs.java.net,2007:/blog/johnm/19.7323</id>
<created>2007-05-09T18:14:47Z</created>
<summary type="text/plain">The ever interesting Java Puzzlers session is always a hit but also shows the nasty reality that the C++ disease has fully infected Java.</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>J2SE</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p>Josh Bloch and Neal Gafter have been doing their wonderful Java Puzzlers shtick at JavaOne for the last 4 years.  This year, Bill Pugh has stepped in for Neal to keep the puzzlers puzzling.</p>

<p>The puzzles point out all sorts of interesting and exasperating gotchas in the Java language and libraries that linger for ages waiting to humble us all.</p>

<p>This year's set of puzzles include a slew of problems that come as a direct result of the addition of auto-boxing/-unboxing of primitives to/from their object wrapper types (int and Integer, for example).  Maybe it's just me but I seem to recall a lot of us who said how bad the consequences would be of adding auto-boxing to Java and yet here they are causing exactly the worst kinds of insidiously non-obvious problems.</p>

<p>The moral of these puzzles isn't merely "be careful of using wrapper types with the ternary operator", but that auto-boxing is evil and should have <strong>never</strong> been added to the language in the first place.</p>

<p>Of course, it goes without saying that this is just one example of how new "features" added to a mature language are very dangerous. One of the big, currently brewing brouhahas is over the proposed addition of closures to Java.  Perhaps folks might want to pause their rampant fervor for a bit and actually look at the history of these attempts and realize just how costly these changes really are. Especially when there are plenty of alternatives like using other languages which have their pet features which target the underlying JVM.</p>

<p>As Josh so eloquently put, "APIs, like diamonds, are forever."</p>]]>

</content>
</entry>
<entry>
<title>JaveOne 2007, Where&apos;s Apple?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2007/05/javeone_2007_wh.html" />
<modified>2007-05-09T18:48:35Z</modified>
<issued>2007-05-09T17:43:37Z</issued>
<id>tag:weblogs.java.net,2007:/blog/johnm/19.7322</id>
<created>2007-05-09T17:43:37Z</created>
<summary type="text/plain">Where&apos;s Apple at JavaOne?</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>J2SE</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p>As noted by various people, including <a href="http://weblogs.java.net/blog/malcolmdavis/archive/2007/05/javaone_blog_2.html">Malcolm Davis</a>, there's a lot of Apple laptops in evidence at the show this year.  In particular, a whole slew of them on-stage for the keynote sessions.</p>

<p>But where's Apple? Really?</p>

<p>For all of Apple's pledges that Java is a first class citizen, Java support on OS X has been tardy, at best.  Each new, major release of Java takes many months (as in over a year) to show up on Apple machines.  That's just plain retarded.</p>

<p>Of course, it always takes two to tango so I have to also ask "what is Sun doing to help or hinder Java on OS X?"</p>]]>

</content>
</entry>
<entry>
<title>JaveOne 2007, Community One</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2007/05/javeone_2007_co_1.html" />
<modified>2007-05-08T17:07:30Z</modified>
<issued>2007-05-08T17:07:10Z</issued>
<id>tag:weblogs.java.net,2007:/blog/johnm/19.7286</id>
<created>2007-05-08T17:07:10Z</created>
<summary type="text/plain">Or should it have been called Linux vs. Solaris?</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>JavaOne</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p>
Sun is, as everybody knows, struggling to get mindshare around their products.  This is especially true as they try to get uptake as they open source more of their stuff -- such as Solaris. 
</p>

<p>Hiring Ian Murdock of Debian fame is a pretty good idea to me.  One of the biggest hurdles to (Open) Solaris uptake is the fact that so many things in dealing with Solaris are so annoyingly odd to all the folks who are used to the relatively consistent GNU userland experience and the usable package managers on Linux and *BSD distributions.</p>

<p>Another item that came through over and over again throughout the day was that one of, if not <strong>the</strong> key reason to use Solaris is DTrace. <a href="http://www.sun.com/bigadmin/content/dtrace/">DTrace</a> is an efficient execution tracing framework and if you haven't used it, you're missing out.  Story after story from a wide variety of developers, sys admins, QA folks, etc. touted how using DTrace allowed them to get insight into the actual running of their systems and how big a difference that can make.  While it's an open question of whether/when this will make it to Linux, DTrace is already in the next version of OS X and will be in the *BSDs sooner rather than later.</>

<p>I must say that I was surpised how little I saw emphasizing the coolness of <a href="http://en.wikipedia.org/wiki/ZFS">ZFS</a>. It's a modern filesystem designed for the current disk storage and usage reality rather than how things were 20 years ago.  Coupling ZFS with Sun's <a href="http://www.sun.com/servers/x64/x4500/">Thumper</a> box is, IMHO, a compelling reason to actually buy Sun hardware. There's <strong>no</strong> really good filesystems in the open source world if you actually care about your data and want good performance and manageability. ReiserFS is pretty much orphaned and while the <em>ext</em> family are okay for desktop and non-critical servers, they just don't cut it when the data really matters.</p>

<p>Of course, for Java developers, the question is pretty much moot as to whether it's any advantage to go with Linux or Open Solaris.  Java runs well on both.  It was quite funny to hear some pushback to Greg Luck's (of <a href="http://ehcache.sourceforge.net/">ehcache</a>) comment that OS doesn't really matter -- just a good JRE implementation.  That's just playing out the old Java mantra of "write once, run anywhere" in the real world.  Of course, operating system choice does matter to a point -- Greg's own company is an example of moving from ASP.net to Java because of scalability / performance reasons and days vs. months and years of uptime.</p>

<p>For me, I've used all of them for so long that it's mostly just a question of using what works for any given need.  I'm hoping that the continued opening up of Solaris will help spur improvements in the Linux world and that many of the things that we love about the OSS operating systems will help improve Solaris so that moving around from one to the other is even easier.</p>]]>

</content>
</entry>
<entry>
<title>JavaOne 2007, Startup Camp 2</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2007/05/javaone_2007_st_1.html" />
<modified>2007-05-08T16:59:10Z</modified>
<issued>2007-05-08T16:56:23Z</issued>
<id>tag:weblogs.java.net,2007:/blog/johnm/19.7284</id>
<created>2007-05-08T16:56:23Z</created>
<summary type="text/plain">JavaOne usually has some fun stuff going on before the show officially starts but this is getting crazy!</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>JavaOne</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p>Is this really JavaOne?  Walking around downtown San Francisco in May wearing a t-shirt and shorts and <strong>not</strong> freezing to death? Record setting heat must be boiling my brain!</p>

<p>
I spent most of Monday at the <a href="http://startupcamp.org/">Startup Camp 2</a> festivities over at the old Argent Hotel.  Startup Camp is an <a href="http://en.wikipedia.org/wiki/Open_Space_Technology">open space</a> <em>unconference</em> hosted by Sun and run by the nice folks over at <a href="http://www.masseventslabs.com/">Mass Events Labs</a>.  If you've never participated in an open-space style conference, you definitely should -- but don't expect to just sit there -- it's really exactly what you make of it.  Note that the notes from each section should eventually make it up to the wiki so check that out for more information.
</p>

<p>I went to a session lead by Josh Berkus that was about MySql vs. PostgreSQL.  It was much less contentious than I expected. :-)  It's great to see PostgreSQL getting more exposure -- especially given how much (undue) credit MySQL gets around being "open source" when it's not completely true.  I.e., when it comes down to it, the single biggest reason to chose one or the other is licensing. PostgreSQL's BSD license is a Very Good Thing(tm).  In terms of performance, there's definitely a lot afoot with both projects... MySQL is getting better at vertical scaling and PostgreSQL is getting more horizontal support (for things like "clustering").
</p>

<p>Another session that I went to was lead by Jason Hoffman of <a href="http://joyent.com/">Joyent</a> about the tradoffs of hosted vs. building and managing your own data centers especially as your service starts to grow and you need to start worrying about scale.  What made this session cool is what open space conferences are all about -- audience participation. Lots of experienced folks in the audience sharing their war stories.</a>

<p>The money quote of the day came from Josh Berkus (gee, am I a stalker?): "Databases scale poorly."  This basic sentiment came up over and over when talking about how to effectively and efficiently get better performance for those hard-earned (or hard-begged :-) startup dollars. Databases don't scale linearly in terms of cost. Moving business logic out of the database leads to up to a 5X improvement in terms of cost (according to a study by Sun). That's a big deal but I'll leave further exploration of that  to a future blog.</a>

<p>The wackiest thing at Startup Camp 2 was the "Speed Geeking" general session.  Think: speed dating for startups.  Each startup that wanted to present itself was given a big round dinner table and had a few minutes to make their pitch/demo/whatever to each small group of interested people.  I'm sorry but the Rate My Poop idea is not something that I even want think about -- I'm going to have nightmares.</p>

<p>I also attended a session on pricing of SaaS/"on demand" services. Alas, I hosed my notes of who was running that session -- my apologies.  Lots of good discussion but two key takeways were to remember that it's not just "software" but also a "service" and that trust is a key component to any relationship.
</p>]]>

</content>
</entry>
<entry>
<title>JavaOne 2006: Questions</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2006/05/javaone_2006_qu.html" />
<modified>2006-05-16T15:07:58Z</modified>
<issued>2006-05-16T15:07:37Z</issued>
<id>tag:weblogs.java.net,2006:/blog/johnm/19.4761</id>
<created>2006-05-16T15:07:37Z</created>
<summary type="text/plain">The biggest question for Jonathan Schwartz to answer in JavaOne 2006 is whether or not Sun is going &quot;open source&quot; Java.</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p>
As JavaOne 2006 officially starts today, there are lots of excited attendees floating around with lots of questions in their heads: How do I write Java code to deal with all of these new multi-core chips?  How do I create Java-based web services quickly and easily?  Who's giving out the cool schwag?  Where are the parties worth going to?  What sessions should I attend?  Is Ruby (and Ruby on Rails) really kicking Java's ass?  Why hasn't Sun given me a T2000 server? Why is it so cold in San Francisco in May? What is Sun's marketing team going to try to shove down everybody's throat this year? You know, the usual gamut of questions. :-)
</p>

<p>
Of course, with <a href="http://blogs.sun.com/jonathan">Jonathan Schwartz</a> taking over for Scooter, the key question for a lot of people is: "Will Sun '<em>open source</em>' Java?"  Well, perhaps a better way to phrase the question is: "How will Sun deal with the issue of '<em>open sourcing</em>' Java?  Will Sun continue pretending that Java is already "open source" or will they actually take a true leadership role in moving Java forward?
</p>

<p>
Frankly, given <a href="http://blogs.sun.com/roller/page/jonathan?entry=survival_of_the_most_adaptable">Jonathan's latest blog entry</a>, it sounds like he's going to continue Sun's delusional posturing.  If so, he's going to have lost his best opportunity to ensure Sun's continuance as a company, let alone as any kind of leader.  We need look no further than the most <a href="http://slashdot.org/articles/05/07/09/1326249.shtml">recent round</a> of <a href="http://www.sgi.com/reorg/">SGI's implosion</a> to see a very clear example of what happens when a once-dominant company gets so entrenched in their own delusions of grandeur that they fail to adapt to the reality all around them.
</p>

<p>
Hopefully, Sun will be able to overcome its own fear so as to be able to make the next step.
</p>
]]>

</content>
</entry>
<entry>
<title>McNealy out, Schwartz in as Sun CEO</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2006/04/mcnealy_out_sch.html" />
<modified>2006-04-25T06:42:35Z</modified>
<issued>2006-04-25T06:42:28Z</issued>
<id>tag:weblogs.java.net,2006:/blog/johnm/19.4573</id>
<created>2006-04-25T06:42:28Z</created>
<summary type="text/plain">It seems the rumors of Scott McNealy&apos;s ouster as CEO of Sun are finally true.  How will this affect Java?</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p>
Yes, it's true.  Scott "Scooter" McNealy is <a href="http://www.mercurynews.com/mld/mercurynews/business/14418693.htm">stepping down as CEO of Sun Microsystems</a>.  Sun may be doing better than previously but it's still losing real money.  Worse, it lost most of its mindshare over the last 6 years.
</p>

<p>
<a href="http://blogs.sun.com/jonathan">Jonathan Schwartz</a> will continue as President and become the top dog.  Personally, I think this is a really good move.  Jonathan has embraced a much more <a href="http://www.cluetrain.com/">clueful</a> approach, especially relative to the big, corporate behemoth that is Sun. :-)
</p>
<p>
A few weeks ago, I attened a Sun "VC Event" where they were pitching the new servers to VCs and their various portfolios companies down in the Valley. [The best part of getting there on time was getting time to chat with James Gosling because no suits are ever on time. :-?]   Jonathan gave a strong pitch for Sun's new world view.  Not just the words and slides but his presence and presentation gave off a much better tone than Scooter (let alone full-on psychos like Ballmer :-).  Good luck!
</p>
<p>
Okay, honeymoon is over...
</p>
<p>
Hint to Jonathan: Sun sucks at follow through... Alas, I'm still waiting for delivery of a T2000 server to check out and there's nothing good about making people who really want to try out your products wait and wait and wait.  But I'll talk a lot more about that stuff once I actually receive the demo box.
</p>
<p>
ObJava:  The $64,000 question is still: what are you going to do with Java?  Your presentation was full of lots of talk about how Sun is not only embracing but driving lots of open source but the family jewels, Java, is still firmly under lock and key.
</p>]]>

</content>
</entry>
<entry>
<title>Krugle is hiring</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2006/04/krugle_is_hirin.html" />
<modified>2006-04-22T20:40:26Z</modified>
<issued>2006-04-22T20:33:29Z</issued>
<id>tag:weblogs.java.net,2006:/blog/johnm/19.4562</id>
<created>2006-04-22T20:33:29Z</created>
<summary type="text/plain">
Yes, it&apos;s true that I&apos;ve been lax in my blogging so far this year because I&apos;ve been working as the Chief Architect of Krugle.  Sure, I&apos;ve written some entries on the Krugle blog but living the startup life is definitely not conducive to regular blogging -- even at a company whose blogmaster is none other than the wild and crazy Chris Locke of e.g., The Cluetrain Manifesto fame (and the rest of the team ain&apos;t too shabby, either :-).



What we&apos;re creating with Krugle is a search engine for software developers. I.e., no more pawing through pages and pages of Google searches, hunting around various web sites, etc. trying to find useful results for technical information. We&apos;re crawling millions of technical pages and sucking down terabytes of source code using Nutch, processing pages with Antlr-based parsers, and serving up the search results using Lucene.



The site is currently in a limited beta and we&apos;re getting great feedback. I just saw that we&apos;re the most anticipated launch on the Museum of Modern Betas.  Heck, that&apos;s even cooler than winning a DEMOGod award.



So, if you know any take-no-prisoners, hardcore people who want to work on a project that&apos;s actually making developers&apos; lives better... Krugle is hiring.

</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>Tools</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p>
Yes, it's true that I've been lax in my blogging so far this year because I've been working as the Chief Architect of <a href="http://www.krugle.com/">Krugle</a>.  Sure, I've written some entries on the <a href="http://blog.krugle.com/">Krugle blog</a> but living the startup life is definitely not conducive to regular blogging -- even at a company whose blogmaster is none other than the wild and crazy <a href="http://www.rageboy.com/blogger.html">Chris Locke</a> of e.g., <a href="http://www.cluetrain.com/">The Cluetrain Manifesto</a> fame (and the rest of <a href="http://corp.krugle.com/about/team.html">the team</a> ain't too shabby, either :-).
</p>

<p>
What we're creating with <a href="http://www.krugle.com/">Krugle</a> is a search engine for software developers. I.e., no more pawing through pages and pages of Google searches, hunting around various web sites, etc. trying to find useful results for technical information. We're crawling millions of technical pages and sucking down terabytes of source code using <a href="http://lucene.apache.org/nutch/">Nutch</a>, processing pages with <a href="http://antlr.org/">Antlr</a>-based parsers, and serving up the search results using <a href="http://lucene.apache.org/">Lucene</a>.
</p>

<p>
The site is currently in a limited beta and we're getting great feedback. I just saw that we're the <a href="http://momb.socio-kybernetics.net/most-anticipated">most anticipated launch</a> on the <a href="http://momb.socio-kybernetics.net/">Museum of Modern Betas</a>.  Heck, that's even cooler than winning a <a href="http://www.demo.com/demonstrators/demo2006/63003.html">DEMOGod award</a>.
</p>

<p>
So, if you know any take-no-prisoners, hardcore people who want to work on a project that's actually making developers' lives better... <a href="http://corp.krugle.com/hiring/">Krugle is hiring</a>.
</p>
]]>

</content>
</entry>
<entry>
<title>Tests, Specifications, Typing, Oh my!</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2006/04/tests_specifica.html" />
<modified>2006-04-22T19:49:31Z</modified>
<issued>2006-04-22T19:49:01Z</issued>
<id>tag:weblogs.java.net,2006:/blog/johnm/19.4561</id>
<created>2006-04-22T19:49:01Z</created>
<summary type="text/plain">
There&apos;s some interesting discussions taking place on the nature of tests. Brian Marick distinguishes between tests as specification vs. tests as examples.  
Michael Feathers asks if type systems in programming languages are really tests.



Kevin Lawrence (and the Agitar crew) talk about the philosophical contention between the notions of
For All and There Exists. That is, the difference in mindset of existentialists vs. universalists. Looking at debates in e.g., the extreme programming world, there&apos;s a lot of confusion and arguments back and forth that stem from this constructivist vs. deconstructivist conflict.



The biggest tragedy in these debates, IMHO, is that people on both sides of the fence polarize and calcify in their self-righteous positions. The fact is that we need some amount of both approaches to succeed. For example, writing test-first leads to horrible code if you don&apos;t also refactor as you go. Accretive unit tests that aren&apos;t themselves refactored leads to big, ugly and unmaintainable test suites. More simply, positivist (aka &quot;garden path&quot;) tests must be balanced with deconstructivst (test (to) destruction) tests.



Stepping up a level or three, it&apos;s even better if, rather than merely mitigating and ameliorating problems, we change the game such that it&apos;s hard/impossible to even articulate bad ways and trivial/easy to articulate the garden paths.  That is one of the biggest benefits to taking a linguistic approach to development.

</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>Testing</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p>
There's some interesting discussions taking place on the nature of tests. Brian Marick distinguishes between <a href="http://www.testing.com/cgi-bin/blog/2006/04/12#spec-vs-example">tests as specification vs. tests as examples</a>.  
Michael Feathers asks if <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=156197">type systems in programming languages are really tests.</a>
</p>

<p>
Kevin Lawrence (and the <a href="http://www.agitar.com/">Agitar</a> crew) talk about the philosophical contention between the notions of
<a href="http://www.developertesting.com/archives/month200604/20060413-ForAllVsThereExists.html"><em>For All</em> and <em>There Exists</em></a>. That is, the difference in mindset of <em>existentialists</em> vs. <em>universalists</em>. Looking at debates in e.g., the extreme programming world, there's a lot of confusion and arguments back and forth that stem from this constructivist vs. deconstructivist conflict.
</p>

<p>
The biggest tragedy in these debates, IMHO, is that people on both sides of the fence polarize and calcify in their self-righteous positions. The fact is that we need some amount of <strong>both</strong> approaches to succeed. For example, writing test-first leads to horrible code if you don't also refactor as you go. Accretive unit tests that aren't themselves refactored leads to big, ugly and unmaintainable test suites. More simply, positivist (aka "garden path") tests must be balanced with deconstructivst (test (to) destruction) tests.
</p>

<p>
Stepping up a level or three, it's even better if, rather than merely mitigating and ameliorating problems, we change the game such that it's hard/impossible to even articulate bad ways and trivial/easy to articulate the garden paths.  That is one of the biggest benefits to taking a <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=81574">linguistic approach to development</a>.
</p>


]]>

</content>
</entry>
<entry>
<title>GPL v3, draft 1 released</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/johnm/archive/2006/01/gpl_v3_draft_1.html" />
<modified>2006-01-18T18:17:40Z</modified>
<issued>2006-01-16T18:58:07Z</issued>
<id>tag:weblogs.java.net,2006:/blog/johnm/19.3950</id>
<created>2006-01-16T18:58:07Z</created>
<summary type="text/plain">
The Free Software Foundation has released the first public draft of version 3 of the Gnu Public License. The rationale document might be a more interesting place to start reading to about what they&apos;ve changed so far and why.


Updates:


Note that folks using non-Gecko based browsers are not able to view or add comments about the draft on the web site but you can submit comments via email.


For those who can&apos;t read the draft easily on the official website, Tim Bray has put up an easy to read version that is suitable for printing.

Simon Phipps and Danese Cooper co-wrote their notes from the release presentation.</summary>
<author>
<name>johnm</name>

<email>jdmitchell@gmail.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/johnm/">
<![CDATA[<p>
The Free Software Foundation has released the <a href="http://gplv3.fsf.org/draft">first public draft of version 3 of the Gnu Public License</a>.
<a href="http://gplv3.fsf.org/rationale">The rationale document</a> might be a more interesting place to start reading to about what they've changed so far and why.
</p>

<p>Updates:</p>

<p>
Note that folks using non-Gecko based browsers are <strong>not</strong> able to view or add <a href="http://gplv3.fsf.org/comments/">comments</a> about the draft on the web site but you can <a href="http://gplv3.fsf.org/comments/email.html">submit comments via email</a>.
</p>

<p>For those who can't read the draft easily on the official website, Tim Bray has put up <a href="http://www.tbray.org/gpl/gpl3-draft.html">an easy to read version</a> that is suitable for printing.</p>

<p>Simon Phipps and Danese Cooper co-wrote their <a href="http://blogs.sun.com/roller/page/webmink?entry=gpl_v3_released">notes from the release presentation</a>.</p>]]>

</content>
</entry>

</feed>