Collaboration: At the Extremities of Extreme
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Scott Delap on May 22, 2009
The Merapi project recently was open sourced. Merapi is a technology that can be used as a messaging bridge between applications that run in the Adobe Flash player or Adobe AIR and applications written in Java. Air's security sandbox allows some common desktop interactions like systray support, file access, etc. However, it does not allow other operations such as access to USB devices or launching of native applications. This is where Merapi comes in by creating a simple messaging framework to allow Flash, Flex and Air applications to communicate Java. Java can then be used to proxy requests and interation with such sources. Sending messages can be done via a simple API:
var message : Message = new Message();
message.data = " Hello from Merapi Flex.";
message.type = "Reply";
Bridge.instance.sendMessage( message );
One of the higher profile uses of the new technology is in the Tesla Model S car:
...Merapi is a revolutionary solution for bridging traditional desktop and Web technologies, closing the gap between what has traditionally been a separation of the two. Merapi's key advantages include:
-- Access to hardware devices: Browser-based technologies (Adobe Flash, Microsoft Silverlight, AJAX) previously did not have native access to hardware other than microphone and Web cam.
-- Access to existing APIs: Merapi makes existing open source and commercial software accessible from the browser or from runtime engines such as Adobe AIR without the need for a server.
-- Improved core performance of an application.
Monitor your Production Java App - includes JMX! Low Overhead - Free download
18 agile and lean practices for effective software development governance
Improve Java Garbage Collection, Runtime Execution, and JVM visibility with Zing
Thanks for the coverage. There's also more on my blog about the release:
adamflater.blogspot.com/2009/05/merapi-is-open....
cheers
-adam
We lost complete interest in Merapi when we saw it decided to go with GPL3 license.
This licensing is the kiss of death per any manner of corporate update of this library.
It's architecture ended up being frustrating anyway. What we wanted was a mini JMS-like message broker sitting on the Java side where multiple AIR apps (and/or other Java processes) could connect as clients (i.e., multiple clients). And that concepts like pub/sub topics would be supported.
Looks like we can take BlazeDS servlet, drop it in to jetty, and embed jetty in the Java app to accomplish exactly that. Then we'll have a much more flexible solution than Merapi. BlazeDS has a basic intrinsic pub/sub messaging capability. It supports a persistent-style of Comet connection to enable message push. So bi-directional messaging can be accomadated.
Oh,Greate.
Could you elaborate on your concerns about the license? It's licensed under LGPL3 not GPL3.. meaning, all you have to do is include our source (or link back to it). This does not require your source to be open or free.
That said, it's not going to be the solution for every problem. Our goal is to start reaching many platforms in a ubiquitous manner. That leaves out using platform specific technologies to build the framework on. Also, we're looking to keep it very light weight. Blaze + Jetty is just a too heavy for many problems.
Thanks for the feedback.
-adam
Adam Flater clarified with me in private email exchange that Merapi is under LGPL3 - not GPL3. The Merapi google code web site is being adjusted to where the license is properly referenced as LGPL3.
As such our company will get behind Merapi as the definitive open source solution for Java and AIR interprocess communication.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
5 comments
Watch Thread Reply