Category Archives: multimedia

Microsoft Silverlight vs Adobe Flex

I am at Mix07 in London. Having looked in some detail as Adobe Flex and AIR in recent weeks, it is interesting to compare and contrast. I am looking primarily at the developer aspect, rather than video or multimedia.

Silverlight is not a direct competitor to Adobe AIR, in that it does not run outside the browser (though I guess you could do something funky with an embedded browser control). It is a closer competitor to Flex, though there is no exact equivalent to Adobe LiveCycle, which is not needed for Silverlight. However, the two technologies do have a number of parallel features, including the following:

  • Cross-platform runtime – Windows, Mac and Linux (the last a recent Microsoft announcement)
  • XML language to define the GUI
  • Embedded video capability
  • Timeline for animations etc.
  • Strongly-typed, object-oriented language with just-in-time compilation
  • Easy access to XML web services
  • Dedicated design tools (Expression Blend for Silverlight, Flash IDE for Flex and AIR)
  • Dedicated developer tools (Visual Studio for Silverlight, FlexBuilder for Flex and AIR

So what are the differentiating factors? There are some obvious differences. For example, Flash 9.0, and therefore Flex, runs on Windows 98; Silverlight 1.1 will not. On the Silverlight side, there is the advantage of language choices: Silverlight allows Visual Basic, C#, Python or Ruby. Flex has only Actionscript 3.0.

The real difference

These technical differences are dwarfed by cultural factors. Microsoft’s advantage is the comfort factor of Silverlight for developers already familiar with Visual Studio and C#, and perhaps beginning to look at WPF. Microsoft does strong tools, and FlexBuilder does not currently come close. This will help establish Silverlight for enterprise development. With increasing numbers of Macs popping up incoveniently in Windows networks, Silverlight could soon find a role. Similarly, for ASP.NET developers who want to give users a richer client, Silverlight is a compelling option.

Adobe’s strength is that it already has a strong hold on the designer community. While the Expression products are being well received, they would have to be extraordinary to win substantial numbers of switchers from Flash, Dreamweaver, Photoshop and so on. Adobe also wins on deployment. Flash is well established, whereas Silverlight is new; it will be especially hard for Microsoft to place it on non-Windows mobile devices.

I don’t see either of these technologies failing. I suspect Microsoft is introducing Silverlight in time to stem a bleed of .NET developers to cross-platform development with Flex and perhaps AIR, but I would be surprised to see large numbers of defections from Adobe’s camp.

Interesting questions

A few questions to which I do not yet know the answer:

  • How does the performance of Microsoft’s IL + JIT compiler compare with Adobe’s Actionscript 3.0 + JIT compiler? On Windows and on other platforms?
  • Adobe’s AMF protocol is more efficient than XML for data delivered via web services. Is this a significant performance benefit?
  • MXML vs XAML. My impression is that WPF is more expressive, but I have not researched it sufficiently to back this up. I would be interested in comments.

As ever, your thoughts are welcome.

Silverlight is released for Windows, promised for Linux

Microsoft’s Silverlight is now fully released. Scott Guthrie’s blog has all the details, including what to me is the biggest news: an official partnership with Novell and Mono to support Moonlight, an implementation of Silverlight for Linux. Microsoft will supply the media codecs, while Novell/Mono will do the rest.

This is a major step forward for Microsoft. I have been blogging for years about how Microsoft would benefit by giving official support to Mono, and therefore promoting the .NET platform. Of course it is a two-edged sword. Mono is a competitor, and helps companies switch from Windows to Linux. On the other hand, Silverlight has no chance of broad adoption unless it is taken seriously as a cross-platform runtime, and supporting Linux will help a great deal with that.

Silverlight 1.0 does video, multimedia and vector graphics, but does not include the .NET runtime. This is to follow in Silverlight 1.1, which will therefore be of more interest to developers.

I see quite a bit of misunderstanding of how Silverlight relates to the full version of .NET. As I understand it, even Silverlight 1.1 makes no use whatsoever of the full .NET runtime or WPF (Windows Presentation Foundation). It is entirely self-sufficient, so you can run Silverlight 1.0  or 1.1 on a Windows box which does not have .NET installed.

Technorati tags: , , ,

Adobe AIR: 10 reasons to love it, 10 reasons to hate it.

I attended two days of briefings on Adobe’s developer-focused products, especially the forthcoming AIR (Adobe Integrated Runtime).

In essence, AIR is the Flash player supplemented by additional features to enable applications that are not browser-hosted, but installed as desktop applications. AIR is great for some scenarios, weak for others. Here’s 10 reasons to love it:

1. Fast execution. ActionScript 3.0 has a JIT (just-in-time) compiler, putting it on a par with Java or .NET for raw performance.

2. Cross-platform. AIR apps will run on Windows XP and Vista, Mac OS X (PowerPC and Intel), Linux (though not in the beta).

3. Easy conversion of existing Flex or HTML applications. It’s the same basic runtime. In the case of HTML, AIR apps rely on WebKit, the core component in Apple’s Safari web browser.

4. Easy installation. Provided the runtime has installed successfully, installing AIR applications is likely to be be trouble-free, since all the files go into the application directory.

5. SQLite. AIR applications have use of a fast local database.

6. Synchronization services provided you use LiveCycle. Synchronization is the difficult part of enabling offline support in occasionally connected applications.

7. Rich design and multimedia. This is Flash, so ideal for highly customized UIs, animation, sound and video. Adobe is proving the point by creating a media player built with AIR. Existing Flash developers can easily use their skills to build AIR applications.

8. Great for web vendors who want a desktop presence. For example, one of the demo applications is for buying on eBay. If eBay persuades you to install it, then it is no longer dependent on you firing up a web browser and navigating to its site. It is also a good way to disintermediate Google.

9. Declarative programming via FLEX. Declarative programming is the best way to code a GUI and consume components.

10. ActionScript 3.0 combines the flexibility of JavaScript with grown-up object orientation. Option for dynamic or strict typing according to developer preference.

So is AIR your next development platform? Maybe, but there are some downsides:

1. Limited extensibility. AIR apps have file access, clipboard access, support multiple windows, support drag and drop, and can trigger notifications (“toast” in Windows). If you app needs to interact with the desktop in other ways, the chances are that AIR is not suitable. For example, there’s no access to COM automation, and no way to execute external applications. The reason is to maintain cross-platform compatibility. That’s a worthy goal, but it would be good to have a way out of the sandbox. Unlike Java or .NET, you cannot extend AIR with custom native code libraries. Nor can you call operating system APIs.

2. Database access limited to SQLite or web services.

3. Enterprises need to roll out applications over the network in a controlled manner. AIR has no specific support for enterprise deployment. On Windows, AIR does not use the Windows Installer service. Either Adobe or 3rd parties will need to create deployment wrappers to overcome this.

4. Proprietary technology. AIR applications depend on Adobe’s runtime.

5. No threading support. Architect Kevin Lynch says this is a strong candidate for a future release.

6. No model for commercial components. It is not clear to me how a component vendor could sell an AIR component while protecting it from unlicensed deployment. This may limit the availability of 3rd party components, with a corresponding impact on productivity.

7. Schizophrenic development model. AIR supports either Flex development, or HTML applications which run in WebKit. The ugly side of this flexibility is that there are two SDKs, even two JavaScript virtual machines with different capabilities and characteristics. While it is nice to have a way to render HTML, I am not convinced that the web application model is worth it, given the complications it causes. After all, web applications run perfectly well in the browser.

8. Security concerns. AIR is close to the worst of both worlds, being tightly sandboxed from a developer perspective, but not particularly safe from the user’s perspective. Adobe says it will allow unsigned applications, which I think is a mistake.* AIR has the same access to the file system as the user, which in the case of users running on Windows XP with full admin rights is very extensive. Example bad scenarios would include downloading malware and placing it your startup folder, or searching your file system for bank details and uploading them to some internet location. That said, Adobe says there will be more security features, so conclusions are premature.

9. Synchronization service depends on LiveCycle, the server-side piece which runs on J2E application servers. This is one of the ways Adobe makes money out of AIR, with the other obvious one being design and development tools. A consequence of point 4 above.

10. Lack of UI standards may lead to annoying inconsistencies between AIR applications. We are used to this on the Web; now it is coming to the desktop as well.

*I was told that application signing is not required, but Daniel Dura comments below that this is not the case; however he says self-signed applications will be allowed. Perhaps this is one of the things under discussion. Personally I think the default should be to require applications signed by a trusted certificate, but to provide a way for developers to switch this off.

Technorati tags: , ,

In praise of SlimServer

I’ve been playing with SlimServer, the software developed to serve music to the Slim Devices Squeezebox, and I’m impressed. Don’t have a Squeezebox? Read on, because you don’t need one to benefit from SlimServer. In fact, I’ve not yet tried the Squeezebox itself, only the software. SlimServer is written in Perl, and is both free and open source. There are installers for Windows, Mac OS X and Linux.

Here’s how it works. First, you install SlimServer on a PC. It does not need to be particularly powerful, but it does need plenty of disk space, depending of course on how much music you want to store and what format it is in. If you are installing on Linux, you may have the choice between a package specific to your distribution, or one that you download from the Slim Devices site. I installed on Ubuntu using the Debian packages direct from Slim Devices; instructions are here.

Once installed, you can open a web browser anywhere on the network and navigate to http://yourserver:9000, where “yourserver” is the name or IP number of the machine where SlimServer is running. Select Server Settings, and check or amend where SlimServer looks for music files. You can also change the look and feel of the Web UI, using the Interface settings. I use the skin called Fishbone.

Next, copy your music files to the SlimServer. What format should they be in? Most of the common ones will work, provided they are not DRM-protected, but there can be complications depending on what operating system you use for the server, and which player you use. There are two obvious choices: MP3 if you want to use lossy compression to save space, or FLAC if you prefer a lossless format. An excellent feature of SlimServer is that it can transcode on the fly. This means you can store music as FLAC, but play it as streaming MP3, which is better supported.

Personally I like to store music in a lossless format. Even if you think the best lossy-compressed files sound equally good, the lossless format is more future-proof. Let’s say at some future date you fall for a system that requires AAC, or WMA. All you need is a batch file to convert your lossless files, and you are done. By contrast, converting from one lossy format to another quickly degrades the sound quality.

Playing the music

Now you need one or more players on your network. On PCs and Macs you can use Softsqueeze, a Java player with native support for FLAC, MP3, WAV and AIFF. When I first tried Softsqueeze I thought it was fiddly to use, because searching for a song takes ages if you use its virtual remote. That’s because I misunderstood how it works. The best way to control the player is through the SlimServer Web UI. There, you can easily perform searches, scroll through results, and create playlists. Through SlimServer, you can select music, play, pause, skip, and control volume for the player.

What if you have more than one player? No problem, just use SlimServer’s drop-down list to select the player you want to control. SlimServer will happily serve different music to different players simultaneously.

Now imagine you have a real Squeezebox installed in your blissfully computer-free living room. Are you stuck with the fiddly remote? Not necessarily. If you have a wireless device with a web browser, such as a wireless PDA, or the end-of-line Nokia 770 Internet Tablet that is now being sold off cheaply, you can use it as a smart remote. This is where the web UI skins are a great advantage – there is a skin for handhelds, and another specifically for the Nokia 770. Another twist is that you can actually play music directly on the Nokia 770, by using the SlimServer to stream MP3.

Developer? SlimServer is open source and here’s the code. Check out the TCP protocol it uses to communicate with players. At a higher level, you can use one of several APIs. Just install SlimServer, then follow the link to Help – Technical Information. There’s a Web API, a command-line API, and a plug-in API – plenty of scope for customizing SlimServer.

Integration with other media software

This is where it gets a bit ugly. What can you do if you need iTunes for your iPod and iTunes Music store downloads, or if you use Windows Media Center? Can these integrate with SlimServer?

First, buying that DRM-protected music was really a mistake. SlimServer cannot play purchased iTunes music (unless it was one of the few DRM-free tracks), or WMA DRM-protected files.

If that’s not a problem, there are several possibilities. You can point iTunes or Windows Media Center (or Player) at the same shared directory used by SlimServer. This works well for MP3, but FLAC is problematic – iTunes will not play them, WMP needs a plug-in. However, you can use iTunes to manage your SlimServer library. And both iTunes and WMP will play SlimServer tracks streamed to MP3.

Unrealised potential

There is an active SlimServer community, but I think there is unrealised potential here. I’d like to see some more software players, and/or better support for SlimServer in existing music players.

Simply, any device on the network that can play music should be able to play it from your music server. The industry giants seem slow to implement this rather obvious feature. For example, I’ve got Windows Media Center, and a brand new Windows Mobile 6.0 device with a fast wireless connection. Can it play music stored in Media Center? Sorry, no, not without third-party assistance. I can’t even use it as a smart remote for Media Center, at least not without custom coding. SlimServer may be the answer.

Recreating iTunes in Silverlight

Browsing through Codeplex I came across this project to recreate iTunes as a Silverlight application. What’s remarkable is that author Jose Fajardo has kept a kind of developer’s diary on his blog, complete with YouTube videos here, here and here showing how he is recreating Apple’s music app as a Silverlight/Ajax web application.

The videos are not exactly gripping unless you are interested in the nitty-gritty of how to create a control in Microsoft’s Expression Blend and integrate it into a Silverlight application. If you are, then this sort of hands-on demo gives a great picture of real-world use. It’s a also an intriguing example of how to replicate another company’s expensive design efforts with just a few minutes in a suitable tool.

It looks like Fajardo is having a lot of fun with Silverlight, though if he completes the project I’m not sure what Apple will make of it. How’s the DRM piece coming along?

Flash gets hardware-accelerated H.264 video

Adobe’s Ryan Stewart reports on H.264 video support in Flash, including hardware acceleration. Another report suggests that Flash will get DRM, but not quickly. Part of the interest of these two reports is that superior video quality and DRM support are key features of Microsoft’s Silverlight, so this represents Adobe’s determination not to get left behind.

Silverlight’s video story is not just about quality. I reported earlier on how Microsoft is wooing media providers with cheap or free hosting, encoding and streaming software. Another facet is that Silverlight allows video content to be used as just another graphics brush, giving programmers great freedom over how it is presented.

Either way, it looks like high quality web video is getting easier to show in the near future. I only wish the BBC would use either Flash or Silverlight for its troublesome iPlayer – I suspect either one would offer a much better user experience.

Playing with a new Smartphone has reminded me of the downside of Flash and other proprietary web content. Its web browser does not support Flash, and in fact even visiting Adobe’s site makes the browser seize up temporarily with a Javascript error. This is the tension between richness and reach. Looks like we are heading for richness.

Technorati tags: , , , ,

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: , , , ,

Loudness wars article remixed

In January this year I wrote an article for the Guardian on the CD loudness wars – the tendency for today’s CDs (and digital downloads) to be mastered for maximum perceived volume at the expense of dynamic range. It’s a subject of continuing interest. Now I see that someone has created a YouTube video which includes several of the quotes I got for the piece, combined with others from around the Net and including most of an earlier YouTube video on the same subject. Great stuff.

Technorati tags: , ,

Will Windows DRM spoil the BBC iPlayer party?

I am intensely interested in the BBC iPlayer, set to launch on 27 July. It’s a landmark in the convergence of the internet and broadcasting.

This is a convergence I welcome. I missed most of the Glastonbury 2007 broadcasts, but I’ve enjoyed the BBC’s watch and listen page which gives you immediate access to most of the sets*, despite the relatively low quality (225 kbps video, 64 kbps audio, according to the player). Just click a set and it plays, no chit-chat, no messing around with programme schedules or having to decide in advance what to record. The iPlayer promises bitrates of perhaps 750kbps to 1Mbps – effectively full broadcast quality. The immediate advantage is time-shifting, but longer term there are other interesting possibilities in internet broadcasting, such as greater interactivity and the ability to customize what you view. We saw some great demonstrations of this (using Silverlight) at Microsoft’s Mix07 earlier this year.

The iPlayer is also an important example of commercial use of peer-to-peer technology, using kontiki.  

The problem is that the BBC needs to restrict playback to seven days after first broadcast, otherwise it runs into copyright difficulties. I am sure people will put their energy into trying to bypass these restrictions, and may well succeed, but the BBC has to at least make a serious attempt to enforce it. It is this that pushed the BBC into the arms of Microsoft’s DRM, to the understandable upset of Mac users and Microsoft haters, although a Mac iPlayer is promised at some future time.

This aspect bothers me as well, not only because of cross-platform issues, but because I question whether Microsoft is able to deliver DRM that just works. See here for an amusing account of how a tech-savvy Windows user struggled to purchase and play an audio file using this system. The iPlayer appears to be based on Windows Media Player, which is notorious for its cryptic error messages and intricate, hard-to-solve problems. Here’s an example plucked from the windows.media.player newsgroup:

I just tried playing both some new songs I had just downloaded, and when those wouldn’t play, some older ones that have been on my computer awhile, but each time I try to open the songs, I get the following:  “…cannot play the file because a security upgrade is required.  Do you want to download the upgrade?”.  I click “upgrade”, but absolutely nothing happens.

I took a look at the iPlayer beta message boards, and there’s no shortage of folk with similar problems. I realise that that you must expect problem reports on internet forums, but my impression is that problems with Windows Media Player and Microsoft DRM are more prolific than they should be.

I can readily believe this, because Microsoft has woven so many dependencies into the fabric of Windows. This is what makes patching a Windows system so frustrating. You start off trying to fix a problem with, say, Microsoft Office, and end up having to install updates to seemingly unrelated components like Internet Explorer, “Genuine Advantage” ActiveX controls, or Windows Installer, some of which inevitably require restarting the system. It’s bad enough when it all works as expected, but when something fails it is truly a challenge to recover.

I’ve not yet had an opportunity to try iPlayer myself. Nor do I know if the BBC intends to move from WMP to Silverlight, though I believe it may do since this would bring Intel Mac compatibility. I suspect it would also be more trouble-free, since Silverlight does not have as many dependencies – I was told at Mix07 that it has its own media player and does not try to embed WMP.

What chance is that that BBC iPlayer will have a smooth and untroubled launch when it goes public on 27th July 2007?

*PS on Glastonbury 2007: If you have time on your hands, watch the Iggy and the Stooges performance. It has amazing energy, particularly considering the man’s age, and you also get a hilarious stage invasion which has even the Ig pleading with the audience to back off and give him some space.

Technorati tags: , , , , , , , ,

Bringing paper and ebook together

There’s a buzz building about a session at the O’Reilly Tools of Change for Publishing Conference (which looks great, I wish I could have attended) from Manolis Kelaidis on his “blueBook”. Kelaidis is a designer at the Royal College of Art in London. His idea is to bring electronics to the book, rather than making books virtual. Here is the brief, from his presentation:

  • Design a book consisting of sheets of paper with printed buttons (hyperlinks), which when touched allow the user to access and control digital information.
  • Information accessed in this way could then be stored either locally (within the book) or remotely (PC, handheld devices, Web, other books).
  • The book should have the look-and-feel of a regular book, with flipping pages and conventional binding, while technology should be non-intrusive, portable and robust.
  • Manufacturing should be based on traditional bookbinding techniques minimizing complexity and costs.

Using conductive ink and embedded electronics, such a book can include multimedia (play music or video) and live links to web content or interactive discussions, perhaps in conjunction with a wireless-connected PC. Printed words become hyperlinks. The presentation is amazing and thought-provoking. See also Tim O’Reilly’s post on the subject and its comments.

Update: Presentation seems to have been removed; if it reappears I imagine it will do so here.

Technorati tags: , , ,