Joine Music

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Monday, 26 March 2007

Project Acta Diurna - Harnessing RSS Goodness for Project Glory

Posted on 02:20 by Unknown
Last week I was bitten three times in quick succession by a lack of knowledge about what was going on around me in the rest of the team. On the flight home my mind went back to prior occasions when the same thing had happened. We all know the drill - there's a bug which seems to make no sense at all; we keep think we're getting close to understanding what's going on when something happens which blows all your carefully thought out theories clean out the water. Later it turns out that you weren't the only one pulling the levers and pressing the buttons on your environment. You'd forgotten or not known about the CruiseControl builds, or the recent changes to the DB schema, or the fact that a firewall had recently been installed in between your web server and app server, or that someone else was on the envinronment at the same time, or..., or... etc. You get my drift.

The fact is, we've all been there. Wouldn't it be lovely if we didn't have to worry so much about all this I mused. What if there was a single port of call where you could go to find all this information, the acta diurna (day's events), before we got tied up in these knots? Somewhere like a project dashboard?

As I disembarked from my flight and collected my bags things coalesced in my brain. As I waited to be picked up I started to scratch down some ideas.

What Should Acta Diurna Do?
It should be able to collect and diplay in a single place all the daily goings on on a project. You know, the big important things such as RFC's, show stopping bugs and team nights out. But lets not forget the not so important things too; SCM check-ins, wiki updates and password changes on the dev DB server. Why not just carry on as usual with a mixture of verbal / web page / IM / email comms? The answer is in the question - these can come at you from all angles, you can miss out on them, and when communicated verbally you can forget them or lose where you wrote them down. Even if they're on web pages, they're spread everywhere. The aim is not to formalise things, but to make them simpler.

So to make things simpler it need to be simple itself, the reader especially. Why can't it just be a single file containing both the HTML and Javascript needed to keep itself up to date? Lets keep a hold of this simplicity and not place this on a web server. Lets just email it out (re mailing when an update is needed) and store it locally on everyone's system (on the desktop or in "My Documents" or something.). Now we don't even need an internet connection. Finally lets have it as everyone's homepage.

But that's the very simple end. What about the RSS feeds themselves? Research and prior knowledge tells me that there are already a lot of feeds available for us out there within our development environment. Our project's wiki might have them already baked in; so might our bug / issue tracker, SCM and continuous integration tool. Lets not complicate things unnecessarily. Lets just subscribe to them.

But we could collect even more. What about blogs? I don't mean this kind of fat, complicated blog, I mean the quick thought / announcement / thinking out loud kind of blog. More in the vein of Twitter than anything else. These could be used for announcing RFC's, RFE's, RFO(pinion)'s, re prioritisations, UAT test results, nights out, things for QA, general project news, specific team news, changes to environments, things that have been learned, architectural events (i.e. major refactorings), developer blogs, and new and interesting things (bookmarks etc.), and more. And lets not stop there. Then there's the files that are generated such as project plans and spreadsheets which normally silo their info. Lets open them up too and listen for changes. Lets embrace the potential of RSS goodness.

What About What's Left? KISS the Server Side
As mentioned, the feeds for some info is already there. What infrastructure needs to be put in place for those where it isn't? Again, it needs to be smiple. This should not add to administrator workload or significantly slow down project startup time. It seems that two sub systems must be added to the equation:
  1. A set of plugins to produce RSS feeds from the information sios which need them (to begin with a simple blogging server could be set up to provide the blogs. If this provided too complicated and high maintenance, a home baked, super-simple blogging engine could be added to the mix)
  2. A HTTP server which can serve these centrally to be read by the dashboard clients
This is where I start thinking Ruby- JRuby specifically. Why? A few reasons
  1. Its a languge well suited to quick development
  2. There are libraries already available for creating RSS feeds
  3. It seems to me that Webrick is a simple web server sitting waiting to be used - needs to be investigated
  4. If we use JRuby it can all run within a JVM. Moreover a 1.4+ JVM. There is already likely to be a box with one available, and it not that's easy to set up. In addition, if we need a database in the future (user - configurable pages anyone?) we could use embedded Derby

So What's Next?
Well, first off I need to come up with the dashboard page. I've seen an example on xml.com which I'm certain can be pretty simply cannibalised and turned into something usable. This can be immediately plugged into some resources via native feeds in things like TRAC or the loads of extras available for free for things like Subversion and CruiseControl. Other human originated feeds could initially be distributed in the form of very short posts to specific blogs. These need not be available externally (in fact really should not be) but can be set up for the purposes of the project.

Then the next job is to have a hack about and write the simple RSS generator for one of the info sources we'll need and serve it up from Webrick running on a JVM.

Final goodness could be to slowly find or replace the third party RSS enablers with some activa diurna versions - "One throat to choke" and all that. That way we could have a suite of simple plugins to RSS-enable many of these elements in a consistent and predictable way. The idea is for this to grow and be used in as many places as possible. It'll be FOSS which hopefully will mean others will step in and give me a hand with it. I'm off now to create the dashboard. I'll blog again when it's done...


NOTE: I should point out that this post owes a fair amount to seeds sown by reading about RSSBus and XFruits (Thanks Scott); take a look. They're very cool and I think would play very nicely with this once it is up and running.



Powered by ScribeFire.

Email ThisBlogThis!Share to XShare to Facebook
Posted in dashboard rss communication news development | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • (no title)
    The Significance and Importance of Quotes in JSTL EL I just spent a few hours debuggung a null pointer in a Portlet JSP I'm writing. It...
  • (no title)
    Agile Development Ramblings: Part I Introduction I've just completed my first Agile development project. We developed a fully functiona...
  • EJB 3.0 Outside the Container, Inside the JVM - Part 2: Configuring JPA Declaratively
    Welcome to part two of this blog entry introducing using EJB3.0 inside the JVM. Click here to view the first part. As we've seen, JPA ...
  • Reuse (ii): Definition of Done
    As I said in my previous post , our project has suddenly taken a new path. There are two bits of collateral which I'd recently produced...
  • Notes from the FindBugs BOF9231 at JavaOne 2007
    NOTE: These are my incomplete notes from the FindBugs BOF at JavaOne 2007. I got in late due to the crush outside so missed the start of th...
  • Writing Unit Tests to Ensure Your "@Transactional ... rollbackFor" Annotations are Honoured
    Thanks to Russ Hart for providing the info on how to get this to work.  I just cut and paste, and then blogged it. It's nice to write un...
  • (no title)
    Can Your Own Demo I found something great on t'internet the other day. I had been asked to do a demo of our new ystem to some users but...
  • JavaOne Bred Over-Enthusiasm...
    I want to build and fiddle with Wonderland , and my own JDK ! The problem is my graphics card sucks (I need acceleration) and I'm runnin...
  • Booting Apache Derby ("JavaDB") with your Java App's Startup
    If you're embedding the Derby RDBMS with your java desktop application and want it to start when you start your app, you need to make th...
  • STS and RTC – Getting them to Play Nice
    We’re developing our new app using Spring 3.0 RC1 and we want the best tools available. We’ve picked the following: SpringSource Tools ...

Categories

  • 0
  • 2008
  • ant maven pimp build javaone 2008
  • apple ipod touch
  • asm
  • blog new ruby
  • blogtag list
  • bond casinoroyale mashup mi6 film movie
  • build
  • bytecode
  • CI
  • cobertura
  • communityone 2008 nutter jvm scala jruby groovy davinci
  • communityone 2008 opensocial socialsite
  • communityone javaone keynote oreilly
  • configuration
  • cowley
  • css div layout column ie firefox safari example
  • custom
  • darkstar mpk20 wonderland java3d commaboration SL
  • dashboard rss communication news development
  • db2 database SQL max min howto tip
  • db2 database ibm lessons tips
  • db2 database load batch howto example
  • db2 import upload data howto command
  • debt technical java annotation
  • debugging tips javaone 2008
  • development web2.0
  • findbugs JavaOne 2008 pugh
  • findbugs JavaOne BOF notes
  • gafter closures java javaone notes
  • google trouble patriarchal patriarchy
  • groovy metaprogramming javaone 2008
  • grubby oss data generation project announce
  • guice javaone 2008
  • gwt maven howto example simple
  • howto
  • hudson
  • hudson CI javaone 2008
  • ibm
  • invokeDynamic jvm dynamic ruby javaone
  • itinerant web2.0 portable desktop
  • jacl was websphere wsadmin trace logging
  • james gosling sun java open source tech days second life SL
  • jar java manifest properties config howto tip
  • java
  • java applet javaone 2008 reloaded jnlp
  • java javafxscript javaone 2008 fxscript
  • java javaone 2007 07
  • java javaone 2008 bytecode cobertura asm singleton testability
  • javaone
  • javaone keynote gage schwarz javafx
  • javaone semantic web bof notes web3
  • jazz
  • jruby rails javaone charlesnutter thomasenebo
  • jruby ruby netbeans development
  • kill dead laptop computer rebuild restore
  • lessonslearned
  • mac osx java gui shellscript classpath problem solution
  • maven plugin unittest test packager
  • mylin mylar javaone eclipse 2008
  • netbeans development ide
  • netbeans development ide RC
  • netbeans maven2 profiling
  • netbeans ruby sun tech days visual web pack roman strobl
  • ola bini java javaone 2008 thoughtworks ruby jruby
  • openjdk java javaone javafx wonderland
  • overheard
  • pojo ejb3.0 jpa orm java example howto
  • rant
  • rest restful jsr311 java web2.0 javaone ts-6411
  • rome rss feed blog rss atom propono java javaone
  • rsa uml profile plugin howto
  • ruby inheritance example
  • ruby jruby rss xml hpricot
  • ruby unless example
  • scm
  • setup
  • subversion svn xp windows cleanup
  • sun java soa web2.0 netbeans opensource javacaps
  • sun tech days java derby database rdbms london
  • sun tech days london impressions
  • terracotta java javaone 2008 android gwt
  • tip
  • tips
  • vwp netbeans JPA howto
  • was jython scripting nfr ibm pmi jvm
  • was tpv jython scripting nfr ibm pmi
  • webrick ruby jruby actadiurna investigation code howto
  • workitem

Blog Archive

  • ►  2012 (1)
    • ►  October (1)
  • ►  2010 (8)
    • ►  November (1)
    • ►  October (3)
    • ►  June (1)
    • ►  May (1)
    • ►  February (1)
    • ►  January (1)
  • ►  2009 (9)
    • ►  December (1)
    • ►  November (5)
    • ►  March (2)
    • ►  February (1)
  • ►  2008 (22)
    • ►  December (1)
    • ►  November (3)
    • ►  May (15)
    • ►  March (1)
    • ►  January (2)
  • ▼  2007 (53)
    • ►  December (1)
    • ►  November (3)
    • ►  September (3)
    • ►  August (2)
    • ►  July (3)
    • ►  June (1)
    • ►  May (12)
    • ►  April (5)
    • ▼  March (13)
      • Project Acta Diurna - Harnessing RSS Goodness for ...
      • Sun Tech Days (London), Day 2, Report 4 - Extreme ...
      • Sun Tech Days (London): Day 2, Report 3 - Impressions
      • Sun Tech Days (London): Day 2, Report 2 - Derby DB
      • Sun Tech Days (London): Day 2, Report 1 - Gosling ...
      • Sun Tech Days (London): Day 1, Report 1 - First Im...
      • Running JRuby built from the trunk with Netbeans 6.0
      • Placing your config.properties outside your applic...
      • DB2: Show the schema version
      • Ruby with Foxes...
      • Truncating tables in DB2
      • DB2: Finding the maximum / minimum / average valu...
      • Showing a Table's Foreign Keys with DB2 Control Ce...
    • ►  February (7)
    • ►  January (3)
  • ►  2006 (35)
    • ►  December (8)
    • ►  October (1)
    • ►  August (1)
    • ►  July (5)
    • ►  June (8)
    • ►  May (3)
    • ►  April (7)
    • ►  March (2)
Powered by Blogger.

About Me

Unknown
View my complete profile