Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Werner Schuster on May 31, 2007 11:59 PM
Desktop automation is a topic that seems to change and adapt. The Mac has had AppleScript for many years, and recently added Automator so users could define actions that are performed at certain events to automate boring, repetitive tasks. Windows users might use the Windows Scripting Host, Unix/Linux users might hook up to DBus to listen to system events.Although my focus this summer will be on the plumbing of Rubyland, there are a few initial event sources I plan to write, for the sake of demoing Rubyland, and also to have some fun. The first will be to tap into Growl notifications, as there are tons of applications out there that support Growl, and are just begging to be hooked into Rubyland. Another will detect when the contents of a folder changes, so that Rubyland scripts can act when a file or directory is modified. There are other ideas I'm playing around with, but aside from those two, we'll see how it goes.
Right now, the plan is to implement the core of Rubyland on top of EventMachine, with event sources communicating via either dRB or something very similar. Much of this came together in the last few weeks, and I bet the next few weeks will hold yet more surprises.dRB, shipped with every Ruby installation, is "Distributed Ruby", a library that makes it easy for code across several Ruby runtimes to communicate. EventMachine is a library for writing network clients and servers and facilitates event processing.
The fantastic user ecosystem that's arisen around TextMate has really amazed me. When someone puts in the extra effort to package their work for others, then there is a fantastic network effect that lifts the entire community. My goal with Rubyland is that simple desktop tasks should be easy; and if someone finds a task to be hard, then it'll be easier for the next person.One idea that comes to mind is to integrate these event sources with tools that monitor what is going on and try to guess what the user is doing. This can be useful to associate the user's actions with OS resources that are touched. Eclipse's Mylar is a fantastic example of this. It basically allows the user to define a task, and then remembers which resources (files, source code elements, etc.) are touched in the process. If the user decides to work on another task, this information is then saved. The next time the user continues this task, the necessary files can already be opened by Mylar and the UI focussed on these resources. In a way, this is similar as to how an OS handles context switches. Tasktop Technologies now tries to bring this functionality to the desktop. This is where Rubyland's event sources come in handy - the more events can be collected, the more information is available for activity analysis.
Two years ago I worked for a graduate student who was trying to study this. The problem he found was that even though many Mac applications had extensive Applescript libraries that could be used to monitor the application's state, an enormous amount of work was needed to model the workflow and resources of any given application, with even more needed to integrate two models together. Rubyland would certainly have something to offer, by providing the underlying plumbing and a number of sources out of the box. It's a tough problem, and it would be wonderful if I helped the people trying to tackle it.Asked for how he'll handle the project and how to watch his progress, Scott says:
I want to get out an early version of Rubyland by mid-summer, and by then, to have a mailing list running, and possibly forums. So be on the lookout for that; it'll be announced on the Rubytalk mailing list, along with the O'Reilly blog. In the meantime, anyone who's interested can feel free to email me, either with what they'd like to see Rubyland do, or what they'd like to make Rubyland do themselves. No promises, but I'm always happy to hear suggestions :)For more information see Scott's first entry on the O'Reilly blog, where he also gives some Rubyland code samples.
Ensuring Code Quality in Multi-threaded Applications
Usage Landscape: Enterprise Open Source Data Integration
The Agile Business Analyst: Skills and Techniques needed for Agile
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
No comments
Watch Thread Reply