Amazon S3 Delphi sample

I’ve upated my Delphi sample for using Amazon S3; this time I’ve put the exe up for download so anyone can try it (if you have an S3 account).

If there is interest I might work this up into a more user-friendly utility; or perhaps someone would like to help with this.

It does many of the essentials: file upload and download, progress report with cancel option, create, delete and list buckets and items.


Technorati tags: , ,

Brief notes on IE7

I upgraded to Internet Explorer 7.0 on three machines this morning. I have to say the experience was very smooth, though not especially quick. You have to pass a validation dialog as well as a new licence agreement, so I guess there are hassles if Microsoft decides your not on “Genuine Windows”; but plenty has already been said on that subject.

IE7 is long overdue and probably won’t wean many off Firefox, but it’s a decent upgrade, with tabbed browsing perhaps the number one feature; of course FireFox has had this since its first release. Even if you use Firefox, I’d still be inclined to upgrade to IE7 simply because it’s pretty much a system component. You may not use it for browsing; but embedded IE will likely still turn up in a few apps you use. Web developers will need it for testing if nothing else.

I’m particularly interested in the centralized RSS platform which comes as part of IE7. I’m a satisfied user of Omea Reader, which is superb and deserves more attention than it gets; but I really like the idea of a single feed store in the OS, so I thought I should try migrating to IE7. First question: can IE7 import an OPML feed list? It turns out that it can, but the feature exposes some silliness in Microsoft’s new browser.

You see, Microsoft has gone for a clean look with no menu by default, just a few icons and an address bar. Unfortunately, this means there is significant functionality hidden by default, and finding it is not particularly intuitive. In this case, you have to click the Tools drop-down and select Menu Bar, then choose File – Import and Export, then choose Import Feeds.

It worked, I’m glad to say, and now all my subscribed feeds are in IE7. However, now that I’ve realised the importance of the Menu Bar I don’t want to hide it again, so I’ve lost the clean look; in fact, it feels odd having the menu bar below the address bar and I wish I could put it at the top where it belongs.

Will I be able to live with IE7 as a feed reader, or go running back to Omea in a day or two’s time? I’ll let you know.

Finally, a note for any Borland developers reading this. If you use Borland Developer Studio, you need to update the registry to avoid access denied errors with ASP.NET. See Resolving Access Denied errors in the BDS ASP.NET designer with IE7 installed.

Update: A comment to this blog tells me that import and export is also accessible through the Add to favorites icon. So showing the menu bar is not essential after all; it’s just a bit obscure as I’d presumed that Add to favorites only does what its name implies.

Technorati tags: , , ,

Songs that are just about perfect

I feel another list coming on. This is for songs that have a quality of completeness, such that it is hard to imagine how they could be improved.

  1. The Cranberries – Linger. Best in the studio version as Dolores O’Riordan can’t resist getting the audience to sing along in concert.
  2. Bob Dylan – Like a Rolling Stone. Perhaps the definitive Dylan song. I like it because he appears to be singing about someone else, yet you cannot shake off the suspicion that he is singing about himself.
  3. Patti Smith – Because the night. Some songs you only need to hear once; you know immediately it is for the ages.
  4. Robert Wyatt – Shipbuilding. A very sad song, sung in a very sad voice. A parallel to Because the Night in a way, because it was a song borrowed from another singer/songwriter.
  5. David Bowie – Heroes. A build-up song, that ends with Bowie screaming. Seems to capture something about hope in despair.
  6. Jimi Hendrix – All along the Watchtower. Another borrowed song, that so much caught the essence of the song that Dylan started singing it almost the same way. I love the non-ending: “Two riders were approaching, and the wind began to howl.” And then what?
  7. Joan Baez – Diamonds and Rust. Presumed to be about Dylan. “My poetry was lousy you said,” who else could it be? Wrecked by Joan in concert in later years, when she ends with “I’ll take the diamonds.”
  8. New Order – Blue Monday. A disappointing band that never lived up to its promise; yet came out with some superlative singles of which this is the best.
  9. Richard Thompson – 1952 Vincent Black Lightning. A song about death. 
  10. Stephen Sondheim – Send in the clowns. How do you write about perfection?

Searchability the key to usability

Joe Morel blogs about users of MSDN Forums, the official discussion groups for Windows developers. He has stats which show that 98.5% of the forum’s users are lurkers (they read but do not post), that nobody like logging in and only do so when forced (because they want to post), and that most people find the content through Google rather than because they are consciously participating in an online community.

This is more or less what I noted back in August, but it’s good to see the confirming stats.

Google helps; but many sites still have not learned the principles which Morel outlines.

Technorati tags: ,

Apple ships virus, blames Microsoft

Apple has confessed on its site to shipping some iPods compete with an unwanted guest, the Windows RavMonE.exe virus.

Here’s what Apple says:

As you might imagine, we are upset at Windows for not being more hardy against such viruses, and even more upset with ourselves for not catching it.

Funny; though I doubt Apple is all that upset since it uses Windows viruses as a marketing pitch in its rather inaccurate page on the subject.

Maybe this is what they call viral marketing 🙂

Tags: Apple microsoft security ipod

Live Writer good, performance bad

A side-effect of migrating this blog to WordPress is that I can now use Windows Live Writer to author posts. It’s a great little app, as noted today by James Governor, and has been favourably reviewed around the web since its first public beta in August (though I wish the team would add spell checking in languages other than US English). This review by Phil Wainewright is my favourite, because it gets the strategic potential. In addition, if Microsoft can get us hooked on Writer, we’re more likely to start using other Live services like  Maps – Writer has “insert Windows Live Map” on its menu bar – which ultimately results in more Live traffic and ad income.

A snag with this grand scheme is the poor performance of Microsoft’s Live properties. For me, Live Writer works much better with WordPress hosted on my own site than with the Windows Live Space that I’ve set up as a trial, purely because Spaces is so slow. Live Local Maps is tardy too. As for the Live plugin gallery, this is what I get right now:

Live gallery reporting an error

This is where Google scores so highly. It is not immune to problems, but most of the time it is remarkably responsive, whether for Search or Maps or other services.

I sometimes wonder if the folk in Redmond with fast local links just don’t see these performance issues. It not just me though: here’s the A9 report on Live Spaces: shown as very slow

I don’t mean to be negative. Writer is excellent, and offers a better user experience than any browser-based editor that I’ve seen.

Tags: livewriter microsoft .net

Oracle, JDeveloper and Eclipse

Oracle has posted a strategy and roadmap (pdf) for JDeveloper, its Java IDE, and the Oracle ADF application framework. It looks like a bunch of interesting stuff is coming in JDeveloper 11, including JEE 5.0 and EJB 3.0, AJAX controls for JavaServer Faces, and “declarative validation using standard expressions or scripting languages such as Groovy”.

So full steam ahead for JDeveloper, but what about Eclipse? Oracle is a member of the Eclipse Foundation at the add-in provider level, but is sticking with JDeveloper as its primary development tool:

A question that we are often asked is “Why hasn’t Oracle implemented all of its design time features as Eclipse plug-ins?”. Given the popularity of this open source IDE, it is a valid question. However, the answer is simple. By controlling the entire development environment, we have been the ability to produce both the shell and the core architecture which allows seamless integration of all types of design time environments, all sharing the same concepts and look and feel. If we just created specific plug-ins for Eclipse, each plug-in might be very effective on its own but it might not necessarily be consistent or compatible with third-party plug-ins, and would not offer to developers the level of productivity provided by a fully integrated environment. For those developers who have already made the choice to use Eclipse, we also contribute to this platform and lead open source projects to provide standalone Eclipse plug-ins for specific technologies such as JSF, EJB 3.0 or BPEL.

This is consistent with the reasoning given when Oracle first joined Eclipse:

Oracle is joining the Eclipse board to make sure that Eclipse developers can take advantage of the Oracle deployment platform (i.e. database and application server).

In other words, Oracle does not want to lock itself out from Eclipse developers, which is just as well since Eclipse is by most counts the most popular IDE out there, while JDeveloper is maybe 3rd (after NetBeans); it used to be behind JBuilder but I doubt that is true now, with all the uncertainty around Borland’s tools. More worrying for Oracle is that some figures (BZ Research in December 2005) show its market share in steady decline, from around 25% in 2002 to 15% in 2005; I don’t much trust these figures but I don’t have better ones to hand.

Does it make sense for Oracle to persevere with JDeveloper? The argument quoted above is not the whole story. If Oracle thinks that combining plug-ins from multiple vendors in one IDE does not work, why is it the prime mover behind JSR-198, a proposed JCP standard for IDE plug-ins that is meant to enable interoperability across IDEs? I suggest this has more to do with Oracle regarding the IDE as a strategic asset. It wants full control of the tools as well as the platform (app server and database).

Personally I welcome JDeveloper in that I welcome diversity among Java IDEs, and last time I looked at it I was impressed with its quality. At the same time, I’m not convinced that there is any really good reason why Oracle should not embrace either Eclipse or Netbeans rather than continuing to go it alone. Despite its strong features, I doubt JDeveloper will attract much usage beyond Oracle shops, given the excellence of the open-source alternatives.

One final thought: the new Eclipse-based JBuilder will have to be extraordinarily good to succeed in this crowded market.

Tags:, Apex and Web 2.0 vendor lock-in

There’s a debate under way about whether the new Apex language from represents a vendor lock-in. Sinclair Schuller says it does; David Berlind says mostly not. Berlind argues that the lock-in is mitigated since you are not forced to use Apex, but can use the same functionality via SOAP web services. I recently wrote a comment on the same topic for IT Week.

I have mixed feelings on the subject because Apex is such a great idea. To write code that runs on a web server today, you have to go through a procedure that starts with learning a language, whether PHP or Java or C# or Ruby or Perl, along with some kind of web framework. Then you have to figure out how to test and deploy your code to a web server, hopefully giving some consideration to security issues along the way.

With Apex, the process is simplified. Instead of writing an app offline and then working out how to deploy it, you can write the code within a web form and deploy it by clicking a button. If has done it right, the security risks are much less than with a conventional web app. By the way, you would normally work on a test copy of your live application so you do not have to inflict your buggy work-in-progress on your users. handles all the difficult choices about which app server to use, and keeping it patched and up-to-date.

It’s possible that Apex and technologies like it may do for web app development what blogging software has done for web content authoring, opening it up to a larger community, and improving productivity for existing skilled professionals.

Although Apex calls the same internal APIs that are exposed through web services, it has the potential for much better performance. Consider the scenario where you want to loop through 100,000 records in code. Doing that with web services will take an age; in fact, that sort of operation is not what web services are designed for. Apex can do it though. The implication is that although you can choose between Apex or Web services, the Web Services choice will not always be viable. Another factor, as I understand it, is that Apex code can be triggered by server-side events, functionality which cannot be replicated through the web services API. The choice which Berlind notes may not be so free after all.

Is Apex lock-in? I think it is. Build your app in Apex, which is a proprietary language, and you will not be able to take it elsewhere without considerable pain and of course porting the code.

That doesn’t make it bad. The industry lives with vendor lock-in. It may still be worth it.

At the same time, this is surely the primary question you have to ask before embarking on a major deployment. Do you trust to keep its subscription charges reasonable, its servers running satisfactorily, its technology competitive, now and for the forseeable future? A competitive advantage could transmute into a significant disadvantage if were to run into problems.


Windows Vista: no backup to tape

Windows Vista has a new user-friendly backup utility that can be set to do an automatic scheduled backup of your complete system. Very nice; but you can only backup to a file (locally or on the network), or to a CD or DVD. Tape is not supported.

I guess the reasoning is that backup to disk is generally faster, cheaper and more convenient than tape. It’s annoying for me, though, as I have some archive tapes and want to be able to read them. It looks as if I’ll need to boot into Windows XP or earlier to do so. I can’t see any easy way to run the old ntbackup on Vista.

Note that this restriction only applies to the free, built-in backup utility. There will be third-party tape backup utilities that will work fine on Vista. Nor is this relevant to most corporate users, where generally it is only the files on the server that get backed up.

Remember DOS backup and restore? It was notorious for incompatibility between versions. Looks like this is a new twist on an old problem. 


Moving to WordPress without breaking links

Some time back, I decided to migrate this blog to WordPress. Until today, I’ve been using a self-modified version of bBlog. It worked well, but WordPress has more to offer and has huge community support, so I’ve made the change. A few new things you will notice are the recent comments list, the search box, the blogroll, and limited html support in comments.

The change was delayed while I figured out how to handle old links. I didn’t want to break existing links to old blog entries, or to the blog home page; and I wanted to make it seamless for existing subscribers. In the end I did three things:

  • Installed WordPress into the same directory as the old blog
  • Modified index.php to redirect requests that point to old blog entries
  • Modified rss.php (the old feed url) so that it delivers the new WordPress feed

In other words, I’ve kept bBlog running in the same location as before. This trick works because the two systems only have one filename collision, which is index.php. The result is that links to old blog entries still work.

If you subscribe to the blog, you don’t have to change anything. The only annoyance is that you’ll likely get some duplicate posts, but I’m hoping that is better than having to re-subscribe.

I’ve only migrated a few recent posts and comments to the new blog. I might do the others, but it’s more likely that they will remain in the archive blog.