Archive for the ‘Delphi’ Category.

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?

Job opportunities at WideOrbit

Just thought I’d throw this one out there.  My employer, WideOrbit, is currently hiring.  We’ve got multiple development positions open for both Delphi and C#/Silverlight skillsets.  (SQL experience, especially with MS SQL Server, really helps too.)  At WideOrbit we build industry-leading software for managing broadcast media.  If you live in the USA, there’s a pretty good chance your favorite station is running on WideOrbit software, and we built it in Delphi.  (Mostly.)

Our development office is in Lynnwood, Washington, (about half an hour from Seattle,) and on-site work is preferred, though some exceptions do (infrequently) get made on a case-by-case basis.  It’s a good location, right across the street from a major mall (plenty of places to go for lunch!), with good pay and working conditions.  The office has a friendly, engineer-centric culture, and it really helps that the manager is a former coder and the boss still is one.  No pointy hair here!

Only those who know what they’re doing need apply.  The developers take an active part in the interview process, and we’ve got really high standards.  We understand that the only way to develop good software is with good developers, and we try hard to make sure that that’s all we get.  But if you’re good and you can demonstrate that you know what you’re doing, you’re likely to get an offer.

If anyone’s interested, send me a resume at mwheeler@wideorbit.com and I’ll see about getting you an interview.

RTTI Script basic examples

After a few requests for examples and an assertion in the comments that noting actually compiles or runs, I’ve updated the repository a little. Continue reading ‘RTTI Script basic examples’ »

RTTI Script alpha release

Way back at the start of this year, I wrote about how I’d been working on a new Object Pascal-based script engine built around Delphi’s extended RTTI system.  And then it got real quiet, because more immediate concerns took priority for me.  But I’ve gotten to the point in my game engine development where I really need to put in the scripting system, so I spent the last couple weeks finishing up the implementation and tuning the performance a little, and now I’ve got an alpha version ready.  If anyone would like to try it out, they can find it on Google Code.

Continue reading ‘RTTI Script alpha release’ »

A handle leak in TWinControl?

For the TURBU engine, I’ve got a custom control that allows me to embed an OpenGL rendering context on a form.  I was working on some new features, and I downloaded gDEBugger, an OpenGL debugging tool, to help out.  One of the things it told me is that my rendering contexts were leaking. Continue reading ‘A handle leak in TWinControl?’ »

Wish list: Slicing syntax

I’ve been doing a lot of string processing work lately.  Delphi has a lot of strengths, but unfortunately string manipulation really isn’t one of them.  It gets really messy really quickly if you’re trying to do anything complicated.  Extracting substrings out of strings quickly degenerates into a mess of difficult-to-read Copy calls.  It would sure be nice if there was a better way. Continue reading ‘Wish list: Slicing syntax’ »

DelphiLive keynote overview

I just got out of the DelphiLive keynote, presented by Michael Swindell and various other members.  As you can imagine, it was mostly about XE2 and demoing the new technologies, with a lot of talk about FireMonkey and using it for cross-platform development.  Here’s what really caught my notice: Continue reading ‘DelphiLive keynote overview’ »

XE2: TValue is much faster now

About a year and a half ago, I reported on how slow the original implementation of TValue in Delphi 2010 was, touching off a storm of comments and various other blog posts as other Delphi community members conducted similar experiments.  One thing that came out of it was a suggestion by Robert Love on how to improve performance by adding code to optimize for the most common cases. Continue reading ‘XE2: TValue is much faster now’ »

XE2: New Delphi, same old broken installer

Since D2009 at least, I’ve never managed to get a new Delphi release to install correctly on the first try.  Each time, it’s been the same basic problem.  Each time, I’ve contacted Embarcadero about it and asked them to fix it.  Unfortunately, they still haven’t. Continue reading ‘XE2: New Delphi, same old broken installer’ »

Odd timing

I got an email this morning from Embarcadero, a pretty straightforward marketing letter that probably everyone on SA for Delphi received.  But one thing caught my eye:

64-bit is scheduled to be released this August.

That’s not particularly unexpected, since that’s when the new releases tend to come out.  But it does confirm one thing I thought was kind of strange when I got the DelphiLive! 2011 Call For Papers email a few weeks ago. Continue reading ‘Odd timing’ »