Saturday, April 17, 2010

Website Obituary: VisPdf.com, Sybrex.com, VersyPdf.com

PDF Blues
PDF generation used to be a lucrative market - Many aspiring developers made shoddy VCL components that creates PDF files or assists in creating PDF files, expecting to get rich overnight. This is sad tale of a PDF component vendor who could have made it...

What killed VisPdf?
It was almost the perfect business model - write a PDF library, sell PDF library for US$298 (Single User) or US$798 (5-10 developer licenses), then sell upgrades every year (20% of price), and do email support every day. Before the website went off-line, the vendor and author Mr. R. Husske claimed there were more than 100,000 users using it (Approx US$29,800,000 in sales).

So what went wrong?
1) Contrary to what the vendor says, your reviewer did some digging up some financial information and found less than 50 sales (Approx US$14,900) or almost 95% less than what was claimed.

2) The VCL written is not complete. It does not encompass the full set of specifications laid out by Adobe. This was probably the deal breaker. Load an Adobe PDF 6 (1.3) or PDF 7 (1.4) file, and it would lose certain graphics, or texts, but..., since this vendor never bothered to update it since 2 or 3 years ago (Since 2008) ... and this vendor out of business, your reviewer thinks this does not matter anymore.

3) There is amazing Perl Modules for PDF, PHP libraries also include PDF export out-of-the-box, free PDF code for Ruby, and PDF manipulation in Python, free PDF libraries in Java, why should I pay for Delphi PDF products?

Since IntraWeb is almost useless, many Delphi users who want to export to PDF from Delphi, would find many free libraries when Delphi users "translate" their Delphi Win32 product to PHP, Perl, Python, ASP, ASP.NET for the Web.

4) No Report writer export. Go back 5 years ago, QuickReport did not have a PDF export, ReportBuilder had no PDF export, Nevrona Rave had no PDF export, but now, almost every Report Writer on the market has a PDF export, so ... buying James Waler's PDF Export component for ReportBuilder, RareFind's export components for FastReport is now a thing of the past.

Since there is no PDF export adapter for those report writer, one less product to buy.

5) No Grid export component. There was no way to export from DBGrid (or InfoPower Grid, DevExpress Grid) to VisiPDF.

6) The main vendors - Gnostice PDF and Debenu QuickPDF surpassed VisiPDF in terms of feature and functionality, you could just replace the VisPDF component with Gnostice or VisiPDF. It did not take too long - maybe just a few hours of work to replace the VisiPDF to QuickPDF instead.

7) The DLL and 64-bit DLL issue. Some people use C++ to access legacy Delphi DLLs. Since there is no container or provision for DLL usage in VisPDF, people who use C/C++ could not use this product. Also, people who use 64-bit Visual C++ could not use the 32-bit DLL, if VisPDF was compiled to a DLL. Go figure.

Lessons
Your reviewer sees survival of the fittest - the best PDF product in terms of functionality and feature will win, not some half-implemented PDF library with so many limitations. Unfortunately, VisPDF vendor could have made substantial improvements to their product, but failed to do so.

Of course, you could revive VisPDF by doing the following steps:
1) Contact the vendor and ask them for a price to buy the copyright for VisPDF
2) Make a new website and more web-pages to sell the product
3) Spend hours and hours upgrading the PDF library to latest Adobe specifications

But of course, nobody would do such a thing because the copyright would be very costly and substantial time and effort to update the library. Also, there is no guarantee of success - you could end up closing shop like what this vendor did.

Next article
Your reviewer's next article will be on Nevrona Designs Rave Reports. Your reviewer has written about Nevrona Rave Report, asking Embarcadero to replace Rave Reports with FastReports instead. At least your reviewer is not the only person complaining about it - Thomas Pfister wrote on his blog he would no longer be using Rave Reports.

16 comments:

Delphi Haters said...

Mike,
what do you think we should do about the "cost savings" or not paying for potential seats?

Do like what /n software does with their IP works framework - activate per seat and prompt a dialog box to call XXX-XX-XXX number if there is an issue?

This is what other vendors does - DeveloperExpress, AdvantageDatabase Server, TeeChart (latest version) to name a few.

Another thing is to stop giving full sources and partial sources and emit the serial number, like IntraWeb.

Delphi Haters said...

Here's a story to share:

I'm subscriber to DevExpress. One day, I got really sick and tired of Andrei J. "Feandy" hacking and cracking DeveloperExpress and so I decided to publish my "security analysis" of DevExpress VCL build #47, #48, #49, #50 and other tips I discussed with JulianB.

Same with Embarcadero cracks. Google for the "[INFO] This guy is embarked in a f*c*k us all trip".

Same for the latest Delphi 2011 leaks that are floating around.

Did you try IntraWeb? I spend some time updating the whole project to ASP.NET lately.

Delphi Haters said...

The funny thing is Mike, I spend much more on services than actual license costs.

One of the things I cannot understand about Delphi is how they managed to mess-up things so badly.

I'd just wish Delphi had some working inter-op with C# or Java or PHP.

There's a Java Enterprise stack with enterprise-ready features and tested (or certified) so people know it's dependable.

There's also LAMP stack which people can trust for their businesses.

For Delphi..., it's a hit and miss affair. Delphi stopped playing with Apache long time ago, Delphi's Internet/ ISAPI libraries have been "depreciated" in favour of IntraWeb. Yeah, you could build your own web-server, but with every server on the internet using Apache or IIS, that's a hard-sell.

There's so many database components to choose from, but all of them are proprietary to vendor or solution. AnyDac, they only published two tutorials and the learning curve is quite steep.

Between Habari (I have licenses for it), Really-Thin-Client, KbmMW, AstaTech, the only working solution between PHP/Java/C# that could inter-op correctly was RemObjects SOAP library.

If you want middleware, I suggest you go for a PHP/Soap solution and then get the data over RemObjects SOAP.

Another thing you could consider is fully web-based solution. No local client. It's almost the same. Almost everyone uses web-browsers now-a-days.

One more nail in the coffin for Delphi?

Delphi Haters said...

I used the Developer Express's "ExpressWebFramework" (EWF) components many years ago.

They looked fabulous, much better quality than IntraWeb and then was dropped or depreciated.

Did you try WaveMaker? it's almost as good as Delphi is, except it's for Java/Ajax/DoJo.

A. D. said...

About the Database components:

Indeed there are database components that are proprietary to vendor or solution.

But the reason behind all this is that the SQL-Standard is a bit of an Anti-Pattern - nobody is fully compatible and everyone uses his own proprietary enhancements.
For anything more complex than a SELECT * FROM Table there'll be incompatibilities.

Good luck that Delphi users don't need anything more complex than that.

As long as even different versions of databases differ greatly from each other I don't believe anyone who ties to sell a multi-headed monkey component that promises to take care of it all.

They're either a lowest common denominator solution or so complex that anyone using it would be better off using specialised solutions in the first place.

Good luck that there aren't too many Delphi delvelopers left that know what CTEs or those stinking Transactions are. There are even rumours that there's this one guy left who has actually read a book about SQL.

Loved the ADO components from Delphi that were so smart that they didn't allow me to send a SQL-Statement, because its retarded parser didn't like it (not that there's a need for the component to do anything but just read the result-set)

Delphi Haters said...

coming back to the question:

What would it take to get Delphi back to where it was, maybe 7 or 8 years ago?

e.g., remember the good old days when TurboPower was producing good products, Delphi 3 just came out? :)

For starters, I can think of Delphi/64 as the most important thing. The other thing is scripted/delphi in a LAMP-stack similar or equivalent solution.

Another, is making sense of the database mess in Delphi,

Another, is for lack of better words, modernizing the VCL...

Delphi Haters said...

right now, we have the complete opposite:
- high prices,

- poor components where it's coming to the point where companies are dropping like flies.

- subscription model and the developer takes forever to deliver...

Chris said...

Another, is for lack of better words, modernizing the VCL...

Ha! That would be a fantastic way to shrink the number of active third party component makers even further. In fact, that would be a fantastic way to shrink the number of active Delphi developers even further, assuming 'modernising' would mean not just tinkering around the edges, but dumping the VB-style Rapid Application Disorder approach entirely. (A recent post in the forums had some guy idly wondering how to modernise his current style of dumping everthing in OnClick handlers of 200 lines...)

Delphi Haters said...

@Chris,

I really don't know how to say this, and this sounds even more weird.

Modernization:
Anyone who has Visual Studio 2008, get the Dekarit Model-driven tool, or many ORMs available in the NET framework.

Look at DevExpress.VCL, TMS Docking implementation and the counterparts in NET - DevExpress.Docking, ComponentOne Docking, NET Advantage Docking and so on.

What do you first observe? All the Delphi implementations are missing features or done in some funny way that looks non-standard.

What seems to be stopping Delphi vendors from implementing new features is in-between:

Locking-in-profits. Some of the companies are reporting profit year after year. The newer players cannot compete because of lock-in subscriptions and predatory pricing

Delphi Developers are squeezed left and right for money until they do not even have spare-change for Delphi Magazines.

Any attempt to put features into the VCL means goodness for Delphi developers, but the way how Embarcardero manages the VCL, it feels like getting updates on every upgrade-time, and half-abandonware VCLs.

So the question is, coming back to Mike and Chris, what would it take to improve Delphi?

Mike, try employing one more Delphi Developer - the costs will kill you, either now or eventually.

Anonymous said...

------------------------
Your reviewer looked at many of the security features offered in VmProtect.Ru (VMProtect is used to encrypt the current DevExpress build #50 setup) and found it was garbage and toy copy protection. It will stop the casual hackers... but it may not be sufficient to stop a crap.
------------------------
Vmprotect is designed to virtualize selected part of binary code. It is not mutation of one Intel ASM instruction to set of other Intel ASM instructions. Each Intel ASM instruction converts to instructions of virtual processor. The virtual instruction is unique to each build of the protected application. Virtualization processor is not based on Intel or RISC architecture. So you can not use usual tools(debugers and decompilers) to analyze virtualyzed code. Virtualized code allows to hide program logic and prevent patches of the Virtualized code. Also VMProtect allows to encrypt selected virualized code with asymmetric key. The main problem of virualization technology it is slow down execution of the virualization code (So you can not virtulize all protected application). The other problem antivirus vendors also cannot analyze virtualized code created by VMProtect and this feature widely used by virus and malware developers (This cause false positives to normal application protected by VMProtect).

So It is NOT toy technology. As I know there is no working tool that allow to convert VMProtect virualized code to Intel ASM instruction.

Anonymous said...

------------------------
Your reviewer looked at many of the security features offered in VmProtect.Ru (VMProtect is used to encrypt the current DevExpress build #50 setup) and found it was garbage and toy copy protection. It will stop the casual hackers... but it may not be sufficient to stop a crap.
------------------------
Vmprotect is designed to virtualize selected part of binary code. It is not mutation of one Intel ASM instruction to set of other Intel ASM instructions. Each Intel ASM instruction converts to instructions of virtual processor. The virtual instruction is unique to each build of the protected application. Virtualization processor is not based on Intel or RISC architecture. So you can not use usual tools(debugers and decompilers) to analyze virtualyzed code. Virtualized code allows to hide program logic and prevent patches of the Virtualized code. Also VMProtect allows to encrypt selected virualized code with asymmetric key. The main problem of virualization technology it is slow down execution of the virualization code (So you can not virtulize all protected application). The other problem antivirus vendors also cannot analyze virtualized code created by VMProtect and this feature widely used by virus and malware developers (This cause false positives to normal application protected by VMProtect).

So It is NOT toy technology. As I know there is no working tool that allow to convert VMProtect virualized code to Intel ASM instruction.

Anonymous said...

Sorry there is the mistake in my previous message

--------
Also VMProtect allows to encrypt selected virualized code with asymmetric key.
--------
should be "symmetric key".
But asymmetric algo also used:
RSA key used to validate serial numbers.

Delphi Haters said...

Hi,
you must be vendor of VMProtect.

Why don't you give Julian / DevExpress an email and tell him one more time to put his trust and confidence in your VMProtect application?

If the DevExpress gets cracked one more time, game over. We will all know VMProtect is just rubbish.

A.Bouchez said...

And there is Open Source!

We released an PDF producing engine, in pure Delphi code, which handles production from MetaFile/VCL Canvas, embed TTF, compress pictures, handle Uniscribe (tested with Arabic) and such.

Of course, it's not complete, but it works for most project, it's free, and source code is there. I've had already some comments and new features from zealous users.

There is a reporting feature available.

See htpp://synopse.info

Rowan said...

Actually, VisPDF failed because they appear to be a fake enterprise who are in the business of defrauding people. VisPDF.com now redirects to loslab.com and losLab are illegally re-badging one of my companies products and reselling it as their own. I presume they're doing the same thing with their other products. Be warned, your credit cards are not safe with VisPDF, losLabs or any other products that are associated with that "company".

Delphi Haters said...

hi Rowan,
I believe you are the vendor of QuickPDF Library :)

Did you know the source codes of your 7.22 beta 3, 7.20 is floating on the Internet?

There is also several not-so-legal boards which have several users who place your latest 7.22 beta sources onto RapidShare, etc.

See my blog for copy-protection tips :)