Tell me what’s wrong with Microsoft’s Team System

At Microsoft’s Remix08 in Brighton last month, a developer asked about Visual Studio Team System during a panel discussion. What interested me was not so much the question itself, but that after the session she was surrounded by other delegates advising her not to use it. These were people who had tried it, or were using it, but found it frustrating. The general proposal was to use open-source tools instead – things like Subversion and CruiseControl.NET.

I was surprised by the strength of feeling. I’ve looked in some detail at Team System and been reasonably impressed by what it does – but that’s not the same as using it in anger, of course. I admit, for my own work I do use Subversion, just because it is lightweight, works well cross-platform, and runs on my Linux web space as well as locally; but I am not part of a team of developers working on Microsoft platform projects, which is where Team System ought to make sense.

For the sake of balance, I’ll add that I met a developer at the airport on the way to Remix Las Vegas earlier this year, who loves Team System and told me that it is Microsoft’s best product.

I’d love to hear in more detail what users think of Team System. Is it broken, or does it depend on how it is set up and maintained? What are the key things that Microsoft needs to fix? Or is it just great, and those complainers in Brighton atypical?

When will PHP Developer Tools be mainstream at Eclipse?

I’ve been doing a little PHP work and enjoying it; I like PHP 5.x much better than earlier versions. My PHP development setup is based on Eclipse and the PHP Developer Tools project, or PDT, and one thing I noticed when I set this up is that it is awkward to use PDT with Eclipse 3.4, or Ganymede. I ran into problems again when I updated my Ganymede Eclipse to the latest releases, this time on Windows as it happens. PDT stopped working, and I had to download a newer “integration build” of PDT as well as an update to the Eclipse Dynamic Languages Toolkit (DLTK), using a manual download and import process instead of the built-in Eclipse online update. I also had to remove the Ruby Development Tools as these relied on an earlier version of the DLTK; there might be a way round this but my priority was to get PDT working.

I’m getting this pain because I want to use PDT 2.0 and Eclipse3.4, instead of the older PDT 1.0.3 which has an all-in-one download based on Eclipse 3.3. “All-in-one” means that you download a bundle which includes both Eclipse and PDT, and treat it as a separate standalone IDE. The question though: why wasn’t the PDT properly integrated with Ganymede, which brings together multiple Eclipse projects with the promise that they will all work together?

I looked in the Eclipse PDT newsgroup and found some discussion on the subject. Apparently the PDT team felt it was just too difficult to manage the dependencies. More depressing is that apparently the team feels the same way about Galileo, the follow-up to Ganymede expected in June 2009. It means that the PDT stays outside the mainstream of Eclipse projects, reducing its visibility.

Conspiracy theorists might surmise that major PDT contributors like Zend, which has its own commercial IDE called Zend Studio which uses both Eclipse and PDT, might enjoy keeping the free version low-profile. That (or some other reason) might also explain why Zend Studio uses a 1.x version of PDT along with Eclipse 3.4, which is not meant to work. It turns out that Zend Studio uses PDT 1.0.5, whereas the latest public download (unless you go directly to the source) is 1.0.3. If 1.05 works fine with Eclipse 3.4, why isn’t the public all-in-one based on this combination?

I like the PDT, and my patched together Ganymede + PDT 2.x works very well. Debugging seems more stable since I updated it. Personally I’d like to see PDT get more prominence within the Eclipse community, and for it to be packaged as part of Galileo rather than being left on the sidelines.

Technorati tags: , , , ,

SQLite and Delphi 2009

I created a simple Delphi wrapper for SQLite, the popular open source database library. I’ve just updated it to work with Delphi 2009 – I’m not happy with what I’ve done, because I’ve changed a bunch of declarations from PChar to PAnsiChar and from String to AnsiString, just to get it working quickly. SQLite is fine for Unicode, so the next step is to revise it properly to support Unicode … when I or someone else has time.

It was interesting to do some work with Delphi 2009. It has the old problem: out of date documentation. Here’s what it says about PChar, in the entry on pointer types:

The fundamental types PAnsiChar and PWideChar represent pointers to AnsiChar and WideChar values, respectively. The generic PChar represents a pointer to a Char (that is, in its current implementation, to an AnsiChar).

Further, if you have the following code:

var
strTest: PChar;
begin
strTest := StrAlloc(6);
strcopy(strTest,’Hello’);
strdispose(strTest);
end;

and hover the mouse over strTest in the editor, the pop-up tip says:

strTest – System.PAnsiChar

However, this is wrong. In Delphi 2009, a generic PChar is a PWideChar. Here’s the code in SysUtils for StrAlloc:

function StrAlloc(Size: Cardinal): PChar;
begin
{$IFDEF UNICODE}
  Result := WideStrAlloc(Size);
{$ELSE}
  Result := AnsiStrAlloc(Size);
{$ENDIF}
end;

UNICODE is defined in Delphi 2009, so StrAlloc returns a PWideChar.

Technorati tags: , ,

HP laptop go-slow caused by power supply

Wasted some time recently looking at an HP Compaq NX7300 laptop, with Vista, that was running very slow.

No, not just normal Vista sluggishness. Really slow, as in you click the Start menu, wait a bit, and eventually it opens.

Temporarily disabled everything we could think of using msconfig (System Configuration Tool), still slow.

Checked the event log for disk errors, nothing wrong.

All very tedious as any actions took much longer than usual.

Found someone with the same problem on HP’s support forum here – but as so often with the Web, no solution is reported – though the guy does say, “can I assume that the cooling / cpu / power is defective”?

Called HP, and the guy diagnosed a faulty hard drive, though I was sceptical since his argument was that the self-test completed more quickly than expected, though it did not report any errors.

While scratching my head over this, I recalled that this laptop has what HP calls a “Smart AC Adapter”, which has an annoying proprietary connector featuring an additional central pin. According to this thread it actually supplies two separate power lines. The discussion includes this remark:

I tried to substitute the original HP AC adapter, with a general purpose AC adapter, applying a resistor divider between input cylinder- central pin-output cylinder, in order to get the second voltage.  But the laptop did not function normally: it was very slow

and someone adds

The slow function of the system with the alternative power source may be due to the system’s picking up a low voltage on the ‘monitoring’ pin.  This would indicate a low battery or weak charger and the system responded by cutting back on CPU/mainboard frequency to conserve power.

Could this be a clue? We started the laptop on battery power; suddenly it worked fine again. Plugged in the power cable, it slowed down. Removed the power cable, it speeded up again. Bingo.

New power supply is on order. It occurs to me that this could still be a problem with some internal connection, but I’ll be surprised if the new mains adapter does not fix it. Just occasionally the reason for a slow computer is nothing to do with Windows.

Technorati tags: , , , , ,

Losing your religion: how to survive the tech downturn

I posted a piece on itjoblog summarizing and reflecting on Tim Bray’s tips for surviving the tech downturn, if you are a software developer.

Yesterday was another grim one on the world’s stock markets; this morning the London stock exchange is down another 3.74% at the time of writing. I’m not seeing much reason to doubt Bray’s pessimism. Still, there’s always tomorrow.

Technorati tags: ,

Flash Marches On: We are upgrading the Web, says Adobe

Adobe has just released version 10 of the Flash runtime, the piece which is now at the heart of many of the company’s other products. It is extraordinary to recall that there was no Flash in Adobe until 2005 and the acquisition of Macromedia. Flash is now Adobe’s platform, and much of the output from other products like Photoshop or Creative Suite ends up as Flash content. Before 2005 you could argue that PDF was Adobe’s platform; it remains important, but now we are seeing Flash encroach on that territory with new typography and text-handling features forming one of the key advances in Flash 10. Adobe’s online word processor, Buzzword, is based on Flash and not PDF; whereas in the old world I might send you a link to a PDF, or attach it to an email, now I might send a link to a Buzzword document. I’d perhaps more likely send a link to a Google doc, of course, but you can see where Adobe is going with this.

The thing that Adobe talks about most in Flash 10 is Pixel Bender, formerly code-named Hydra, a graphics programming language that enables custom filters, effects and blend modes. Translation: fancy video effects. There is also an improved drawing API, 3D effects, more use of hardware acceleration, and new sound APIs. Game developers will love it, so will those designing Flash ads.

The other thing Adobe emphasises is reach. Flash is on 800M devices, we were told at the online press briefing yesterday, with 1 billion projected for 2009, and delivers 80% of the web’s video. I asked how many of the 800M were Flash 9 or better; I did not get an answer to the exact question; Adobe’s reply talked only about web-connected PCs. There is more of a problem with devices; Flash on my Smartphone (Windows Mobile 6) is a terrible experience.

It can’t be a coincidence that Microsoft has delivered the final Silverlight 2.0 runtime at almost the same time as Flash 10 appears. A few observations on Flash vs Silverlight. Microsoft is the underdog here, in respect of reach and of course adoption, though that’s hardly a surprise considering Silverlight is new and Flash has been around for years. Still, why would a Flash developer would migrate towards Silverlight? I’m not seeing much sign of that.

Despite their obvious similarities, Flash and Silverlight are being presented in different ways. Adobe puts the emphasis on multimedia capabilities, while Microsoft highlights application capabilities. In fact, I think of Flash as a multimedia runtime with application capabilities, whereas I think of Silverlight as an application runtime with multimedia capabilities. Adobe treats the application aspect as a separate topic, to do with Flex and Flex Builder, whereas it is central to Microsoft’s Silverlight story. Both companies play to their strengths; things look better for Microsoft if you talk about Visual Studio versus Flex Builder, rather than Silverlight versus Flash. Equally, if you position CS4 versus the Expression suite, it looks pretty bad.

The Flash runtime is around 1.8MB, whereas Silverlight is around 4.5MB. Personally I doubt that is of much significance, except for users on dial-up connections. They are both small enough.

Kudos to Adobe for delivering Flash 10 for Linux at the same time as for other platforms. I successfully installed this on my Ubuntu system, though the process is not as smooth as on Windows. This contrasts with Microsoft’s uncertain Linux support with Silverlight/Moonlight.

Finally, a comment from the spokesperson the press briefing has stayed in my mind. “We are able to upgrade the Web very quickly”, he said. Does the Web belong to Adobe, that it can upgrade it?

BBC adopting Adobe AIR for platform-neutral iPlayer downloads

Just noticed that the BBC is adopting Adobe AIR to create a platform-neutral download client for iPlayer. Erik Huggers says:

Today, we are announcing that in partnership with Adobe we are building a platform-neutral download client.

Using Adobe Integrated Runtime (AIR), we intend to make BBC iPlayer download functionality available on Mac, Linux and Windows for the first time later this year. Whatever platform you use, you’ll now be able to download TV programmes from the BBC to watch later.

This follows much criticism of the BBC for its original Windows-only iPlayer.

Looks like Adobe has the BBC in its grip, technology wise, having ousted Microsoft from iPlayer completely – though I believe it is still experimenting with Silverlight’s Deep Zoom.

Technorati tags: , , , ,

Silverlight on Linux: Moonlight or moonshine?

Microsoft’s press release for Silverlight 2.0 says this:

Cross-platform and cross-browser support. This includes support for Mac, Windows and Linux in Firefox, Safari and Windows Internet Explorer.

The use of the present tense for Linux support is … misleading, to be generous. I tried visiting the official Silverlight site on Ubuntu. Here’s what I’m offered as downloads:

Hmmm. If I go to the official Moonlight site, I see this:

Note that not even Silverlight 1.0 is fully released; further, it says “no video or mp3 playback is enabled”. The installers are said to be incomplete.

I asked about this at the press conference; the answer was “we’re working on it” and “as soon as possible” and “Miguel is speaking at PDC”.

That’s fair enough and I understand that these things take time. But if you read the press release, you might suppose that a Linux user could use it now. Other than for geeky and experimental users, that is not the case.

Silverlight 2.0 is released, Eclipse tools for Silverlight announced

Microsoft’s Scott Guthrie has announced the final release of Silverlight 2.0, its browser plug-in which includes a cross-platform implementation of the .NET runtime as well as a multimedia rendering engine. It will be available for download tomorrow.

Not really a surprise, but nonetheless a significant moment for Microsoft. I have been watching the project closely since it was first announced at PDC 2005 as Windows Presentation Foundation Everywhere. I am particularly interested in the cross-platform aspect. When .NET was first released in 2001, as Microsoft’s answer to Java after falling out with Sun, it had obvious cross-platform potential, yet the company held back form any commercial implementation outside Windows. Miguel de Icaza took independent action to create an unofficial open source Linux implementation, that also runs on Mac and Windows, called Mono. Microsoft was initially wary of Mono, but in my view the company had more to gain than to lose by supporting it. That now appears to be recognized, with Microsoft working formally with Mono to support Moonlight, Silverlight on Linux, and to provide it with multimedia codecs.

Microsoft has also announced Eclipse tools for Silverlight, in partnership with Soyatec, the idea being to enable Java developers to develop for the Silverlight client within Eclipse.

One clarification: although the press release says “This includes support for Mac, Windows and Linux”, the Mac support for Silverlight 2.0 is Intel Mac only, and the Linux version lacks multimedia support and the 2.0 version is described as “Experimental”; it is a long way from full release. Although Microsoft is now working with Mono, cross-platform currently means Windows and Intel Mac, though this does account for a large proportion of active Web users.

Press release is here.

Technorati tags: , ,