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?

A smart new way to handle payments

For those who weren’t aware, Smart Mobile Studio came out earlier today.  I’ve been following the project for a while, and when it was released, I went to purchase it…

…and couldn’t.  The payment processor they’ve got set up doesn’t like free email accounts (which pretty much everyone on the entire Internet has) and the only alternative they offered was to mail them a check.  (Seriously?  Do they think it’s still the 90s or something?)  And they didn’t even accept PayPal, which is kind of ridiculous in 2012.  So, note to anyone out there who wants to handle payments for something: please avoid Digital River like the plague until they shape up their act.  Do not make it difficult for your customers to give you their money.

So I emailed Jon Lennart Aasenden about it, explaining the problems I’d had.  And it’s kind of magical, the way words like “your broken payment processor just lost you a few hundred dollars” can motivate people to act.  I had an email back from Jon within about 5 minutes, and a new purchase link about 3 hours later. Continue reading ‘A smart new way to handle payments’ »

Remember, Black March begins today

For those who haven’t heard about Black March, it’s a continuation of the worldwide copyright abuse protests that have been going on since January.  We who rely on the Internet and love it realize that the proposed laws and treaties intended to abuse copyright law to alter the fundamental principles of the way the Internet operates didn’t come out of nowhere. They weren’t thought up by some Congressman who realized one day that he hadn’t fulfilled his Evil Quota yet.  No, they have a very specific source: the entertainment industry, which has been lobbying non-stop for ever-increasing copyright “protection” for the last 3 decades and more.

With Black March, we intend to fight back.  The entertainment industry is made up of corporations, and when people note that corporations are abusing their power, one of the standard responses to any complaint is “if you don’t like it, then don’t buy their products.”  So we’re deciding not to.

March is the final month in the first financial quarter, and we’re celebrating it with a worldwide boycott of all entertainment industry products.  For one month, we will not buy any music, movies, books, magazines or video games from any company that is part of the problem.  This is a move designed to leave a gaping hole in the industry’s finances for the first quarter.  The Internet has become an essential part of our society, and interference with its operation will not be tolerated.

And although the Black March site doesn’t mention it, I think that what you do do is as important as what you don’t do.  Not everyone creating and distributing entertainment is part of the problem.  On the other side of the spectrum, we’ve got independent music and film creators who create and distribute their work without industry control.  We’ve got game developers like Stardock, who produce and sell high-quality games and refuse to violate their users’ rights with DRM.  We’ve got authors like Howard Tayler, a former computer programmer who’s been supporting himself and his family for several years now on the revenues from merchandise from his consistently-funny webcomic Schlock Mercenary.

There are people, and even a few companies, that are working with the Internet instead of against it to make their income, and I think that it’s important to support them.  They’re the future we want to help create as we reject the outdated past that the dinosaurs of the industry are trying to keep us stuck in.

An email from Stardock

As you may know if you’ve been reading for a while, I’m a gamer.  Have been pretty much my whole life.  In fact, it was the prospect of creating my own video games that first got me into programming.

A while back, I purchased Elemental, the latest game by Stardock, a company with a reputation for making high-quality games and for being a lot more ethical than many gaming companies.  Their Sins of a Solar Empire was the best-selling game of 2008, for example, even though they refused to put any DRM on their software.  (So much for piracy destroying sales!)  They’re also the guys who created Impulse, a Steam competitor that ended up getting bought by GameStop last year.

Elemental, unfortunately, was not a high-quality game.  The basic concept was decent–not exceptional, but not *bad* either–but the game itself was a slow, crashy, bug-ridden mess.  Several patches over the course of several months eventually got it to a mostly-decent state, but in no way did it live up to expectations.

They just did something that does a lot to redeem them in my eyes.  I woke up this morning with the following letter in my email: Continue reading ‘An email from Stardock’ »

The worst thing about SOPA

Have you heard of the Golden Mean Fallacy?  I would link to the Wikipedia page, but they’re blacked out today, so here’s an excerpt from its description:

…a logical fallacy which asserts that given two positions there exists a compromise between them which must be correct.  [It] implies that the positions being considered represent extremes of a continuum of opinions, and that such extremes are always wrong, and the middle ground is always correct. This is not always the case. Sometimes only X or Y is acceptable, with no middle ground possible. Additionally, the middle ground fallacy allows any position to be invalidated, even those that have been reached by previous applications of the same method; all one must do is present yet another, radically opposed position, and the middle-ground compromise will be forced closer to that position.

I added emphasis to a very important part of the explanation.  All you have to do to make something bad look good is come up with something even worse to compare it to.  And given the human capacity for imagination, that’s not such a difficult task. Continue reading ‘The worst thing about SOPA’ »

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?’ »