The VMforce collaboration is VMware’s first public implementation of Platform-as-a-Service (abbreviated as “PaaS”). PaaS offerings aim to make developers incredibly efficient by hiding many of the complexities that they face in typical enterprise IT environments such as:
* Waiting for the provisioning of physical machines and their software
* Changing your code to work with the specific middleware components your company uses
* Handling code modifications that may be required as the middleware versions change
* Dealing with new environments as your code moves from development to staging to production
* Frustrating interactions with the separate operations team when things aren’t working well
PaaS offerings typically offer add-on services available for developers to incorporate into their applications. These include capabilities such as location-based services, identity management, tweeting, chatter, search, and many forms of data storage. The developer efficiency and application richness to be gained through PaaS offerings is clear and we see it as one of the major trends in cloud computing. Today’s PaaS offerings are not without challenges though, and we believe VMware is in a unique position to attack these challenges and help bring PaaS to the mainstream.
GoogleCL brings Google services to the command line.
We currently support the following Google services:
$ google blogger post --title "foo" "command line posting"
$ google calendar add "Lunch with Jim at noon tomorrow"
$ google contacts list name,email > contacts.csv
$ google docs edit --title "Shopping list"
$ google picasa create --title "Cat Photos" ~/photos/cats/*.jpg
$ google youtube post --category Education killer_robots.avi
The Android Scripting Environment (ASE) brings scripting languages to Android by allowing you to edit and execute scripts and interactive interpreters directly on the Android device. These scripts have access to many of the APIs available to full-fledged Android applications, but with a greatly simplified interface that makes it easy to:
* Handle intents
* Start activities
* Make phone calls
* Send text messages
* Scan bar codes
* Poll location and sensor data
* Use text-to-speech
* And more
Java toolkit which makes DAO manager creating easier. It produced DAO compatible with JPA specification. It has implemented CRUD operations and some features (active, hidden, default, etc.). It also extends standard API for criteria (like Hibernate ones).
The Google Chart API lets you dynamically generate charts. To see the Chart API in action, open up a browser window and copy the following URL into it:
Press the Enter or Return key and - presto! - you should see the following image:
Testability-explorer is a tool which analyzes java byte-codes and computes how difficult it will be to write unit-test. It attempts to help you quantitatively determine how hard your code is to test and, where to focus to make it more testable.
Test metric tool can be used:
1. As a learning tool which flags causes of hard to test code with detailed breakdown of reasons.
2. To identify hard to test hair-balls in legacy code.
3. As part of your code analysis-toolset.
4. As a tool which can be added into continuous integration that can enforce testable code.
TestabilityExplorer.org records the testability scores for many open source and commercial Java libraries.
The compiled bytecode for the library is analyzed and metrics are calculated for the testability of individual classes. Those classes fall into one of three categories - 'excellent', 'good' and 'needs work'. Generally speaking, injectability, mockabiliy and composition are good, and static state is bad. Figures are recursively calculated, but only inside the jar in question.
The metrics are a calculation of the skill of the development team in making their classes testable. You cannot use these metrics to say that Tomcat is better than Jetty or vice versa, as the features of each are not taken into account. These metrics will also not tell you whether a particular library will be easy to use or not. It just tells you how dedicated the development team was to making testable software. As we track the changing figures overtime, we can see whether the team in question was dedicated to improvement or not.
Archy is a simple, command-line frontend to Maven 2's Archetypes. It walks you through the process of creating a new project using these project templates. This tool was inspired by megg.
The list of archetypes comes from two sources:
* An internal XML file that describes the archetype information
* An external Maven wiki page that lists available archetypes
The Google Singleton Detector, or GSD, is a tool which analyzes Java bytecode and detects the use of Singletons.
It's not quite as simple as that, however. First, GSD doesn't only detect singletons; it detects four different types of global state, including singletons, hingletons, mingletons and fingletons (see the usage section for descriptions). Second, it outputs a graph with all these different types of static state highlighted, and shows all the classes that are directly dependent on them. The point of this tool is to allow you to see all of the uses of global state inside a project, as well as how they are all interrelated. Hopefully you'll be able to locate global state that is heavily depended on and remove it.
In what I hope will be the first of several articles about Guice, a new lightweight dependency injection container from Bob Lee and Kevin Bourillion from Google, this article examines the simplest and most obvious use case for the Guice container, for mocking or faking objects in unit tests. In future articles I will examine other, more ambitious areas where it can be used, including dependency elimination in large code bases.