The Visitor Pattern – Part 1

Some of you might have already heard of the Visitor Pattern, especially if you have read the GoF book Design Patterns, but do you really use it? Do you use it often?

The common answer to this question is No. Once I was even confrontated with the question “Does anybody use it in real code at all?”.

Well, I do – and here I’m going to explain the why and the how. Actually there are different hows and at the end I will introduce a real elegant how
Continue reading “The Visitor Pattern – Part 1”

Anticlimax

It looks like the recent preview of RAD Studio XE didn’t met expectations of many developers resulting in a massive popular outrage.

Beleive it or not, but ranting and shouting will not change anything about the upcoming release. I suggest to calm down and start talking decently with each other.

Obviously the people at Embarcadero have something to explain and just missed the point to do it properly in advance. That might have been the wrong way, but honestly, we are all human and talking about bad news is nothing we are keen to do.

So be generous. Imagine you were in their position. Let DavidI and Mike Rozlog take a breath, wait what they have to say and then decide on the information you get.

Staying with Delphi or going away is no decision that has to be done today or tomorrow. It should neither be done during a heated situation like we have now.

After all we are still developers. We are used to tackle a problem with logic instead of speculating and ranting. I am not aware of any bug that has been fixed by shouting at it.

There is something going wrong, no question. Lets start a debugging session and find out what it is and how to fix it.

“simulating a computer with an infinite amount of memory”

Thanks to this article by Raymond Chen we can read what garbage collection really is and (perhaps even more valuable) what it is not.

I don’t want to start a new flame war about garbage collection (and even when – hey, this is my blog!), but I for myself I’m glad that Delphi doesn’t offer such a feature. We are always tempted, aren’t we?

Not that I don’t have any memory leaks in my programs. Not that I don’t use memory already freed. But with the right tools you can actually spot those errors and solve them. Doing so I often find some other error lurking in my code, just waiting to pop up like a jack-in-the-box. If there were no more such leak hunting, I would know less about my code than I do now.

Delphi doesn’t lack garbage collection – Delphi doesn’t need one.

A Magical Gathering – Part 2

From Part 1:

take an enumerator, mix it with a class helper and pour it over an invokeable custom variant

There it is again. What is he just talking about?

Well, it took me a while to find that thing, as it isn’t mentioned very often. But it turned out to be exactly what I needed. So I dived into the sources and figured out what TInvokeableCustomVariant is all about and how to use it. And even the help was in this case, um,  helpful: RAD Studio Help
Continue reading “A Magical Gathering – Part 2”

A Magical Gathering – Part 1

Sometimes combining different programming techniques reveals the hidden beauty of a programming language.

A few years ago I was able to create such a thing with some older and newer language features. The outcome revealed some kind of magic that really amazed myself.

The recipe is pretty simple: take an enumerator, mix it with a class helper and pour it over an invokeable custom variant.

A what?
Continue reading “A Magical Gathering – Part 1”