January 1, 2006
@ 07:57 PM

Reading the blogs of Tim Berners-Lee and Jon Udell this morning, I was struck by how clear it is that the Javascript platform within the browser is somewhat immature and incomplete.

In his post Links on the Semantic Web Tim Berners-Lee writes

To play with semantic web links, I made a toy semantic web browser, Tabulator. Toy, because it is hacked up in Javascript
....
Here is the current snag, though. Firefox security does not allow a script from a given domain to access data from any other domain, unless the scripts are signed, or made into an extension. And looking for script signing tools (for OS X?) led me to dead ends. So if anyone knows how to do that, let me know. Untill I find a fix for that, the power of following links -- which is that they can potentially go anywhere -- is alas not evident!

In his post Predictions for 2006 Jon Udell writes

June 15: Browser local storage

An Alchemy application, though, always works with a genuine local data model that it stores as sets of XML fragments and navigates in a relational style. Bosworth's hunch is that a Web-style thin client, driven by a rich data model intelligently synchronized with the services cloud, could do most of what we really need -- both offline and online.
That's from a column entitled Thin client, rich data. The next turn of the AJAX crank has to involve an intelligent local data store. It's been on my wishlist forever, but Mozilla CTO Brendan Eich told me to expect results in 2006, so I do.

Almost everyone who has attempted building an AJAX application has hit the issues mentioned by Jon Udell and Tim Berners-Lee in their posts. Everytime I mess around with AJAX I can't help thinking how much more interesting the applications could be if I could offload the data aggregation/integration to the client browser instead of doing it on the server. I've thought the same about offline storage, why can't I store richer information than just cookie data on the local client in a cross-platform manner?

It's hard to get wrapped up in the AJAX hype when such fundamental holes exist in the functionality provided by modern web browsers. I hope Jon Udell is right and the Mozilla folks plan to fix some of the more fundamental problems with building AJAX applications on the Web today. 


 

Categories: Web Development

Kurt Cagle has a post entitled Open Standards and Organic Foods which begins

A question was posed to me recently concerning exactly what I meant when I talked about open standards, and how they differed from open source. In reviewing some of my previous postings, one of the things that I realized was that while I had offered up a number of definitions in passing, there really wasn't any single, stock answer that I or others had seen for what exactly open standards mean. Moreover, a lot of people tend to look at open standards with a somewhat jaundiced eye, as if it was simply one more marketing label in a field that is already way oversaturated with marketing buzzwords - they didn't understand why open standards were important, or they didn't understand the distinction between open source and open standards.

The software industry is now full of buzzwords and buzz phrases that are so ambiguous that if you ask five people what they mean you are likely to get ten different definitions. The problem this causes is that people often talk past each other even if they use the same words or even worse miscommunication occurs due to basic assumptions about the conversation which are incorrect. Examples of such ambiguous buzz phrases include; web 2.0, service oriented architecture and standards.

Some people I've talked to about this are surprised that I add 'standards' to this list. However the definition of what constitutes a 'standard' is in the eye of the beholder. About a year and a half ago, I wrote a blog post entitled Are Standards in the Software Industry a Chimera? which stated 

The word "standard' when it comes to software and computer technology is usually meaningless. Is something standard if it produced by a standards body but has no conformance tests (e.g. SQL)? What if it has conformance testing requirements but is owned by a single entity (e.g. Java)? What if it is just widely supported with no formal body behind it (e.g. RSS)?

For every one of the technologies mentioned above (RSS, Java, and SQL) you'll find people who will argue that they are standards and people who will argue that they aren't. SQL is produced by a standards body and has a number of formal specifications but since there is no conformance requirements most database vendors have embraced and extended it. It is difficult to write non-trivial SQL queries that will work across Microsoft's SQL Server, MySQL, Oracle's databases and IBM's DB2. The Java programming language and platform is supported by a number of vendors and has rigid conformance tests which make the statement "write once, run anywhere" true for the most part, however it is a proprietary technology primarily controlled by Sun Microsystems. Content syndication using RSS 0.9x/RSS 2.0 feeds is the most popular web service on the planet but the specifications were primarily authored and controlled by a single individual and have no formal standards body or corporation backing them till this day. In each case, the technology is 'standard' enough for there to be thriving markets around them with multiple vendors providing customers with valuable services.

From a customer perspective, standards are a means to an end and in this case the goal of standards is to prevent vendor lock-in. As long as users can choose between multiple RSS readers or developers can choose between multiple Java implementations, there is enough standardization for them. Where things become contentious is that there are multiple ways to get to the same solution (lack of lock-in).

"Open standards" are even more ambiguous since [as an industry] we don't even have a clear idea of what constitutes a standard. I read through Kurt Cagle's post and he never actually ends up defining "Open Standard" beyond providing analogies and rationales for why he believes in them. An interesting statement that Kurt makes in his post is the following

I suspect that in many ways the open standards movement is, at its core, a reaction to the rather virulent degenerate capitalism that exists today, in which a person can profit far out of proportion to the amount of work that they do, usually at the expense of many others who lose disproportionately to their work load.

The notion of 'profitting in proportion to your work' is pretty bogus and foreign to capitalism. Capitalism is all about the value of your work to others not how much work you put in. A minor league baseball player doesn't work an order of magnitude less than a major league baseball player yet he makes that much less. A multiplatinum recording artist doesn't work an order of magnitude harder than local bands trying to get big but makes that much more. It may not sound fair but that's capitalism. In recent centuries humans have experimented with other socio-economic movements that are more 'fair' but so far capitalism is what has stuck. </digression>

Anyway, my point is that buzz phrases like "standards", "service oriented architecture" and "web 2.0" have such diluted and ambiguous definitions to be effectively meaningless in technical discourse. People who've been in the industry for a while eventually learn to filter out these phrases [and often the people speaking them as well] when engaged in technical discourse. If you are a technical person you probably should be more explicit about what you mean by using phrases such as "freely implementable and patent unencumbered", "SOAP-based web services" and "AJAX powered website" in place of the aforementioned buzz phrases. Oh, and if they don't match up to what you mean when you use those statements then that just proves my point about the ambiguity of these buzz phrases.


 

Categories: Technology

I've been surprised by how often movies with similar themes end up being released at roughly the same time by Hollywood studios. Since it takes several months to shoot a movie this means that somewhere along the line some Hollywood exec hears about a rival studio producing a movie and decides to produce a movie with a similar theme. Some examples that come to mind are

I'm sure there are dozens of examples like this from across the years. What I wonder is whether I'm right that Hollywood execs just have a "follow the leader" mentality and decide that if a competitor is shooting a disaster movie for summer of next year that sounds like a hit then they need to shoot one as well. Or is there some more sophisticated reasoning at work?


 

Categories: Ramblings

December 27, 2005
@ 07:15 PM

About a month ago we released the first cut of the Nightcrawler edition of RSS Bandit and promised that there'd be a bug fix release within a month. So exactly 30 days and about 100,000 downloads later, we're shipping the bug fix version of the Nightcrawler release.

Download the installer from here. Differences between v1.3.0.38 and v1.3.0.42 below.

Translations

  • This release is available in the following languages; German, English, Brazilian Portuguese, Traditional Chinese, Polish, Serbian, Russian, Japanese, Italian, Spanish, Bulgarian, and Turkish.

Installer

  • The application can now be installed on computers that only have v2.0 of the .NET Framework available.

  • A mini-application for editing the keyboard shortcuts used by the RSS Bandit has now been added. To locate the application, look in the RSS Bandit application folder which is usually "C:\Program Files\RssBandit" for the application named ShortcutsEditor.exe

Feeds

  • Fixed issue where the subscription wizard picks the first feed found on a web page in auto-discovery mode instead of displaying the list of feeds found so users can choose which feed to add to their subscriptions.

  • Feed autodiscovery now uses the Firefox icon () which will also be used by IE 7, Outlook 12 and FeedDemon for indicating when feeds have been found on a web page within RSS Bandit.

  • The '+' that indicates that inline comments are available for a post now controlled by the Tools->Options->Display->Display Related Items as discussion threads checkbox. Note that this feature is now off by default.

  • Fixed issue that feed validation/autodiscovery/search in subscription wizard could not be cancelled

  • Fixed problems with processing titles in Atom feeds containing markup characters. We now pass all of Phil Ringnalda's Atom title test cases. .

  • Fixed issue where the title of first post in the feed is used as the feed title in some RSS 1.0 feeds..

  • Fixed issue where some comments aren't shown inline for some feeds that support <wfw:commentRss>

  • Fixed issue where the blog post is repeated as the first comment in some feeds that support <wfw:commentRss>.

Newsgroups

  • Added ability to create new posts in a newsgroup.
  • Subscribing to a newsgroup no longer asks for username and password per subscription since this information is specified when the news server was first added.

  • Subscribing to multiple newsgroups at once now supported.

  • Fixed bug where subscribing to newsgroups via Tools->Newsgroups results in 'Input string was not in a correct format' error on attempting to download posts from the newsgroup.

  • Fixed issue where downloading messages from newsgroups times out. This was fixed by setting the maximum number of items to download to 1000.

  • Fixed issue where subscribing to password protected newsgroups results in "Credentials property not an instance of NetworkCredential" error.

Synchronization with NewsGator Online

  • Fixed issue where when downloading feedlist from NewsgatorOnline the following error occurs; "Feedlist download failed with error: Object reference not set to an instance of an object".

  • Fixed issue that downloading feedlists from Newsgator Online never stops


 

Categories: RSS Bandit

December 27, 2005
@ 05:40 PM

Niall Kennedy has a blog post entitled Exclusive: Google to offer feed API where he reveals

Google plans to offer a feed reader API to allow third-party developers to build new views of feed data on top of Google's backend. The new APIs will include synchronization, feed-level and item-level tagging, per-item read and unread status, as well as rich media enclosure and metadata handling. Google Reader PM Jason Shellen and engineer Chris Wetherell both confirmed Google's plans after I posted my reverse-engineering analysis of the Google Reader backend.

The new APIs will allow aggregator developers to build new views and interactions on top of Google's data. Google currently has at least two additional Google Reader views running on current development builds.

Google may offer public access to the feed API as early as next month. Shellen said the team wants to nail a few more bugs before publicly making the service available to the world.
...
Google's new offering is direct competition to NewsGator's synchronization APIs but are easier to code against (no SOAP required). Google currently does not have the same reach across devices as NewsGator but an easy-to-use API from the guys who brought you the Blogger API and "Blog This!" might really shake up the feed aggregator ecosystem.

As someone who's been thinking about synchronization between RSS readers for a few years I definitely see this as a welcome development. The Bloglines sync API is too limited in its functionality to be useful while the NewsGator API is both complex and designed with too many assumptions to be widely usable. However, unlike Niall, I blame the complexity of the NewsGator API on the data model and expected data flow than on whether it uses SOAP versus Plain Old XML (POX) as the wire format.

Once the Google Reader API ships, I'll definitely investigate the feasibility of adding support for it to the Jubilee release of RSS Bandit.


 

December 22, 2005
@ 08:05 AM

Finding myself with a few hours to kill this evening, I decided to update my Seattle Movie Finder mashup which provides information on show times for movies currently playing in the Seattle area. The update was to use the new map control that is being used by Windows Live Local instead of the old Virtual Earth map control.

So far there isn't a lot of accurate information out there for working with the new control. The best guide I found was the article Creating Your First Virtual Earth v2 Page, almost every other article or reference document seems to be outdated. As usual Chandu Thota was a fountain of wisdom when it came to getting info about the API as was Chris Pendleton.

Note: This version works in Internet Explorer. I've pinged the Windows Live Local folks to complain about Firefox support so I expect it should be forthcoming since they seemed aware of the problem.

It works in Firefox and Internet Explorer.


 

Categories: Windows Live

The Reuters article AOL, Google ad pact to include video, instant msgs states

America Online said Google had agreed to invest $1 billion to take a 5 percent stake in AOL, as part of an enhanced pact where Google will move beyond text-based advertising to allow AOL to sell graphical ads to Google's fast-growing ad network.

The stake effectively values AOL at $20 billion, a key benchmark should Time Warner elect to spinoff or sell a part of its Internet unit in response to dissident shareholder Carl Icahn's proxy campaign to break up the company.

Terms of the deal call for AOL to make more of its Web sites searchable via Google search, including a plans to feature AOL's premium video services within Google Video, a way of searching for Web-based video programming.

They also said they had agreed, under certain unspecified conditions, to allow users of Google's recently introduced instant messaging system Google Talk to communicate with users of AOL's market-leading AIM instant messaging service.

This is a very interesting development when combined with the recent release of the Libjingle library which allows developers to use the Google Talk API. Does this mean it'll soon be possible for any developer who grabs Libjingle off of SourceForge to be able to integrate the ability to instant message with any AOL Instant Messenger (AIM) into their applications free of charge? That is definitely game changing. I haven't looked at Libjingle [for obvious reasons] but I am interested in comments on whether my analysis is on the mark or not from people who've tried it.

I'll definitely be watching the Google Talk blog and Joe Beda's blog to keep on top of the developments in this space. Interesting stuff indeed. Perhaps I'll soon be able to integrate chatting with your AIM buddies into RSS Bandit ?


 

Categories: Web Development

December 21, 2005
@ 01:00 AM

I just found out about Yahoo! Open Shortcuts. This is SICK!!!. Yahoo! has done it again. The excerpt below is taken from the FAQ

  1. How do I use it?
  2. Do you have some shortcuts that are ready to use?
  3. How do I create my own?
  4. How do I manage my Open Shortcuts?
  5. Is there search meta word trigger?
  6. Can I name my shortcut the same name as a default shortcut?
  7. I've got feedback about Yahoo! Open Shortcuts. Who do I tell?
  1. How do I use it?

    Type an ! (exclamation point) followed by the name of the shortcut in the Yahoo! Search box.

    !shortcut_name

    Examples:

    !my to navigate to "http://my.yahoo.com"
    !wsf to search "weather san francisco" on Yahoo!

    For shortcuts that search favorite sites or start an Internet application, you can also type optional term(s) after the shortcut name.

    !shortcut_name term(s)

    Examples:

    !ebay lamps to search for "lamps" on Ebay
    !mail bill@yahoo.com to send email to "bill@yahoo.com"


  2. Do you have some shortcuts that are ready to use?

    These popular shortcuts are available for immediate use:


    Navigation
    !clist http://www.craigslist.org/
    !my http://my.yahoo.com/
    !mysp http://www.myspace.com/
     
    Search
    !amazon http://www.amazon.com/exec/obidos/external-search?mode=blended&keyword=%s
    !audio http://audio.search.yahoo.com/search/audio?p=%s
    !ebay http://search.ebay.com/search/search.dll?satitle=%s
    !flickr http://www.flickr.com/photos/tags/%s/
    !image http://images.search.yahoo.com/search/images?p=%s
    !mw http://myweb2.search.yahoo.com/myresults/ourresults?p=%s
    !news http://news.search.yahoo.com/news/search?p=%s
    !php http://www.php.net/%s
    !shop http://search.shopping.yahoo.com/search?cop=mss&p=%s
    !video http://video.search.yahoo.com/search/video?p=%s
    !wiki http://en.wikipedia.org?search=%s
     
    Application
    !note http://notepad.yahoo.com/?v=161&DESC=%s
    !mail http://compose.mail.yahoo.com/ym/Compose?login=1&To=%s
  3. How do I create my personal shortcuts?

    To create a navigational shortcut, use the keyword: !set with your shortcut name and destination URL.

    !set shortcut_name URL

    Example:

    To create a shortcut named "ff" to go to Yahoo! Sports Fantasy Football,
    Type: !set ff http://football.fantasysports.yahoo.com/f2

    To create a common search shortcut, use the keyword: !set with your shortcut name and the query.

    !set shortcut_name query

    Example:

    To create a shortcut named "watx" to search Yahoo! for "weather austin texas",
    Type: !set watx weather austin texas


    To create a shortcut that searches a favorite site or starts an Internet application, use the keyword: !set with your shortcut name and the destination URL. Within the URL, substitute the query term(s) with the "%s" placeholder.

    !set shortcut_name URL_%s

    Example:

    To create a shortcut named "yf" to search stock quotes on Yahoo! Finance,
    Type: !set yf http://finance.yahoo.com/q?s=%s

This is extremely useful. I've been wanting a short cut for searching Wikipedia on popular search engines for quite a while. Just for this feature alone I can see my usage other search engines dropping. 


 

Categories: Web Development

We were planning to ship a bugfix release of RSS Bandit before Christmas which fixed all the major issues reported in the recently Nightcrawler edition of RSS Bandit.

Unfortunately, it seems that either due to complexity or buginess I simply can't get the NewsGator API to perform the straightforward task of marking something as read in NewsGator Online which was viewed in RSS Bandit. I spent all of yesterday afternoon plus a couple of hours this morning working on it and I've finally given up. This feature simply won't work in the bugfix release shipping later this week. Maybe I'll have better luck when we ship the Jubilee release.

To make myself feel better, I'll work on fixing some of the Atom parsing bugs reported by Phil Ringnalda and the issues with password protected newsgroups. Nothing like having your self-worth defined by how many bugs you close in a database on SourceForge.

Update: So not only have I already fixed the newsgroup issues and the problems with parsing Atom feeds pointed out by Phil Ringnalda but I just got pinged by Gordon Weakliem who is the developer of the NewsGator API. Perhaps my Christmas can be salvaged after all.


 

I've seen a number of interesting posts today in response to the news that Microsoft will end support for Internet Explorer for the Mac ths year. The best posts have been from people who used to work on the product.

Jorg Brown has a comment on Slashdot entitled I was on the MacIE 6 team when it got canned... which contains the following excerpt

MacIE had one of the strangest and saddest histories I've seen, of any product.

MacIE 5 was an awesome release, critically aclaimed and everything, with a good development team and a strong testing team, that included daily performance measurement.

And yet, almost immediately after 5.0 was released, the MacIE team was redeployed to work on a set-top DVR box. The notion at the time was that the team would continue to do MacIE work in their spare time, since IE 5 was the leader among Mac browsers and no longer needed a full-time team.

The problem with that notion was that WebTV, the team's new bosses, had no reason to actually schedule any time for real IE work. So later, when that particular set-top box got cancelled, the IE team got redployed for other WebTV work, and since this was now out of MacBU's control, nothing could really be done.

3 or 4 years went by before enough people in the Mac division wanted to resume work on IE, and when it looked like we might actually need the technology, as a base for MSN-for-Mac, the IE 6 team was formed. It got a firm OS X-only foundation, a new even more complient browser base, and then suddenly it became apparent that Apple was doing their own browser, because, well, there were lots of small clues, but the big clues was that Apple had started calling the old Mac IE team offering them jobs.

By that time the Mac division had formally committed to MSN-for-Mac-OSX, so it's not like we were completely going to stop work. But a meeting was held internally, the outcome of which was that it didn't make sense to build our own browser if Apple was going to bundle one, because the marketshare and mindshare of the distant-second-place browser, on the distant-second-place platform, wasn't worth pursuing. A week later we had a meeting with high-up people at Apple, where they told us they were doing a browser. And the week after that, after confirming it with Bill Gates, who was reportedly sad but understanding of the decision, MacIE was officially shut down.

MSN-for-MacOSX went ahead, and was also critically acclaimed, but once released, indications were that the number of users was about the same as the number of developers. After that, MacBU concentrated once again on the next Office release, and MacIE has been well and truly and permanently dead ever since.

Over the whole sad journey, the single most surprising thing I ever discovered was from a small conversation that went:

Me: "Look, if it makes sense to devote dozens of people to WinIE, then surely it makes sense to devote half a dozen to MacIE!"

Higher-up: <confused look> "There aren't dozens of people on WinIE. WinIE had some great people on it! We need those great people on products that make money!"

Me: "Then why on earth did we pursue IE in the first place? Just so that the DOJ would sue us?"

Higher-up: <confused look>

Some day I hope to get a proper answer on our motivation to do WinIE and MacIE in the first place. It seems to be that we were scared of not having control of the HTML standard. And indeed, now that Firefox is gaining traction, Microsoft has added more people to WinIE again.

Jimmy Grewal also has a blog post about this entitled End of an era: Mac Internet Explorer where he writes

This announcement has sparked some debate on Slashdot, which was inevitable. Omar pointed me to a comment to this by our former co-worker Jorg Brown, who now works for Google, which I’ll quote below:
... [see above excerpt]
A lot of what he says is true; but the story is more complex than this and there were many other factors that came into play. Issues which he doesn’t cover…primarily because he wasn’t working on the product much until the last few months of development:

  • - Mac IE was the first real browser running on Mac OS X. We had it running on Developer Preview 2 and it shipped on the Public Beta CD-ROM. That was a great engineering achievement but it came at a very high price. Developing for OS X in those early days was a nightmare and we spent so much time struggling with OS bugs and changing APIs that precious time that could have been used to improve the product was wasted just trying to maintain compatibility with each new beta release of OS X.

  • - Apple was a pain in the ass sometimes. For a company with such great PR, they really were very unprofessional and treated developers poorly. I know that the OS X transition was tough, but there are so many stories I could tell of stupidity at Apple and policies which made no sense…but I won’t. I’ll just say that Apple had a lot more involvement in the development of Mac IE and it’s eventual end than Jorg gives them credit for. There were times during the last two years of working at Microsoft that I really hated Apple’s management…which was very difficult for me being such a loyal fan of their products and having so many friends who worked there.

  • - No clear direction from our management was the last major factor which Jorg touched upon but is important to mention again. Towards the end, we had some major changes in management at the MacBU and the new team was inexperienced both with the products they were managing and how to deal with Apple. They were further handicapped by lack of clear direction by our execs who were too busy worrying about AOL, the DOJ, and our stock price.

The common thread in both perspectives is that management at Microsoft didn't see much value in continuing with IE on the Mac. Jorg doesn't seem to understand why but the reason seems clearer to me.Microsoft is a platform company. We have built the most popular software platforms on the planet; Microsoft Windows and Microsoft Office. In the 1990s, two technologies/products attempted to take the place of Windows as the world's #1 developer platform. These technologies/products were the Java platform produced by Sun Microsystems and the Netscape Navigator web browser produced by Netscape. Microsoft met both challenges in a variety of ways including making sure that Windows  (a) was the best platform to run Java applications and (b) had the best Web browser on any platform. The goal was simple if Java or the web browser became the platform, then that platform would at the end still be a Windows platform. Of course, some other decisions Microsoft made with regards to competing with Sun and Netscape landed the company in court with billions of dollars in fines and settlements. 

Fast forward to the early 2000s, the browser wars are over and IE is the world's dominant Web browser. In an almost text book example of how monopolies work, Microsoft abandoned innovation in IE in a move that showed that at this point IE was considered a cost center not a revenue generator. It simply doesn't make business sense for Microsoft to invest in a technology that dintermediates it's most popular platform, the Windows operating system. This should sound familiar to you if you've read The Innovators Dilemma.

It's now the mid-2000s and the Web browser landscape has changed. Technologies such as DHTML and IXMLHttpRequest which were invented by Microsoft to make IE the best developer platform on the Web have been adopted by competitors like Google and rival Web browsers like Mozilla. Despite our best efforts, the Windows platform is being routed around and even worse it is by technologies we invented. In this case Microsoft has been hoisted by its own petard

These developments have caused renewed interest in IE [at least on Windows] by Microsoft which is why I went from two years of being a Microsoft employee and not believing an IE team existed to reading the IE blog which makes it seem that there is now a veritable army of developers working on IE. The only problem is that I expect that history will repeat itself. What happens when IE reaches feature parity with Mozilla? Will we have to wait until Windows Blackcomb until we see Internet Explorer 8? Given how Microsoft [and specifically the Windows division] works this isn't as crazy an idea as it sounds. 

I can think of two ways to prevent history from repeating itself. The first is that Microsoft officially disbands the IE team after IE 7. The second is that Microsoft transfers the IE team to a product group that actually depends on browser innovative to make money such as MSN Windows Live. We haven't innovated in the browser for almost a decade. IE 5 was the last truly innovative release. Ex-IE team members like Scott Berkun who wrote the classic How to build a better web browser show exactly stagnant the world of Web browser innovation has been this century. Given that Microsoft views IE as a defensive option to make Windows an enticing product, there is less incentive to make it the ultimate browsing experience as products whose bread and butter is the Web browser. Why do you think there are so many Google employees working on Mozilla?

Microsoft should either cede innovation in the Web browser to Mozilla/Google or make IE more than just "icing on the Windows user experience cake"by transfering the product to a team whose bottom line depends on browser innovation. Of course, I doubt that my words will be taken seriously by folks at Microsoft [except as a reason to send my boss or his boss angry mail] but this needs to be said.


 

Categories: Life in the B0rg Cube