Monday 8 August 2011

jMinim

For various reasons I haven't taken JStreamer much further in the last few months. I had a few users of the beta release, but shortly afterwards the BBC fixed their problem with Radio 3 online broadcasting, which removed the major use case that had motivated user interest in JStreamer.

The other problem with JStreamer was its lack of integration with UPnP AV, the industry standard for home media networking. Fixing this would be a (not so) small matter of programming. Of course, if I could find an open-source Java implementation of UPnP AV, I would be able to use that instead of rolling my own.

Well, what you wish for does sometimes turn out to be what you get, and the nice people at Linn Products have just released such a thing as part of the OpenHome project under the catchy name of ohNet. (I think that's pronounced O-H-Net.) I've been looking at this over the last few days and it seems to be just what I need. It's not pure Java, but life is never quite perfect. Instead, it's C++ code with Java bindings implemented using JNI, which makes for some entertaining debugging sessions using Visual Studio to track down 0xC0000005 access violations (remember those?)

I've tried running the tests (and found a bug or two), but it's much more satisfying and motivating to build something useful. After much thought, I've decided that this useful something should be a functional UPnP AV / OpenHome stack consisting of a music server, music player, and control point, all written in Java. I'm aiming for "meets minimum" functionality initially, which could possibly be extended later depending on user reaction. After many hours searching for the very few music-related domain names that aren't already taken, I've settled on the name jMinim for the project (minim[al functionality] / minim==musical note) with the three components named MinimServer, MinimPlayer, and MinimControl. The web sites are up and running: see jminim.org, minimserver.com, minimplayer.com, and minimcontrol.com for what little information is currently available.

Sunday 6 March 2011

The JStreamer Beta is available

I've been working on JStreamer (including the extremely crude prototype that preceded it) for about 6 months, and at last it's available as a beta release! I'm excited about this because it's the first software offering that's truly "mine" in the sense that I designed and developed it myself and I'm also the legal owner of the code.

The other thing that I've found exciting is that JStreamer has turned out really well. Most software has inevitable compromises with some parts having functional limitations or design trade-offs, or not being as easy to use as it ideally should be. To my great surprise, this hasn't happened with JStreamer. So far I have been able to add functionality and remove limitations with clean designs and no compromises, and there have been a number of "Yes it can" moments. Of course the real test will come when users try to do things that I haven't anticipated, and we'll see how well the design holds up then!

Friday 18 February 2011

Tuscany SCA in Action

It's been far too long since my last blog entry. I'll skip the excuses (mostly because there aren't any good ones!) and get straight into the latest news.

The most significant (and very recent) piece of news is that my book Tuscany SCA in Action is now finished and published! It's taken a long time, and I think the effort was worth it. You can take a look for yourself by following the above link to the publisher's website. If you like what you see, please buy a copy!

I'm one of five co-authors, and at first I thought that this would get my name on the cover with only 20% of the usual amount of work needed to write a book. That impression didn't last for long! Because of all the cross-reviewing/coordination/discussions/revision that was involved, I think I ended up doing more like 60%, of which 20% was the actual writing and 40% was everything else. The project also look a lot longer than I expected, with various stages of external review/comment/rework, followed by the production stage of proof reading and typesetting which stretched over many months. I learned a lot from doing it, and I'm pleased with the finished result.

I'm still involved with the Apache Tuscany project, and I was very pleased to be elected as a member of the Apache Software Foundation last summer. Tuscany is continuing to attract new users and I'm happy to be able to help users and continue to contribute towards the project's success.

When I retired I decided that I wanted to do something else in a different area of technology, but I wasn't sure exactly what it would be. I've always been interested in music, and recent developments in digital music technology have attracted my attention. After I retired I bought a Linn DS digital stream music player (see this link) and I started learning about digital music and streaming technology. It's been a fascinating voyage of discovery that reminds me of the early days of PCs with many competing formats and standards, and rapid advances in the state of the art. The other aspect that interests me is that there are still many gaps in making the various products and technologies join up to do what the listener wants in a simple and convenient manner. Well, gaps are there to be filled, and for the last few months I've been working on doing just that. For more information about my current project, take a look at jstreamer.com. I'm excited about this because it brings my experience of building extensible software frameworks to the world of streaming audio, which at some level isn't vastly different from any other kind of client/server network protocol. That's probably enough on this topic for now (I could go on for pages!), so I'll save the rest for future blog entries here. I'm intending to make these entries much more regular than they have been up to now.

In case you're interested in the big topic from my last blog entry, the tree stumps are long gone and have been replaced by two raised beds for growing vegetables and fruit, together with a fairly large expanse of bare ground which seems to be much liked by the local weed population. This year I'll need to do something about that. One area is earmarked for planting a tree (of suitable size!), another area will be used for a "feature" (exact specification TBD), and we'll get a few plants to fill the remainder. I thought about planting a few vines, but there isn't quite enough space for that.

A year ago I was in New Zealand enjoying wonderful uncrowded scenery, Kiwi hospitality and friendliness, and the Southern Hemisphere summer! Those memories are still fresh and precious and I hope they will never fade. My wife Charlotte wrote a blog while we were there, and if you're interested you can see something of our travels at charlottejnash.blogspot.com.