<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Jason Brome&apos;s Weblog</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/" />
    <link rel="self" type="application/atom+xml" href="http://www.jasonbrome.com/blog/atom.xml" />
    <id>tag:www.jasonbrome.com,2007-11-19:/blog//1</id>
    <updated>2008-01-09T13:41:46Z</updated>
    <subtitle>An English Technologist in New Jersey...</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Publishing Platform 4.01</generator>

<entry>
    <title>Unable to connect to package content server</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2006/03/24/unable_to_connect_to_package_con.html" />
    <id>tag:www.jasonbrome.com,2006:/blog//1.61</id>

    <published>2006-03-24T16:15:08Z</published>
    <updated>2008-01-09T13:41:46Z</updated>

    <summary>Not the most interesting blog posting title, is it? Anyway, the reason for the aforementioned title is that I just upgraded at work to a new laptop, a Lenovo (nee IBM) Thinkpad. One of the issues I hit while setting...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>Not the most interesting blog posting title, is it?</p>

<p>Anyway, the reason for the aforementioned title is that I just upgraded at work to a new laptop, a Lenovo (nee IBM) Thinkpad.  One of the issues I hit while setting it up is that the ThinkVantage System Update utility repeatedly failed to work, reporting 'Unable to connect to package content server.'</p>

<p>After a quick install and run of <a href="http://www.ethereal.com/">Ethereal</a>, the culprit turned out to be the System Update utility, which attempts to download package information from a remote server on port 7618.  Our firewall here at work is pretty restrictive when it comes to outbound access on non-standard ports, and therefore it was blocking access to the remote package server, resulting in the error.  A tweak of the firewall rules by our local friendly firewall administrator, and I was in business.  The laptop is now happily downloading updates as I type.</p>

<p>I have yet to really get to grips with the new machine, but is definitely a big step up from my previous laptop, a Compaq Evo 1GHz, and I am looking forward to a speedier work environment!</p>]]>
        
    </content>
</entry>

<entry>
    <title>Busy Times in San Jose...</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2005/09/21/busy_times_in_san_jose.html" />
    <id>tag:www.jasonbrome.com,2005:/blog//1.60</id>

    <published>2005-09-21T23:54:14Z</published>
    <updated>2006-03-24T16:29:52Z</updated>

    <summary>The summer has flown past, vacations have gone, and now it is time to get back down to some serious business. Started a new project on Monday, and it looks like I will be spending some quality time out here...</summary>
    <author>
        <name></name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>The summer has flown past, vacations have gone, and now it is time to get back down to some serious business.  Started a new project on Monday, and it looks like I will be spending some quality time out here in San Jose - certainly a change from sunny New Jersey!  </p>

<p>Hopefully I will be able to squeeze in a <a href="http://www.mobilemonday.com/">Mobile Monday</a> or two while I am out here - it has been a few years since I was heavily involved in the mobile space, and I am interested to find out what has developed since that time.  Aside from that, with the little spare time that I will have available, I intend to catch up with a few people based over in the Valley.  If you're around the area, and want to grab a cup of coffee one weekday evening and talk technology, just drop me an email.</p>]]>
        
    </content>
</entry>

<entry>
    <title>quickSub 0.3.5 released</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2005/05/30/quicksub_035_released.html" />
    <id>tag:www.jasonbrome.com,2005:/blog//1.59</id>

    <published>2005-05-30T22:59:50Z</published>
    <updated>2006-03-24T16:30:31Z</updated>

    <summary>With the recent talk about feed subscribing, I realized that quickSub was long overdue a new release. So, at long last, quickSub 0.3.5 is now available. The most prominent change is the addition of FeedDemon to the list of newsreaders...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="quickSub" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>With the <a href="http://www.veen.com/jeff/archives/000733.html">recent</a> <a href="http://radio.weblogs.com/0001011/2005/05/26.html#a10217">talk</a> about feed subscribing, I realized that <a href="http://www.methodize.org/quicksub/">quickSub</a> was long overdue a new release.  So, at long last, quickSub 0.3.5 is now available.  The most prominent change is the addition of FeedDemon to the list of newsreaders - this has certainly been the most-requested modification since the last release.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Caller ID R.I.P.?</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2005/04/29/caller_id_rip.html" />
    <id>tag:www.jasonbrome.com,2005:/blog//1.58</id>

    <published>2005-04-29T11:39:53Z</published>
    <updated>2006-03-24T16:31:06Z</updated>

    <summary>Caller ID has been compromised. No longer do you have the assurance that the number displayed on your ringing telephone actually represents the person on the other end of the line. With the advent of so-called Caller ID spoofing services,...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>Caller ID has been compromised.  No longer do you have the assurance that the number displayed on your ringing telephone actually represents the person on the other end of the line.</p>

<p>With the advent of so-called Caller ID spoofing services, anyone with a credit card can initiate outbound calls with the Caller ID of their choice.  Aside from the fact that these services easily allow anyone to compromise the integrity of the Caller ID service, they also open up a number of critical security concerns across different voice-based systems.</p>

<p>Logging into my cellphone website account today, I noticed a security alert for the voicemail system.  My provider's voicemail system has an option to bypass the requirement to enter your PIN if you're calling from your own cellphone.  Hackers have been able to access the voicemail accounts of others through exploiting this 'feature'.  If you have a cellphone voicemail account, you really should consider enabling PIN-based authentication.</p>

<p>Think about the other types of systems today that use Caller ID for authentication.  Caller ID spoofing will have a big impact on all of these if it is the sole authentication token.  Here's another example: Recently I received a replacement debit card, and, when I made the call to enable the card, it confirmed that it had matched my telephone number to the number on file and would not require any further confirmation.  This is scary - banking institutions should seriously reconsider the authentication model used for new card enablement.  </p>

<p>I'm not completely familiar with the intricacies of the switching network (SS7 et. al.), however I do hope that some steps are taken to restore integrity to the network.  Caller ID is a useful feature, but, with the advent of spoofing services, its value has diminished.</p>]]>
        
    </content>
</entry>

<entry>
    <title>NASA&apos;s Java PathFinder</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2005/04/27/nasas_java_pathfinder.html" />
    <id>tag:www.jasonbrome.com,2005:/blog//1.57</id>

    <published>2005-04-27T23:49:24Z</published>
    <updated>2005-09-22T02:51:54Z</updated>

    <summary>Now this looks interesting: Java PathFinder (JPF) is a system to verify executable Java bytecode programs. In its basic form, it is a Java Virtual Machine (JVM) that is used as an explicit state software model checker, systematically exploring all...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Java" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>Now <a href="http://javapathfinder.sourceforge.net/">this</a> looks interesting:</p>

<blockquote>Java PathFinder (JPF) is a system to verify executable Java bytecode programs. In its basic form, it is a Java Virtual Machine (JVM) that is used as an explicit state software model checker, systematically exploring all potential execution paths of a program to find violations of properties like deadlocks or unhandled exceptions. Other than traditional debuggers, JPF reports the whole execution path that leads to a defect. JPF is especially suitable to find hard-to-test concurrency defects in multithreaded programs. </blockquote>

<p>This is NASA's first program to be actively developed and hosted on <a href="http://www.sourceforge.net/">SourceForge</a>, licensed under the '<a href="http://javapathfinder.sourceforge.net/NOSA-1.3-JPF">NASA Open Source Agreement</a>'.  </p>

<p>Something to add to the must-look-at list!</p>]]>
        
    </content>
</entry>

<entry>
    <title>Greasemonkey</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2005/04/20/greasemonkey.html" />
    <id>tag:www.jasonbrome.com,2005:/blog//1.56</id>

    <published>2005-04-21T03:20:15Z</published>
    <updated>2005-09-22T02:51:54Z</updated>

    <summary>Today I had my first experience with Greasemonkey. For those of you who have yet to come across it, Greasemonkey is a Firefox extension that opens up a whole new realm of client-side website personalization opportunities. Greasemonkey enables the execution...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>Today I had my first experience with <a href="http://greasemonkey.mozdev.org/">Greasemonkey</a>.  For those of you who have yet to come across it, Greasemonkey is a <a href="http://www.mozilla.org/products/firefox/">Firefox</a> extension that opens up a whole new realm of client-side website personalization opportunities.</p>

<p>Greasemonkey enables the execution of user-written scripts against any webpage.  These scripts can interact with the webpage, look-up external content, and literally perform any type of modification.</p>

<p>The first example I tried was Adrian Holovaty's <a href="http://www.holovaty.com/blog/archive/2005/04/19/0216">Chicago Transit Authority map</a> on Google Maps.  This script seamlessly adds a third option to Google Maps.  Now, in addition to <em>Map</em> and <em>Satellite</em> options in the top right corner, an option for <em>CTA map</em> is added.  With the map pointing to Chicago, clicking on <em>CTA map</em> replaces the existing map with the layout of the Chicago Transit tracks.  Anyone going to build one for the NYC MTA?</p>

<p>There's already a long list of <a href="http://dunck.us/collab/GreaseMonkeyUserScripts">canned scripts</a> available from the Greasemonkey script repository.  Another interesting script is Jon Udell's <a href="http://weblog.infoworld.com/udell/gems/LibraryLookup.user.js">Library Lookup</a>.  He <a href="http://weblog.infoworld.com/udell/2005/04/04.html#a1207">modified his existing bookmarklet</a> to rewrite Amazon book pages.  Now, while browsing books at Amazon, the Greasemonkey script goes out in the background to your library's online database and checks for availability.  Awesome integration!</p>

<p>Now, it makes me think that I should get around to writing a Greasemonkey quickSub script.  This would rewrite any links to RSS/Atom feeds so that they included the appropriate URL to enable subscription against a user's desktop or web-based aggregator.  Any interest?</p>]]>
        
    </content>
</entry>

<entry>
    <title>Going SWIMming...</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2005/04/07/going_swimming.html" />
    <id>tag:www.jasonbrome.com,2005:/blog//1.55</id>

    <published>2005-04-07T21:14:49Z</published>
    <updated>2005-09-22T02:51:54Z</updated>

    <summary>Congratulations to Daniel and the team at under[de]construction for the v1.0 release of SWIM. SWIM provides a very innovative approach to Content Management, without the complexity of traditional solutions. You can read more about SWIM in the post over on...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>Congratulations to <a href="http://www.danielsjourney.com/">Daniel</a> and the team at <a href="http://www.underde.com/">under[de]construction</a> for the v1.0 release of <a href="http://underde.com/swim/">SWIM</a>.  SWIM provides a very innovative approach to Content Management, without the complexity of traditional solutions.  You can read more about SWIM in the <a href="http://www.danielsjourney.com/blog/index.php?file=data/2005_04.xml&id=07152444">post over on Daniel's blog</a>.</p>]]>
        
    </content>
</entry>

<entry>
    <title>An Open Automotive Applications Platform?</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2005/01/09/an_open_automotive_applications_.html" />
    <id>tag:www.jasonbrome.com,2005:/blog//1.53</id>

    <published>2005-01-10T00:21:12Z</published>
    <updated>2005-09-22T02:51:54Z</updated>

    <summary>Following on from yesterday&apos;s car radio podcasting request, GadgetGuy brought me down to earth with what we could realistically expect in the near future. While I do not expect car stereo manufacturers to grok podcasting, it would be nice if...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Content Syndication" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>Following on from yesterday's car radio podcasting request, GadgetGuy <a href="http://www.gadgetguy.de/index.php/2005/01/09/podcasting_an_aggregator_in_your_car">brought me down to earth</a> with what we could realistically expect in the near future.</p>

<p>While I do not expect car stereo manufacturers to grok podcasting, it would be nice if they offered me an open applications platform on which I could deploy a podcasting aggregator.</p>

<p>In other words, how about we see the same transition that happened in the mobile phone industry?  Nowadays I can go into any wireless phone store and pick up a cellphone that has some form of OS on which I can deploy my own software or (more realistically) deploy software from a software vendor.  While I do not expect to see Motorola or Nokia offering a podcasting application for their cellphones in the near future, I could certainly envision some opportunities for the third-party software market.</p>

<p>Give me a car stereo with a built-in hard drive, some form of connectivity (Bluetooth would be better than nothing, WiFI would integrate nicely with the home networking environment and hotspots), and an open platform on which I can deploy my own applications.</p>

<p>This sounds like a prime market for Microsoft.  A cursory search turns up Microsoft's <a href="http://www.microsoft.com/automotive/">Automotive group</a>, with their <a href="http://www.microsoft.com/automotive/windowsautomotive/default.mspx">Windows Automotive</a> platform.  From what I can garner from the site, this is based upon Windows CE.  According to the site, its goal is:</p>

<blockquote>"... to deliver adaptable, scalable platforms for connected devices that will enable and enhance applications and services offering flexible solutions for customer needs in the automotive industry."</blockquote>

<p>Sounds great.  They also say:</p>

<blockquote>"This technology will enable the industry to give drivers and passengers seamless access to a wide range of Web services as well as smooth functionality among all Windows powered devices."</blockquote>

<p>Wonderful.  With Microsoft's other relevant investments in the automotive space (<a href="http://www.microsoft.com/streets/default.mspx">Streets and Trips</a>, for example), it looks like a great space in which they could capitalize.  A look at the partners list shows some very interesting developments, like the <a href="http://www.nex-tek.com/ce/">Carman i from Nextech</a>.   A question to <a href="http://scoble.weblogs.com/">Mr. Scoble</a> - when am I going to be able to go to my local car electronics/big box store and get one of these things installed?  And how open is this platform?</p>

<p>A quick aside - with the recent announcements about <a href="http://www.tivo.com/4.9.19.asp">Tivo-to-Go</a>, wouldn't it be a great app to be able to transfer Tivo-ed programs to the Windows media-enabled entertainment system in my car? (For the benefit of the people in the rear seats, of course!)</p>

<p>Aside from Microsoft, I'm curious about other vendors that are making advances in this space.  A few years back a company called <a href="http://www.empeg.com/">empeg</a> created a Linux-based in-dash mp3 player.  It had an integrated hard drive, and a pretty decent UI.  The technology (and team) got acquired by SONICblue, who eventually discontinued the car player division.  The team behind that product moved onto other efforts.  This technology would have been prime for evolving into a next-gen connected in-car system.  Other companies, like <a href="http://www.phatnoise.com/">PhatNoise</a>, have also made advances in terms of offering HD-based digital media capabilities in the car; it would be interesting to see their product roadmap.</p>

<p>Anyway, I'm going to keep on dreaming about what I'd really like to see in my car.  Hopefully in the not-too-distance future I'll be able to buy a product that takes the first steps towards it.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Podcasting: I want an aggregator in my Car Radio</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2005/01/08/podcasting_i_want_an_aggregator_.html" />
    <id>tag:www.jasonbrome.com,2005:/blog//1.52</id>

    <published>2005-01-08T15:11:58Z</published>
    <updated>2005-09-22T02:51:54Z</updated>

    <summary>With all the recent talk (and hype) about podcasting, I thought I&apos;d chip in with my two cents. For me, the killer podcasting application would definitely reside within the automotive environment. This is really the only time that I have...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Content Syndication" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>With all the recent talk (and hype) about podcasting, I thought I'd chip in with my two cents.</p>

<p>For me, the killer podcasting application would definitely reside within the automotive environment.  This is really the only time that I have to consume such audio content, and, like Russ Beattie mentioned in a <a href="http://www.russellbeattie.com/notebook/1008223.html">recent post</a>, I think it would make a significant difference to my daily commute.</p>

<p>Now, here's my problem: I want listening to podcasts to be a seamless experience.  Just like I can turn on my car radio today and listen to an AM or FM station, or play a CD, I want to be able to turn on my radio and hit a button and select the podcast I want to listen to.  Or, have a predefined daily playlist of podcasts for my to-work and from-work commutes.</p>

<p>Essentially, I want an aggregator in my car radio.</p>

<p>I've thought about this for a while, and here's my imaginary specification sheet for this 'podcast-enabled' car entertainment system:</p>

<p><strong>Built-in storage - multi Gigabyte hard drive</strong></p>

<p>A hard-drive within the system would be used to store podcast content, as well as other media.</p>

<p><strong>Wi-fi enabled (preferably 802.11g)</strong></p>

<p>When your car is parked at home, or at an available hotspot, the system will be able to commence downloading of new content (or partially downloaded existing content) without requiring any user interaction.</p>

<p><strong>Web-based interface</strong></p>

<p>Aside from the usual in-car User Interfaces, the system will feature an embedded web server.  When you car is parked at home, you'll be able to connect to this interface from any browser in your house, and use it to managed playlists, perform an OPML import of podcast feeds, and manage other configuration.</p>

<p>An iTunes-like application could also be provided to support the synchronization of non-aggregated audio and visual contents, such as your personal MP3 library.</p>

<p><strong>Supports both audio and video content</strong></p>

<p>In addition to audio content, video content (MPEG2, MPEG4, Quicktime etc.) could be supported as well.  This would especially be for the benefit of those in the back of the car, who could watch new content on the in-car video system.  For example, new cartoons could be downloaded daily to entertain children in the back of the car.</p>

<p><strong>Intelligent audio processing</strong></p>

<p>In addition to standard playback of podcasts, I would like to be able to configure some intelligent pre-processing.  This woud include the ability to time-stretch, speeding up (or slowing down) the podcast without making the presenter sound like a chipmunk, as well as some graceful empty-space management, removing those pregnant pauses.  Every podcaster has a different presentation style; I would like to have more control over how I listen to them.</p>

<p><strong>Existing capabilities of a car radio (FM/AM receiver, CD/DVD player)</strong></p>

<p>Along with the rest of the capabilities, there's no reason why it shouldn't still let me listen to standard terrestrial radio.</p>

<p><br />
So, when can we expect something like this to be brought to market?  Soon, I hope.  With the advent of technologies like Via's <a href="http://www.viaembedded.com/product/index.jsp">Mini-ITX</a> and <a href="http://www.viaembedded.com/product/epia_N_spec.jsp?motherboardId=221">Nano-ITX</a>, a complete PC on a card 12cm by 12cm, it is quite easy to envision a home-grown project to create this next-generation in-car entertainment system.  </p>

<p>Technologies like this will pose an alternative, and a challenge, to the satellite radio industry.  At some point in the future I could easily envision a wide range of content providers offering free, paid, and sponsored content services.  Right now I could sync podcasts not only from a wide range of individuals, but from some of the world's largest broadcasters.  And, for me, this is more than enough for my daily commute!<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Claiming my feed at Feedster</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2004/12/06/claiming_my_feed_at_feedster.html" />
    <id>tag:www.jasonbrome.com,2004:/blog//1.51</id>

    <published>2004-12-06T17:11:26Z</published>
    <updated>2005-09-22T02:51:54Z</updated>

    <summary>I just noticed that Feedster are offering some statistics to those who register their feeds. So, here goes... No Need to Click Here - I&apos;m just claiming my feed at Feedster...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Content Syndication" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>I just noticed that Feedster are offering some statistics to those who register their feeds.  So, here goes...</p>

<p><P align='center'><A href='http://feedster.com/claimfeed.php?key=5a982ad1914900f809da4d9d2cf0efb9'>No Need to Click Here - I'm just claiming my feed at Feedster</A></P><br />
               </p>]]>
        
    </content>
</entry>

<entry>
    <title>Apache Derby on Mac OS X</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2004/12/05/apache_derby_on_mac_os_x.html" />
    <id>tag:www.jasonbrome.com,2004:/blog//1.50</id>

    <published>2004-12-05T22:15:46Z</published>
    <updated>2005-09-22T02:51:54Z</updated>

    <summary>Earlier this week I got an email from John Tangney, a user of nntp//rss, reporting a problem running the latest release on Mac OS X. After some investigation, it materializes that the problem is actually related to Apache Derby, the...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Java" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>Earlier this week I got an email from <a href="http://www.jdtangney.com/">John Tangney</a>, a user of <a href="http://www.methodize.org/nntprss/">nntp//rss</a>, reporting a problem running the latest release on Mac OS X.  After some investigation, it materializes that the problem is actually related to <a href="http://incubator.apache.org/derby/">Apache Derby</a>, the new embedded database within nntp//rss as of v0.5-beta-1.</p>

<p>Derby was failing on the first startup, with the following exception written to derby.log:</p>

<p><code><br />
java.io.FileNotFoundException: /usr/local/nntprss-0.5-beta-1/nntprssdb/log/log1.dat (File exists)<br />
	at java.io.RandomAccessFile.open(Native Method)<br />
	at java.io.RandomAccessFile.<init>(RandomAccessFile.java:204)<br />
	at org.apache.derby.impl.io.DirRandomAccessFile.<init>(DirRandomAccessFile.java)<br />
	at org.apache.derby.impl.io.DirRandomAccessFile4.<init>(DirRandomAccessFile4.java)<br />
...<br />
</code></p>

<p>A bit of prodding around in the Derby code showed that it was trying to initialize its subclass of <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/io/RandomAccessFile.html">java.io.RandomAccessFile</a> with the <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/io/RandomAccessFile.html#mode">sync mode 'rws'</a>.  I had not experienced any difficulties on Windows or Linux with Derby, so I started up a copy on Mac OS X 10.3.6, and, low and behold, got the same exception.  A bit of judicious Googling finally turned up this <a href="http://www-106.ibm.com/developerworks/forums/dw_thread.jsp?forum=370&thread=65228&cat=19">IBM developerWorks forum post</a>.  Looking in Apache JIRA, I found this <a href="http://nagoya.apache.org/jira/browse/DERBY-1">report (and extensive conversation)</a> related to the bug, which basically identifies it as a Mac JVM issue.  Unfortunately, to date, there has been no resolution from Apple.</p>

<p>Fortunately Derby has a property, derby.storage.fileSyncTransactionLog, which can be set to true to workaround this issue.  For example, nntp//rss on Mac OS X should be started with the following command:</p>

<p><code>java -Dderby.storage.fileSyncTransactionLog=true -jar nntprss-start.jar</code></p>

<p>If you're developing a Mac OS X application using Derby, you can also set this property within your code, before initializing the Derby driver.  The <a href="http://incubator.apache.org/derby/manuals/tuning/perf14.html">System-Wide Properties</a> section of the Derby documentation provides more details.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Amazon goes Queuing</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2004/11/04/amazon_goes_queuing.html" />
    <id>tag:www.jasonbrome.com,2004:/blog//1.49</id>

    <published>2004-11-04T22:55:03Z</published>
    <updated>2005-09-22T02:51:54Z</updated>

    <summary>A colleague of mine passed on a surprise announcement from Amazon: They&apos;ve just launched the v1.0 beta of their Simple Queue Service. It is an online queuing service with some very simple SOAP and REST-style APIs for message queuing. For...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Web Services" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>A colleague of mine passed on a surprise announcement from Amazon: They've just launched the v1.0 beta of their <a href="http://www.amazon.com/gp/aws/sdk/102-0146935-4245750?s=AWSSimpleQueueService&v=1%2d0">Simple Queue Service</a>.   It is an online queuing service with some very simple SOAP <b>and</b> REST-style APIs for message queuing.</p>

<p>For the beta, they've limited message size to 4KB, and a maximum of 4000 messages across all queues for a single subscription ID.  According to the <a href="http://www.amazon.com/gp/browse.html/ref=sc_fe_r_0/102-0146935-4245750?%5Fencoding=UTF8&node=13584171&no=13549751&me=A36L942TSJ2AJA">FAQ</a>, messages are kept for up to 30 days.</p>

<p>The API is quite simple - methods for creating, updating, deleting and querying queues, as well as three methods for queue interaction: Enqueue, Read, and Dequeue.</p>

<p>The messaging read process is somewhat intriguing.  A client application issues a 'read' request against the queue.  Pending message(s) are returned (you can request more than one message in a read request) in response to the request, and a lock is placed on those messages.  This means that successive read requests within the lock period will not get the same series of messages.  The client application then explicitly dequeues the messages by issuing a 'dequeue' request against the queue, supplying the QueueEntryId for each message to remove.</p>

<p>One interesting caveat is mentioned in the documentation for the <a href="http://www.amazon.com/gp/aws/sdk/102-0146935-4245750?s=AWSSimpleQueueService&v=1%2d0">Read operation</a>:</p>

<blockquote>
A message may be returned by the Read operation even though it has already been dequeued, and concurrent Read calls may return the same message to multiple readers. This behavior is a result of prioritizing reliable data storage (even in the face of hardware failures), and we expect such events to occur very infrequently.
</blockquote>

<p>It seems that SQS is optimized for reliability, but not for once-and-only-once delivery.  Applications utilizing SQS would need to ensure that they handle duplicate scenarios.  The documentation basically implies that the appropriate solution is to ensure that messages are idempotent; retrieving the same message twice should have the same effect as receiving it once.</p>

<p>Currently security is pretty lax.  One only needs to know the Subscriber ID to be able to retrieve a list of queues, and from there it would be possible to retrieve messages from those queues.  I'm sure that this is something that Amazon would address as they further enhance the service.   A simple password-based mechanism would take the security up a level, and, in the future, certificate-based mechanisms could be employed.</p>

<p>With this foray into more 'Enterprise Level' services, it does make me wonder where Amazon is headed.  They've certainly mastered the eCommerce world, and have provided some interesting Web Services focused on that domain.  Now it seems that they're venturing out into some more horizontally focused services, and exposing some of their platform-level capabilities.  I wonder what's coming next...</p>]]>
        
    </content>
</entry>

<entry>
    <title>Web Services Version Mania</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2004/10/31/web_services_version_mania.html" />
    <id>tag:www.jasonbrome.com,2004:/blog//1.48</id>

    <published>2004-10-31T16:18:48Z</published>
    <updated>2005-09-22T02:51:54Z</updated>

    <summary>This past week I attended Oracle&apos;s Developer Days in New Jersey. The sessions basically covered Oracle&apos;s pitch on SOA - although, unsurprisingly, after an initial high level SOA level-set, it seemed to focus more on the presentation, business and persistence...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Web Services" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>This past week I attended <a href="http://www.oracle.com/webapps/events/EventsDetail.jsp?p_eventId=34034&src=3321580&src=3321580&Act=66">Oracle's Developer Days in New Jersey</a>.  The sessions basically covered Oracle's pitch on SOA - although, unsurprisingly, after an initial high level SOA level-set, it seemed to focus more on the presentation, business and persistence level capabilities of their 10g Application Server.</p>

<p>However, at the end of the day, Tyler Jewell from <a href="http://www.middleware-company.com/">The Middleware Company</a> gave a brief presentation on their SOA/Web Services perspectives.  On one slide he had a phrase that has been in the back of my mind for a number of months - Web Services "Version Mania."</p>

<p>The problem I see is in terms of the evolutionary nature of Web Services.  Web Services get defined and published.  Consumers begin to use those Web Services.  Web Services evolve, add functionality, expose enhanced interfaces.  As I think about this topic, the following questions arise:</p>

<ul>
<li>How do we manage versioning of Web Services interfaces?  I may have a number of consumers of MyWebService v1.0.  I now have MyWebService v2.0 - how can I deploy this Web Services and transition clients?
<li>How do we manage graceful deprecation of previous versions?  I want some capability to inform (directly or through a registry) Web Service clients of the availability of an enhanced interface.  I do not want to have to support x previous versions of the same service.
<li>What tools exist today that provide me the ability to pro-actively push update information to known consumers of a Web Service? 
</ul>

<p>There have been a <a href="http://www.infravio.com/blog.php?authid=1&blogRequested=6">number</a> <a href="http://radovanjanecek.net/blog/archives/000156.html">of</a> <a href="http://schneider.blogspot.com/archives/2004_10_24_schneider_archive.html#109918171979440121">discussions</a> recently regarding the importance of a registry within any Web Services initiative.  Being able to capture, manipulate, query and disseminate Web Services meta-data is a very powerful capability.  Versioning and Deprecation information, as well as the functionality to support its management (including change notification), sounds like a good fit as a capability of the registry.</p>

<p>The <a href="http://uddi.org/pubs/uddi_v3_features.htm#_Toc10457183">subscription API</a> within UDDI v3 looks like a good potential for the notification channel.  Changes, updates or deprecation of Web Services could be dispatched to all known subscribers for the particular Web Service (or group of Web Services).  </p>

<p>It's early days for my thought process on this topic, and I'm in the process of doing some more research.  If anyone has any pointers to specific approaches to versioning and deprecation, or vendors doing a good job attacking this problem, please leave a comment below.  I'm especially interested in any standards-based approaches to addressing aspects of this challenge.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Web Services Reliable Messaging - An Update</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2004/10/30/web_services_reliable_messaging_.html" />
    <id>tag:www.jasonbrome.com,2004:/blog//1.46</id>

    <published>2004-10-30T18:50:00Z</published>
    <updated>2005-09-22T02:51:54Z</updated>

    <summary>Reliable Messaging holds a special interest for me, having played a significant part in my career (in the manifestation of various technologies such MQSeries, MSMQ, and, most recently, the products of Envoy) over the past ten years. Therefore it is...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Web Services" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>Reliable Messaging holds a special interest for me, having played a significant part in my career (in the manifestation of various technologies such <a href="http://www.software.ibm.com/ts/mqseries/">MQSeries</a>, <a href="http://www.microsoft.com/windows2000/technologies/communications/msmq/default.asp">MSMQ</a>, and, most recently, the products of <a href="http://www.envoytech.com/">Envoy</a>) over the past ten years.  Therefore it is with great interest that I have been monitoring the progression of the two emergent Web Services Reliable Messaging standards - WS-ReliableMessaging and WS-Reliability.</p>

<p>Just over a year ago I posted an <a href="http://www.jasonbrome.com/blog/archives/2003/09/17/web_services_reliable_messaging_.html">entry to this blog</a> questioning whether there would be convergence across the two aforementioned specifications.  Therefore I thought it was about time to check up on their status, and see whether there had been any significant activity.</p>

<p>Well, it seems that both specifications are still forging ahead, with support from different vendors and, in the case of WS-Reliability, <a href="http://www.oasis-open.org/">Oasis</a>, a standards organization.  The vendors behind WS-ReliableMessaging have held a number of vendor workshops, and WS-Reliability has reached a formal v1.0 release within Oasis.  Below, I've summarized the status of both specifications.  </p>

<p>The development momentum behind IBM, Microsoft and BEA suggests that WS-ReliableMessaging will definitely capture a significant marketshare.  The underlying concept (reliable messaging) behind both these specifications is common, and it would not surprise me to see some of the proponents of WS-Reliability supporting both variants within their product offerings.  Certainly with the convergence on common specifications within other <a href="http://www.jasonbrome.com/blog/archives/2004/09/18/aspectoriented_networking.html">aspects</a> of the WS-* stack, it would be a shame to see disconnected islands of Web Services reliability support across different vendor implementations - let's hope that we do not have to resort to WS-Reliability <-> WS-ReliableMessaging bridges!</p>

<p>I'll probably check back in early next year to see what has developed.  With the emergence of new server products from BEA (Quicksilver) and IBM (Jetstream), as well as early offering of Microsoft's Indigo, it will be interesting to see how this area plays out.</p>

<p><i>Note: The information below is by no means complete.  This is an evolving posting - if there are any inaccuracies or additions, please leave a comment and I will update the content.</i></p>

<p><b>WS-ReliableMessaging</b></p>

<p>Latest Spec: <a href="ftp://www6.software.ibm.com/software/developer/library/ws-reliablemessaging200403.pdf">March 2004</a></p>

<p>Editors: <a href="http://www.bea.com/">BEA</a>, <a href="http://www.ibm.com/">IBM</a>, <a href="http://www.microsoft.com/">Microsoft</a>, <a href="http://www.tibco.com/">Tibco</a></p>

<p>Current Implementations:</p>

<p><a href="http://ws.apache.org/ws-fx/sandesha/">Apache Sandesha (WS-RM on top of Apache Axis)</a><br />
<a href="http://www.alphaworks.ibm.com/tech/ettk">IBM Emerging Technologies Toolkit</a><br />
Microsoft Enterprise Solutions Framework (early implementation of WS-RM) - see <a href="http://blogs.msdn.com/jevdemon/archive/2004/08/02/205393.aspx">blog posting</a><br />
<a href="http://www.systinet.com/products/wasp_jserver/features">Systinet Server for Java</a></p>

<p><b>WS-Reliability</b></p>

<p>Latest Spec: <a href="http://www.oasis-open.org/committees/download.php/9330/WS-Reliability-CD1.086.zip">1.1 (Committee Draft 1.086, 24 August 2004)</a></p>

<p>Editors: <a href="http://www.fujitsu.com">Fujitsu</a>, <a href="http://www.novell.com/">Novell</a>, <a href="http://www.oracle.com/">Oracle</a>, <a href="http://www.sun.com/">Sun</a></p>

<p>Committee Members:</p>

<p><a href="http://www.arjuna.com/">Arjuna Technologies</a>, <a href="http://www.boozallen.com">Booz Allen Hamilton</a>, <a href="http://www.choreology.com/">Choreology</a>, <a href="http://www.cyclonecommerce.com/">Cyclone Commerce</a>, <a href="http://www.francetelecom.com/">France Telecom</a>, <a href="http://www.fujitsu.com/">Fujitsu</a>, <a href="http://www.hp.com/">Hewlett-Packard</a>, <a href="http://www.hitachi.co.jp/">Hitachi</a>, <a href="http://www.mitre.org/">Mitre Corporation</a>, <a href="http://www.nec.com/">NEC</a>, <a href="http://www.nokia.com/">Nokia</a>, <a href="http://www.novell.com/">Novell</a>, <a href="http://www.oracle.com/">Oracle</a>, <a href="http://www.sap.com/">SAP</a>, <a href="http://www.seebeyond.com/">SeeBeyond</a>, <a href="http://www.sun.com/">Sun</a>, <a href="http://www.hku.hk/">University of Hong Kong</a>, <a href="http://www.webmethods.com/">webMethods</a>, <a href="http://www.wrq.com/">WRQ</a></p>

<p>Current Implementations:</p>

<p><a href="http://www.fujitsu.com/global/services/solutions/xml/activity/XML_wsr.html">Fujitsu / Hitachi / NEC RM4GS</a> (Reliable Messaging for Grid Services)<br />
<a href="http://www.oracle.com/appserver/index.html">Oracle Application Server 10g</a> (presently developer editions only, I believe)</p>]]>
        
    </content>
</entry>

<entry>
    <title>nntp//rss v0.5-beta-1</title>
    <link rel="alternate" type="text/html" href="http://www.jasonbrome.com/blog/archives/2004/10/25/nntprss_v05beta1.html" />
    <id>tag:www.jasonbrome.com,2004:/blog//1.47</id>

    <published>2004-10-26T03:40:33Z</published>
    <updated>2005-09-22T02:51:54Z</updated>

    <summary>... has just been released. Lots of features that have been lurking in CVS for over a year (Atom parsing, OPML import/export, use of Jakarta Commons HTTP Client), as well as some newer features (Categories, Apache Derby embedded database.) Still...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="nntp//rss" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.jasonbrome.com/blog/">
        <![CDATA[<p>... has just been released.  Lots of features that have been lurking in CVS for over a year (Atom parsing, OPML import/export, use of Jakarta Commons HTTP Client), as well as some newer features (Categories, Apache Derby embedded database.)  Still working towards a final v0.5 release, but this version is definitely worth a look.</p>

<p><a href="http://www.methodize.org/nntprss/">nntp//rss Project Page</a></p>]]>
        
    </content>
</entry>

</feed>
