[Duke Thinking]
« December 2009
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  
       
Today

XML



LINKS





CONTACT
Tom Marble's Weblog

template by
Helquin


All | Collaboration | Law and Technology | Personal | Sun

20061216 Saturday December 16, 2006

Just In Time Collaboration

Of course many of us knew that yesterday was the last day for the JavaOne 2007 Call for Papers. In fact I had submitted my "Performance Criteria for OpenJDK Contributions" talk proposal way back on Tuesday. I've been talking with several the folks in the Free Software and Open Source Java community about JavaOne including Mark Wielaard (mjw), Dalibor Topic (robilad), and Geir Magnusson, Jr (geir)-- but they've been busy this week at JavaPolis (I was not able to attend, but I understand it was quite a good conference).

I've been thinking and talking a fair amount about getting to community consensus around Java Policy for Linux (agreeing on details like the filesystem layout, packaging interdependencies, browser integration, developer guidelines, etc.) for some time. Dalibor suggested that we do a session on this topic and so I enlisted Geir and David Walluck (DavidW2) to join me to propose a "Java on Linux" talk. Ideally we would like to add some of the key packaging experts to this talk as well, such as nichoj, overholt, fitzsim, jvw, and doko. Whom am I missing? Anyone else care to join in?

What was remarkable yesterday wasn't that I was chatting with these guys and Tom Tromey (tromey) on IRC and IM, but that we actually went from the idea to having the proposal submitted in a couple hours. An essential element to this Just-In-Time success was Dalibor suggesting that we leverage Google Docs to work out the abstract -- together.

I use often use various Google services, but I'm a little hesitant to do so because of the Terms of Service and the Privacy Policy. Nevertheless I must say that that the experience using Google Docs was very impressive. I've often wanted to edit documents collaboratively and I've known about various hacks for doing this (e.g. OpenOffice through a shared VNC session), but here I found not only the ability for multiple people to edit the document at the same time, but also a handy way to visually review the document revision history (redlines colored by the user making modifications) and noticed the menu options to export to many formats (e.g. HTML, PDF, OpenOffice, etc.). Even though there are quirks (e.g. the invite-your-friend-to-edit e-mails are not RFC 822 compliant) the service is an excellent collaboration tool.

[Google Docs]

While we were chatting Geir proposed doing a panel at J1 to get everyone together and talk about "What cooperation can lead to and how to keep an environment that fosters collaboration, innovation and compatibility." In a matter of minutes I was editing the abstract with geir, mjw, tromey and robliad. Amazingly the basic ideas converged quickly and I submitted the talk to the CFP website (which, I am told, may continue to work until Monday :-) ). If we are lucky the "Java Libre Panel" will get accepted and provide a lively debate next May!

I have never submitted talks to J1 in such a short span of time. While it is awkward to switch windows from IRC, to Gaim, to Firefox constantly (I need more pixels!) the result is clear: e-mail is a last resort for collaboration. It's not obvious that having a voice conference would have added much more efficacy to our work... especially considering that we were spread out among something like 9 different timezones and multi-tasking with other work and/or personal affairs.

Posted by tmarble ( Dec 16 2006, 09:54:16 AM CST ) Permalink

20060725 Tuesday July 25, 2006

Java Benchmarking Folksonomy

One of the hot topics in the Java Libre crowd is around performance benchmarking and the tools and infrastructure to be successful at it.

I've thought about how to represent the different components of the story: from microbenchmarks to macrobenchmarks, load drivers, test harnesses, statistics tools and results visualization. Here is a fantastic space for Open and Free collaboration -- this is a common need and we often end up reinventing the wheel.

Of course those that know me know that I'm big on collaboration. A recent essay by Larry Sanger defines Strong Collaboration. This is a very important work in it's own right and merits the time to read it and grok it [ with a cup of Java ;-) ]. For my purpose here I'm looking for collaboration on the components, but also the meta information: how to find existing work and avoid duplication of effort.

That's why organizing the different facets of benchmarking cannot really live on a static web page and invite collaboration. My first instinct is to grab a Wiki... but many people are shy about editing Wikis and they are notoriously flat. So as I'm trying to develop a collaborative taxonomony it seems the logical approach is to hack del.icio.us as our Open Source Java Benchmarking Folksonomy.

So after a little research I decided that everything in this folksonomy will have the tags opensource java benchmarking. Then additional tags can point to specific areas, such as:

  • benchmark a benchmark
  • microbenchmark a microbenchmark
  • macrobenchmark a macrobenchmark
  • suite a set of many benchmarks
  • loaddriver a synthetic load generator
  • harness a benchmarking script/program
  • stats statistics calculation tools for benchmarks
  • visualization tools for viewing results
  • results publication of specific results
  • article a review of benchmarking and/or tools
  • index a directory of tools
[Duke on a bike]


So here it is: the Java Benchmarking Folksonomy You can find all my sites with:
http://del.icio.us/tmarble/opensource+java+benchmarking
You can find all everyone's sites -- the public Java Benchmarking Folksonomy at:
http://del.icio.us/tag/opensource+java+benchmarking

I have included links to the global entries in the folksonomy (and my links in parentheses).
  • benchmark (tmarble: benchmark)
    One challenge I had right away is around the exact definitions of microbenchmark and macrobenchmark. Another challenge is that the japex project is really an infrastructure for creating microbenchmarks. So right away we have some semantic challenges. At least for starters I encourage you to check out the Beware of Microbenchmarks! section of the Java Performance Tuning White Paper.
  • suite (tmarble: suite)
    Well, I'm in trouble again because suite could mean, literally, that one benchmark is comprised of some very specific sub-benchmarks. Alternatively it could be just a grabbag of different benchmarks. I'll let this ambiguity remain for now.
  • loaddriver (tmarble: loaddriver)
    Sun has contributed nicely to this space of synthetic load generation.
  • harness (tmarble: harness)
    I'm sorry to say I haven't found a Free benchmarking Framework that is a standalone harness. I'm sure every one of the suites has some kind of harness, but I haven't found a generic one. The value of a harness is outlined in Use a benchmark harness.
  • stats (tmarble: stats)
    Like the harness I haven't tagged anything here yet. This is tricky because I'm sure there are some statistics tools in Java -- don't know if there are any standalone packages (i.e. for calculating the student's T-Test). See also Use Statistics. While looking at other's stats tags I found this link which made me chuckle: Programmers Need To Learn Statistics Or I Will Kill Them All.
  • visualization (tmarble: visualization)
    This is the fun part... actually using your inner Don Norman to show people what the data says.
  • results (tmarble: results)
    As we get better at doing this benchmarking Libre I expect we will see many more publications.
  • article (tmarble: article)
    Tag with article for whitepapers, reviews, columns and otherwise human readable discussion on Java benchmarking. we will see many more publications.
  • index (tmarble: index)
    And, of course, the whole concept of open collaboration is that we are standing on the shoulders of giants. Use index to tag other taxonomies on Java benchmarking.
Of course this is a first draft... Now your homework is to add the Firefox extension for del.icio.us so that you can tag in one click. Then as you find relevant pages tag them as shown above and voila the Java Benchmarking Folksonomy will grow in parallel without every having to "publish" anything nor ask for permission to "commit". How will you know if or when anyone contributes? Add the RSS feed for the Java Benchmarking Folksonomy bien sûr!

There are bound to be more semantic potholes so please comment here, drop me a line or find me on OFTC #debian-java and let's collaborate!

Posted by tmarble ( Jul 25 2006, 02:13:15 AM CDT ) Permalink

20060629 Thursday June 29, 2006

Freedom to Collaborate Building on Simon's Freedom to Leave I would like to do an idea mashup between the great visualization features we have in Java, community projects, windowing environments and development tools.

[lg3d]

Why shouldn't we be using Stereoscopic 3D for more than gaming? There are some very interesting Stereoscopic 3D heads-up displays that are apparently realistic enough to provoke "projectile vomiting".

Imagine how this technology could facilitate distance learning and remote collaboration!

The challenge here, of course, is that our ability to leverage the cross-platform advantage of Java breaks down at the hardware level. In my experience the best graphics driver support for Linux is from nVidia (despite the drivers not being Free) and apparently nVidia supports Stereoscopic 3D (hopefully this works in Linux -- and not just for Quadra cards).

It's a shame that the 3D Visor only supports Windows (too bad for Linux and Mac OS users) and has seemingly redundant analog and digital cables to the computer. Does anyone know of a solution to this problem -- or alternative display options? This a great opportunity for the patrons of Free technology to sponsor Open Source Hardware! I'll have to suggest that to Warren Buffet ;-) Posted by tmarble ( Jun 29 2006, 09:01:31 AM CDT ) Permalink