Widgets March 2011

Delphi and Google Words

By Nick at March 31, 2011 11:43
Filed Under: Delphi, TechBiz

Hey, if you do a Google Search on “Borland Delphi”, you get a result that find kind of pleasing:


Nice to see Embarcadero grabbing up a good collection of words and searches on Google and directing people to the right place. 

Flotsam and Jetsam #28

By Nick at March 31, 2011 02:36
Filed Under: Delphi, Flotsam and Jetsam
  • Delphi Book of the Week:  Cary Jensen has a new Delphi book out:  Delphi in Depth: ClientDatasets.  It’s really good.  I tech reviewed a few of the chapters (a lot fewer than I should have, but hey, I helped…) and can tell you that it is thorough, complete, easy to read, and certainly the best reference out there for the most important component for Delphi database developers.  I recommend that you buy it.
  • Lachlen Gemmell emailed me and let me know about his new Delphi site, TIndex.  According to Lachlen, it’s a “It's a Delphi specific web directory site. Right now the content covers language features introduced since Delphi 7 but I'll be expanding that over the coming months as well as transforming the site from the static layout it is now to a dynamic site that will accept link contributions from the community. “
  • The Hudson/Jenkins Drama continues, and gets more interesting!  What to do?
  • The indefatigable Uwe Schuster has an interesting list of QualityCentral feature requests that you might consider voting for.  (Remember, you up to have 10 votes per item, so don’t hesitate to use them).
  • I love the pure genius of this.
  • This is a very interesting thread on the Delphi forums.  A guy named Nils Dzubiel posted that he has a way to get Crystal Reports to work with Delphi 2009 (yes, the thread is that old.)  He posted his message in November of 2008.  Since then, there has been a steady stream of people posting a reply to his original message.  I can imagine people looking for ways to talk to Cristal reports with Delphi, finding the thread via Google, and then responding in hopes of Nils seeing it and responding.  It looks like Nils hasn’t been back to the newsgroups since early last year, so I’m curious if these pleas are answered. Anyone know what happens if you post a follow up to this two year old message? 
  • Wow.  Impressive. How does she do that? Is that all hers?  Is there something in there?  How did she get into the car to drive to the photographer’s?  The mind boggles.

Some Food for Thought About AppWave

By Nick at March 30, 2011 01:40
Filed Under: Delphi, TechBiz

Here are some facts, thoughts, and a conclusion concerning AppWave.

  • Embarcadero has announced their latest thing called AppWave
    • Marco has a pretty good article about it on his blog. 
    • It appears to be sort of a “AppStore for Windows”.  You can sign up for the AppWave store and publish your wares.  It looks like Embarcadero will provide the tools to virtualize your application, as well as to provide sales support.  You just write the app, post it, and watch the cash meter go up.
  • Amazon has an interesting announcement this morning,
    • They are creating a “CloudDrive” for storing your music out in the cloud.  You’ll be able to play your music from any computer, as well as from your Android phone.
    • You can get 5GB for free (I signed up already).  You can get more storage by buying songs and music from them, and the storing of Amazon-purchased MP3’s doesn’t count against you.
    • This follows closely on their announcement last week of their own Android marketplace.


Amazon started out as bookstore online, but they have expanded to selling almost anything that can actually be shipped  via UPS or Fedex, and more importantly – electronically.

And in the last few years they’ve moved beyond even that to being a leading player in the cloud space.  They have their own digital book platform in the Kindle. They are knocking on Netflix's door with their own Instant Video offering. Their EC2 platforms are pretty cool – you can basically own a computer out on the cloud for a very reasonable price – probably less than you would spend on purchasing and maintaining a physical box.  You can remote into the machine and manage it like it was your very own.  You can clone the machines with a click of a button.  Pretty powerful stuff.  And a pretty compelling, forward thinking business. 

I think it is safe to say that Amazon is not fooling around.

Apple and Google both should be looking over their shoulders.  Apple should be concerned about Amazon cutting into the iTunes arena, and Google should be feeling the pinch on the cloud computing side of things.  Amazon is coming strong into their space. 

Okay, so here is the conclusion I promised:  One of Embarcadero’s end-game plans for AppWave is to get bought by Amazon. 

Amazon is the only one of the players in this space not tied to their own OS, and thus can be the one that provides an AppStore for Windows.  (Google is OS neutral at best, but obviously interested in promoting Android and ChromeOS, and Apple, well, they are Apple, aren’t they.)  AppWave theoretically could be something that launches Embarcadero into the big-time, but it’s also something that the big-time players could very well want to buy.

And of course, one has to believe that Microsoft won’t be silent in all of this.


The First Thing You Should Do

By Nick at March 28, 2011 12:47
Filed Under: Delphi, Software Development

We’ve all done it:  File|New|VCL Forms Application.  Then we drop a button and a memo, double click on the button, and write some code that prints out to the TMemo. You start out just “testing something out”, but then you end up working on a routine, or maybe even a class or a collection of classes.   Your “tests” are runs of the app, pushes of the button, and then looking at the output in the TMemo on your form.


Sometimes you were just trying something out, but sometimes the result actually ended up being useful. 

At some point, though, you probably realized that this was a bit “amateurish” – not what “realy developers” do.   Pretty soon you discovered that all the cool kids did their horsing around in Console Applications, using WriteLn to output “SUCCESS” or “FAIL” or other data, depending on how things went for testing.  This worked out well – you could even set up a basic test harness to track the output by diverting the output somewhere it can be tracked.

Console applications are sexy and lean and mean.  You were cool.   You would eventually work what you were testing out up into a class and writing a bunch of sample code to make things work.   You probably ended up with a separate unit that had a class in it and a console application that called into that unit.  Way cooler that  your app with the button and the TMemo.

Okay, so that is all well and good.  But I’m going to argue that there is even a more sophisticated thing that we should be doing when we need to build something new – something that is designed specifically for proving that something works:  DUnit.  That’s what the really cool kids are doing. 

If you are creating something new, and there is even the slightest chance that it will end up being real and used in production, the first thing that you should be doing is not a simple form or a console application, but a DUnit based application.  This way, you can easily write tests to define how the thing you are writing should behave.  You  almost certainly end up writing a class (and you do put your functionality in classes right?).  You can then play around with that class, add tests, and see how things work.  You’ll get that beautiful green bar sliding across the DUnit Runner app, and you can continue to work up your class, add tests, and make changes with confidence as you work on stuff. Eventually you’ll end up with a tested class that you have confidence in.

It’s the ultimate way to “test something out”.  (Yes, I’m trying to sneak in the back door to get you to do Test Driven Development.)

DUnit ships with Delphi, and Delphi provides a nice wizard for creating a new DUnit application.  So there’s really nothing stopping you from doing DUnit first.

Flotsam and Jetsam #27

By Nick at March 01, 2011 14:07
Filed Under: Flotsam and Jetsam
  • Cary Jensen and Marco Cantu are getting ready to put on four of their Delphi Developer Days events.  I’ll be returning to my place of birth to speak at the one in the Baltimore.  I’ll be talking about Unit Testing with Delphi and DUnit.  I’m really looking forward to it, and if you are on the East Coast, I hope you can make it. Otherwise, I hope you can make it to another one of the three events. 
  • Blog of the Week:  If you guys aren’t reading The Delphi Hater’s Blog, then you are missing out.  This guy is a championship calibre ranter.  Great stuff.
  • Inspired by RADPlates, I’ve put my Live Templates Scripting Engine on BitBucket.  It is not real clean code right now – it allows you to insert the current date, time, and datetime into a script.  It includes example templates that replace “date” with the current date, for instance.  You can specify the Delphi formatting string for the date as well. (Same for ‘time’ and ‘datetime’).  I can see this being used for defining comments, TODO items, etc.  I think I’ll be turning my attention to this for a while now that THTMLWriter has reached a good stopping point.
  • As I’m sure you know, ChristChurch, New Zealand was recently hit with a devastating earthquake – much of the city has been destroyed.  There are a lot of developers in New Zealand – many of them Delphi developers – and they are banding together to help.  Dave Clegg is from New Zealand, and he’s posted about how you can do that – by buying a cool application! You can go to and purchase an app, and 100% of the proceeds will go to Earthquake relief.  Many of you were so generous after the Haitian Earthquake (that was a lot of fun for a good cause) and so I hope we can be equally as generous to the folks in New Zealand.

My Book

A Pithy Quote for You

"When things go wrong in your command, start searching for the reason in increasingly larger concentric circles around your own desk."    –  General Bruce C. Clarke

Amazon Gift Cards

General Disclaimer

The views I express here are entirely my own and not necessarily those of any other rational person or organization.  However, I strongly recommend that you agree with pretty much everything I say because, well, I'm right.  Most of the time. Except when I'm not, in which case, you shouldn't agree with me.