Category Archives: software development

Amazon FPS – is this the micropayment revolution?

Amazon.com has announced the beta release of the Flexible Payment Service, an addition to the range of web services which already includes on-demand computing (Elastic Compute Cloud) and Simple Storage (Amazon S3).

At first glance, this looks like big news for the Internet. It bears all the Amazon hallmarks: low price, developer-friendly, and easy to adopt. Here’s the pricing:

For Transactions >= $10:

  • 1.5% + $0.01 for Amazon Payments balance transfers
  • 2.0% + $0.05 for bank account debits
  • 2.9% + $0.30 for credit card

For Transactions < $10:

  • 1.5% + $0.01 for Amazon Payments balance transfers
  • 2.0% + $0.05 for bank account debits
  • 5.0% + $0.05 for credit card

For Amazon Payments balance transfers < $0.05:

  • 20% of the transaction amount, with a minimum fee of $0.0025

There is no up-front fee. All these prices are reasonable, but the last one deserves particular scrutiny. If both buyer and seller have an Amazon Payments account, then you can receive a tiny payment at a realistic cost. You could even pay me a single cent, three-quarters of which I would get to keep.

Now look at PayPal’s fees. $0.30 fee plus a percentage for any transaction. Google Checkout? Complex, because Google wants to hook you into its AdWords advertising by giving free transactions up to a proportion of your AdWords spend, and because it is subsidizing the service to buy market share from PayPal. But the fees include $0.20 per transaction plus a percentage, which means you cannot do micropayments.

Amazon FPS is based on web services, so that developers can easily build it into their web applications.

FPS is interesting to me as a writer. It means I could self-publish and change a small amount per article – maybe just a few pennies. It is also interesting as a means of monetizing web services. A neat feature is that buyers can limit their risk by specifying both transaction limits and the total amount transferred over a period, for a particular recipient.

If Amazon FPS takes off, then Amazon becomes a major identify provider (because you will use your Amazon ID for payments to third-party sites) as well as becoming an Internet bank.

I think Amazon is a sufficiently well-trusted name that this could work. I should add, though, that nobody is sure of the significance of micropayments – we’ve just speculated that they might be a key enabler of (ugh) Business 2.0. See Wikipedia for a discussion and links. So far, it has been advertising rather than micropayments that has changed the game. But that was before Amazon FPS. What do you think?

PS – see Jeff Barr’s post for more information and early adopter examples.

ThoughtWorks Mingle is released

ThoughtWorks has released Mingle, an agile software collaboration tool.

I spoke to Martin Fowler from ThoughtWorks about this and other topics earlier this month; I will be reporting in more detail on this shortly. As I understood it, Mingle was born out of frustration with other collaboration products that were found to be inflexible or lacking in usability. It is one of the first software products from ThoughtWorks, which in the past has focused on software development and consultancy.

Usability in this context is not a matter of “if you’re smart, you can figure out how to use it”. Rather, it is about minimising effort so that the balance tips in favour of people wanting to use it, rather than doing it because they have to. I do not know yet if Mingle achieves this, but I think this is the intention. See 10 reasons why Mingle.

Mingle optionally integrates with the Subversion source code repository. It is based on the concept of all-purpose items called cards, and also includes wiki pages.

Mingle is a commercial product, but free for small teams (up to 5 users) and not-for-profit organizations.

I’ll be installing later today, on a new Ubuntu server (which has given me a few RAID problems).

Technorati tags: , , ,

PHP Zend Framework will go visual

I spoke to some of the guys at Zend on the launch of the Zend Framework, a class library for PHP. I wrote this up for The Register.

The Zend Framework is a non-visual library, but I asked whether it will handle visual controls in future. I was told that it will: Zend’s Zeev Suraski spoke about a forthcoming “Visual Component Model” along with “WYSIWYG tools” (though WYSIWYG is always a stretch with web applications).

Of course I was reminded of Delphi for PHP and its Visual Component Library. If Zend achieves its aim of making the Zend Framework something of a standard in the PHP community, that will be a blow for CodeGear’s product, unless somehow it could be re-worked to become a Zend Framework IDE. It seems to me that Zend’s framework has better chances than CodeGear’s. The documentation is incomparably better, and my early experiments suggest that the quality is good.

It is also interesting to see that the Zend Framework has built-in support for Google services.

Family.Show – an excellent WPF demo app

Microsoft’s Tim Sneath drew my attention to Family.Show, which he describes as “our first end-to-end reference sample for WPF”. This genealogy application was made public three months ago, but I had not tried it before. Source code is available, and there is a white paper [XPS] about how it was developed.

The application feels a little unfinished, but nevertheless it is excellent. I started the application and without reading any documentation started entering my family details. I enjoyed the results and carried on longer than I had intended. It scales beautifully, both when you resize the main window, and when you use the zoom control. Another neat feature is the time slider, which lets you change the current year. As you go back in time, everyone’s age goes down and people not yet born fade into the background.

WFP applications are unlike what we know as Windows applications. This is partly because they don’t use standard Windows controls, and partly because WPF encourages a different approach. It is more like a Flash application, and requires design skills to build.

The paper is also a good read. Family.Show apparently uses XML Serialization to persist its genealogy files. I’m not sure this is wise, though I’m open to being convinced. I’d be inclined to use an old-fashioned relational database, which I suspect would perform better with large files. Another problem with XML Serialization is that it can be brittle when you want to revise the objects.

I am always interested in performance, and a tip from the paper is worth highlighting. This is the huge benefit of virtualizing the ListView control, which means it doesn’t bother instantiating elements that are not visible. The team found sorting 32 times faster, filtering 70 times faster, and memory use 75% less when using a virtual list.

Simple RAD tools from industry giants fly below the radar

Oracle and IBM are not normally names you associate with simple, highly productive software development tools. Arguably, it is the over-complexity of J2EE that left the door open for Microsoft .NET as well as nimbler open-source options like PHP and Ruby on Rails. Still, let me mention two tools that demonstrate how even these giants are devoting attention to productivity. IBM’s Project Zero is the first:

The Project Zero environment includes a scripting runtime for Groovy and PHP with application programming interfaces optimized for producing REST-style services, integration mash-ups and rich Web interfaces.

Groovy is a dynamic language for the Java Virtual Machine, and an interesting option for agile development on the Java platform, though it is perhaps getting overshadowed by JRuby.

And what about Oracle Application Express (or APEX)? This seems to be a well-kept secret at Oracle, though its users love it. Once known as HTML DB, it lets you write applications declaratively. A snag is that you have to know PL/SQL if you want to extend it with custom components. That said, APEX has a couple of big advantages. One is that it is a web services client, so you can integrate it with other web applications. Second, it is ideal for hosted development:

Oracle Application Express enables a single database to host large numbers of users.  Users work in a dedicated work area called a workspace.  This flexible architecture enables a single database instance to manage thousands of applications.

It all sounds strangely similar to what Salesforce.com is doing. Salesforce.com also calls its platform APEX, runs on Oracle, and was founded by former Oracle executive Mark Benioff.

A difference is that Salesforce.com says its APEX platform is the future of web development and will host your application for you, while Oracle markets Application Express as an alternative to Microsoft Access for small departments.

IBM is equally reticent about Project Zero. I couldn’t find it mentioned on the developerWorks site.

It is much easier for startups to promote new models of software development.

Salesforce.com + Google + Adobe Flex and AIR = New Internet platform?

I spoke to Adam Gross, vice president of developer marketing at Salesforce.com, about the new Summer 07 release. This includes the first full release of Apex Code, a server-side programming language which lets you customize and extend Salesforce.com applications. Currently Apex Code is only available in the high-end Unlimited Edition.

Gross told me that Apex Code has acquired some interesting new capabilities since we last spoke about its preview release. This includes the ability to make outgoing web service calls, a capability which is particularly interesting because it enables mash-ups with third-party web applications that also expose a web services API. Salesforce.com is a big user of SOAP, by the way, in contrast to all the negative press that SOAP seems to get elsewhere. You can develop Apex Code in Eclipse, though debugging is still fairly painful.

The mash-up idea is compelling. One of the key challenges of hosted applications is integration with local applications. Things like complex Outlook connectors are common, along with the ability to export data as Excel or Word documents. That friction can be reduced by moving more of your data online. For example, Gross told me that developers have already devised ways to export Salesforce.com reports directly into Google’s Documents and Spreadsheets. From there, you could easily share it with colleagues. In fact, the same application could email the link to a list of recipients. That makes more sense than exporting to Excel, attaching it to an email in Outlook, and sending it out again. Note that Google and Salesforce.com announced a strategic alliance in June, but this focused on AdWords which is less interesting.

Another key Salesforce.com partner is Adobe. Gross tells me that he sees wide take-up for Flex and AIR among Salesforce.com developers. There is a Flex Toolkit which simplifies the development of Flex or AIR applications that call Salesforce.com APIs. “The take up of the Flex Toolkit has been breathtaking,” says Gross. “We are already seeing companies create offline applications written in AIR, even though that product is still in beta.” He also praises the productivity of Flex – apparently some developers use it for that reason alone.

The offline aspect of AIR is vital, as it addresses the most obvious weakness of the Salesforce.com platform. Google Gears could be used for this as well, though I got the impression that Gross sees more take-up for AIR at the moment. He says there will be further announcements on both at the Dreamforce conference in September.

The vast majority of Salesforce.com usage seems still to be CRM, though there is no inherent reason why the platform should not support ERP or other application types. Its strength is the vast amount of pre-built functionality. Concerns include the cost – especially if the company reserves key features like Apex Code for its high-end edition – and the risk of vendor lock-in. See here for a good overview of the Salesforce.com platform.

CodeGear abandons .NET Windows Forms?

Intriguing blog post here suggests that future versions of Delphi .NET will not support Windows Forms, the most widely used GUI library for .NET. Apparently the Delphi 2006 Windows Forms designer will not appear in Delphi “Highlander”. If you want to do GUI work in Delphi .NET, you will have to use VCL.NET, or else make do without a designer.

At first glance this looks like a mistake. The main problem is third party components. There are plenty around for Windows Forms, few for VCL.NET. OK, you can import a Windows Forms component and use it in VCL.NET, but it’s not ideal.

Then again, what is the future for Delphi .NET? Pretty uncertain, judging by what CEO Jim Douglas told me. If the speculation about Windows Forms in Delphi is correct, then anyone who invested in Delphi Windows Forms development has been left stranded. Might not the same happen to VCL.NET developers? And what are the implication for WPF, a much nicer GUI library than Windows Forms though immature and little-used at the moment? Developers hate this kind of uncertainty.

Performance expert becomes Visual Studio Chief Architect

Microsoft’s performance specialist Rico Mariani is to be Chief Architect of Visual Studio.

Mariani has earned huge respect for his detailed blog posts on performance issues in .NET. He’s recently posted some fascinating figures on Linq to SQL performance. From a technical point of view, it looks like Visual Studio architecture is in good hands.

Perhaps this also indicates that Microsoft is giving higher priority to performance. That’s needed. Most of my gripes about Windows Vista are performance related. Take the new Event Viewer, for example, just because I used it this morning. It takes 20 seconds to open on my system, during which time it displays “reading log” messages. This never happened with the old event viewer, which opens without any delay. The new one is much prettier, but at what cost? These small delays, repeated n times a day, consume a huge amount of expensive admin time.

That said, it’s puzzling to find a performance guy in charge of architecture. Still, Visual Studio is the first link in a chain that leads eventually to Windows, Office, and most third-party Windows apps. More speed everywhere, please.

Audio in Vista: more hell than heaven

Here is a contradiction. On the one hand, Vista audio is said to be much improved over audio in earlier versions of Windows. Certainly this was Microsoft’s intention. Larry Osterman’s 2005 post refers to several goals, including moving audio code out of the kernel to improve reliability, and making Windows a better platform for audio professionals. Osterman also describes the new audio API called WASAPI, which enables low-latency, and provides an illustration of how it fits together. Vista clearly has a much richer audio API than Windows XP. Here is an easy to understand overview, full of enthusiasm for its benefits.

Why a contradiction? Well, the actual, real-world experience of audio in Vista is mixed at best. Here is a typical post, complaining of stutters and pops in Vista audio which recall bygone days when PCs were barely up to the task. Surely playing 16-bit audio should be a breeze for today’s PCs?

I’ve had the same experience. I care about high-quality audio, so I installed a high-end Creative card, the Xi-Fi Elite Pro. I’ve been through all the drivers, from early betas to recent and supposedly production-ready releases. None have worked smoothly. I’ve had problems playing CDs, problems in Audacity where playback stutters or simply stops working, or a strange effect where the right and left channels go out of synch. I’ve had problems in Windows Media Player, where the responsiveness of the play, pause and stop buttons becomes sluggish, or playback fails completely.

I thought this might be primarily a problem with Creative’s drivers. There are certainly howls of anguish on the Creative forums. I also notice that if I switch to the motherboard’s integrated Realtec audio, reliability is greatly increased, though sound quality is worse. There are still occasional problems. Everyday use is fine, but a heavy editing session in Audacity causes glitches.

I decided to go pro. I removed the Xi-Fi, purchased a Terratec Phase 22, aimed at the pro market, and attached an external DAC. I chose the Terratec because it is a no-frills affair and has a Vista driver, unlike many of the pro audio cards out there. Happy now?

Well, no. The Phase 22 works OK using its internal DAC, but I’m having problems with the  SPDIF digital output. If I direct audio specifically to this output, by making it the default device, or selecting it in the preferences of an app like Audacity, it does not work. I can sometimes get it to work temporarily using the Phase 22 control panel, but it fails again as soon as I stop and restart playback. If I direct output to the Phase 22 internal DAC, then SPDIF output works, but it is always re-sampled to 48 kHz. Ideally I want bit-perfect output to the external DAC. For example, I’ve got a 96 kHz FLAC file. If I play this in Vista, it is output at 48 kHz.

In Windows XP, by contrast, it works perfectly. Ripped CDs are output at 44.1 kHz, my 96 kHz FLAC file is output at 96 kHz.

I also have problems with Steinberg’s Cubase SX. This works well in XP with the Phase 22, or with the internal card on Vista, but it does not work with the Phase 22 in Vista (I’ve not spent a lot of time trying to troubleshoot this). I called Terratec support. The guy didn’t bother trying to analyze the problem; he just said wait for a new driver.

Digging a little deeper

Maybe some of these problems are specific to my machine or the way it is configured. Maybe, and I look forward to your tips. But here are a few observations.

Pro audio vendors are very late with Vista drivers. I noticed this when looking for a replacement for the Xi-Fi. M-Audio, for example, has only patchy support, and some drivers are still in beta. E-Mu, Creative’s Pro range, is still on beta drivers. Bear in mind that Vista was released to manufacturing in November 2006, and that there were plenty of pre-releases.

Vista drivers, where available, may not be full-featured. Creative is a case in point. Its Vista drivers do not support decoding of Dolby Digital and DTS, DVD-Audio, 6.1 speaker mode, or DirectSound-based EAX effects.

General advice in the Pro community seems to be: stick with XP for the moment. I don’t see many posts from musicians raving about how much better Vista is for their work. I see plenty of posts about problems with audio in Vista.

What’s gone wrong? I don’t have a definitive answer, but can speculate a little. What we do know is that audio in Vista, and multimedia in general, is greatly changed. The links I gave above are just overviews. For a real drill-down, try the lengthy audio processing in Vista thread on the AVSForum, along with Creative’s explanation of audio in Vista. Note that a number of older APIs are now emulated on top of the new WASAPI. Emulation, as everyone knows, often means slow. Note also the two modes in Vista audio: shared and exclusive. As I understand it, in shared mode, Windows will always munge the audio at least a little. In exclusive mode this won’t happen, but according to this post, writing exclusive-mode drivers is exceedingly complex.

There’s also DRM to think about. Is the notorious protected media path getting in the way of faithful audio reproduction on Vista? Personally I doubt it, but it could be a factor.

Speculations

The bottom line is that Vista audio should be great, but in practice it is problematic for many users. Why? Here are a few possibilities.

1. Vista audio is great, but third-party vendors are a lazy bunch and haven’t bothered to do decent drivers. This is the view of many on the Creative forums, but I don’t buy this entirely. The failure to provide good drivers in a timely manner seems to go right across the industry. I am sure some vendors could have done better but I’m inclined to think there are other factors, such as perhaps…

2. Vista audio is so complex and different that third-parties had no chance of writing good drivers in time. This seems at least plausible. I still find it curious. I don’t doubt that the leading vendors of audio add-ons worked closely with Microsoft in the run up to Vista. Why then is support for the new operating system so limited and late?

3. Microsoft slipped up; audio in Vista does not work properly. It will certainly be interesting to see what effect Vista’s service pack 1 has, when it arrives later this year.

No conclusion

A year from now, we might all be saying Vista’s audio is fantastic. That will be after Vista SP1 and another year of driver development. Alternatively, we may know more clearly why it does not deliver. In the meantime, my own view is that Vista audio is more hell than heaven.

Technorati tags: , , , ,

Microsoft sets launch day for Visual Studio 2008, SQL Server 2008, Windows Server 2008

According to a press release just received, Microsoft has set 27 February 2008 for the “global launch” of its 2008 server and developer products:

Today at the Microsoft Worldwide Partner Conference, COO Kevin Turner announced that the company will jointly launch Windows Server 2008, Visual Studio 2008 and SQL Server 2008 in Los Angeles on 27 February, 2008. The event will kick off a “launch wave” of hundreds of events that Microsoft will host worldwide including training, virtual events and extensive online resources.

Windows Server 2008 has the IIS 7.0 web server, PowerShell command-line, and “Server core” which lets you install servers without any GUI components. Funny how Windows is getting more like Unix.

SQL Server 2008 has a new FileStream data type (a better blob), spatial and location data types, integrated full-text search, and a bunch of scalability and management improvements.

Visual Studio 2008 is the LINQ (Language Integrated Query) and WPF (Windows Presentation Foundation) release. WPF is already out there, but this has full design-time support. There is also ASP.NET AJAX. Visual Studio 2008 goes hand-in-hand with C# 3.0 and VB 9.0. The underlying CLR (Common Language Runtime) is still essentially 2.0, the same as for Visual Studio 2005.

Of course there are a zillion other new features, but I’ve picked out a few highlights.

Will this change our lives? LINQ is exciting, and so is WPF if anyone actually starts to use it, but of course we’ve known about these things for a while. Microsoft’s release cycle for new technology – from first announcement to full release – seems to stretch out for ages. Otherwise, this feels more like consolidation than any sort of new direction.