Archive for the ‘Delphi’ Category.

Heading to Australia

A while back, the Australian Delphi Users’ Group put out a call for papers for a conference they were planning to hold in March of 2013.  I sent in a submission and it ended up getting accepted, so in about a month I’m going to be going to Australia! 😀

Continue reading ‘Heading to Australia’ »

Does Apple owe Jim McKeeth money?

Jim McKeeth, the RemObjects evangelist who runs delphi.org, was a coworker of mine before he left for RO.  Another coworker just pointed me to a couple articles that mention his name.

Slide to unlock is not Apple’s patent

Smartphone Wars: Micron’s Slide-to-Unlock Patent

Apparently the patent office essentially just ruled that the infamous “slide to unlock” patent that Apple has been beating Samsung and other companies that make Android devices over the head with is actually invalid, because another company, Micron PC, invented it several years before Apple did.  And the name associated with Micron’s patent is Jim McKeeth.

Of course, when something like this happens, you wonder if it’s the same guy or not.  Sometimes people have the same name, you know.  But I did some checking, and it appears that he did used to work at Micron.

So, does Apple owe Jim McKeeth money for this bogus “innovation” that they’ve been extorting money from all sorts of smartphone companies over?  It would be deliciously ironic if they did.

Jim, if you’re reading this, would you mind leaving a comment on the subject?

Delayed Action, revisited

A few days ago, I posted a simple “delayed action” unit that allows you to post a simple action to the Windows Message Queue, to be executed on the main thread after all currently pending messages.  It worked by storing your proc in its own threadsafe queue, then posting a message which, when read, caused the proc to be popped back off the queue and executed. Continue reading ‘Delayed Action, revisited’ »

How not to write a parser

So if you’ve got two JSON objects, one that’s serialized as

{"Value": []}

and the other as

{
  "Value": [
  ]
}

is there any difference between them? Continue reading ‘How not to write a parser’ »

The language engineer’s triangle

Interesting new post by Andreas Hausladen this morning.  It seems that there’s new copy protection in XE3 that scans all DLLs in the same folder as BDS.exe to ensure that they’re signed, apparently to keep crackers from pwning BDS with a poisoned library.  And according to Andreas, it really slows down the IDE’s startup time. Continue reading ‘The language engineer’s triangle’ »

Delayed action

When you work with UIs, order of operations can be very important.  Windows’s UI works based on an event queue and a message pump that reads events from the queue and dispatches them.  And since the UI is single-threaded, this means that at any time, there could be pending events about to execute while you’re handling some UI code.

Sometimes you’ll get into a situation where you need to execute something, but not right away; you need it to happen after all of the pending events have processed.  Now, obviously, the best way to make something happen after everything in the queue has processed is to put something else onto the queue directly behind everything that’s currently in there.  But the tricky part is what happens when it comes back out. Continue reading ‘Delayed action’ »

Thoughts on Embarcadero’s business model

Like a lot of you, I got my SA subscriber’s notification that XE3 has been released last night.  (I decided not to cancel after Embarcadero reconsidered the changes to their licensing policy.)  I’ve been too busy today trying to track down a tricky bug in a personal project I’m working on to download and install it, so I don’t have too much to say about the product yet.  I’ll post a first-look review sometime soon.  But that’s not what I wanted to say here right now.  Since my previous article, I’ve been talking a fair amount with David Intersimone, and it’s been quite the enlightening experience.  A lot of it was private, of course, but there’s one thing that I’d like to talk about. Continue reading ‘Thoughts on Embarcadero’s business model’ »

Embarcadero’s indefensible licensing change

If you haven’t seen it yet, there’s a very disturbing post by Jolyon Smith about a leaked NDA document covering a licensing change in Delphi XE3. The upshot is that new licensees will no longer be able to use Delphi Professional for database development unless it’s a local database only, even if they use a third-party library.

And it gets worse.  This issue is exploding on the Delphi forum, and partway down there’s a post from David Intersimone, in his usual damage-control/spin control style, stating that:

All Delphi customers up to and including XE2 are covered – even if you upgrade to XE3. The EULA only affects new customers from XE3 and forward.

In other words, this isn’t just a fake document cooked up to rile people up; we now have official confirmation from an official Embarcadero spokesman that it’s true–but don’t you worry your pretty little head, it doesn’t affect *you* if you’re already using Delphi.  It’s just for new users.

Continue reading ‘Embarcadero’s indefensible licensing change’ »

Open response to Simon Stuart

As you may be aware, Simon Stuart is building what could basically be described as an App Store for Delphi packages.  I really like this idea.  But he’s apparently got some very strange–and downright harmful, on a couple points–ideas about how it should be set up.  When one of the commenters asked, “Hi. Will this RADStore be somehow simillar to nuget? Is it open source/can we help?” he responded with:

It cannot be open source due to the need to handle payment information (making such a system open source would be a MAJOR security risk)… but suggestions and feedback are (as always) greatly appreciated, and EVERYTHING is considered (no matter how crazy it may at first appear).

I couldn’t believe my eyes when I read that. Continue reading ‘Open response to Simon Stuart’ »

You can’t remove open-source code from public use

I commented a couple days ago on Smart Mobile Studio’s release and how happy I was that they’d found a payment processor that minimizes the hassle for users. Well, I’m a bit less pleased at the stunt they tried to pull this morning.

There’s a post over on the Smart Mobile Studio dev blog explaining that, due to an arrangement between them and the company that Eric Grange works for, they’ve obtained the exclusive rights to DWS’s Javascript code generator, and it’s

hereby withdrawn from public use. Any company currently deploying this technology, or a derivative of it, is bound by international law to abandon it.

Well, there’s just one problem with that: they can’t do it.  The JS codegen units, like the rest of DWS, were published under the Mozilla Public License, with an MPL header at the top and everything, and the MPL grants those who download the code

a world-wide, royalty-free, non-exclusive license under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work.

The only ways that a license grant under the MPL can be terminated are specified in section 8: if the licensee fails to comply with the terms of the MPL, or if the licensee tries to sue the developer.  It very conspicuously does not say that the developer can revoke the license.

Even Borland understood this.  They never tried to strip InterBase (which they published under the MPL at one point) of its open-source status when they decided they wanted to keep working on it as a proprietary project.  They just stopped contributing to Firebird, started pretending like it didn’t exist instead, and kept working on InterBase and trying to differentiate it with new and better features.  And they certainly didn’t assert that people using or developing Firebird were in violation of international law.

This would be the best course of action for Optimale Systemer AS to take as well.  They’re free to continue further, proprietary work on it, and now they’ll need to if they want to differentiate it from what’s already out there.  Anyone else is still free to use, or even to fork and continue working on, the existing code.  (Which, by the way, has been deleted from SVN in the Google Code repository’s head, but is still available if you check out to revision #1462.)  Their current position is legally untenable, claims of “international law” notwithstanding.  It would never hold up in court, and I certainly hope they don’t waste any resources proving that.  They’d be much better spent continuing to improve their product.

I wonder if any other developers will be willing to take up the mantle and continue work on the open-source JS codegen, the way Eric did for DWS itself after Matthias Ackermann stopped working on it?