Nick Hodges

Random Thoughts on the Passing Scene #143

06
Feb
  • Hey, feel free to weigh in on Delphi as your favorite language over at StackOverflow. Hat tip to Moritz Beutel for his answer.
  • The Haitian Relief Auctions are going like gangbusters.  We even made the Santa Cruz Sentinel!  (Way to go, Anders! And hey, I even got my name in the papers!)  Many of the items end on Sunday evening here on the US west coast, so you only have a little bit of time left to bid.  But we have been adding items as the week goes on, and we will be adding more this week as well, so if you want to  jump in, please feel free. (For instance, Anders just added this “only one in the whole world” Borland Skateboard! )  We are very grateful for all the bidding that has gone on so far, as are the people of Haiti, I’m sure.
  • Don’t freak out too much, but I am actually doing some coding for the next release. Well, I’m actually adapting some great work done by John Kaster and making it fit into the RTL, as well as componentizing it.  Anyway, as I look at it, I realize that it is a good opportunity to use class constructors.  But I wasn’t 100% sure on how they worked, and luckily for me, Allen wrote all about it while back.  This is a pretty cool feature, so if you haven’t given it a look, you should.
  • WooHoo!  I finally got my first gold badge on StackOverflow
  • As I’ve mentioned before, we are cleaning up and generally getting rid of things in anticipation of moving to new offices at the end of March.  Some of these guys around here have been in their offices for a while, and so when they start excavating, they find some interesting things. Chris Hesik found a copy of an original marketing analysis for the Pascal Language from 1993.  Pretty fun to read – especially given that I created a Windows95 Virtual PC and put Borland Pascal for Windows on it.  I’ll be loading up Delphi 1.0 this weekend.  Man, how did we ever get any work done with those basic tools?  ;-)
  • Alex has been busy improving the amazing DeHL framework.  He’s working on an object serialization framework.   If you haven’t taken a look, you should.  Very impressive stuff.  We are quite happy to have Alex on our RTL team now.
  • Robert Love has been on the bleeding edge of using Delphi 2010’s new RTTI features.  He’s done some pretty cool stuff with it – attributes, databinding, and more.  Here’s a look at how he’s using all this new power to create a prototype for an object binding framework.

Random Thoughts on the Passing Scene #142

03
Feb

Haitian Relief Auctions are Live

01
Feb

Okay – the Haitian Auctions are live! Three pages of historical goodness and fun, all for a good cause – with more to come, I believe.

Note, that even though the auctions state:

“90% of the final sale price will support Clinton Bush Haiti Fund (Small deduction may apply. Learn more)”

all the proceeds for the auctions go to Haitian Relief.  We had to “hold off” 10% to cover PayPal expenses, handling costs, etc.

There are some pretty cool things in the auction. Let me highlight a few of them:

  • Haiti Relief: Borland T-Shirt Signed by the Delphi Team – I won this T-Shirt at the Borcon where Delphi 8 was released.  It is signed by the Delphi team at the time.  I won the shirt by answering – at the Meet the Team event — the question “What day was Delphi 1 released?”  (February 14, 1995 for  you trivia buffs).  I remember that Dr. Bob really wanted the shirt, so I expect a big bid out of him.  ;-)  Note that the shirt has never been worn, and I’m happy to donate it to the cause.
  • A shrink wrapped copy of Turbo Pascal 3.0 – Nice!  This was a classic version – the last one to produce COM files.
  • Haiti Relief: Borland Suede Varsity Jacket – I won one of these at the second to last Borcon in the Borland Bucks Lottery at the very end.  I saw them and really wanted one, and was excited to have a chance to win. And this is a true story:  I was sitting in the middle of everyone at the final keynote, and they started drawing names for the jackets.  First, the guy directly in front of me wins.  Then, next, my friend Bryan Bushay who was sitting right next to me won.  And I’m like “Hey, I’m going to win one for sure”, and next up?  Me!  What are the odds?  And just so you know, this is a really nice, high quality jacket.  I wear mine all the time.
  • And finally, I’d be remiss if I didn’t mention the first ship copy of my favorite discontinued Borland product of all time: Intrabuilder. Sigh.  That product was ten years ahead of its time.

Anyway, thanks for your consideration.  I encourage you to bid generously– we’ll ship this stuff almost anywhere in the world – and it is all for a good cause.    And if you have any items yourself you’d like to donate, let us know – we’ll make it work somehow.

Haitian Relief Auction: Sneak Peak

30
Jan

Anders Ohlsson has posted a couple of “sneak peak” auctions to make sure that our system is working. 

http://shop.ebay.com/andersohlsson/m.html?_nkw=&_armrs=1&_from=&_ipg=25

Bid early and bid often!  Look for more opportunities next week.

Buy Cool Old Borland Stuff, Support Haitian Relief

27
Jan

As some of you may know, we are moving our offices to a new location here in Scotts Valley.  This beautiful, big building we are currently in (and that was built and owned by Borland for many years) isn’t matching up to our needs anymore, and we are moving to a shiny new place very nearby.  (Closer to food for lunch!  Yeah!  Farther from the gym for Lunchtime hoops! Bummer!  Well, not much father. Anyway….) 

So when you move, you generally use that as an opportunity for cleaning up, clearing out and generally clearing away the build up of years and years of hard work.  As we are doing that, we are finding tons of cool old stuff from “back in the day”.  Hats, first ship software, posters, bumper stickers, t-shirts, and all kinds of different stuff.  It seems a real waste to just throw it all out.

So we aren’t going to throw it all out.  Instead, we are going to put much of it up for auction on eBay.  We’ve been gathering it all up, and we’ll be putting it up for auction.  You can bid next week for any item that you please.  (Anders has put up some photos as teasers….)  All the proceeds from the auctions will go to Haitian relief.  We will ship things world-wide (with a few exceptions that the US Postal Service and the US Government define….), so you can bid no matter where you are in the world. 

So keep an eye out for those auctions starting next week. And don’t be shy – bid early and bid often.  All the money goes to help the people of Haiti, and you can grab a small piece of tech history along the way.

Random Thoughts on the Passing Scene #141

25
Jan
  • Well, there certainly is a lot of folks using serial ports out there.  ;-)
  • Allen Bauer goes on quite a tirade about stack frames and stack alignment.
  • We originally set 31 December 2009 as the last day you could upgrade from Delphi 2005 and below.  A bunch of you were still a bit hesitant, so we extended the date to 31 January 2010, but as I understand it, the end of January is really, no kidding the last day.  If you are using an old version of Delphi, the time to upgrade is now, before the end of the month.
  • Cool Delphi Open Source Project of the WeekDelphi Spring Framework  It is cool for a number of reasons, not the least of which is that they provide Live Templates to support coding with the framework.  That’s a great idea – one that more third-parties should take advantage of.
  • TSmiley Update:  I just checked in a new version that has quite a few XMLDoc comments in it, enabling easy processing as well as HelpInsight support.  Question – Is there an official definition on the web for XMLDoc comments?  Is XMLDoc even the right name?  There seems to be a lack of standards here, or maybe I’m just missing something……

Random Thoughts on the Passing Scene #140

14
Jan
  • Check out Channel E – a central location for Embarcardero’s online stuff: video, blogs, twitter, etc.
  • Interested in finding out more about Delphi Prism?  Long time Delphi developer Brian Long has written a White Paper which discusses using Delphi Prism and  Mono.  You can also download papers from Dr. Bob and Marco Cantu on REST, DataSnap, and other topics.
  • When is the last time you plugged something into a serial port? I ask because I actually have a serial port on the back of my notebook, and I don’t believe that I have ever connected anything to it.  I notice that newer laptops (we all have Dell’s around here) don’t have this anymore.  It’s USB all the way. 
  • Over the Christmas break, Mike Rozlog made 12 videos about Delphi 2010.  And while you are at it, feel free to weigh in on Mike’s Annual Ten Predictions for the Coming Year (though it looks like there are 11 this year….)
  • Did I point you all to Chris Bensen’s “Hacking the Touch Keyboard” articles – Part I and Part II.  Chris did some pretty cool and interesting things in building the TTouchKeyboard, and he designed it so that you guys could have a lot of control over what it does and what keys are available, etc.  Worth a look.

The Best way to Get TSmiley, or…. A Subversion Primer

11
Jan

Okay, the response to TSmiley has been amazing.  At least ten of you have downloaded it.  Unbelievable.  I’ve even made a few updates to it.  And I’ve checked those updates into the Subversion server on SourceForge.  I’ll try to keep up with the ZIP file download, but seriously, you really should get used to the notion of pulling from the Subversion server. 

It’s really easier than you might think, and I find that it is actually faster than downloading a ZIP, unzipping it, and putting it into the right folder.  Ever since I became the admin for the Turbopower projects, I’ve been using the Subversion command line all over the place.  We use Subversion here internally for RAD Studio, so I was used to pulling and updating with that, but the notion of maintaining a codebase off of SourceForge using it was pretty new to me. 

First, if you are totally familiar with Subversion, this post will be very basic for you.  I just want to show how easy it is to keep updated with the latest version of a Subversion repository on your machine.

So, currently, I have a folder – c:\code\TSmiley  — on my hard drive where Smiley resides.  That folder is associated directly with the TSmiley Subversion repository on SourceForge (https://tsmiley.svn.sourceforge.net/svnroot/tsmiley).  I use a combination of the Subversion command line tool and TortoiseSVN to manage the codebase on SourceForge from my local machine.

What do you need to do to access it?  It’s pretty easy.  You http://www.open.collab.net/downloads/subversion/ download the Subversion command line client (you’ll have to set up and account on CollabNet.  Be sure to download the second item on that page, which is the client only. ), install it, and that is it.  Once the client is installed it “just works” and makes it really, really easy to keep updated.   For instance, you can check out the code to TSmiley with the following steps.

  1. At a command prompt, do to the directory where you want your TSmiley directory to reside.  (The code will end up in a subdirectory of this directory)
  2. Issue this command: svn co https://tsmiley.svn.sourceforge.net/svnroot/tsmiley tsmiley
  3. That will "pull" the TSmiley code into a sub-directory called \tsmiley
  4. Then, to update and ensure that you have the most recent version, you simple go to the \tsmiley directory and type: svn up .  That’s it.  The SVN client will go out to SourceForge and pull down the most recent code. 

That is way easier than messing around with ZIP files.  You can even write a batch file to update all your projects.  I do that.  I keep all my code in a c:\code directory, and have a batch file that goes through and updates everything.  Very, very simple and easy. 

The other tool that I use so TortoiseSVN – which is a shell integration for Subversion.  You can manage your code and repositories right in Windows Explorer.

If you are looking to set up a Subversion server, you can’t get any easier that VisualSVNServer, which will have you up and running in a matter of minutes. 

All in all, I strongly recommend you becoming at least basically proficient with the Subversion command line client and TortoiseSVN.  It makes managing the code you get from SourceForge way, way easier.

Random Thoughts on the Passing Scene #139

07
Jan
  • Whoops – found this post with a few items hanging around from before the Christmas break – some of this stuff may be a little older……
  • Chris Hesik has posted an informal update to Delphi 2007 that will enable the debugger to work properly in Windows 7. Please note what Chris says about the informality and level of testing.  Please back up any files before overwriting them. 
  • Did you know that the Delphi Language Guide is online and available for your perusing pleasure?
  • And did you know that Embarcadero has had a Delphi ad in every issue of SDTimes for the last six months?  (Feel free to point that out to your boss.) And that you can see Delphi banner ads on StackOverflow (though mostly if you have a relatively low reputation, that’s the way it works on StackOverflow.  Folks with higher reputation see fewer ads……)  Our marketing folks have been busy.
  • We have apparently extended the upgrade period for D2005 and below through the month of January.  If you are running an ancient version of Delphi and you missed out last year, now’s your chance. 

TSmiley 2010: The Next Generation in Uselessness

06
Jan

If I had a dollar for every time I’ve been “teased” about TSmiley, I could finance my own startup. 

TSmiley, for those of you that don’t know or haven’t heard, is maybe the very first third-party VCL component ever.  I built it for the first time way back in the fall of 1994 when I was on the original Delphi 1 beta.  The VCL was brand new and in development, and the notion of building a component in Pascal was so cool, I couldn’t resist.  (Remember, those were the days when the only “components” were VBX controls, used in Visual Basic, but written in C++.  Remember when Delphi actually could consume VBX controls?) 

I couldn’t wait to write components, and of course, half the battle is coming up with an idea – not always easy.  Windows95 was brand new at that time, and so was MineSweeper. Remember the old school Minesweeper version, with the little smiley face up there? It was a fun game. MineSweeperI used to play on the smallest size and see how fast I could clear the board.  Anyhoo – I thought it was cool that it has this little smiley on there that would make faces at you if you lost, etc. So I decided to build a Delphi-based version of this little control.

I built the thing with two purposes in mind:  to learn how to build components and to create something that others could learn from.  It started out as a descendant of TImage (made sense at the time — trust me) and I did a few things like override protected methods that fire events, trap and handle Windows messages, etc.  I even figured out how to build a property editor for it. 

I posted it on the Compuserve forums, and the next thing I know, Charlie Calvert, David I, and the Borland gang were all using it in demos all over the world.  It became a pretty good running joke (to this day, Xavier Pacheco still teases me about it.  Let it go, X….) and I sort of ran with it.  I had a press release, I said things like “The usefulness of TSmiley cannot be measured” and I generally rode that handy little component to fame and glory. Okay, maybe not much fame and glory, but it was fun, and I do believe that folks learned a thing or two from it. I mean, the thing was basically useless (though I did have people tell me that they used it in production apps……) but it did show some interesting ways to build components. 

If you want to take a trip down memory lane, a very early version of the TSmiley page is available on the Wayback machine, as is a copy of the “press release” that I wrote. 

Recently, someone on the newsgroups asked if there was a version that worked with Delphi 2010. So I scrounged around and found the code.  I had to blow a few layers of dust off of it, but there it was, sitting on my backup/archive hard drive. I cracked it open, and man, was it embarrassing.  Talk about code that was clearly written back in the early days before I could even pretend that I knew what I was doing. (At least I had changed it to descend from TGraphicControl)  I mean, it worked, and for the time it was written it was pretty well done, but over the years, the “best practices” of component Delphi development have changed, and so it was time to update.

So, update I did.  Here’s a summary of the updates that I made, and some discussion about why.  Hopefully there are some tips in there.

  • First thing I did was notice that I hadn’t followed the DRY (Don’t Repeat Yourself) principle.  There was common code all over, and the bitmaps themselves were in both the runtime and the design-time packages.  It would have been a real pain to add another TSmiley mood, so I added the bitmaps as resources to the runtime packages, I ensured that the design-time package got all of its needed information from the runtime package, and tried to refactor code patterns that repeated themselves. Hopefully thinks are much more efficient.
  • I added a mini-API to TSmiley in the form of some class methods.  These allow you to get a bitmap, a name, and a description for a given Mood from TSmiley without need an actual instance. (For instance, that’s how the
  • I declared all the strings as resourcestring to help anyone that wants to localize TSmiley
  • I updated the Mood property editor.  The original property editor was a series of fixed speedbuttons with the bitmaps on them as glyphs.  This was utterly inflexible, because you had to add another speedbutton if you added a new mood.  Now, theproped. Property Editor is a ListView that dynamically loads up the graphics, names, and descriptions without caring how many there are.  This makes it much easier to add a mood as the new mood will automatically be added to the property editor.
  • I made DoMoodChange virtual.  This means you can more easily override it and add any functionality you might want to a descendent class. It is a good practice to have your events fired in a stand alone, virtual method.  That way, you allow descendent components to easily augment the behavior if desired.  If you have an event called OnMoodChange, it’s good to have a DoMoodChange method that is virtual and does nothing more than fire the event.
  • I stopped trapping and handling WM_PAINT and simply overrode the Paint method.  No need to illustrate how to do that anymore – too old school.  ;-)
  • I published a bunch of events from TControl that didn’t get published by TGraphicControl.  Now you can provide handlers for events like OnMouseOver, OnDblClick, etc.
  • I added the ClickMood property. The original TSmiley would wink at you if you clicked on it, but I figured that the face that shows up when you click should be configurable, so now you can set what mood you want to appear when a user clicks on TSmiley.
  • I added two constant arrays, one for the Mood name and one for the Mood description.  TSmiley will automatically update its own hint with the <short hint>|<long hint> pattern when the Mood is set.
  • I added a small test/demo application that shows how TSmiley might be used, and to verify functionality. Nothing much – it just creates a TSmiley on the fly and toggles the mood, as well as displaying the hints. 

That’s all I can remember right now – there are probably a lot of other subtle changes as well.  I tooled around with it for a while until I felt comfortable with the code.  I’m not claiming it’s any great chunk of code, but it looks “clean” and well organized to me. 

In any event, hopefully this will bring TSmiley into the modern age.  So, how do you get it?  Well, I’ve put TSmiley up on SourceForge, making it easy for you to get and easy for to enhance, fix, and update.  I’m totally open to enhancement ideas, bug reports, etc.   

TSmiley is freeware, so have at it. And don’t worry, I can take all the teasing.  After all, one really can’t describe how useful TSmiley is.

Partner Spotlight: SOCK Software and CodeHealer

21
Dec

Jud Cole and SOCK Software have been long time Technical Partners of Borland, CodeGear and now Embarcadero, and they have recently released version 2.6 of their flagship product CodeHealer that includes full compatibility with RAD Studio 2010.

In case you haven’t heard of it, CodeHealer is a powerful and easy to use source code analysis and verification tool that can find and generate reports on a significant number of programming bugs, mistakes and inconsistencies in Delphi programs simply by parsing its source code in the same way that the Delphi IDE does. It also calculates and reports numerous metric values such as counts of classes, methods, units etc., and cyclomatic complexity for the code parsed.

The issues for which it checks, the reports it generates, and the export formats for those reports are all highly configurable, and its operation can be fully automated using a comprehensive set of command line parameters, so it can be run automatically as part of an automated build process using tools such as MS Build, Automated Build Studio and FinalBuilder.

The new version of CodeHealer supports all versions of Delphi from Delphi 5 through to  2010, and can quickly and easily switch between versions on a per project basis, which can help greatly when checking compatibility of your source code between multiple versions of Delphi.

You can read more about CodeHealer at http://www.codehealer.com/codehealer.php.

As a special treat for readers of this blog, SOCK Software is offering a limited time special deal of CodeHealer 2.6 for only $199, which is almost half off their normal list price of $379.

To get the deal price, just use the coupon code HEALER26 at check out when ordering from their Web site at http://www.codehealer.com.

Lastly, if you want to take it for a test run first you can download a fully functional, but time limited, trial version from the same web site. The trial version (and full product) are only an 8 MB download, but it includes the full documentation and email technical support, so why not take a look and see what it finds in your code!

Random Thoughts on the Passing Scene #138

17
Dec
  • When we told Microsoft about Delphi Prism, they were really excited at what we were doing with the VS Shell.  So excited, in fact, that they did a complete Case Study on it.  And I even get a nice quote on the side. :-)
  • Be sure to read Chris Hesik’s blog post about how we leverage all those “Automated Incident Reports” that you guys submit to us.  We’ve found a lot of good bugs and been able to fix a lot of hard to find issues by aggregating those reports.  Please keep submitting them because, as you can see from Chris’s post, they are really valuable and helpful.  We are grateful for every one that we get.
  • YES!  I have now earned the “Delphi” badge – that’s 400 upvotes on answers to questions with the tag “Delphi”.  Sweet!  Thanks!
  • TurboPower Update: Roman Kassebaum continues to amaze.  He has been doing amazing work on the TurboPower projects.  His latest effort has been on the OnGuard project, which allows you to create demo versions of your applications.  Roman has been busy.  The OnGuard project now has:
    • SVN support with the latest version from Songbeamer checked in, which means that it is Unicode ready
    • all the code warnings removed from the build.
    • Packages and a project group for Delphi 2010.
    • Additional D2009 packages.
  • Marco Cantu and Cary Jensen are at it again – they have set up Delphi Developer Days 2010 with dates in May for Washington/Baltimore, Chicago, and Los Angeles.  Those two guys can definitely fill up your brains in two days.

RAD Studio 2010 Update 4/5 Released

14
Dec

Okay, the Update to the Update is out. You can download it from the Registered Users page or you can let the IDE do the update for you by checking for updates.  To find out more, you can read the README.  I know you all always read the README, right?

You probably have some questions. I’ll try to answer some here.  But first, the main point to get across is that this new Update is “good for what ails ya.”  It covers all the bases.  Everyone in all scenarios with regard to RAD Studio 2010 installations should apply this update.

I installed Update 2 during the brief period it was available. What should I do?

Install Update 4/5.

I have the original RTM version and haven’t updated anything yet.  What should I do?

Install Update 4/5

I’ve only installed Update 1.  What should I do?

Install Update 4/5

I have <done/not anything at all with regard to updating/not updating RS 2010>. What should I do?

Install Update 4/5

Are you going to answer “Install Update 4/5” to every question I ask?

Well, pretty much.  If the question is about what your configuration is and what you should do about it to get the latest fixes, then the answer is “Install Update 4/5”

How do I tell if I have the most current version?

Open up your about box.  If you see “Update 5” in the “Installed Updates” box, you are good to go. If you don’t, see the answer to every question above. 

What bugs are fixed in this update?

List of Bug Fixes in Updates 4 and 5 for Delphi 2010: http://edn.embarcadero.com/article/40204/

List of Bug Fixes in Updates 4 and 5 for C++Builder 2010: http://edn.embarcadero.com/article/40205/

Why is it called Update 4/5?

For various reasons, we do the database portion of the install separately, and merely include it as part of the “Master” install.  Therefore, it needs to be updated separately.  Update 4 is the main product update.  Update 5 is the “Database Pack” update.  They go hand in hand and should be installed together always.

This all took longer than I thought it should  Why?

Well, first, this second go-around wasn’t exactly planned, so we had to adjust a thing or two.  The problem we found was one that we hadn’t tested for.  (We test for it now, believe me).  Then, we wanted to make sure that it was absolutely right this time.  We also added in more fixes.  We test a huge combination of install scenarios, involving multiple operating systems, languages, localizations, editions, and more.  It takes a lot of time and effort. Ultimately, we were extra double-secret-probation-careful to make sure that it was good. I believe it was worth the wait.

Random Thoughts on the Passing Scene #138

14
Dec
  • I spent some time working on the “Enhancements Since Delphi 7” page on the Delphi wiki.  Feel free to pitch in.  I’m sure that I missed a lot of stuff, as I did it kind of late of a Friday afternoon.  I’ll try to get back and fill it out as well.  (I referenced the page in my answer to this StackOverflow question.)  And remember, if you are thinking about upgrading, then you need to do it soon – upgrade pricing goes away for Delphi 2005 and below at the end of the year. 
  • Speaking of StackOverflow, the “Delphi” tag has now blown through 3000 questions.
  • And if you are looking for resources to help you upgrade, we have a complete Migration Resource Center.
  • Marco Cantu is pulling together a web page for his new Delphi 2010 Handbook.
  • TurboPower Update:  I have enabled Subversion access for all the projects.  Perhaps I was way to optimistic, but  I assumed that if I enabled Subversion for a given product, it would automatically point to the root of the existing CVS repository, but no, such is not the case.  I’ll begin migrating the source over to the Subversion servers as well.  If anyone wants to help to do that, please feel free.  :-)

Random Thoughts on the Passing Scene #137

08
Dec
  • Some of you were having trouble running the Delphi 2009 debugger under Windows 7.  We’ve posted a hotfix for that.  Chris Hesik has some details.
  • From the EmbarcaderoTech twitter account: Are you a LinkedIn user?  Embarcadero Technologies has an awesome new group for customers and users, join us! http://bit.ly/5uws3E
  • I’ve just published an article on EDN called “What We Expect from our Field Testers”.  We couldn’t ship a product with out great field testers, and we are always looking for more folks willing to make the commitment to do what we need doing.  You can look on the Embarcadero Beta Site for more information about becoming a Field Tester for RAD Studio.
  • Some folks don’t like to see the MS Windows SDK content in their Delphi help.  Dee Elling shows you how not to install it.  At the end, she writes “For future releases we are considering whether to switch the default around, to not install the MS SDK Help; if you have an opinion one way or another I appreciate hearing from you,” so be sure to let her know either way via comments.

Random Thoughts on the Passing Scene #136

03
Dec

Random Thoughts on the Passing Scene #135

25
Nov
  • Phew – okay, been a while.  I was “on the road” last week.  Thanks to all the great folks that showed up in Philadelphia, Raleigh, and Minneapolis for my road show.  I hope I was able to convey the great stuff in the latest version of RAD Studio.  (Don’t forget to use your “special codes” to get at 20% discount on purchases. They expire soon.)  It was great to get out again and meet with customers, developers, etc.  Thanks to everyone who helped out with getting the events going.  It was fun, and I even got to spend the weekend with my parents in Minneapolis.  Great times.
  • Developer Express has been a long time partner and provider of outstanding VCL components.  I know that many of you use their stuff rather faithfully.  I know that early every year they have a meeting to plan out what they will be up to for the coming year.  This year, long-time community member and DevExpress guy Richard Morris is asking for input from the DevExpress VCL customer base.  This is a great opportunity to give some feedback to a company that loves to hear from you.
  • Here’s a curious phrase, or at least one that has become curious over the past few years:  “Online help”.  What does that mean to you today?  Today, it means to me “Help that is on the internet somewhere, and that I can look at with a browser”.  But of course, say, fifteen years ago, it mean “Help that is on my hard drive and connected via the F1 key”.  I think if you say the phrase now, the former definition is what people will understand it to mean.  So that begs a question:  What should we call help that is on your hard drive?  "Local help”?  Anyone have any ideas?
  • Marco is offering a nice special on his two latest books.  These are the same books that many of you got as part of your Delphi/RAD Studio purchase, but if you haven’t gotten them yet, now is the time to buy.  Marco’s books are always good, and these two are particularly good for folks moving to the new versions. 
  • And finally, I am thankful for many things on this Thanksgiving day here in the US – my family, my friends, my freedom.  I’m also thankful to the Delphi community and to all of our customers that make it possible.

The Coming RAD Studio Update

13
Nov

This week we were in the early stages of rolling out what was to be “RAD Studio Update 2” with a large number of bug fixes.  We put the update out on the web and the registered users page, and posted an article on the Embarcadero Developer Network. We were excited, because there are a lot of bug fixes in it, making an already solid product even more solid.

However, once a few people started installing it, they noticed that they were being asked to register every time RAD Studio was run.  The product is properly registered, but the dialog box still pops up every time you run RAD Studio.

So, first, if this is happening to you, we’re sorry.  You can simply click cancel whenever you see that dialog and be on your merry way with the benefit of the fixes for Update 2.  Your product should be properly registered, regardless of what the dialog may tell you. 

Second, we have recognized the issue and pulled the Update from distribution.  We want you to have the best experience, obviously, so the continued distribution of the Update clearly isn’t in anyone’s interest.  We don’t want folks to run into the problem – again, obviously. 

Third, we are working on a fix that will cover everyone.  If you’ve installed Update 2 and are running in to the issue above, then we’ll have a fix for you.  If you haven’t installed Update 2 yet, we apologize for the delay, and we’ll have an update for you that doesn’t have this issue.  I can’t say when we’ll have it, but obviously we want it to be as soon as possible.  We want you to have this Update in your hands as much as you do.

Finally, we’re sorry for the hassle, and we’ll get this fixed as soon as possible. 

Random Thoughts on the Passing Scene #134

02
Nov
  • We have published Help Update #1 for the RAD Studio 2010 help.  You can find out more at the Developer network.  The Help Update should be available through the IDE’s automatic update system.  If you have that turned off by default, you can invoke it via the Start menu.
  • Question:  Can you ever really have “Release Candidate 1”?  If you call it that (as opposed to just “Release Candidate”), is it really a release candidate?
  • The marketing folks have been busy – they’ve taken your input and created a Delphi and C++Builder Application Showcase page.  On that page, you can find all different kinds of applications that are built with RAD Studio, from licensing tools to Client/Server applications to games and media players.  If you want to see the power and speed of what can be done with your favorite development tool, that is the place to go.  And of course, if you want to be included in that impressive lineup, then let us know.
  • I’ve mentioned this before, but it bears repeating:  If your most current version of RAD Studio is 2005 or earlier, then 31 December 2009 is the last day you can take advantage of upgrade pricing.  So if it has been a while since you’ve upgraded, now is the time.  That page is also our Upgrade Center, which has information and links about the latest new features, how to migrate to Unicode, and getting your third-party tools updated to the latest version.  There isn’t going to be a better time to make the move to the best version of RAD Studio ever. 
  • And of course, if you’ve moved to Windows 7, RAD Studio is the tool for doing your Windows 7 development.

On the Road with Nick

30
Oct

Hey, I might not be the Delphi Product Manager any more, but that doesn’t mean that I won’t be going out on the road to see customers and show off RAD Studio 2010!  I will be making three tour stops as part of the RAD Studio 2010 Road Show.  I’ll be doing the Philadelphia, Raleigh, and Minneapolis/St. Paul meetings.  (The last one is nice because I’ll get to see my folks and my old running mates in the Twin Cities).  Each of those three events will be held “right after work” from 0:600pm – 08:00pm.  Follow the links for more information about the venues.

So please sign up – I’d love to see you all again or meet you for the first time, as the case may be.  :-) And remember, it’s all free!

The Delphi Survey

26
Oct

Hey, the Delphi Survey is back!  It’s long, but well worth the time.  Please go and fill it out as completely and as thoroughly as you can.  We really read and study and use and act on the valuable information we get from it.  Your opinions really matter and really make a difference. Thanks in advance for taking the time.  We really do appreciate it.

Random Thoughts on the Passing Scene #133

21
Oct
  • First the GOTO was disparaged into oblivion.  Then the ‘with’ statement came into the cross-hairs.  Is the ‘if’ statement next?
  • Hey, the CodeRage 4 replays are online – lot of good stuff in there, especially about the new things available for RAD Studio 2010.  If you are looking at upgrading, the presentations from CodeRage 4 would be a good place to get a look at what you can do with  RAD Studio 2010. 
  • Are you using Windows 7? Want to develop for Windows 7?  Delphi is ready for you to do just that.
  • Learned a new term today: Cargo Cult Programming.  (Saw the term on this excellent answer given by Mason Wheeler on StackOverflow).
  • I know that a lot of you do database management and development.  If you do, you should look into DBArtisanHere’s a nice review of the product if you want to learn more.  Being able to write an then really tune your SQL is a good thing.  We’ve used the tool internally on our database frameworks to ensure that dbExpress uses the most efficient SQL possible.

Random Thoughts on the Passing Scene #132

15
Oct
  • Oh, by the way, another good way to get your comments deleted is to use profanity.  Should have mentioned that before.
  • The guys over at Gurock Software have a really cool article called “Working with Delphi’s new Exception.StackTrace” showing how you can get more information about stack traces at runtime. 
  • Want to write an iPhone application in Pascal?
  • If you haven’t tried IDE Insight in RAD Studio 2010, then you should.  It is easy – hit F6 or CTRL+. – and then start typing what it is in the IDE that you are looking for.  Cool feature.  But here’s the question – what would a 16×16 pixel glyph look like if it represented “IDE Insight”?
  • Have you checked out all the code samples on the Delphi DocWiki?

Random Thoughts on the Passing Scene #131

09
Oct
  • We are looking for folks to submit their Unicode migration stories to the Unicode Migration Best Practices Cookbook.  If you have a tip or two, or a good story to tell, please let us know and help out the Delphi community.  Looks like you might win an iPod Touch if you submit something.  You’ll also get fame and glory and credit on our web site.  Nothing to blow your nose at.
  • If you are on RAD Studio 2005 or earlier and haven’t yet upgraded, now is the time to do it.  Your time for getting upgrade pricing is running out.  After January 1, only users of BDS 2006 and up will be eligible for upgrade pricing.   And with the release of RAD Studio 2010, there’s never been a better time to upgrade.  I may be biased, but I not so humble that I’m not willing to say it out loud:  Delphi 2010 is the bestest, most powerfulest and coolest Delphi ever.  :-)
  • I love IDE Insight.  You can get get to it two ways, F6 or CTRL-<period>.  (I tend to use F6, since that was the “original” keystroke during the beta.)  Getting in the habit
  • StackOverflow Post of the Week:  What are good arguments to convince management to upgrade to Delphi 2009 / 2010?

TurboPower Poll Results

07
Oct

Here’s a chart showing the results of the poll I took on what TurboPower projects are of interest to you. (You can certainly still take the poll if you want, but the trends are pretty clear by now…)

Seems that a lot more of you than I would have guessed are using AsyncPro.  I was also surprised at the popularity of Abbrevia, but that might be because that project has probably been the most active of all of them.

I would like to know who among you is still using the DOS-based Object Professional.  :-)

ChartExport

So what I am going to do from here is to start at the top of this chart and work my way down.  I’ll give each project a review, update the main page for the project to reflect the current status, and attempt to recruit developers who want to work on the given project.  I’ll also try to get instructions for pulling and building the project for starters. After that, maybe I’ll look into creating (or getting created) an install for each project so that folks who want to avoid doing the whole “Subversion Pull and Build” thing can do so. 

Naturally, if you want to get involved as a developer, let me know. 

Random Thoughts on the Passing Scene #130

05
Oct
  • Okay, some of you are saying that I’m “blocking comments”.  So, let me comment on that. :-) First, this is my blog, and I’ll allow or disallow any comments that I want for any reason at all.  Sorry.  But having said that, the vast majority of comments come through just fine.  Some get caught in our SPAM filter, which I check, but not every fifteen minutes.  I will, however, delete a comment if it is insulting or “content-free ranting”.  I haven’t deleted a comment in a long time.  Keep it civil, constructive, and non-insulting and all will be well.  I don’t “censor” negative comments that follow those guidelines.
  • The guys over at TMS Software have a nice free tool for you — TMS FTPUploader, a small free utility for your daily email routine that makes creating a link in your email in lieu of an attachment easier.  Cool.  And while you are there, give a look to some of the other excellent Delphi components that they have for sale.  Lots of very nice, and very innovative stuff.  And they are great guys to work with as well.
  • DataSnap has seen a lot of very powerful improvements over the last two releases, and one of them is the ability to give you complete control over the flow of data between client and the applciation server via filters.  The architecture is open, allowing you to write your own filters from processing the DataSnap stream.  Daniele Teti has done just that and has created DataSnap Filters Compendium (DSFC), a collection of nine DataSnap filters, released under the Mozilla Public License Version 1.1.  This is very cool – both in the sense that it is cool technology, as well as in the sense that Daniele has made this available to the community.  Nice.
  • I’ve been working a little bit on the ShineOn project.  I have check-in rights, and have been spending some time familiarizing myself with the codebase.  It’s pretty cool – it’s an implementation of the Delphi RTL in Delphi Prism.  You know, SysUtils, DateUtils, etc.  It’s coming along, and should make porting library code from Delphi to Delphi Prism easier.  Check it out, and maybe even help out.

TurboPower Update #1

29
Sep

Wow – I think that my TurboPower blog post has generated more comments than any has in a while.  The response has been gratifyingly positive.  There have been a couple of issues and questions raised, so I’ll make a few further points:

  • Okay, first things first:  Is it Turbopower or TurboPower?
  • Please go to this one question survey and tell me what you think are the five most important projects in the list.
  • I want to be clear that this isn’t an “official” Embarcadero project.  I’m doing stuff “on company time” and off, but this is strictly a community project.  We Embarcadero folks are delighted that this code is “coming back to life”, but this is a more of a “Delphi Community” thing than anything else.
  • I’m going to be, for a very large degree, simply try to be a manager here.  I’m probably not going to do a lot of coding, but instead will be counting on you guys to do most of the development here.  I’m going to view my role here as a facilitator, cheerleader, and “Making Things Happen” type guy.
  • I’m not really up on how SourceForge works, so that will be my initial focus here – finding out what you can do on SourceForge and getting things updated.
  • I’m going to focus on getting these projects working for the post-Unicode world.  If the community wants to keep them working for the pre-Unicode world, that is great, and I’ll fully support that.  But the focus of my efforts will be on getting the projects working for current versions.  I know that this won’t make everyone happy, but given limited resources and focus, that seems like the obvious choice.

I am now tpsfadmin on SourceForge

28
Sep

There has been a lot of interest lately in the TurboPower projects on SourceForge.  Lots of folks have used Turbopower code in the past and are now wanting to bring this code forward to Delphi 2010.  There has been a lot of work done in this area already, but unfortunately, the SourceForge pages haven’t always reflected that.  Because there has really been only a few people with admin rights to the projets, folks have had to pull down the code, change it, and then post it somewhere else. (For instance, a whole  bunch of great stuff can be found at http://www.songbeamer.com/delphi/) .  Roman Kassebaum has also been doing some great work getting the code and components ready for Unicode and the newer versions of Delphi.

Over the weekend, I sent an email to the guy who had been the tpsfadmin (TurboPower SourceForge Administrator).  That account is the “godfather” for all the TurboPower projects on SourceForge.  I asked him what we could to open things up, and I was quite pleased and not a little surprised when he simply sent me the “crown jewels”.  So today I logged in, changed the password, and pointed the email address for the account to my gmail.com account.

And so I’m feeling a bit heady about this.   I’m definitely not drunk with supremacy just yet, but as Spiderman said, with great power comes great responsibilities.  There is a lot of amazing code here, and I want to make sure that as much of it gets made updated and made available to the community as possible.  But I should note that this isn’t an “officially sponsored” Embarcadero deal.  This is at best “semi-official”.  We aren’t officially taking over corporate sponsorship of these projects or anything like that.

Anyway, here are some further notes;

  • I’ll be going through all 19 projects and checking their status, updating their web pages, and getting the all up to date
  • If you have Turbopower code that you’ve worked on and haven’t been able to get checked in, let me know and we’ll make that happen.
  • I think I”m going to pretty much be using Subversion going forward.  I’ll be making sure that all the projects have Subversion access.
  • I think, too, that I’ll put up another little “mini-survey” to ask what are the most popular of the projects.  That ought to give all of us a better idea of which projects should be focused on first.

I’m very interested in hearing what the community has to say here.  Given that these projects are all open source, community involvement and community input and feedback are critical here.  I know there are a lot of you out there that have done a lot of work to maintain things, and I want to make sure that your work is recognized and incorporated for the good of the project as a whole.

As I said, this was pretty much a surprise, but I’m delighted at how things are working out.  This should be really fun, and we can really get things rolling again with this great code.

Random Thoughts on the Passing Scene #129

18
Sep
  • Nice writeup about Delphi 2010 in Dr. Dobbs.  Money quote:  “And even with all the views activated, the IDE response remained lightning fast throughout my hours of testing it for this review.” (Thanks to Marco for the tweet pointing me to this article….)
  • Alex Ciobanu works in our Iasi, Romania office as a document writer, and he does a lot of terrific work.  Many of the great articles in the RAD Studio DocWiki are written by Alex, and they are very good.  If you aren’t reading his blog, you should be.  In addition, he has some cool projects going, such as the DeHL Library which is a nice set of classes that take advantage of some of the new language features in Delphi 2009.   A complete list of features is here.  It also has a home on Google Code.  There is some seriously nice code in there.  Take a look.
  • Speaking of wikis, Delphi Prism has a wiki as well. There is a lot of good content there, and of course, you are highly encouraged to add to it, update it, correct it, enhance it, whatever.  You can log in with our Embarcadero Developer Network account and contribute to the cause. 
  • Got a note from Ann Lynnworth of HREF.com.  The HREF folks recently acquired Rubicon, and they have put up a free version of Rubicon on CodeCentral. Rubicon is a really powerful text search engine for databases.  It’s the technology that powers the Tamaracka newsgroup search engine, so if you want to get a feel for what it can do, you can visit that venerable newsgroup archive. (I remember using their newsgroup archive searching stuff way back in the early days of Delphi….)  The license on the free version limits the number of words that can be indexed and there is a time-delay, but it should be good for lighter-trafficked sites or trialing. 
  • Darren Kosinski helps you navigate through your code.

Random Thoughts on the Passing Scene #128

17
Sep

© 2010 Nick Hodges | Entries (RSS) and Comments (RSS)

Your Index Web Directorywordpress logo
Close