Software Development

Programming news: Rails 3.0, F# 2.0, Dryad, NuCaptcha

Read about Google App Engine 1.3.6, Visual Studio Lab Management, adaptive software, debugging Silverlight in Firefox, XAML multitargeting, and more.


Language/library updates

Rails 3.0 released

Rails 3.0, which has been brewing for a while now, is finally released, and there are loads of new features and changes. I plan to write an in-depth TechRepublic article about Rails in the near future.

Google App Engine 1.3.6

Google released a new version of its App Engine (now 1.3.6); it includes multi-tenancy support and a number of other nice features.

F# 2.0 for free

If you wanted to try out F#, but you don't want to pay for Visual Studio Profession 2010 (or higher), the F# team has just released a set of free tools for working with it, including an IDE.

Tools and products

Embarcadero RAD Studio XE

Embarcadero Technologies has released the latest version of RAD Studio called RAD Studio XE. I had the chance to talk about the impending release with Mike Rozlog, the Senior Director of Delphi Solutions. There is a lot to like about the latest version. For instance, they exposed more of the features to the command line for integration with third-party tools, and many more third-party tools are brought into the product. In addition, the Delphi for PHP tool has been updated and renamed RAD PHP.

SmartBear AQtime 7.0 Pro

SmartBear released version 7.0 of its AQtime Pro profiling tool. It works with Visual Studio 2010 and Embarcadero RAD Studio XE (the Standard version is bundled in with RAD Studio XE).

NetBeans 6.10 Milestone 1

The first milestone release of NetBeans 6.10 is out, with a bevy of new features and improvements.

Facebook shopping cart roundup

Search Engine Land has put together a good comparison of different Facebook shopping cart solutions.

Dryad heading for commercial release

Microsoft's Dryad project is getting closer to a full release in 2011. Dryad is an interesting distributed computing framework for .NET, and it aims to do for distributed computing what Parallel Extensions has done for parallel processing.

SilkTest 2010 and SilkCentral Test Manager 2010 released

Micro Focus released the latest versions of SilkTest and SilkCentral Test Manager. New features include story-driven tests, and integration with Visual Studio 2010 and Eclipse.

Visual Studio Lab Management released

Microsoft announced that Visual Studio Lab Manager is now available. This tool, which adds on to Visual Studio 2010 Test Professional and Ultimate editions, will allow you to quickly and easily build up and break down testing environments.

Tips and tricks

Debugging Silverlight in Firefox

Tim Heuer has a quick write up on how to do Silverlight debugging in Firefox.

Visual Studio 2010 debugging tips

Scott Guthrie has a very useful piece that shows off how to make debugging easier and more productive in Visual Studio 2010. Many of the tips are applications in older versions of Visual Studio as well, and even some other IDEs.

Interesting CAPTCHA system

There's an interesting CAPTCHA out there called NuCaptcha. It uses a video instead of a picture, and it is much easier for a person to read. (Found via Geeks are Sexy.)

Office 2010 programming help for VB.NET developers

Microsoft has posted a bevy of tutorials, presentations, and more for VB.NET developers to start programming with Office 2010.

Adaptive software takes a baby step

A couple of years ago, I predicted that the next real revolution would be the ability to use mobile devices as desktop and laptop replacements by having docking stations and applications that could adjust on-the-fly to the current capabilities. This is apparently called adaptive software. A project called MUSIC is an interesting proof-of-concept for this idea. I suggest that you keep an eye on this space long-term.

WCF Routing + RIA Services

Yavor Georgiev has written a tutorial showing how to get RIA Services working with WCF Routing.

XAML multitargeting

Pete Brown has posted his example code and presentation showing how to write XAML applications that work in WPF, Silverlight, and WP7.

MSDN ScriptJunkie for Web developers

MSDN has added a new section called ScriptJunkie, which targets developers working with HTML, CSS, and JavaScript.


Embarcadero RAD Studio XE Tour The Embarcadero RAD Studio XE Tour kicks off today in Orange County, CA. During the Tour, speakers will show off the latest version of RAD Studio. There are currently 17 events scheduled for Canada and the United States, so check the RAD Studio XE Tour schedule to see if there is an event near you. Eclipse Government, Enterprise events

There will be three days of events in Reston, VA for Eclipse users in October. The first day (October 12) is Eclipse in Government Day, followed by the two-day (October 13 and October 14) Eclipse Enterprise Days.


Disclosure of Justin's industry affiliations: Justin James has a contract with Spiceworks to write product buying guides; he has a contract with OpenAmplify, which is owned by Hapax, to write a series of blogs, tutorials, and articles; and he has a contract with OutSystems to write articles, sample code, etc.


Justin James is the Lead Architect for Conigent.


Unfortunately, I'm old enough to remember the days of the game computers, the birth of the IBM PC jr., IBM PC, IBM AT, 386, 496 etc. The internet has brought a new sense of everyone scrambling to come up with thier language, method, or product that will take the market and become the product of choice. These were companies in pursuit of success and IBM was the holdout company that wanted to corner and control everything while MS became the hero of the programmer and served as a check valve against IBM's force of will. Now, MS is in IBM's former position trying to control and corner the industry through shear force. Open source is now the MS of today that tries to be a check valve to MS. MS is truely the programmer's enemy now and they are blocking innovation and the evolution of the technology. You have to give Bill Gates credit, because when he realized he'd made a mistake about the internet's importance he turned his mighty legion on taking it and full control of it because he realized that some day it would rule the day. So, he hit with everything he could to win the browser wars and now, we have MS controlling it all with the exception of some open source camps. The browser is key to internet and if MS controls the browser, they control the world. The early days saw many a company come up with some good ideas and hardware in the early days was used much more effectively by the software than since. However, after all the competition and all the effort by many, only a few things came out of the it all. Now, it's been led down the MS garden path to where we don't get anything or do anything unless MS allows it. The browser was originally developed to present data for output more or less like nroff or proff. However, that all changed when the internet changed from presentation to interactive but we still operate with the tools of presentation. In the early days of the PC, many languages and capabilities were forming to store data, present it, interact, save it back again. Products like basic, paradox, forth, pascal and xbase along with many others made these simple processes work and you didn't have to be research scientist to make them work. Now, we have the browser which is supposed to become the new desktop and it can't even do the simplist thing that was so common in these older platforms, including old cobol. Why? Because it's the Gates effect on the internet. Hold back, control, profit? It's about time we get back to the good old days when competition and invention were rampart and not waiting for MS to allow it.

Mark Miller
Mark Miller

Maybe I'm pre-empting your review, but I saw some interesting things. First is this example: users = User.where(:name => "david").limit(20) users = users.where("age > 29") # SELECT * FROM users # WHERE name = "david" AND age > 29 # ORDER BY name # LIMIT 20 users.order(:name).each { |user| puts } The way this works reminds me of an experiment I did in DSLs 3 years ago on CGI requests in Smalltalk: query := (WebQuery fromAddress: '') where: #format is: 'block'; where: #html_tables is: 'no'; where: #catalog is: 'no'; where: #delimiter is: 'tab'; where: #print_line_length is: '400'; where: #level is: '1'; where: #series_id is: 'CES0000000001'; where: #year is: '2001-2006'; yourself. It had the same semantics, where the effect of using "where" is cumulative. The parameters have an implicit AND between them. Also noticed this: Client.where(["orders_count = ?", params[:orders]]) Client.where(["orders_count = ? AND locked = ?", params[:orders], false]) I looked at that and thought, "These are lambdas," but they're cast as arrays. In Smalltalk I could imagine doing something like: client where: [:orders_count :locked | orders_count = params at: #orders & locked = false] This would require "client" to introspect the lambda for its parameters to see which fields you're talking about, but I'm sure it could be done. Ruby has had a lambda construct from the beginning. As I was reading the blurb on Rails I was wondering why they didn't just do this. I remembered, though, that the designer(s) of Rails wanted to keep the structures fairly familiar to traditional programmers so it wouldn't turn them off. A lot of programmers are used to "string queries". They're used to numbers, strings, and arrays. That's about it. Too bad, as far as I'm concerned. .Net introduced LINQ queries a couple years ago where all this stuff is inlined. That idea is nicer.


Don, I understand your concerns. I too have been around in this business long enough to remember the TRS-80, Commadore, and the intro of the Mac and the PC. I programmed in COBOL for many years, and I still think it's a good language. MS was the company to either love or hate in the 90's, but I don't believe there is (as much) justification for that now. MS is a friend of the programmer - as long as you work in an MS environment. Why not? IBM is still a closed world; I know, I used to work for IBM. The lack of innovation comes from open standards that no one owns. No one owned COBOL - it was an open standard, and innovations to the language came slowly. It's not in any company's interest investing to innovate in a language where they may not see any benefit, because any company can use that innovation. So, change plods along slowly. The whole open standards movement is just a way for competitors to even the playing field against a company that owns a lion share of the market, MS for example. While there are benefits to having a standard language - as in COBOL, the downside is the lack of innovation. Since when is it wrong for a company to make money selling a proprietary product that meets a need? Do you work for free? Perhaps you'd care to spend all of your free time working on innovatons for Ruby or whatever and then give that work away for free? Ultimately, the cost of any tool is small compared to the cost/time to learn the technology. This is certainly a point to favor standardization. But at the same time, innovation will suffer, in my humble opinion. :)

Justin James
Justin James

I have a call set up for tomorrow afternoon with one of the Rails developers, I will gladly ask details about this. :) J.Ja

Editor's Picks