All posts by onlyconnect

Delphi and C++ Builder 2009 are available to order

I’m choosing my words carefully, because although the CodeGear/Embarcadero site is now showing Delphi 2009 as the current version, if you click through to the order page it only offers a pre-order. Still, it must be done or thereabouts. US prices are as follows:

Delphi 2009: Pro $874.00;  Enterprise $1974.00; Architect $3474.00

C++ Builder 2009 costs the same; or you can get a bundle with both for a relatively small extra cost, eg. $1074.00 for Delphi and C++Builder Professional.

Curiously, an upgrade to Delphi 2009 Pro only costs $374.00 (57% discount), but an upgrade to Enterprise is $1274.00 (35% discount). I can’t make sense of this except on the basis that any product labelled “Enterprise” is presumed not price sensitive.

So what’s not in the Pro version? The Enterprise edition adds drivers for server databases in the dbExpress database framework, the DataSnap multi-tier application framework, and a full range of modeling diagrams. Architect bundles ER/Studio Developer Edition, Embarcadero’s database modeling tool, with support for a wide range of database servers.

In other words, the majority of Delphi’s features are in the Pro edition, which is really much the best value, though if you need DataSnap or client-server dbExpress then I guess you have no choice.

The big features here strike me as Unicode in the Visual Component Library; and the new language features, generics and anonymous methods. I’ve not yet looked at the product though, so watch this space.

Vista shell annoyances

CodeGear’s Barry Kelly has a well-explained list of Vista shell annoyances. I don’t dislike Vista as much as Kelly but these things annoy me too, with the exception of the Start menu which I prefer in its Vista guise. Kelly doesn’t like the way Vista constrains it to a scrolling panel, but I find the search box more than compensates, and I dislike the way the XP Start menu expands all over the screen and gives up when it runs out of room.

He includes a handy tip about how to get a direct shortcut to the Network Connections control panel applet.

There’s an interesting point about menus in Vista applets:

It has become fashionable for applications designed for Vista to hide menu bars. Unfortunately, they usually haven’t been replaced by a viable alternative.

In every case I can think of – for example, Internet Explorer, Explorer, Media Player – I’ve enabled the traditional menus, even though they are hidden by default.

Technorati tags: , ,

Parts of EcmaScript 4 deemed unsound for the Web

This was the conclusion of an EcmaScript meeting in Oslo last month. Specifically, as Brendan Eich explains, three features – packages, namespaces and early binding – were considered too heavyweight unsuitable for a browser scripting language. Here is Eich’s “Executive summary”:

The committee has resolved in favor of these tasks and conclusions:

1. Focus work on ES3.1 with full collaboration of all parties, and target two interoperable implementations by early next year.

2. Collaborate on the next step beyond ES3.1, which will include syntactic extensions but which will be more modest than ES4 in both semantic and syntactic innovation.

3. Some ES4 proposals have been deemed unsound for the Web, and are off the table for good: packages, namespaces and early binding. This conclusion is key to Harmony.

4. Other goals and ideas from ES4 are being rephrased to keep consensus in the committee; these include a notion of classes based on existing ES3 concepts combined with proposed ES3.1 extensions.

This means that the evolution of JavaScript is now on a new path, focused for now on a more modest enhancement to the language called EcmaScript 3.1.

Given how loudly Eich protested about EcmaScript 3.1 last October, it is a surprising turn of events. Was Eich convinced by the arguments of Microsoft and Yahoo in support of a more lightweight JavaScript?

What this means is that JavaScript 2.0 won’t happen as previously envisaged. John Resig:

… you can forget a lot of what you learned about ECMAScript 4, previously. Many of the complicated concepts contained in the language have been tossed. Instead there is a considerable amount of effort going in to making sure that new features will be easily duplicable through other means.

Eich and Resig are keen to stress that JavaScript will still be a highly capable language. Still, the obvious conclusion is that this will be good for plug-ins which support more powerful languages: Adobe Flash, Microsoft Silverlight, Sun Java or Java/FX. Personally I’m disappointed.

It is also presenting Adobe with a tricky problem, as it implemented much of an earlier specification for EcmaScript 4 in ActionScript 3. Rather than being a standard language, as Adobe had planned, it looks like this will now be more of an Adobe language. I doubt this will have much practical impact on developers.

PS Brendan Eich has commented below.

Detailed article on Microsoft’s Midori published

The Software Development Times has an in-depth look at Midori by David Worthington, based on “internal Microsoft documents”:

SD Times has viewed internal Microsoft documents that outline Midori’s proposed design, which is Internet centric and predicated on the prevalence of connected systems.

Recommended if you are interested in what Microsoft is contemplating for a future OS. Note that there’s no official word on whether this is more than just another research project.

Technorati tags: , ,

Silverlight 2 threading issues, Quickstarts not working

I’ve been working on a Silverlight tutorial involving reading an RSS feed. Silverlight has a SyndicationFeed class which is meant to make this easy – as Microsoft’s Scott Barnes enthuses here.

It is handy, but I discovered that the Quickstart Barnes refers to does not work in Silverlight 2 Beta 2. The Quickstart section on Silverlight.net needs some work. Even if you get to this Quickstart via the link for Silverlight 2 Beta 2 examples on this page, it is soon apparent that it is actually for Silverlight 2 Beta 1. Click the Run It button and you’ll see that it asks for the older runtime.

The code doesn’t work in Beta 2 either; and as so often with thread-y stuff, it’s not immediately clear what’s going wrong. I got a blank page and the following message in the Debug output window in Visual Studio:

A first chance exception of type ‘System.UnauthorizedAccessException’ occurred in mscorlib.dll

In situations like this I recommend breaking on all CLR exceptions (Debug – Exceptions – check the Thrown box for Common Language Runtime exceptions in Visual Studio). Run again; and this time Visual Studio stops on the line which updates a Silverlight TextBlock:

feedcontent.Text += "* " + item.Title.Text + Environment.NewLine

with the message “Invalid cross-thread access”:

Rooting about a bit, I found this post from Karen Corby on changes in Silverlight 2 Beta 2:

HttpWebRequest’s delegates are called on a new non-UI thread.

  • Delegates were previously always called on the UI thread.
  • You must invoke back on to the UI thread if the data you’re retrieving will be consumed by a UI element.
  • For an example, see the updated networking post series (part one).

What this means is that you have two doses of asynchronous coding to think about if you use HttpWebRequest. First, the request itself; and second, in the code you write for the response handler if it needs to update the UI – which in most cases it will.

The example referenced by Corby shows a neat solution using a SynchronizationContext object, or you can use the Dispatcher class as explained by Wilco Bauwer here – he also draws attention to locking issues. See also Shawn Wildermuth’s post though note that CheckAccess is available despite what is said here.

This adds a significant dose of complexity to Silverlight coding. I’m not sure if any of this will change again in the final release.

I also noticed that VB coders are not well served by the Silverlight examples out there, which are overwhelmingly C#. Looks like this is the language of choice if you want an easy life.

What’s new in Delphi 2009

Today I viewed David Intersimone’s Live Webinar on what’s new in Delphi 2009, code-named Tiburon.

This is a Win32-only release. I think you will want it (if you use Delphi), if only for the new language-level features: generics, anonymous methods, and unicode strings. I grabbed a few screens from the presentation. Generics:

Unicode – here’s the TEncoding class:

and Unicode in action:

There are also some new components, such as a neat collapsible panel called TCategoryPanelGroup, TBalloonHints, and Office-2007 style ribbon controls.

The ribbon controls interested me because I am wary of Microsoft’s Office ribbon patent. CodeGear/Embarcadero seems to be wrapping Microsoft’s controls*, as used by the CMFCRibbon* classes, which as I understand it are not the actual controls used in Office 2007 but share their look and feel. You therefore have to agree to Microsoft’s license for the Fluent UI in order to use the controls.

There are also major changes to the DataSnap middleware but DavidI didn’t go into this much in the presentation.

During the Q&A at the end there were the inevitable questions: what about 64-bit (coming in a later version); what about Mac/Linux (nothing to announce); what about the dreadful online help (errrmmm we’re working on it); what about .NET (coming in a later version). Some of the language changes seem to be making ready for .NET 2.0 compatibility.

No announced release date; but the roadmap shows this as a 2008 release; and if it’s being webinared now that suggests it won’t be too long a wait.

Delphi is still absolutely my favourite Win32 development tool and this should be a strong release. At the same time, it is all rather old-school: win32, native code, fat client. You can do web applications in Delphi, and there is an updated “VCL for the Web” in this release, but why would you?

Nevertheless, if there are any Delphi developers still hanging on to Delphi 7 (the last version with the old IDE), perhaps these important language changes along with what is now a mature new-generation IDE will be sufficient to persuade them to migrate.

*Update: Although DavidI said that Delphi’s ribbon controls wrap Microsoft controls, Nick Hodges says here that this is not the case. He is probably right as I’m not sure what controls Delphi could wrap. If the MFC team could not use the actual Office controls, but had to create its own implementation, then I should think a third party would be in the same position. I wondered if the VCL was actually using the MFC code but I doubt that would be straightforward either. This may be a confusion caused by the licensing requirement.

BBC iPlayer supporting H.264 in Flash – what’s the point of downloading now?

The BBC’s streamed catch-up broadcasting, iPlayer, is about to be upgraded to the high-definition H.264 standard, according to this post, from the BBC’s Head of Digital Media Anthony Rose.

He says that the “Play high quality” option will be available “from this week”, though I couldn’t see any sign of it on a brief sampling of available content.

The question: where does this leave the download service, based on peer-to-peer file sharing? This is the thing that caused me considerable hassle this time last year, and which also drew criticism because it is Windows-only.

By contrast, the Flash-based embedded video seems to have performed as smoothly as Flash usually does.

When Flash streaming was introduced, the BBC said that the download option would remain for higher-quality viewing, but with H.264 Flash that argument has little force. It is still comforting to have a downloaded file, in case your Net connection fails or becomes congested, but other than that there is little advantage. My guess is that it will wither. Supporting both must be expensive.

It is unfortunate for Microsoft, whose technology is losing out to Adobe’s at the BBC, particularly since Silverlight would probably have worked nicely in this context. Unfortunately the old iPlayer is not Silverlight, but based on Windows Media Player, known to be hassle-prone as well as being single platform.

Technorati tags: , , , ,

Installing Visual Studio 2008 SP1

First, the patch removal tool, now officially called the “Visual Studio 2008 Service Pack Preparation Tool”.

Wait ages. Useless progress bar stuck at 50%. Wait some more.

Help – it’s asking for the Visual Studio DVD. Hey, at least it proves it is doing something. But where is it? Scrabble round office, eventually find .iso instead and mount it.

Wait ages. We are now over an hour into this install, and haven’t got past the preparation tool yet. Still useless progress bar stuck at 50%.

It’s done at last. Next, mount and run the SP1 iso:

http://www.microsoft.com/downloads/details.aspx?FamilyId=27673C47-B3B5-4C67-BD99-84E525B5CE61&displaylang=en

Wait again. This is when you need multiple computers in order to get on with your work.

Now Windows Update pops up to request a restart. I’m not sure if this is coincidence, or something triggered by the install. It doesn’t seem a good plan to restart when the SP1 installer is still chugging away, so I refuse.

Wait.

Done. Now the installer requests the inevitable Windows restart.

Still need to reinstall Silverlight beta 2:

http://www.microsoft.com/downloads/details.aspx?FamilyId=50A9EC01-267B-4521-B7D7-C0DBA8866434&displaylang=en

That one wasn’t too bad in comparison.

Overall: took longer than I’d like, but it worked.

Is Silverlight evil?

That’s really the question John Markoff is asking in this New York Times piece about the way the NBC Olympics streaming video is putting Microsoft’s browser plug-in on the map. Someone has even popped up to state that this is another go at technology monopoly:

“They’re still playing the same games,” said Michael R. Nelson, professor of Internet studies at Georgetown University. “It’s a way to lock up the content, and it’s not enabling as much innovation as we would like to see.”

It seems to me that Microsoft cannot win here. If the NBC servers were stuttering then it would prove that Silverlight isn’t up to the job and can’t compete. If Microsoft were not doing Silverlight, it would confirm that the company doesn’t grok the Internet and is still stuck in the world of Windows and Office.

As it is, the NBC Olympics streaming video seems to be working pretty well, judging by reports like this from CNET:

The picture quality is quite spectacular. The mist is so real it could not possibly have been photoshopped in there by the Chinese authorities to provide some extra menacing ambience. This makes YouTube seem like student video.

From a PR perspective, accusations of being evil is probably the best Microsoft can hope for.

But is Silverlight evil? I spoke to Dean Hachamovitch, the IE general manager, at the Mix conference in the Spring. My impression was that Microsoft has back-pedaled on improving browser-hosted JavaScript because it would rather see developers target Silverlight. There is some substance to the idea that Microsoft is promoting its own technology at the expense of open standards.

Still, without Silverlight would we all be using the OGG Theora format and the HTML 5 Video tag? In reality, the alternative is Adobe Flash; and the competition is if anything energising Adobe, which is not a bad thing.

Even if Silverlight achieves its aims, and becomes a widely used cross-platform runtime for web applications, I doubt we will see anything similar to the Windows/Office dominance of the nineties. Microsoft’s investment in Silverlight is conceding the point: that the future belongs to cross-platform clients, zero deployment, and both data and applications in the cloud.

According to Markoff’s piece, Adobe’s Kevin Lynch questions Microsoft’s cross-platform commitment, mentioning:

Microsoft’s decision to reserve certain features like 3-D effects and downloading for the company’s Windows Vista operating system.

I think this is a reference to the full WPF (Windows Presentation Foundation), which only runs on Vista and XP. I’m not sure what the “downloading” bit means; but Lynch is right, in that the relationship between WPF and Silverlight must be a subject of intense debate within Microsoft. Cross-platform .NET is a huge step to take, and there must be internal voices questioning why on earth the company is helping its customers to deploy applications that are not tied to the Windows client.

Still, I think that bridge has now been crossed. Nobody wants to build Internet applications that only work on Windows; it isn’t an option. Therefore I doubt that Microsoft will hobble Silverlight in order to promote WPF; doing so would only help competitors. I may be proved wrong; it’s smart of Lynch to draw attention to Microsoft’s conflicted interests.

Silverlight is great work, and only a little bit evil.

Backup: a gap in Google’s online services

Slashdot has a discussion on Google and backup. The question:

I am doing almost all of my computing in the cloud. Google Reader, Calender, Email, Docs and Notes have become my tools of choice … is there a one-touch solution that will take all my data from the various online apps and archive it on my home server?

The answer appears to be “No” – that is, there are ways of doing this with scripts, offline email clients and so on, but there is no one-touch solution.

It strikes me as a valid concern. It is not just a matter of trusting Google not to zap your data accidentally – though Google accounts have been known to disappear. Another scenario is that someone guesses your password, or grabs it via keystroke capture, and deletes stuff on your behalf. It just isn’t sensible to have only one copy of data that matters to you.

Arguably this is one advantage of synchronization services like Live Mesh, but these have a flaw too. Synchronization will happily copy a corrupt document over all your good copies. That’s why I like version control systems – they keep a history.

Even in the admin features of the premier edition, aimed at businesses, I don’t see backup covered.

It can’t be that hard to fix this with something like, say, differential backups from Google to Amazon S3. It would be unlucky to fall out with both companies simultaneously.

Technorati tags: , , ,