Category Archives: software development

Free final Vista and Office 2007 for UK developers

Here’s a blog you might want to subscribe to if you are a developer based in the UK. Ian Moulster says you can have a free copy of the final release of both Vista and Office 2007 if you:

take part in our UK developer online launch event on January 19th and 20th (yes, I know the 20th is a Saturday).

No, I don’t know what “take part” means; but there are 1000 freebies on offer so I doubt it is too arduous.

Microsoft still recognizes the key role of developers in technology adoption.

Technorati tags: ,

Developers quick to adopt .NET 2.0, slow to leave Visual C++ 6.0

The Code Project is a popular resource site for Windows developers. It has polled its users on what programming language they use; see here for the details. Three points to note:

  • Visual C++ 6.0 still has high usage – nearly on a par with Visual C++ 2003 and 2005 combined. 19.78% vs 20.34% at the time of writing. I wonder if C runtime issues are a factor here. Visual C++ 6.0 is the last version that links to the standard mscvrt.dll; see Visual Studio 2005 DLL Hell for more details. That’s why I still have it installed on my machine. If that’s not it, I’d be interested to know why so many are still using this old product.
  • By contrast, there has been rapid C# 2.0 adoption. 18.93% C# 1.x versus 44.32% C# 2.0. I can understand this; .NET 2.0 is considerably improved over 1.x and there is little reason not to switch.
  • Finally, there is a decent showing for Delphi at 24.54%. No surprise here; it’s a fantastic tool for Win32 coding. I guess the problem for Borland is that many are still using Delphi 7.x or earlier versions.

Note that the percentages add to more than 100% because programmes use mulitple tools; and that this is not a reliable snapshot of anything other than Code Project’s community.

On deceptive error messages

If error messages told you what was really wrong, developer and admin productivity would soar.

I lost hours of my life over a problem with ntbackup. The error message was “C is not a valid drive or you do not have access”. Three different Microsoft support engineers gave it their attention, but we never identified the true problem. The drive was valid, of course, and the user had full local admin rights.

More recently I was working on my Common Feed List blogreader and hit this unusual error:

Hmm, “Listbox has too many items” – yet the error fired on the 8th item being added. After scratching my head for a few minutes, I figured out the problem: a blog with items that have an empty title element. It’s an atom feed, and the XML looks like this:

<title mode="escaped" type="text/html"/>

The IE7 RSS Platform API converts this to a null value in the item’s Title property. I was trying to render this as a string in the list box. Poof.

Digression: should the RSS Platform treat the empty element as null, or as an empty string? XML is not good at making this distinction. Since the title element in this case is present, but empty, I tend to the view that it should be an empty string; but others more expert may disagree.

So I fixed the code to check for null and convert it to an empty string and all was well. No thanks to the error message.

Technorati tags: , ,

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.

http://www.itwriting.com/s3.php

Tim

Technorati tags: , ,

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

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:

Salesforce.com, Apex and Web 2.0 vendor lock-in

There’s a debate under way about whether the new Apex language from Salesforce.com 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 Salesforce.com 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. Salesforce.com 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 Salesforce.com deployment. Do you trust Salesforce.com 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 Salesforce.com were to run into problems.

Tags:

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.

Tags: