Wednesday, October 15, 2008

Unusual Post. How to prevent Delphi third-party software piracy

This is perhaps the most unusual post I've ever posted.
Some Delphi developers have posted what should be done about Delphi third-party piracy.

Here is my best advice:

Delphi has an option to create both DCU and BPL packages.

Interestingly, when it creates a BPL package, it can link to the BPL without any DCUs required. This is called dynamic linking.

Thus, you can link your trial DCUs and BPLs. The person will link to the trial BPL without requiring any DCUs

Of course, when you have DCUs, they are unprotected assembly files while BPLs can be protected (e.g., using AssProtect, Arnie Armdillo).

Make me a BPL!
The most successful Delphi vendors I've seen never ship any DCUs with their trial products, they only ship BPLs. Much to the amusement, these vendors get lots of sales and healthly profits.

The vendors who are struggling often provide Trial-DCUs and sooner or later, cracked versions of their DCUs are floating around on the Internet.

DelphiHater's advice to all Dephi third-party vendors out there:
Start shipping your trial products with BPL only.

No DCUs are required to create the trial. Product your product using some copy-protection.
Then, watch how your trial customers get really pissed-off, and how they need to "buy" :)

Nearly Dead: ShellPlus reviewed

ShellPlus reviewed

It could be said the vendor is playing "Shell games" with delphi developers - with slow updates (1), buggy software (2) and spam-filled forum (3).

For point (3) See www.shellplus.com/forum/ for their forum :)

For point (1), look no further than the once-a-year DCU update and no Delphi 2009 support. In order to get Delphi 2009 support, you would probably have to wait more than 6 months from now. (They took 9 months to get Delphi 2007 support out :( )

They often hint you to buy the sources to fix the problems yourself. Since the Source code is updated on yearly basis (i.e., you buy the license every year) you can nearly forget about bug fixes.

For point (2) It don't work, work on Vista.
Surprisingly, the product does not work on Vista. The reason is because internal in the code, it has many internal access violations. The exact reason is because the author hard-wired many ShellPlus codes to fixed constants in Shell32.dll and User32.dll.

The source code is nearly worthless. Your blogger, Delphihater brought ShellPlus and sources, and later spent like nearly three hair-raising weeks adding Unicode support to it, fixing nearly hundreds of bugs with it (Did anyone notice their Mantis bug tracker site is password protected?) only to give up when none of the fixes work with Vista.

Eventually, DelphiHater re-did the whole Shell integration in C++, not because DelphiHater hates Delphi, but for these reasons:

1) Delphi has no 64-bit version, so 64-bit Explorer will not load 32-bit Delphi DLLs

2) Delphi 2009 (Unicode) has no good 3rd party support. In this case, ShellPlus has no Delphi 2009 version.

3) The shellplus code has DEP problems. It uses excessive pointers and don't free them correctly - big no-no in Windows XP-SP2, XP-SP3 where DEP is enabled by default.

4) You would have to extensively debug ShellPlus on Vista 32-bit SP1 to get it to work. Believe me, after that, you can drop ShellPlus.

5) Many things claimed don't work. The Explorer toolbar don't work correctly, the NSE-Name_Space libs don't work as claimed. There are so many issues outstanding.


Updated:
Please see my fan-mail response
Fan Mail response

March 2013 update:
They do not have a 64-bit version of their product. Even if you buy the source-codes, you will find it arduous task to update the whole library to 64-bits, then find lots of instability with your Shell Extension. Suggestion is to use C++ or C# - See http://stackoverflow.com/questions/2194572/windows-shell-extension-with-c-sharp  


See: Article Corrections

Wednesday, October 1, 2008

Book Review: In Search of Stupidity

I brought the book In Search of Stupidity 2nd Edition.
The best laugh I had was Chapter 7:

Frenchmen Eats Frog, Chokes to Death:
Borland and Phillipe Kahn
(This review comes from the 2nd Edition, not the 1st Edition)

Insult upon Insult
The book starts off very simply with purchasing Ansa (the owner of Paradox database) then Surpass database (the product was renamed to QuattroPro). Where Kahn's behaviour got the better of him, was the purchase of Ashton-Tate (the makers of DBase). Most of Ashon-Tate's employees were treated very badly, destroying customer's databases, and AT's employees took time to call many key DBase gurus and told them how bad the Borland acquisition of DBase became.

Borland (by Kahn) made DBase "a diry language" and allowed DBase to rot, never bothered to fix many bugs (sounds similar?). Without any decent compiler, DBase languished. The Dbase community got nervous and then migrated to FoxPro.

Borland became Imprise and then Borland, then (some nonsense name), then later CodeGear and then their Tools divison got sold to Embarcadero.

Delphi Hater's Experience
Borland's high-handed tactic was to brand anyone who critized Borland's products troll, trouble-maker and insult upon insult.

Take for example, someone commenting how bad Delphi.NET is, and then branded as Troll (trouble-maker).
http://groups.google.com/group/borland.public.delphi.non-technical/browse_thread/thread/bf1d883ea6e71e84/62956bfe7291ea57

Website Obitruary: ducktech.com

Duck Reporting from DuckTech.com

Like many QuickReport alternatives, it is similar: All Delphi report writers are expensive, full of issues and with bad support.

Quack, Quack
Duck Reports is a report-writer with a report-writer editor and bar-code support. Like many report-writers, it was built for Delphi 3, Delphi 4, and Delphi 5, using the BDE engine.

It was really good, except the price was US$250 per license and like many Delphi vendors, no support for Delphi 6, Delphi 7. The product had little or no help files (not surprised) and very little support.

What happened?
The product looks good but there were serious problems - the lack of future Delphi support, the lack of features (e.g., dot-matrix printer) and BDE independence laid it to doom.

Eventually, ducktech.com went off-line.

Website Obituary: Classic Software

ClassicSw.com - the site now goes to new owner.

Classic Software was one of the first VCL components for Delphi.

The product library worked in 16-bits and 32-bit mode. Those of you who purchased it, it was for Delphi 1, Delphi 2, Delphi 3 and then the company closed down.

Classic Software sold their Chameleon Tabs and Component Collection. The Chameleon tabs was list of panels with owner-draw custom "tab-set". It claimed to have colored tabs, but the color tabs didn't go too well in 256 colors Windows. The different tab shapes were limited to 3 shapes: Windows 3.1, Windows 95, Windows NT style (not much use), the Glyphs didn't work so well in Windows 95/98.

Classic Components was simple custom-grid control with simple Editor, simple date-time picker, simple number (mask-edit) components embedded inside it.

The vendor was very responsive to sales questions but support was non-existent. Since the product was not generating any sales, it was left to rot. When sales went zero, the website went off-line.

What happened? Borland Delphi became Inprise Delphi which lead to much confusion... Another company, Woll2Woll InfoPower wrote better Grid, better editor.

If my memory serves me right, they advertised heavily (btw: costs alot of money) on Delphi Magazine, Delphi Developer Journal, Delphi Informant (or possibly more magazines) and perhaps, due to poor sales, closed down.