- Two things about Martin Harvey’s threading article that I posted. First, Alexey Gavrilov was kind enough to send me version 1.1a, which I have posted. Second, it turns out that the article/book is available on CodeCentral. So if you want to download it for yourself, you can. But now, at least, people can find it online.
- Embarcadero has put out a pretty cool “commercial” on YouTube. I think it is very nicely done.
- There is a new Delphi book out: Cross-Platform Development with Delphi XE7 & Firemonkey for Windows & Mac OS X by Harry Stahl. Only a couple of reviews on Amazon – one good and one not. Thanks to Robert Dawson for pointing it out in the newsgroups.
- Weird. Both Microsoft and Embarcadero are left off of this list.
Threading in Delphi, or in any other tool for that matter, is difficult. There are a lot of good resources out there for Delphi developers, but perhaps none better than Martin Harvey’s “Multi-threading: The Delphi Way”. There is a copy of it here — http://thaddy.co.uk/threads/ – but sadly it doesn’t include the graphics and the code.
Well, I was working on the TThread chapter for my new book, and guess what I happened across on my hard drive? The entire copy of Harvey’s work, including the graphics and the code samples. I have no idea how I came to have it, but I do. I thought it would be worth posting in its entirety, so I did:
It’s all there – graphics, code samples, and text. I hope I’m not violating any intellectual property rights in posting it. I certainly am grateful to Mr. Harvey for his work. If I am doing wrong here, please let me know and I’ll take it down. I’d hate to have to do that, though.
Otherwise, there it is as a valuable resource for the Delphi community. I hope it is helpful to someone.
- Stefan chastises me for making another one of my pronouncements on “evil” programming techniques. I admit to a bit of hyperbole, but it’s not without a point. The argument against my pronouncements is that the wise and judicious use of these so-called “evil” features or techniques is good. I don’t agree. I think that if a “feature” has the ability to be *easily* abused, then it should be avoided. For instance, some make the argument that there places where the
withstatement makes sense. Well, my counter argument to that is if you allow the
withstatement in a few places, it’s very easy to use it in just a few more places, and then the next thing you know, your code is full of
withstatements. It’s a slippery slope that you should never start down. The same is true for nested procedures. Sure, there might be places where they “make sense”, but if you allow them in one place, what is to stop a junior programmer from getting the wrong idea and go crazy with them? This is especially true for features that simply need not be used at all – such as
withand nested procedures. You can write beautiful code without them, so why risk sliding down the slope? Better to ban their use altogether. (Cue the “Then why don’t we all just use assembler” comments in 3..2…1….)
- I’m a big user and proponent of the Spring for Delphi framework. If you are, too, then you might consider donating to the project. The website now has a PayPal donate button.
- I recommend that you give a very careful read to Marco’s post about what was going on at the Microsoft BUILD conference last week. Lots of interesting stuff there for us Delphi developers, both in the Windows and cross-platform realms.
- Torry.net is for sale. Hat tip to Olaf Hess in the non-tech group for this piece of information.
- Stefan Glienke has two interesting polls going on:
- Let’s do some demographics of the Delphi developers – how old are you?
- How long ago did you start using Delphi?
- Ten Tips For Migrating From C# And .NET To Multi Platform Object Pascal And Delphi Firemonkey
- Another entry in the “They are evil” category: nested routines. Just don’t. In my codebase at work, there are methods that six, seven, even eight nested methods. I have even seen nested routines with nested routines. Argh. Despite being a formatting nightmare – how are you supposed to read and understand that? – a bunch of nested routines screams “Make me into a class”. If you have a bunch of methods at all should be grouped together, isn’t that pretty much the definition of what a class is? Anyway, nested routines should be banished.