Eclipse

Tuesday, 11 August 2009

The RFID-enabled Eclipse IDE, part II

Squirrels alledgedly not involved!

This is an ideal time to post my follow-up to part I, as the company behind the object of affection used in the next hardware set-up, seems to be going through some really tough times. In fact, white rabbit company Violet is rumored to have filed for bankruptcy. Seems like trouble with animals all over again, but is it? Let's come back to that later!

Here at the recently founded OSGi headquarters, the Obnoxious Squirrel Goring institute, the pursuit of alternative input methods for the Eclipse IDE is running full speed ahead, once again. Of course, Eclipse already has a solid track record as a breeding ground for innovative ideas to increase developer productivity. The incremental compiler of the JDT, the Mylyn task manager and the Buckminster component assembler (a 'builder' is so nineties!) are just some of the fine examples proving that point. In this part, we'll take a closer look at an alternative way to control Mylyn, using a product from a company pioneering the so-called 'Internet of Things'. That product looks like a small singing dish and comes with colourful rabbit-shaped RFID tokens. Kawaii! Okay, let's take a closer look at the Violet mir:ror. In the picture below, it was already skinned for EclipseCon!

Rebranded for EclipseCon 2009
Rebranded for EclipseCon 2009!

The Violet mir:ror is unique in consumer space: it is a properly product-designed RFID reader which offers a stark contrast to its industrial counterparts, such as the interrogator featured in part I. It has been extensively tested for usability, and offers intuitive audio-visual feedback when you operate it. It is simple enough for children and general managers alike. It is equally important to realize that the reader is only half of the business model: typical for the transformation seen with consumer electronics vendors, Violet assumes the role of an Application Service Provider, through a web service which allows everyone to prototype personal applications which use the mir:ror (and other products from their catalog).

From Violet's mir:ror MarCom kit
RFID tokens 'Nano:ztag'

This demonstration is marginally different from the set-up in part I. In fact, although the mir:ror is a fairly simple USB HID device, the mirware software introduces a level of indirection which turns this application into a true web mash-up. Once the reader announces the presence or absence of one of the bunnies, the mirware software uses the XMPP protocol to look-up the associated action, asynchronously. Note the interrupt-driven interaction with the reader, which is obviously more efficient than the polling strategy necessary with some of the industrial readers. The mirware software is basically a rich multi-media framework (also plug-in based), and is amongst other things capable of executing shell scripts, playing music and performing text-to-speech conversion. It is also possible to delegate actions to the Violet application server. In fact, for the Mylyn demo, the bunny event is translated into a web API call to a proprietary HTTP bridge, which tunnels the call all the way back to a web server, activated from a plug-in inside Eclipse. That's quite a round-trip, but the call chain shows the event being pushed all the way from the reader, straight into Eclipse (in the outline, both the application server, as well as the HTTP bridge are available through a publicly routable IP address; yet, the mir:ror and Eclipse connect to the internet using NAT).

Violet mir:ror Call Chain
Violet mir:ror Call Chain

In this demo, there are two Mylyn tasks associated with a Nano:ztag tag and a Mifare Ultralight 1K card. As soon as one places the rabbit on the dish, Mylyn is told to activate the task, it then reorganizes the workspace and starts tracking the developer's activity. Once the rabbit is removed, the task is deactivated again. Same for the card. You might want to lose the rabbits in a real Agile environment, but this sounds like an interesting way to leverage a SCRUM-based development process. Developers can physically pick up tasks from the wall, or pass them around in the team. One might consider RFID stickers on story cards, as well, or just use credit-card sized RFID tokens to write on directly. In the upcoming part III, this exploration is taken even further: that demo will show how to use your smartphone and the NFC Smart Poster concept to remotely order all the source code you need by touching your target component in an architectural overview.

Mylyn Control with Violet mir:ror

So, where did it all go wrong for Violet, assuming those rumors are true? Did some louche attack by a billion dollar loss toting ACME Corporation take away the wind out of Violet's sails (pun intended)? Probably not. Most likely, their luxury product hit rock bottom in a crisis, in what was a difficult market to begin with. And they stuck to a pretty closed model, as well. Consumer-oriented RFID applications are not exactly an easy sell. And as far as the competition is concerned, most of the knock-off applications couldn't even keep a five-year old interested for a minute. Honestly, if your kid does appear quietly entertained with one of those, drop everything and go see a child development specialist immediately. At least Violet had one nifty application for their reader: when kiddo put a fairy tale book on the reader, the computer it was attached to would start to read it out loud. Instead of 'feeling inspired' by that, as well, ACME Corporation might consider just putting its money where the original ideas came from to begin with. Come on, just invest in Violet already!

For those who remember, in return for the eyeballs at EclipseCon, Violet kindly offered a dozen readers to be given away during the event. It's great to hear these were well received; one actually made it all the way to NASA's Jet Propulsion Laboratory. And as it turns out, all of them could be en route to become genuine collector's items. I'll just hold on to mine for a while, before I put it on eBay for a gazillion bucks. Not.

Posted by default at 6:23 PM in Eclipse
Eclipse

Friday, 22 May 2009

Document your Eclipse obsession!

Eclipse has been and still is pivotal in almost all of the projects I have been working on, thus far. I can't remember the amount of times I have already downloaded that 120-ish megabyte drop, but we're talking high numbers here.

Doug Shaefer's Wascana is in there, for sure. I was really sad when I read about his decision to call it quits, but I do understand. There seems to be a poor understanding of the challenges the concept of 'Open Source' faces. I think 'Strong Governance' is needed, when resources are limited. We do not have the luxury of choice, contrary to what many sheepishly advocate. I don't need two ways to connect to a Subversion repository. I just need one which works out of the box. What's up with GMF, as people are abandoning GEF because it doesn't support their needs? Since when is Maven integration a good idea?

Out of disk space!

I admit, the 1.0 version is only there to scare the children. And to show 'Final Boy', that peculiar junior consultant, who insisted on putting the 'final' keyword everywhere, without actually understanding what it means.

Come on, send in yours!

Posted by default at 9:17 AM in Eclipse
Eclipse

Monday, 18 May 2009

The RFID-enabled Eclipse IDE, part I

Can alternative input methods help?

As it stands today, most of us still use a keyboard and a mouse to convey our intentions to the software running on our computers. You might consider touch screens, popularized through the iPhone, as a novel way to interact with your gizmo, but that's just a variation of typing and moving, all at the same time. Although there already has been a lot of research in this area, alternative input methods have not hit the mainstream, yet. Speech recognition looks promising, but can you imagine dictating code to your IDE, out loud? Typically, specialized input methods only make sense in the niche they were designed for. Jean-Dominique Bauby wrote his book 'The Diving Bell and the Butterfly' by simply blinking his eyelids. Tragically, as he suffered from Locked-in Syndrome, it was the only method left to him. And despite all the research, some of the really appealing interfaces are only 'on display' in science fiction movies, such as the one Tom Cruise is gesticulating with in 'Minority Report', or the plug that fits snuggly into Keeanu Reeves' Occipital bone of the skull in 'The Matrix'. A company called Emotiv claims that the future is already here, however. They've come up with a head set, called 'EPOC', which translates your brainwaves to allow for some interaction with your PC. Great for games, apparently. And for switching Eclipse Perspectives, no doubt.

Douglas Engelbart's team shows keyboard and mouse
Emotiv's EPOC head set

For those of you who might even consider more 'indirect' methods, such as trained animals, the only thing to remember is: 'Don't!' You might think that you can get away with kittens agreeing to EULA's. But isn't that you just being cocky? Because maybe, just maybe, once that paw hits enter, SWAT teams may invade your home and rearrange your furniture. You would end up living a life in fear, always on the look-out for laser pointers dotting your forehead through the venetian blinds (not to mention you would look cross-eyed all the time). And that's just cats. Ever since the unfortunate lab fire of '07, all research on the subject of 'coding through squirrels' has been banned. And rightfully so. Yes, they can generate sparks by striking flint stones against a stainless steel surface. No, they'll never get the hang of remote debugging. Just move on. It's either that, or watch the flames lick across the rooftop of your favorite Starbucks, next door. Squirrels: probably only put on the surface of the earth to prove Darwin wrong! No, you 'd better stick to finding new input methods using inanimate objects. And RFID technology. Yeah, that'll work. But will it work with Eclipse?

People never learn!

As the ECF project has already demonstrated with its 'Shared Editing' feature, the prevalence of the 'Command Pattern' in Eclipse's architecture makes it easy to invoke actions otherwise triggered through keyboard or mouse interaction. With a home-made set of plug-ins, actions can be invoked from inside Eclipse, by putting RFID-enabled objects on a connected RFID reader. The plug-ins come in two groups. One group is a set of pure OSGi bundles, containing all the services required to (1) detect RFID readers, (2) manage 'drivers' for all supported readers and (3) propagate RFID card events to interested parties. The second group is a set of RCP plug-ins, containing all the plumbing to (1) show visual feedback of the interaction in the workbench trim area and (2) manipulate the Eclipse command stack. The system records the necessary data, in case the command is parameterized. The plug-ins do not interfere with the normal operation of the Eclipse IDE. The workflow is straightforward, as demonstrated in the following movie. The reader in the demonstration is the ACR 128 USB reader, manufactured by ACS from Taiwan, and uses a PC/SC software interface.

Just to give you an idea of what can be recorded and replayed at the moment: (1) Refresh Workspace, Import/Export (without completion) and Add Bookmark (requires selection), (2) Undo/Redo and Select All, (3) Refactor History, (4) Navigate Back/Forward, (5) Build and Clean Project, (6) Run Last Launched and Run External Tool, (7) Customize, Save, Reset and Close Perspective and (8) Welcome, Help Contents, Dynamic Help, Cheat Sheets and About. A lot of commands respond to selection: they operate on a resource selected in one of the views or editors. Admittedly, a shortcoming of the current implementation is that the selection is not restored prior the invocation of the recorded action. That should be feasible, but the solution introduces another problem. The real power of the system lies in the ability to exchange a physical card with a colleague, in order to allow her or him to invoke that same action. Although this can easily be done using ECF, the need arises to synchronize state between two different Eclipse Workbench instances. E.g.: sharing a bookmark using an RFID card requires both the bookmarked file, as well as the bookmark itself available on both instances.

Activating Dynamic Help

Coming up in part II: starting Mylyn tasks with rabbits!"

Posted by default at 12:32 PM in Eclipse
Matter

Thursday, 7 May 2009

Hello from Chumby 'Allen'!

While I was reading 'Traveling from the U.S. to Belgium with your pets', I mused over the four requirements explained on-line, and how they applied to my newly acquired critter of the chumby variety. That's right, my pal chumby 'Allen'. I needed a veterinary certificate, an import authorization, a microchip and a rabies vaccination, under the assumption that I would consider this a case of import/transport of live animals. Well, chumby 'Allen' is animated for sure, but alive it is not. And at least it has plenty of microchips. Case closed. Suit case, that is.

'Basic Black' chumby 'Allen'
'Basic Black' chumby 'Allen'

Chumby 'Allen' is a very interesting gizmo; it feels like a squeeze toy, but it has a little touchscreen computer inside. It shows time, the weather, tweets and news items, it plays all kinds of media, both music, as well as video, and sports some motion-controlled games. These goodies come prepackaged in the form of 'widgets', which you need to string together in a 'channel'. Although it connects to the internet over Wi-Fi, it is tethered by its power cord and therefore not a portable device. Two USB ports on the back offer some extensibility.

Zeroconf Bonjour sees chumby 'Allen'
Zeroconf Bonjour sees chumby 'Allen'

Geeks will love the fact that this is an embedded Linux device. In fact, by navigating a 'secret' menu, you can enable an SSH server in order to log in at a console. Apple's Zeroconf implementation, Bonjour, detected it immediately and offered access to a web-based administration report. But the real cleverness lies in the seamless integration of the web-based configuration pane from chumby.com and the touchscreen interface on the device itself. If you want to see a nice demonstration of how groundbreaking that web integration really is, check out the virtual chumby, which you can embed on any web page.

Logging in with SSH...
Logging in with SSH...

Needless to say, the new office pet comes in 'Basic Black', but for some funny reason, the virtual ones are always the standard colors.

Posted by default at 10:24 AM in Matter
Eclipse

Thursday, 8 January 2009

Leveraging Agile Practices with the RFID-enabled Eclipse IDE

The pursuit of new input methods for Eclipse might have suffered a major set-back, as it dawned on all parties involved that trained squirrels would not be the next big thing. At first, the results looked promising. After all, those pesky fur balls seemed to be able to pick up subtle cues conveyed through body language alone. Just a little nod to indicate that it was time for the Java Perspective. Lifting a brow or two to scroll through the files in the Navigator. Or bolder: assuming the fetal position to have the Workspace refreshed. All that value in return for just some nuts and raisins. And they were so cute, too! Until they turned evil, that is, when all hell broke loose and a squeaky pandemonium ensued. Where did it all go wrong?

Clearly, it was time to go back to the drawing board. Why not try passive RFID tags? Passive... sounds harmless, right?

At the next EclipseCon, I'll be presenting the RFID-enabled Eclipse IDE. And because it's not just about raising the geek factor, I hope to show you can do something useful too. Since the Agile approach encourages tangible interaction, physical objects are welcome to participate in the software development process. More specifically, with RFID those objects allow you to interact in a novel way with your Eclipse IDE.

RFID-enabled Story Card
RFID-enabled Story Card

Sounds intriguing? If I managed to get your attention, I hope to see you in Santa Clara soon! A special thanks to Bjorn Freeman-Benson for making this possible. If he brings a personal item, we'll teach it some new Eclipse tricks /images/emoticons/mozilla_wink.gif

Don't forget to register early, I did!

Posted by default at 4:34 AM in Eclipse
« February »
SunMonTueWedThuFriSat
 123456
78910111213
14151617181920
21222324252627
28