Delphi 2011: What components to use?

We’re heading to Delphi 2011 (which will bring Delphi on Macs and Linux) and after this we’ll have yet another hurdle which is 64-bit compiling. With so many convoluted paths (ok, ok, the team will do the best to make the transition(s) as smooth as possible, but still…) a question arises: What components shall we use?… Continue reading

Delphi 2011 and beyond: The Libraries Ahead

There is enough speculation about what library / libraries we’ll encounter in the next version(s) of Delphi. We know that the next version code-named Fullcrum (don’t click here and here – AFAIK the links aren’t related with the team’s intentions ;-)) will be a cross-platform product which will target Windows, Mac OSX and Linux… Continue reading

New Patterns in Software Development

Today we’ll have a slightly different post, delaying a little bit our other favorite themes, speaking about “new” (note the quotes) patterns in today’s software landscape.

Well, one can write an entire book on this theme, that’s why we’ll stop today on just one pattern: The Open Project.
Continue reading

Dangerous Cross-Roads

{$IFDEF Danger}...

Nobody can harm me, except myself.

St. John Chrysostom, speaking about his executioners

While preparing the FileSuite for release (already a beta is available for download) we will dig(g) once again in the dark areas of Delphi’s source code.

While in one of ours last posts we spoke about an opinion which now and then is a hot theme in Delphi community (the legendary var block) – and enough programmers expressed their concerns about the safety issues tied to this – today we’ll speak about something opposite… Continue reading

Community Pulse: Delphi and RAD Studio Prices from v1 till Now

Hi guys, we usually don’t post so often, but there are very hard fights on .public.non-technical battlefield about a yet-to-be released low-priced / free Delphi edition. There are very very very good posts by members of the team – Michael Swindell (the “Senior Vice President of Marketing and Product Management“) stands out by far – seconded by Nick and Allen. Be sure to check them out, (if you didn’t already) because Michael reveals many things which were till now unknown or misinterpreted…
Continue reading

Community pulse: Delphi’s Killer Feature

Managing variables with ease

Managing variables with ease

The usual “off-line” comment: Guys, we’re preparing FileSuite 2. Many interesting things inside – many bugs fixed, folder constraints more scripting commands and, of course, Shell Events. On of the main themes of this release are the usability issues so feel free to submit your feedback. We hope that we’ll have something to present in 7-10 days. Thanks a lot.

And now back in present: There’s a question on StackOverflow asking Whatโ€™s your favourite programming language, and its killer feature?

Seeing there that Delphi’s choice is #1 among the answers it seems that Delphi’s killer ‘feature’ is becoming (again) its community.
Continue reading

FileSuite, Delphi Core and the Cross-Platform Quest

Well, we have a new release of FileSuite featuring a fine-grained multi-threaded file engine which can execute any (oh, well…) custom action, exe file or script on a file or host event (yes, you can have a centralized backup control for any host from the network immediately when it will be online – no need to install any software client) enough bug fixes, mirroring enhancements aso. You can see some from the enhancements in the screenshots page. Also we found a new payment processing company which has much more features thing which allowed us to reduce the price. So, we must be happy… And yes we are. Almost. Continue reading

Best. Programming Feature. Ever.

Programming Workflow

Programming Workflow

Working on the FileSuite (yes, we renamed the product – we think that this new name shows better what we try to achieve) we found what should be certainly labeled as the Best. Programming Feature. Ever!.

We even challenge everyone to find a better programming feature than this one. Please enter in the comments your “best” programming feature and the reason(s) why it should regarded like this and in one of the next posts we’ll set up a contest based on a poll with prizes.

But what we found?… Continue reading

How the Humans Think

Happy new year to everyone! ๐Ÿ™‚

To everyone? Well, yes, I suppose so because we don’t require any password to read this post ๐Ÿ™‚
New year? Well, yes. Dude, have a look at the calendar. (Well, we accept as standard the Gregorian Calendar, isn’t it?)
Happy?… hmmmm… this can be a problem. A tough one. Let me explain… Continue reading

The Death of a Programmer

The one who runs from his soul’s reality is a liar.

St. Valeriu Gafencu

In this night we celebrate the Nativity of Christ. The only new happening on Earth from the beginning of existence. And I think that isn’t astonishing that God is almighty, because he is God, isn’t it? But I do think that it is astonishing that God could became so small. Small and weak like a man, giving to the others the possibility to kill Him. And of course, “the others” didn’t missed the opportunity…
Continue reading

A Better Time Machine

Well, here we are. Finally we released the FileWatcher. If was a very interesting experience about, if the time permits, we’ll blog further.

But what’s most important in this experiment was that we were determined to build a tool for you. For customers. Sounds great, isn’t? But in practice isn’t so straight as it seems to be… Continue reading

What one can found behind a mask?

What if we’ll add the “x” feature?
This is the question.

(adapted from) Steven C. McConnell

Well, first of all let’s see what we see ๐Ÿ™‚

Masks.MatchesMask Function

Indicates whether a file name conforms to the format specified by a filter string.

function MatchesMask(const Filename: string; const Mask: string): Boolean;

Call MatchesMask to check the Filename parameter using the Mask parameter to describe valid values. A valid mask consists of literal characters, sets, and wildcards.Each literal character must match a single character in the string. The comparison to literal characters is case-insensitive.Each set begins with an opening bracket ([) and ends with a closing bracket (]). Between the brackets are the elements of the set. Each element is a literal character or a range. Ranges are specified by an initial value, a dash (-), and a final value. Do not use spaces or commas to separate the elements of the set. A set must match a single character in the string. The character matches the set if it is the same as one of the literal characters in the set, or if it is in one of the ranges in the set. A character is in a range if it matches the initial value, the final value, or falls between the two values. All comparisons are case-insensitive. If the first character after the opening bracket of a set is an exclamation point (!), then the set matches any character that is not in the set.Wildcards are asterisks (*) or question marks (?). An asterisk matches any number of characters. A question mark matches a single arbitrary character.

MatchesMask returns true if the string matches the mask. MatchesMask returns false if the string does not match the mask. MatchesMask raises an exception if the mask is syntactically invalid.

Note: The Filename parameter does not need to be a file name. MatchesMask can be used to check strings against any syntactically correct mask.

(from Delphi’s Help)

So, we have here a very nice function primarily designed to (quote again) Indicates whether a file name conforms to the format specified by a filter string, right? Wrong!Continue reading

Community pulse: New ways to enhance Delphi

There is an interminable thread on the public.non-technical battlefield called ‘Delphi for the Mac’. At the time of writing, there are approximative 500 (five hundreds) posts on that. (493 to be more exact). No, I won’t provide a link. Because I think that is better (at least now after 500 posts) to start a concrete discussion in order to enhance our tool of choice.

Don’t get me wrong, I do think that defending a tool is good, but this defense must take the form of enhancing our product, and not denigrating the other one just because it doesn’t fit with “my/our” philosophy.

So, in my humble opinion, we must take and adapt what is good on the other product (XCode / Interface Builder in this case) and avoid what is bad. I know that you are willing to do give feedback on this, the vast majority of you proved it many times, including in the last poll which we made. The results are depicted in our classical pie on the right.

However, our community has a long lasting disease – we transform ourselves in a community of talkers in order to be a team of doers. We had this also with .NET and now it seems that we start to have it with Mac. Sons, the better covering of user’s needs through innovation is the thing which will ensure our survival.

So, in short: …and correct me if I’m wrong. ๐Ÿ™‚

Continue reading

Return of the JEDI

Battle of Wikipedia

Don’t sign my doom because is unfair. But support the next Patriarch which will come after me, if he’s chosen accordingly with the rules. The schism is the worst thing.

St. John Chrysostom

Our biggest strength is unity. Even if everyone from us has his own paths. But the conscience of a community makes us strong, stronger than others who are alone trying to compete one with each other. I think that the reason of our existence is to cover as good as we can the needs of our user base and not so much to compete with other entities (commercial or not) which might target the same market segment. We know what happened when a certain company tried to make different “killers”, finishing with .NET ‘killer’, forgetting about the real needs of its community.

On the other hand, if someone will do a study… Continue reading

Giving a heading light

HeadingWe ended the first technology preview stage of our new tool – FileWatcher (we spoke about it here) and we’re heading to a release. There are significant improvements and additional features to that early version posted there, (btw, if you want something in special, you can post it in comments, or send an email) but now I don’t want to speak about these.

I rather want to speak about another human phenomenon which we encountered during the construction of this tool. Because we started something from scratch, we did an experiment: without compromising the product’s quality, we wanted to use Delphi as much as possible and any other 3rd party library (especially our libraries) as sparingly as possible… Continue reading

Why we didn’t convert to .Net. And perhaps we never will…

ShipFirst of all, let me tell you that I don’t care about Delphi as a product by itself. But I do care about our users.

In fact, I was a very convinced assembly guy at the beginning. I didn’t like ZX Spectrum’s Basic, neither the Commodore’s, neither CP/M’s (sorry, guys, perhaps your mileage may vary). Always I tried to please the others and Basic didn’t gave me the power to do this.

In the days of Turbo Pascal I was quite distant from the product because… Continue reading

The Anti-Case campaign

LegoSome time ago, Nick and Malcolm drew our attention on a site which promote an anti-if campaign. Well, I don’t know how much that campaign is interesting for us, because, sincerely, I don’t see any time soon the if construction removed from programming languages.

But I will propose another campaign which I think is much more stringent for Delphi developers… Continue reading

The Omega Effect


The Green Grass of Home

Yesterday, David I passed by ย and congratulated in a comment all the winners of “Delphi Legends” Community Award. (Look at the comments in that post).

It was a very nice gesture, but I really want to comment some of his words here because I think that they are really important.

We now have more people working on Delphi than ever before. Even with increased resources, we still need the vibrant Delphi community to make programming in Delphi the best way to build applications.

David Intersimone โ€œDavid Iโ€

Well, I think that is the time to speak about the Omega Effect…
Continue reading

Compile-A-Virus, FileFeeds: a Solution

FileWatcherLogoThe idea started with the advent of the new kind of viruses commonly called Compile-A-Virus which compiles itself in one of the system units of a certain programming language. Nowadays, the most famous one is the W32/Induc-A which targets the old versions of Delphi, but in fact, there are other malware in the same category which targets other platforms. One of the most targeted platforms today is .NET (starting since 2002 already) on which there are even tools and videos (!) how to do itContinue reading

Delphi Legends 2009 Community Award: The interviews

WinnersHi guys, once again. We have one week since we published the results for Delphi Legends 2009 Community Award. We have also a lot of interesting info to publish both technical and some points of view regarding to important community events which we pass now (including the somewhat unrelated mySQL matter), but today we have a very special post. You will have the occasion to see who are the winners and what your chosen ones are thinking about. The post is rather long (it seems that is a fashion nowadays) but the content (in my humble opinion) really worth the effort… Continue reading

Newsflash: No more MySQL?

mysql60-whereIt seems that dark clouds are gathering around of the future of mySQL since its acquisition by Oracle. In an uncertain atmosphere in which Ex-MySQL leaders take opposite stances in EU-vs.-Oracle discussion (see here) – and a broader overview here, Oracle wipes out without no explanation the downloads for mySQL 6 silently canceling the public beta of the yet-to-be-released database and most probably (?) stalling also the development… Continue reading

Community pulse: Delphi Survey hacked (well, almost) – Part 1

SurveyHi guys, first of all please let me tell you that we have some really interesting interviews with most of the nominees of our award! (more on the pipeline ๐Ÿ˜‰ ) – be sure to check them out in the next posts. Since then, we see that all of you are occupied with the famous Delphi Survey and because this survey is really technical grade and complex please feel free to discuss, ask and comment here and / or in the newsgroups. Note that we snipped the ‘obvious / clear’ (imho) questions… Continue reading

Delphi Legends 2009 Community Award

Delphi SpiritWe reached at the final of our poll and we are ready to present the one who will receive the “Delphi Legends Community Award” this year.

First of all, a big thank you for all which voted (you are approx. 500 coders who voted). We should also be grateful to the Team members who passed by and casted also their vote, but, most importantly, we applaud the Embarcadero’s decision to give this year the “Spirit of Delphi Award”, hence we happily renamed our prize. If you want to review once more who were the finalists you can have look at our previous post.

But let’s advance to see the prizes and comment accordingly… Continue reading

Newsflash: The official Delphi 2010 Survey

RADStudio 2010A message from our projman in the .non-techical battlefield:


First, I want to thank you for all of your support in the past, present, and
future. Below is the link to the 2010 Delphi survey, this is conducted by
Embarcadero and the Product Management for the Delphi product. The
responses are extremely important to us and help to shape the vision and
future of the product.

I know the survey is long, very LONG! But again, the information we get
from the answers you give are needed more than ever.

Please pass this survey on to anybody you think would be interested in
filling it out.

Again, thanks!


Mike Rozlog
Product Manager – Delphi

Be sure to fill it! It is long but it worths the effort. It is one of the BEST surveys which I saw – ok, perhaps you’ll find ‘holes’ but its main feature is that they show that they know what’s happening. Well, but let’s see the implementation. Anyway, we must do our job.

Delphi in the clouds for free

DelphiCloudsWell, to be sincere, I wanted to stop posting for few days till the publication of the results of our Award (at which most probably we’ll change the name in order to distinguish from Embarcadero’s award – we’re open for naming ideas, of course… ๐Ÿ˜‰ ).

But the Team’s real desire to have a nice dialogue with us – see Mike’s postings in .non-technical, but not only ๐Ÿ˜‰ – forces us to give them a humble idea, perhaps it would help… Continue reading

The Genuine Value



“Any IT problem is human in its very core”

Few days ago I spoke about a war of thoughts which is present in our community – basically saying that somewhere in the future Delphi will die. And I proved that this isn’t founded – it is a perception which others exploit. But it seems that we should add much more data on this. Well, let’s start… Continue reading

Delphi is dying (TM) …NOT!


The devil seeks the accord in your mind. It is enough for him to start the war.

St. Mark the Ascetic

There is a constant thinking culture which questions the future of Delphi, “Delphi is dying”, if it is (still) a reliable tool etc. And now I don’t want to focus on the incurable nay-sayers which are among us, programmers, because these kind of characters are always a more or less useful presence for the community… Continue reading