The FirstStep Example

The new FirstStep example application allows you to get an InfoGrid application running literally in 60 seconds or less.

FirstStep shows the essence of how a tagging application like delicious would be implemented using InfoGrid.

Instructions and annotated source code are here:

InfoGrid 2.9.2 Released

InfoGrid 2.9.2 is focused on the new project layout of the code base. This new layout has also been documented on the wiki, starting with the front page and continuing to the projects page.

The new layout will make it easier for newcomers to find their way around InfoGrid, and to selectively include only those parts of InfoGrid required for a given application. It’s top-level structure is as follows:

Below, you find directories such as:

  • modules: contains the functionality of the project
  • tests: automated tests for the project
  • testapps: web applications testing the project
  • etc.


First Academic Workshop on Graph Databases: in China

This is remarkable.

Sooner or later, somebody had to organize an “international workshop on graph databases” in an academic setting. It happens with all technologies. So it’s not surprising that there will be one in July this year, in conjunction with a conference and with the proceedings published by Springer, just like you would expect.

It is surprising that the workshop is organized in China, by Chinese researchers. That’s a first, at least from what I have seen so far. Usually you would expect something in, say, Florida, or the south of France or perhaps Spain or Germany. But it is China.

Way to go! Some people are faster to spot a trend than others, and as an entrepreneur, I admire that.

10gen: Why NoSQL is Here to Stay…

Good line of reasoning in 10gen’s blog post:

One reason why NoSQL, or some iteration, is here to stay is that the way computer architectures are heading, having systems that can run across multiple machines is going to be an absolute requirement. The limitations of vertical scaling are going to get worse and worse. You’re going to get new chips that have more and more CPU cores on them, but the speed isn’t much higher. And they’re going to be cheaper too so you can get more computers but you’re not going to be able to get one computer that’s really fast at any price. But you’re going to be able to get 1000 computers that are not terribly fast really cheaply. So the question is, at the data storage layer, can you leverage that? The traditional approach is no, not without a lot of manual effort.  But changing computer architectures, as well as the growth of cloud computing, necessitates a better set of database systems built to achieve scale. These new solutions are going to solve that and it’s going to be critical. We want a new set of tools for the data storage layer that work well with those cloud principles, which are things like infinite scalability, low to 0 configuration, and ease of development without friction.

InfoGrid 2.9.1 Released

This is an incremental release focusing on bug fixes and minor enhancements that make life easier for the developer. To download, go to

Summary of changes:

  • support for reverse proxies (e.g. Apache in front of Tomcat) with corresponding changes of http/s, port, host and path
  • CommandLineBootLoader now deactivates Modules
  • allow ResourceHelper initialization from Module initialization
  • added traceMethodCallExit with return value to Log
  • added identifierSuffix to enable giving an LDAP domain for authentication
  • attempt LDAP reconnect when communication exception
  • many LID/OpenID fixes and improvements, including ability to run behind reverse Proxy
  • all JDBC and database names all-lowercase; too many funny issues on some platforms
  • LidProcessingPipeline sets request attributes org_infogrid_lid_RequestingClient and org_infogrid_lid_RequestedResource instead of something less straightforward
  • support for page-wise scrolling in Viewlets, e.g. the AllMeshObjectsViewlet
  • added InstrumentedThread.advanceTo with a timeout
  • Simplified TransactionAction Exception signatures to make invocation code shorter
  • Split org.infogrid.mesh.TypedMeshObjectFacade into an interface and a class — all generated interfaces now inherit from org.infogrid.mesh.TypedMeshObjectFacade
  • Treat localhost as resolvable global identifier
  • Derive theDefaultMeshBaseIdentifier from first incoming HTTP request if not given in web.xml
  • Less of the mystifying error messages when undeploying on Tomcat
  • added ProbeUpdateSpecification_LastRunUsedProbeClass to Probe model
  • Allow custom HostnameVerifier to deal with non-official SSL certs
  • removed Test model from MeshWorld, NetMeshWorld
  • added Tagging model to MeshWorld, NetMeshWorld
  • changed cookie value encoding
  • clean up cookie values that may have been double-quoted
  • renamed LID cookies to use hyphens not periods, makes interop with PHP easier (which uncomprehensively changes all periods in cookie names to underscores)
  • refactored and expanded session management and related code in LID modules
  • Generic mechanism to add HTTP headers instead of one limited to Yadis
  • moved default gpg working directory to /var/run
  • made SaneRequest more sane: separate URL and POST’d arguments cleanly.
  • added SaneRequest.getAbsoluteFullUriWithoutMatchingArguments
  • moved to NetBeans 2.8
  • various bug fixes, including those found in a static analysis run
  • more tests
  • some API extensions
  • some improved formatting in HTML output