Wednesday, June 23, 2010

Smells like Team Spirit Nevrona - Rave Reports

See below for article updates

In the year 2001, Delphi 6 was released. In the Delphi 6 Professional box was Rave Reporter "Delphi edition", a no-source edition of Rave Report.


Nevrona Designs Rave Reporter was selected to replace the ill-fated QuickReport in Delphi 1, almost rewritten QuickReport in Delphi 2, ReportSmith (licensed from Crystal Reports) and Object Windows Library Print Preview feature.

VCL as successor to OWL
For those oldies, to print a report in Turbo Pascal for Windows, you had to do direct output to LPT1, LPT2 and learn the Epson printer command language, or HP laser jet ESC-> language. With Windows, you print using Windows GDI commands and they would be translated to the relevant printer-command language (PCL).

To replace Borland ReportSmith
Those of you who used ReportSmith, it required 8 diskettes run-time (exclusive of 5 more diskettes for BDE and around 3 more diskettes for your application). So you shipped your application with around 20 diskettes... or had to buy a CD writer for your application. In those days, CD writers costs US$1000 or more. Not all PCs had CD-ROMs until much later when CD-ROM drives became ubiquitous. It was really pain to use ReportSmith. From Windows 3.1 (or Windows 3.11 with Win32-subset) or Windows 95, you had your application running, BDE running, probably Microsoft Word 7 or Word 95 and with Borland ReportSmith running, it would suck-up all the GDI, USER resources. In order to buy "full-featured" version of ReportSmith after Delphi 5, you had to buy full version Crystal Reports and use that instead. Go figure.


To replace QuickReports 1.0, 2.0
The people who designed QuickReport charged end-users US$499 (they did reduced it to US$399 then US$299) but did not make updates. Thus, Delphi 3, Delphi 4, Delphi 5 had buggy versions of QuickReports and require "extortion" payment and updating code yourself. Since QuickReport did not have a designer (note: there used to be QR Artist, QR Designer add-ons before QBSoft brought them over) The "only" solution was to buy a 3rd-party Report Writer, such as Pirparti Pro, now called Report Builder, SCT-Associates ACE Reporter, FastReports and Nevrona Report Writer. Thus, in order to "use" QuickReport, you had to upgrade almost every year (US$99 per Delphi upgrade), buy PDF add-ons (from either Gnostice/RareFind) (US$99, US$249 with sources), buy a designer (QR Designer or QR Artist) (US$99, US$149-US$299 with sources), buy bar-code addons from TurboPower or some other vendors (US$149 or more) and it becomes a costly affair just to print something out. There were reports and posts from the newsgroups that QuickReports was actually one person vendor.



While Mr. Chad Hower (Kadzu) was working at Nevrona Designs, he managed to convince the Borland folks to license their WinShoes - now called Indy, Delphi for Internet - now called IntraWeb, and Nevrona Design's Report Writer. That must have been an achievement for Mr. Chad Hower and Mr. Jim Gunkel.


The facts don't report the truth
The key fact with Nevrona Design's Rave Report is it is distributed with every copy of Delphi. That must have been quite an achievement. If every Tom, Dick and Harry Delphi developer brought
Nevrona Design's Rave Reporter full-edition instead of the Delphi edition, Mr. Jim Gunkel would have been very rich. There would be thousands of posts on Nevrona Design's newsgroups, plenty of paid technical support instead thousands of unanswered posts, and the current unpaid Team Nevrona. It got so bad that Mr. Thomas Pfister said it was time to say "Goodbye" in his blog posting. I'm sure that Mr. Thomas Pfister felt his time was worth more than that lonely feeling on Nevrona Design's newsgroups.


Reporting late, later and later...
The issues started happening five years back, around Delphi 2006, Delphi 2007 time. There were promises of bug-fixes, promises of new features. The first nail in the coffin was this DEP (Data Execution Prevention) issue that came and went. Although it was never fully fixed, people who deployed the newer Report Printer Pro had this issue.

There was also this nagging issue about WYSIWYG report writer designer that others (Ace Reporter, Duck Report, Pirapati Pro, Fast Report) had. With the new version of Rave Reports, it was delivered - at great cost. It worked almost - The Data pipelines from Delphi to Rave Reports would get "lost" at times, causing much frustration. The RTF export would sometimes be hideous, truncated or unusable, The PDF would give crazy formatting, be un-openable or corrupted, HTML templates comes with really scant documentation and no help on the Nevrona Newsgroups. One wonders why Nevrona Reports was selected to replace QuickReports. At least - the people at QBSoft care about QuickReports and often reply to questions on the Embarcadero newsgroups asking them to use the latest Embarcadero version of their product. Ditto for the Fast Report people


Rave Unicode
The issue with Delphi, Unicode and Nevrona Designs is the RPT file format that Nevrona uses. They should have gone XML or created a new file format instead of reuse. The trouble with printing, is it takes 1 byte as 1 character and Delphi uses 2 bytes for 1 character. If you do not check your memory allocations, you would have serious buffer overflows or underflows. With everything in Unicode - where PAnsiChar, PChar is different, the trouble started from the day Delphi 2009 was released - an almost unusable Rave Reports was shipped. There were promises, promises to get it fixed but no results (as of writing this article). In the mean time, people got really angry with Rave Reports...


Rave Payments
There was always this "payment issue" and upgrades. In order to get the latest fixes, you had to buy full version of Rave Reports. It was this "Take it or leave it" mentality that killed Borland/CodeGear that persisted into Nevrona Designs. So long as there were thousands of copies of Delphi sold, there would always be this sucker who would buy one or two copies of Rave Reports out of desperation. The difference is, you cannot easily duplicate Delphi, but there are 3 or 4 other report writer solution in the market. You could get FastReport, ReportBuilder, AceReport, Crystal (if you're doing SAP)

Your reviewer will take look at other Report Writers out there and look at one worthy to replace Nevrona Design's Rave.


Business Object's Crystal Reports.The difference between Rave and Crystal Reports is the pointy-hair boss needing a report badly and fast solution to get it. With Rave Reports, you had to buy Delphi, buy some third-party database access solution and then spend more time making reports. With Crystal Reports, you could design almost all of reports and then make minor environment changes (e.g., database server name, database, passing variables, etc.) and your report would still work. End users loved it because they could write SQL statements and get their data formatted the way they wanted without too much fuss. Since it did not need Delphi, it saved on an unnecessary cost.

Pros: CrystalReports can access SAP information
Cons: Disliked by Delphi developers. Has this huge run-time issue (not really an issue IMHO), poor Delphi integration, uses Basic-like syntax, screens that feel "very basic".



That depends on whether Embarcadero wishes to license Crystal Reports. Remembering the past, ReportSmith wasn't a good idea. It would be better if Embacardero offered some help on Crystal Report's Delphi integration (make it better, more documentation) than hapless Delphi developers asking questions without any answers on Embarcadero's newsgroups.


Combit's List & Label This would be serious contender to replace Nevrona Rave Reports. At the very least, it would solve some pressing problems - like having a working, usable end-user report designer, decent PDF exports and with German language support (for those German people who hate English and must use German) and some understanding that Reporting is serious business.


R&R Reporter
I've included R&R Report writer here because some Delphi developers are great Clipper and Btrieve fans. Some of you might remember the R&R advertisement on Delphi informant, The Delphi Magazine and those special offers on the Delphi Informant many years ago.

Their business practice went in this manner:
1) Liveware would place an advertisement or sent those advertisement letters to you/ or to your business.
3) You would order their starter kit (and still is today - having no free downloads?) and first order.
4) You would probably get sued or your name smeared for illegal run-time distribution. (??)
5) You find out about other report writers in the market.



Ace Reporter.
Not serious contender, but some people use it. AdaptAccounts uses AceReporter for their older Paradox versions. (They now use ReportBuilder). It has an excellent Report Designer but no run-time editor (they have a run-time viewer to view those Ace Report files). Almost 5 years have passed since 2005 and SCT Associates releases just upgrades for newer compilers.


QuickReport as alternative to Nevrona Design's Rave Reporter.
The newer offering from QBSoft seems to be good enough. QBSoft brought over Timo Hartmaan's QR Designer, QR utilities, and bundled it with Gnostice's PDF export.

One certain vendor - BS/1 software uses QuickReports (and DBISAM) and you would see people begging around for QuickReports full version (and DBISAM) just to compile BS/1 software.

Just for your info - Timothy Young and Samatha Young from ElevateSoft verifies each DBISAM or ElevateDB order. One thing for sure is that nobody leaked DBISAM after that "leak" was identified and shut down. People are always begging for DBISAM or ElevateDB.


QuickReport as replacement, if done right, would be an excellent choice.


Team Spirit Nevrona
The irony of Nevrona Design's closed-source Rave Reports against Indy's almost open-source model of distribution. It was many years ago that Mr. Chad Hower (at Nevrona Designs), open-sourced Indy and parts of (older) Delphi for Internet (now called IntraWeb). Why not open-source Rave Reports? that would enable other people (if given the time and money) to fix it and stop this mess.

Open-source would be an excellent idea. Instead of your reviewer paying for the cost of the product, your reviewer would instead pay for reports to be made (higher-value), add-ons (more higher value) and better works. Strangely, I would pay US$5,000 for a set of reports to be made than pay for the cost for Rave Reports. Mr. Jim Gunkel would be an open-source hero overnight.


Fast Report & Report Builder

Your reviewer looks at the animosity between Mr. Nard Mosely (Digital Metaphors/Report Builder) "DM" and the Fast Report vendor. DM claims that Fast Reports copied most of their code and rewrote it. But if you look deep inside - some parts of FastReports was made into FreeReports on the vendor's site. A detailed analysis revealed similar ideas but different models of implementation.

- The first vendor who had Data Pipelines or DataSet/DataSource components between the database and report writer was Crystal Reports, then AceReport, then picked-up by Pirapati Pro (the "Tpp" prefix in the Report Builder) and FastReports. Ditto for Toolbars. Toolbars are so common, you could throw a rock and it would hit 10 or 20 vendors who made Toolbars before Jordan Russell's Toolbar97/ Toolbar 2000 drove them out of business.

- FastReport has it's own Scripting (called FastScripts) and Decision Cube (FastCube) and the enterprise version comes with full sources.


- Formerly, you had to buy Jame Waler's TExportDevices for ReportBuilder, but with FastReport, you could get somewhat decent PDF export.

Your reviewer used QR, QR Designer, Ace Report, Report Builder, FastReport, and rolled his own reports during those DOS days, wrote Windows 3.1 report writer mini-library and could say:

- Fast-Reports has issues with support because there are many unanswered posts on their newsgroups and forums. Registered customers are asked to go to their official support channels (email, their web-based helpdesk) instead. For Digital Metaphors, you have support, inclusive of Psychic hotline service. Support is mixed. With FastReport, you can recompile full-sources so it means you can fix problems yourself. With ReportBuilder, you need support because you cannot recompile the sources; that leads to DCU mismatch error.

- FastReport is easier to use and has lower-costs, much lower than Rave or ReportBuilder.


- FastReport has a cousin called FreeReports if you do not have so much money and need free solution.

- FastReport can do dot-matrix and margins almost correct with no crazy printer problems. ReportBuilder does it too, but the hard-wiring of margins is concern. For example - how do you know if the person having an Inkjet or Laser printer can print the report correctly if the printer feed margins differ with each printer?

- ReportBuilder has better support and better implementations.


DevExpress VCL ReporterYour reviewer would really prefer DevExpress VCL Report writer solution rather than buy something else, but sadly, this never materialized.



Report Nirvana?
Whatever Embarcadero chooses, it should choose wisely. There's only one chance to get a good report writer for Delphi and not blow-it-up like the past - Report Smith, QuickReports 1, 2 and Nerona Design's Rave. If Embarcadero brought Nevrona Designs, it would probably be ill-fated like Delphi for Bold or that TogetherSoft purchase.


Preparing for Linux, OSX and 64-bit Report Writer solution?
Given there is so much at stake - with the demise of Nevrona Reports, it would throw a spanner on Embacardero's 64-bit compiler and 32-bit IDE. Interesting question would be -- how would you deploy a 64-bit report writer if the IDE is only 32-bits? That would mean Nevrona would have to design their product 5 or 6 times - one for Delphi 32-bit IDE and 64-bit Run-time solution, one for Linux, one for OSX...


Let's not talk about having a nice grid solution for Delphi... 

:)


Updated article - Smells like team spirit, two years later
http://delphihaters.blogspot.com/2012/09/smells-like-team-spirit-nevrona-two.html

More Kudos

From N.:
"Delphi Hater's Blog is one site that I read from time to time. There are many interesting posts there."


From R.:
"one of the Delphi blogs I read regularly"



Next article on schedule:
Smells like Team Spirit Nevrona - Rave Reports.

Wednesday, June 16, 2010

Google Protocol Buffers vs. RemObjects SOAP

Costs for 2 years project per person
====================================
Visual C++ 2010 (Professional) - US$799.00
Visual Studio 2010 Feature Pack - US$0.00
Google Protocol Buffer in C++ and C# - US$0.00
Approx total 1st year: US$799.00
Approx total 2nd year: US$0.00 (assuming best-case)
Approx total 2nd year: US$499.00 (assuming you renew MSDN subscription)

Delphi 2010 (Professional) - US$899 + SA
Developer Express Source Pack - 1st year - US$1499.00
RemObjects SOAP - US$399
Approx total 1st year: US$2797.00

Developer Express Yearly Subscription - 2nd year onwards - US$699
RemObjects SOAP subscription - US$249 per year.
Approx total 2nd year: US$948.00
Approx total: US$3745.00

It could be said, Delphi developers pay yearly tithes to the temple of Delphi. For those who do not know what tithes are, if you are Christian or Jewish, you are obliged to provide 10% of your salary towards the Church or Synagogue. For those hard-core Delphi developers, do you feel your faith is strong enough to continue buying year after year, the latest versions of Delphi and all those components you need?

Native Development in Visual C++
Your reviewer will do Visual Studio/Google Protocol Buffer native MFC development and Delphi with RemObjects SOAP.

Background in C++
Between ATL, MFC, WTL there lies native Win32 development nirvana and XKCD's infamous cartoon compiling. Well, if you compile within 1 second, you really do not have to worry about fighting the compiler or doing the Visual C++ "world-wide-wait". Since Visual Studio Feature Pack contains BCG Professional 2010 you can create great user-interfaces without too much fuss.

Background in Delphi
Your reviewer asks, why use Delphi if your reviewer can compile within 1 second for C#, C++? Because there's that legacy application written long time ago that needs to be "upgraded" or maintained and suddenly, a need to learn new things. Or, you can call that number and order Delphi and all those cool stuff..., but the party is over and everyone asks "Is Delphi Dead?". If Delphi is alive, where are those jobs?

SOAP and Protocol Buffers
SOAP in C++ requires purchasing gSOAP, SQLDATA SOAP or PocoSOAP. You'll need a service builder (to construct strongly typed binding libraries), remoting framework and effort to get going.

SOAP in Delphi is almost same/similar. The WSDLImport.exe in Delphi is either broken or cannot import that WSDL file or something happens during development-time that requires some 3rd party library.

Delphi and RemObjects SOAP
RemObjects SOAP is a must-have in Delphi, since WSDLimport does not perform well, it uses the stupid Indy library (see HTTPRIO.pas) always seem to have some kind of problem/issue that needs attention, such as:

Delphi SOAP vs. RemObjects SOAP
- Delphi SOAP is always broken. You can never seem to import any NET or Java WSDL file or website without having to fix something or the remoting is so broken or time-out, or Unicode issue. RemObject SOAP suffers from partial NET SOAP support (that's why RemObject sells their own SOAP library for NET). In other words, with Delphi, it's buy-buy-buy and bye-bye-bye attitude towards money.

Visual C++ with Google Protocol Buffers
There's Facebook Thrift, RAKNET and other libraries available for the misinformed. Your reviewer will focus on Google Protocol Buffers.

Your reviewer would have used Apache Axis (there's plenty of articles on that) but will use Google Protocol Buffers to communicate between MFC/C++ and C#/WCF restful service.

Steps in Visual C++
1.) You need to download Google Protocol Buffer and nice remoting library, such as Boost.ASIO, libCurl as DLL, or funny enough, Ultimate Toolkit TCP/IP library.

2.) Understand how Google Protocol Buffers work. You need to define your .proto file and run it against Protogen.exe (to create static binding for C++ code).

3.) Include either as LIB or static linking (all-in-one) into your MFC application. (This may take an hour or two).

4.) Include your .proto file headers and start to use it. In your program, you serialize and deserialize the protocol buffer from disk, database, remoting to your GUI and back.

5.) Use Protocol Buffers in C# to deserialize the response from your MFC application with IIS.

In 5 steps, you have remoting in C++, C# without too much fuss.

Steps in Delphi
1.) You need to download RemObjects.

2.) Where's the WSDL from? If it is in Java, can you ask to switch to Google Protocol Buffer? How about Java Messaging instead :) ?

3.) Start RemObjects service builder and import the WSDL so you can use it into Delphi.

4.) Add those units from RemObjects service builder into your project. Compile and deploy.

5.) You may have to deploy a server-side solution made in Delphi. If you use C#, you may have to "simplify" your C# WSDL if the import messes-up.

Decisions
Your reviewer, after using Google Protocol, liked it. It was very fast, strongly typed. With BCGSoft's Professional library, Visual C++ and remoting library, your reviewer can make affordable products.

With Delphi, it's always out-of-budget, no money (it's having to buy all those libraries for that new guy) or bad buying decisions.

Tuesday, June 15, 2010

Tea Leaves - Feels like Delphi 2011 coming within 60 days

Your reviewer got several emails from Embarcadero.

Every year, without fail, Borland, then DevCo, then CodeGear, now Embarcadero would send these ridiculous discount offers to buy "older" versions of Delphi. You might be thinking, that's out of your mind, but wait...

The proof comes from 5 years of marketing data:
- In Year 2005, they offered discount pricing on Delphi 2005 on October period with "hints" towards buying SA. Delphi 2006 was released on November 23rd, with many people fuming mad they brought older versions of Delphi.

- In Year 2007, they offered discount pricing on Delphi 2006 on February period with "hints" towards buying SA. Delphi 2007 was released on 16th May, with many people fuming mad they brought older versions of Delphi.

- In Year 2009, they offered discount pricing on Delphi 2009 on June-July period with "hints" towards buying SA. Delphi 2010 was released on 15th August, with many people fuming mad they brought older versions of Delphi.

The year is 2010 with Embarcadero giving ridiculous prices - Buy Delphi 2010 and get Full RAD studio, TMS controls, and Delphi 2010 handbook. (How about with free license to Delphi 2011 as well?)

Around 2 months from now, your reviewer won't be surprised Delphi 2011 will be released, and most people who brought Delphi 2010 without SA will be fuming mad they licensed "older versions" of Delphi instead.

Why two months period? So people who brought Delphi 2010 won't be entitled to free version of Delphi 2011.

Don't be surprised there will be Nick Hodges telling them to upgrade or buy SA to protect their investment, same like what happens every year (for past 3 years) around Delphi upgrade time.

And of course - the same vendors will hint of upgrade time - ReportBuilder upgrade time, InfoPower upgrade time to name a few vendors who post upgrades on each Delphi version.

:)

Wednesday, June 2, 2010

C/C++ love: large projects recompiles in 1 or 2 seconds.

Your reviewer recently got his hands on the latest Visual Studio 2010 and went overboard with it.

It was love at first install. For nearly 10 years, your reviewer tolerated slow compiles, rebuilds that took forever.

Your reviewer was astonished at the C/C++ rebuild time of 1 or 2 seconds with Visual Studio 2010.

As comparison with DelphiHater's own projects:

Visual C++ 2005 recompile - 2 minutes
Visual C++ 2005 rebuild - 8 minutes
Visual C++ 2005 with Incredibuild recompile - 1 minute
Visual C++ 2005 with Incredibuild rebuild - 6 minutes

Visual C++ 2008 recompile - 2 minutes
Visual C++ 2008 rebuild - 4 minutes
Visual C++ 2008 with Incredibuild recompile - 1.5 minutes +/-
Visual C++ 2008 with Incredibuild rebuild - 3 or 4 minutes

Visual C++ 2010 recompile - 1 or 2 seconds
Visual C++ rebuild - 30 seconds
Not thinking of using Incredibuild any more.


For comparative purposes/ CodeJock MFC recompile:
Visual C++ 2008 rebuild - 2 hours (all options)
Visual C++ 2008 with Incredibuild rebuild - 1 hour +/- (all options)
Average compile per sample project - 2 minutes

Visual C++ 2010 rebuild - 15 minutes (all options)
Average compile per sample project - 1 or 2 seconds

With Visual Studio 2010, your reviewer feels at home...

Since Visual Studio 2010 as fast as Delphi is, your reviewer remembers those old projects that he's been waiting to convert to 64-bits... now it's time to move it to 64-bits and slash costs.

TMS new installer does On-line activation

Someone does read this blog.

Your reviewer recently found out there is now on-line activation for TMS software.
Stay tuned for detailed security analysis soon...

:)

Thursday, April 29, 2010

Pakistani Power Outages & Pakistani Delphi developers

Many Delphi software developers in Pakistan have suspended their software development activities while many others are on the verge of losing their livelihood due to gas and power loadshedding in Pakistan.

Pakistanis are currently having to endure without electricity for more than 8 to 10 hours a day. Your reviewer has Pakistani friends and asked them for some feedback about this issue.

Mohammad, a Pakistani Delphi Developer who spoke on condition of anonymity, feels the situation is getting worse and worse every day. Many Delphi Developers in Pakistan are doing outsourcing, with people working around-the-clock to satisfy American and European customers. "There would be one or two developers who work overnight and then and give instructions to the software development team who comes in the morning", says Mohammad. "With these power-cuts, we are unable to even contact our customers".

Software development using Delphi has been severely affected. The power suddenly is cut-off and computer reboots, many times a day. This causes lost works and sometimes, we have to repeat the works done again. With power-cuts from 8pm onwards and sometimes more than 10 hours a day, we are unable to contact our American customers who are waiting on us to deliver, Mohammad explains.

Mohammad is anxious about his job. His boss, is facing prospects of laying off all his 30 Delphi developers if this power-crisis continue further. Without power and internet connection, very hot summer and no electricity for cool water, Mohammad and his work colleges sit idle in darkness, sometimes, pass their time reading code printed on paper, or read some Computer books.

With little or no money coming in, Mohammad and his friends are very worried. "If I cannot earn a living, what should I do?". Sunset comes and at 8pm, the power is cut again.

Without the ability to do software development timely and quickly, Pakistani Delphi developers are quickly losing their advantage, and rival Indian Delphi developers are quick to mention this to their customers. Rama, an InfoTech business owner in Mumbai, says his company receives 2 or 3 customers requests a week to take-over Delphi development work from Pakistani Delphi developers.

Tuesday, April 27, 2010

DevExpress VCL Build 50 - A haunting in Nevada, part II

Many of the readers must have read my former article DevExpress Build #48: A Haunting in Nevada and earlier article DevExpress Build #48: security analysis.

Illegal users
Since the last two blog posts, DevExpress has taken certain security measures to prevent illegal users from using their DevExpress VCL products and more security measures.

Since the last haunting, your reviewer looks at certain security measures DevExpress has put in place and advises more security measures to prevent illegal users from using DevExpress VCL products.

Will it stop the Fiend and his friend DarkCraptor?
It will take a long shot to stop them, but the current Build #50 has positive steps to prevent the Fiend from sharing his DevExpress license with the whole world.

Your reviewer suggests:

Change the AES encryption algorithm slightly and changing keys on every build.
While the AES algorithm used to secure the DevExpress payload containing sources is secure, the key used is symmetric. Meaning, that the key did not change from Build #49 to Build #50. Thus, the Fiend could re-use his old unpacking codes on the newer version with little effort. Changing the AES encryption a little will raise the bar: It would require some serious coding to reconstruct the customized AES algorithm and unlock codes to unpack DevExpress payload.

Take out the start/stop code comment markers.
Your reviewer found certain comments fashioned in a manner which could expose how the code re-ordering works. If someone re-formats the sources and observe closely, there are certain markers which expose the where the start/stop of the code re-ording segments are. Take them out, pretty please.

Start to watermark the demos and help files.
Think about it... Since the demos and help files can be put in the customer's download section (hint: make it harder for illegal users to get help) why not watermark the files? It would be fun to put some "extra" information before the download process starts and then monitor "certain" forums for these files... download it and remove the user. 'Nuff said.

Webservices download instead and in-memory DLLs
Since few builds ago, DevExpress started to use in-memory DLLs. Here's a step further: Download extra DLLs in-memory from the DevExpress license service and then execute them on-the-fly, like extra decryption modules, and extra protection modules.

Watermark other files
Your reviewer thinks adding a couple of WaterMarked EXE files raises the bar further. Since there's a skin configuration file, why not watermark the EXE and then encrypt the EXE file?

Consider some files to be non-source and with watermarks
Your reviewer thinks it will be joy when ebars.pas, dxskin.pas are no longer distributed and only available in DCU versions. The other codes are available. That will raise the bar a little since it's a bit harder to remove DCU watermarks.

Download on demand
Your reviewer thinks: No payload. Download on-demand what the user licensed. That would be wonderful idea.

Find another vendor other than VmProtect.Ru
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.

Your reviewer received certain emails about the last posts -
Fan Mail: The ***** us all trip
Your reviewer will continue to annoy a certain segment of the Delphi community.

Fan Mail: Tips for other Delphi Developers
Your reviewer hopes other vendors find these tips to be valuable to secure their products.

Conclusions
Since the last two builds, DevExpress has raised the bar, doing interesting watermarking, like re-ordering source code files, to the annoyance of some customers, but a necessary step to prevent software piracy. Your reviewer, a licensee of DevExpress products, hopes these suggestions will greatly deter cheat and lying Delphi developers.

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.

Thursday, April 15, 2010

ModelMaker: Making Toy Models

ModelMaker, Code Explorer Review.

Your reviewer was looking around for a modeling tool to map and refactor his legacy codes and decided to look at ModelMaker, Code Explorer but found it much lacking else instead...

ModelMaker: Making Toy Models
Let me take the story out of context. Suppose you are a vendor who writes a Modeling tool for a certain language, the code-parsers that you develop, should support every aspect of that language. So, you should support the latest features added since Delphi 7, such as nested types, generics, Delphi's equivalent of partial classes to name a few. Then, you need to also support refactoring, proper UML diagrams and so on. Because the language keeps getting updated, you would need to update your parsers to support the latest features...

Fast forward to the year 2010.It has been almost two years since Delphi 2009 was released (Delphi 2009 was released on Aug 25th 2008) and you should expect Delphi generics to be supported in ModelMaker when you import sources to ModelMaker. Ditto for the ModelMaker C# edition. It has been nearly 5 (five) years since C# 3.0 was released and ModelMaker does not support any of C# latest features in NET3.0. The end result is you can post nasty messages on ModelMaker newsgroup or ask for a refund or don't buy ModelMaker tools until they finish updating their code parsers to support the latest Delphi and C# features.

Their newsgroup was "dead" for two or so months, but the ModelMaker vendor did absolutely nothing about it, since it was on the same newsgroup as the Jedi newsgroups, which was hosted free-of-charge. It was also good that the ISP that hosted Jedi, ModelMaker and other newsgroups on that site did not receive a single cent for the newsgroup hosting. It was in a way, good for the ModelMaker vendor - many of the messages where from pissed-off customers and nasty complaints - and all removed now and since nobody else can see them, they would blindly assume the product works and then find 101 problems...

By the way, I commend the person who "generously" hosts the talkto.net newsgroups, that person must have woke-up from the Delphi delusion - after 3 or 4 years from setting up a server to host newsgroups, he had no money to upgrade the server, no time to update the server with the latest security patches, and when the server got hacked, and taken off-line, the best thing happened - the opportunity he had to charge the Jedi people, ModelMaker, Madshi vendor and others for money to support the server was all gone. Hosting a private server (at today's prices) would have costed around US$250 a month, excluding initial licensing costs. That person probably spent US$3,000 a year (US$250 * 12) or US$12,000 (3,000 * 4 years) for that "feel good feeling" and supposed respect from others. In reality, it was more like - most of the Delphi people are nothing but free-loaders and the person who hosted the newsgroup server "woke-up" found out he had no more money left to pay, and closed shop. It's a good thing in an ironic way - if you are doing some business and make no money (or losses) from it, it's time to move on. Back to the review -

The C# versions of their product, ModelMaker for C# and CodeExplorer for C# suffers from serious limitations that make their products almost useless. Almost every vendor in the world uses partial classes, nested types, and regions inside classes, and both ModelMaker and CodeExplorer would choke and either corrupt the C# class file or just give up. Now suppose the above mentioned feature was implemented into the C# 3.0 specification 5 amazing years ago - the ModelMaker vendor had 5 years to "update their C# parser" but after 5 years was not able to do so. Almost every year since 2005, the ModelMaker vendor was busy charging "upgrade" fees, and the same people would ask when these features would be supported. Now that Visual Studio 2010 is out and the C# language has been updated, don't be surprised that nobody uses ModelMaker for C# and CodeExplorer for C# because it does not support basic features in the C# language.

Concerns
This leads your reviewer to wrap-up this review with few notes:
1) Prior to the newsgroup being removed, the ModelMaker newsgroup was filled with complaints and won't buy until the ModelMaker/CodeExplorer is updated.
2) Since the last update for ModelMaker was on September 15th 2008 (two years ago), all the vendor was doing was nothing but just re-compiling or updating the integrations to use the latest version of Delphi and charging for upgrade fees.

If  a respected vendor like ModelMaker tool does not update their code-parsers to use the latest Delphi grammar (and ditto with the C# versions), that means that either the vendor has burned-out all his money and started to leave the site as-is, and just charge upgrade fees (and no updates) or it is an indication of greater issue - nobody is buying his product anymore.