Sunday, September 27, 2009

Fan Mail: Delphi Job Market

Your reviewer got some emails about jobs, jobs and jobs...

Delphi Job Search
http://delphizine.com/opinion/2002/10/di200210fn_o/di200210fn_o.asp
They used to have nice job discussion, but sadly, it now goes to a cyber-squatter site.

Personal Delphi Agents
www.personaldelphiagents.com
The website is now missing in action Or maybe their IntraWeb website is off-line :)

Advanced Systems Jobs
http://www.advdelphisys.com/jobs/..%5Cjobs.html
The website shows no jobs. Most of site not working.

Richey's Delphi Jobs
http://www.inner-smile.com/delphij1.phtml
No jobs since 2006.

DelphiWorld
http://www.delphiworld.com/
Hosting Account Expired. In the former days, this website would show 10 Delphi jobs a month, but for some reason, they dropped until 0 jobs.

Borland.Public.Delphi.Jobs
Better known as Borland.Public.Delphi.Insult.Employers

Many years ago, when Borland was renamed to Imprise and then renamed to Borland, the Delphi Jobs had lots and lots of discussions, like: which Delphi Jobs paid the most, or prospective employees asking embarrassing questions.

Nearly every job had a discussion, be it, asking about H1B visas, and the anti-H1B visa people, or the people asking for higher salaries (when the job posted a low salary), or someone wanting to take revenge on the employer. Arun* the Delphi developer living in India would ask around about H1B visa and sponsorship, and John* the American Delphi programmer would post "employ me instead" post. then it would go into long-winded insulting argument, the Russian Outsourcing company would post that team so-and-so is looking for remote jobs, and Joe would post asking about prices, and then there would be discussion about wages, which eventually went postings discrediting the Russian company.

[* not real name, but close enough]

Eventually, someone complained and then TeamB had to step-in and constantly delete the tide of messages on the Jobs newsgroup.

Ever seen the message from TeamB: , your message is canceled. The jobs newsgroup is only for job postings and nothing else. If you want to discuss the job, please email the person directly (or something like that).

If you read the newsgroups often and get chance to read the messages before they get deleted, some posting had hateful or insulting message to employers and HR agencies.

Example
One Delphi vendor offers to hire at US$600.
[the 2nd, 3rd, 4th post canceled was insulting, the 5th post, TeamB person asks to reply directly]
https://forums.embarcadero.com/thread.jspa?messageID=100063

With US$600 a month, you can buy many things and live good life!!

:)

Friday, September 25, 2009

Fan Mail: Exercise for younger developers

This blog got mentioned on several college and university (private) forums, so your reviewer decided to write some helpful notices to young software developers.

Exercise 1 - Books
Go to your regular bookstore. Look at the books, "computer section". Which languages do you see? Take a pen and paper and write down:

Count each books of the same book as "1". That way, if there are 20 books about C# from 5 different authors, count as "5".

Go to bookstore _____
Number of Different C# Books ____
Number of Different Delphi books ____
Number of Different PHP Books ____
Number of Different Ruby Books ____
Number of Different Java Books _____
Number of Different JavaScript Books _____
Number of Different C++ Books _____

Do this for 2 or 3 bookstores in your place. Since bookstores sell only "profitable" books, which books do have demand and which books don't have demand? If there are 0 Delphi books, why don't they stock Delphi books? what are the answers?

Bonus:
How do you order a Delphi book, since most bookstores don't keep these?

Exercise 2 - Looking for a job
There are various ways to find jobs. Buy your local newspaper daily for 30 days and look at the classified sections, computer jobs.

Count each different advertisement as "1". That way, if there are 50 advertisements from the same company (who advertised it), count it as "1".

Helpful tips:
take down the phone number / or email address or address so you can match it the next day (or next week).

Newspaper _____ from date to date (take average 1 month)
Number of Different C# Jobs ____ near to my house
Number of Different Delphi Jobs ____ near to my house
Number of Different PHP Jobs ____ near to my house
Number of Different Ruby Jobs ____ near to my house
Number of Different Java Jobs _____ near to my house
Number of Different JavaScript Jobs _____ near to my house
Number of Different C++ Jobs _____ near to my house

Number of Different C# Jobs ____ far away/ or require long travel time
Number of Different Delphi Jobs ____ far away/ or require long travel time
Number of Different PHP Jobs ____ far away/ or require long travel time
Number of Different Ruby Jobs ____ far away/ or require long travel time
Number of Different Java Jobs _____ far away/ or require long travel time
Number of Different JavaScript Jobs _____ far away/ or require long travel time
Number of Different C++ Jobs _____ far away/ or require long travel time

Take various newspaper or on-line sites and tally them up:
- Buy 2 or 3 local newspaper and look-up various job sites daily.
- There are also free newspapers that have only jobs on them.

If you are curious, you could call them up and ask for salary information. or what the expected job would be like:

Average salary for C# Job ____
Average salary for Delphi Jobs ____
Average salary for PHP Jobs ____
Average salary for Ruby Jobs ____
Average salary for Java Jobs _____
Average salary for JavaScript Jobs _____
Average salary for C++ Jobs _____

High/Lowest salary for C# Job ____
High/Lowest salary for Delphi Jobs ____
High/Lowest salary for PHP Jobs ____
High/Lowest salary for Ruby Jobs ____
High/Lowest salary for Java Jobs _____
High/Lowest salary for JavaScript Jobs _____
High/Lowest salary for C++ Jobs _____

After 30 days, you can report your findings to the whole class, or maybe keep it for yourself. (It is also a useful exercise for people who keep saying they cannot find a job).

Since young people are most likely to get fooled, ask:

Newspaper _____ from date to date (take average 1 month)
Number of Different C# Jobs ____ for fresh graduates
Number of Different Delphi Jobs ____ for fresh graduates
Number of Different PHP Jobs ____ for fresh graduates
Number of Different Ruby Jobs ____ for fresh graduates
Number of Different Java Jobs _____ for fresh graduates
Number of Different JavaScript Jobs _____ for fresh graduates
Number of Different C++ Jobs _____ for fresh graduates

Number of jobs for >= 5 years experience:
Newspaper _____ from date to date (take average 1 month)
Number of Different C# Jobs ____
Number of Different Delphi Jobs ____
Number of Different PHP Jobs ____
Number of Different Ruby Jobs ____
Number of Different Java Jobs _____
Number of Different JavaScript Jobs _____
Number of Different C++ Jobs _____

Ideas to do during job interview:

- ask whether there is someone to guide you. Hopefully, you are not the "only" person there :)

- look at the surroundings when you are at the job interview. hopefully, there are not old computers and the place is well maintained.

- ask whether they use latest versions of products. (maybe they use something since 10 years ago, like Delphi 6 :))

- ask what are work timings are, whether you have to come back on Sat/Sun/ or maybe the job is freelance (no payment until finished) or contract (no job after 6 months).

- what are advancement opportunities. For example, if the company is only 3 or 4 people and you are there for 5 years, will the company still be 3 or 4 people? or the job is dead-end?

Exercise 3 - Looking at schools and tests

Since advanced programming techniques are thought by experts, so, there should be some experts who are good enough to pass the Microsoft-certified Trainer (MCT) or Oracle Certified Trainer tests.

What courses can you sign-up for C# ____________
What courses can you sign-up for Java ____________
What courses can you sign-up for C++ ____________
What courses can you sign-up for Delphi ____________
What courses can you sign-up for Ruby ____________
What courses can you sign-up for (whatever) ____________

What are the costs of attending such courses? Is the school accredited, that means, they are licensed to teach such courses or a diploma mill that churns out worthless certificates?

Good examples:
- You go overseas or apply for high-ranking job later in future. Which diploma or degree or training courses or certificates can you show or put in your resume/CV?

- You lose that piece of paper and want a replacement. What do you do?

- If you put some fake credentials on your resume/CV (like a fake diploma or course run by a diploma mill), it will look bad on your resume/CV. Think about it.

Exercise 4 - Getting things done
Key to learning is having your personal software you can use.

Nearly everyone has PHP, Java, Express Microsoft C++.

What are costs of licensed PHP _____________ (IDE / or libraries) ?
What are costs of Java _____________ (IDE / or libraries) ?
What are costs of licensed C++ _____________ (IDE / or libraries) ?
What is cost of licensed Delphi _____________ (IDE / or libraries) ?
What is cost of licensed Ruby _____________ (IDE / or libraries) ?
What is cost of licensed JavaScript _____________ (IDE / or libraries) ?

Ask around what professionals use, like your lecturers, or your professors. Also helpful, is job advertisements. They normally specify requirements, so you can get idea whether that product is popular or not.

Rule of the thumb:
If it costs too much, it would be out of reach for many people, and hence, will not have so many jobs.

If it costs too much, and there is some exclusiveness, that also means jobs are hard to come by.

If the costs are low, then there should be plenty of jobs. E.g., PHP, Java jobs.

Exercise 5 - the website
Since most companies have websites, there is an extension called "php", or "do", or "asp" or "aspx".

Simple sites:
What are costs of hosting C# site _____________ ?
What are costs of hosting Java site _____________ ?
What are costs of hosting C++ site _____________ ?
What are costs of hosting Delphi site _____________ ?
What are costs of hosting Ruby site _____________ ?
What are costs of hosting JavaScript site _____________ ?
What are costs of hosting PHP site _____________ ?

Advanced site:
What are costs of hosting huge C# site _____________ ?
What are costs of hosting huge Java site _____________ ?
What are costs of hosting huge C++ site _____________ ?
What are costs of hosting huge Delphi site _____________ ?
What are costs of hosting huge Ruby site _____________ ?
What are costs of hosting huge JavaScript site _____________ ?
What are costs of hosting huge PHP site _____________ ?

It's quite easy because you look at the same newspaper and go to classified section, Computer section.

Exercise 6 - the Program/Application
This website has a download. It contains programs/application. The programs/application are written in ____

Since you have the number of jobs, number of websites, number of companies, then you can also calculate the number of programs written:

Number of C# site/application _____________ in your city?
Number of Java site/application _____________ in your city?
Number of C++ site/application _____________ in your city?
Number of Delphi site/application _____________ in your city?
Number of Ruby site/application _____________ in your city?
Number of JavaScript site/application _____________ in your city?
Number of PHP site/application _____________ in your city?

Thus, you can then get idea:
There's a job if there's money, right? If there is active development, then they need developers/ or programmers or there are jobs you can find.

Exercise 7 - the Fall from grace
Since this year (2009) is bad year, you can always ask around from people who lost their jobs.

Since most of them will be at, say, places at soup kitchens, or on the street, maybe you can ask them for their experiences, or what went wrong in their life.

You can learn alot from the older people, like those who lost their jobs, or got fired, or laid-off.

Questions you can ask:
Hi _____, do you have 5 minutes to ask some questions?

Are you a former software developer/ or former computer developer/ or used to developer in such and such?

What advice can you give to younger people? What can I learn from you?

What kind of skills should I learn?

What kind of issues did you face?

[You might want to give them some small money in return.]

Exercise 8 - the graduate and job numbers
Suppose there are always young people joining the work-force and older people are present.

Let's say you live in a small city and there are 3 or 4 universities at your location, and maybe 5 or 6 schools.

Given there are 300 people who graduate from IT courses each year.

Say, with 3 or 4 universities, there could be maybe 2,000 people entering the work-force every year, bringing supply to the work-pool.

Now suppose:
there are 100 to 150 C# unique jobs advertised every month, that is:
125 * 12 = 1500 jobs advertised every year. (average)

there are 75 to 100 C# unique jobs advertised every month, that is:
90 * 12 = 1080 jobs advertised. (average)

there are 1 or 2 Delphi unique jobs advertised every month, that is:
2 * 12 = 24 jobs advertised. (average).

There are thousands of people competing for the same job, how lucky are you to get the Delphi job?

Conclusions
Look closely at the numbers and the applications, websites, jobs.

Which language do you want to learn to get good job?
Which language should you not learn? :)

Thursday, September 24, 2009

Fan Mail: New ideas for name-calling.

Your reviewer had long winded argument with someone who don't know how to respect criticism.

Here are some new ideas for Delphi developers to call "trolls":

Why not call your management "trolls"?
Since the pointy-hair boss walks from left to right, waiting for your work to be done. Since Delphi compiles so fast, then why is work so slow? Maybe it's the boss fault, for not buying nice 3rd party-add-ons, or requiring to use older versions of Delphi. Then every time Delphi developers ask for raises, it's until AFTER the project is finished and all the money is collected. Do you feel someone breathing down your neck when the project is not done correctly?...

Why not call the third-party vendors "trolls"?
They operate a nice troll booth to collect tolls. It seems each component is sold separately by different vendors, and in order to get good working application, you need to cross many bridges? It seems every year prices keep increasing and every year a new upgrade? How much toll does a vendor collect in a year?

Why not call the HR or Payroll trolls?
Since they "need" to know about you, like how many times you were late or how many times you spent dazed on the forums, newsgroups, rather than getting things done? Why not call them deep-trolls instead, since they seem to know nothing about Delphi. Alas, if you do, you might find yourself out of job, but wait, are there not plenty of Delphi jobs?

Why not call the QA testers trolls?
Since they find nearly every damn bug and report it down. Umm, you know, like the people who write a long list of issues on the Borland newsgroups and then demand support? then they get frustrated, and notably, get called trolls.

Why not call the Graphics designer or C++ developer trolls?
Since they are paid more than Delphi Developers and amazingly, seem to use 1 application and get things done without additional costs required.

You can see the "amazing wisdom" about Delphi Developers are, one moment, they teach how good about Delphi is, and later, start this name-calling and discrediting other people.

Tuesday, September 22, 2009

Setup on demand.

The joys of making a custom setup for each user.
Your reviewer was amused over the next generation of watermarking - custom setups.

This would involve putting the setup environment to the server. It involves putting an PHP/ASPX/Java back-end to call either Final Builder/Automated QA/ or an automated custom script.

Thus:
1) User clicks on a link to start a batch process that lasts 3 or 4 minutes.
2) The click triggers a FB Server or AQ Server or custom script.
3) The script goes and in turn automate the setup package build process (of course, on the server)
4) The script would put some nice watermarks into the setup (unnoticed, of course)
5) Then EXE is created (try to use EXE, not MSI).
6) Code-sign the setup package.
7) Move it to the download site for user to download.

Additional:
8) Deploy an activation server.
9) Give the password to activate the thing.
10) The activation server downloads the actual password to decrypt the RAR (DevExpress), CustomZip file (RentACoder - Exhedra solution packages).
11) Setup complete, along with watermarking all necessary files.

10 needs explanation:
a) You give the login and password to the user
b) The user logs in and "authenticate" to the activation server
c) The activation server via SSL will download the RAR/Encrypted packages password file
d) Decrypt the files and then "forget" the password after that.

Joys of BPL building.

What happens when cracked DCUs are not available, and cracked BPLs goes available?

Continuing with BPLs (or Delphi DLLs in other words) The first thing that happens are posts from pirates are those asking for help to deploy his solution. Your reviewer was amused over forum posts, such as, which BPL files to redistribute.

One notable vendor (reasonably, after reading this blog) started to ship BPLs only for their demo version. Then, it was "cracked", partly because they used weak copy protection...

The fun part was the uncomfortable side-effects it caused for users. Now suppose you protect a BPL with Armadillo or WinLicense or EXECrypt. The first thing that happens is loss of debugging ability with your component. Sure, they can debug, but when they step-into the BPL, the Delphi EXE crashes or bombs. Several users reported that the vendor's demos worked 100% and their programs (with cracked BPLs) does not work and needed "help" for someone else "share" the paid version. Would you be so kind to buy it and share it? :)

The next fun part is environment. That vendor forced them to use the default version of Indy that ships with Delphi. Since Indy is often recompiled, asking the user to adjust back to default version of Indy was painful.

The next fun part is deployment. Since the person using BPLs would have to ship many other BPL files, it becomes difficult for the person to deploy it without having to redistribute other necessary BPLs.

After much annoyances, the unpaid user was saving-up to buy the component, to "share" it with his friends. After sharing it, he lost his license because of ... watermarking. :)

Sunday, September 20, 2009

Delphi Book Sales, an easy way to get rich?

If you were an author, which language would you write about?
Writing developer books are one of the easiest ways to get rich.

Your reviewer looks at some statistics sites:
http://radar.oreilly.com/2009/02/state-of-the-computer-book-mar-22.html
http://www.idpf.org/doc_library/industrystats.htm

There were millions of developer books sold.

Where does Delphi books stand in?
Quoted from LineList Programming Languages:
Lastly, the following languages sold fewer than 1,000 units in 2008. Here is the list in alpha order: ... delphi, ... pascal.

Now suppose you are a budding Delphi developer thinking of getting rich writing a 200-page (approximate) book.

Which language would you pick?
You would pick the language which is most popular (from that list, either C# or Java or Php or JavaScript)

Why would you pick those languages?
1) C# is mostly free. The C# Visual Studio Express edition is reliable and US$0/-, and there are hundred of thousands of ISPs that hosts millions of C#/ASP.NET sites.

Java is mostly free. The Eclipse/NetBeans IDE is reliable and US$0/-, and there are hundred of thousands of ISPs that hosts millions of TomCat/Java sites.

ditto with Php, JavaScript, Python and Perl...

Since C# and Java is free, that means that the developers get paid a little bit more for their productivity rather than costs being eaten-up by hungry licensing costs.

Let me prove a point:
See ElevateDb/DbIsam a respectable Delphi-based database. Goto Elevatesoft's site, under Partner section. You won't find any ISP which they would recommend to host ElevateSoft Dbisam/ or ElevateDb databases. Look at MySQL and MSSQL. There are plenty of ISPs which hosts MySQL, MSSQL, Java Databases.

2) The extra pocket money saved means more money for Developers to spend on things. It seems they can spend on Magazines, ISP Hosting fees, Books and time to help others out.

Take a look at existing Delphi magazines... Did you see Delphi Developer Magazine? The Delphi Magazine, Coralis group which used to write Windows Developer Journal (with some Delphi articles?) They closed down because of poor sales.

To be fair, there is an existing Blaise Pascal Magazine. Under the commercial section, there is Frequency of publication, once every quarter, 40 pages, with 12 pages of advertisements.

To end off,
"Delphi had a Developer population of approximately 1.75 million users worldwide in 2006." (According to Michael Swindell, VP of Marketing at CodeGear).

How many of them have money to buy your book, deducting the cost of Delphi and absolutely essential libraries?

Suppose you are the author of such a Delphi book and want to write a second edition. Will the peanuts you earned pay-off all the effort you took to write the book?

Feeling lucky?

:)

Tuesday, September 8, 2009

More American Delphi developers outsourcing own jobs overseas

A new report from the American Department of Labor finds more Americans workers are outsourcing their jobs overseas.

For more on this critical issue, let's turn to DHS blogs on this essential issue. For years, many corporations have been outsourcing their labor to developing nations to cut costs and increase profits...

But recently, many individual Delphi developers have been sending their own jobs overseas...

John K., a senior Delphi developer says: "I take the money I take for lunch and pay someone in India to do my job for me. It has allowed me to "unleash" my full potential."

John, a senior delphi developer working in the finance sector, has outsourced his daily work to Sanjay, working (somewhere) in Bangalore, India.

John gets his assignments from top-management, who wants a good financial application and and John sends the work off to Sanjay and at night, John sometimes will look at the work when it's done, but usually everything is all right.

Mr Sanjay says it's he's extremely happy for John. Sanjay says, this can feed my family and Mr. John can devote more time to spending more time on youtube, playing World of Warcraft, CounterStrike, Half-Life 2 and other computer games, watching full-length movies he rents from NetFlix!

... and John is more than the 500,000 delphi developers who come to reply at overseas workers.

It's not just the Delphi developers who are outsourcing their jobs overseas, now many other Delphi developers are outsourcing their own jobs overseas.

Many American Delphi Developers, worlds apart, now meet their overseas counterparts using screen-sharing programs (WebMeeting, GoToMeeting, LogMeIn) and use free telephony services (Skype, GTalk, VOIP), and chatting programs (MSN Chat, Yahoo Chat, ICQ) every day.

Some overseas workers have done so well, they have been able to outsource their jobs to Pakistanis, Indonesians, Malaysians, Chileans Delphi developers - those even more poorer than themselves.

Analysts predict, if the trend continues, 80% of people who know Delphi will be overseas ...

It would be a situation which would suit Mr. John just fine - I get to the point where I can do nothing everyday and all the work gets done.

:)

Saturday, September 5, 2009

Fan Mail: Laying Goose Eggs

Your reviewer got some emails about this post: "Fan Mail: your money or your job".

Five good computers would cost US$2000 * 5 = US$10,000
Chair, Furniture, Table = US$3000

Five copies of Delphi Ent. would cost US$2800 * 5 = US$14,000 (1)
Five copies of DevExpress Subscription would cost = US$1400 * 5 = US$7000
Five copies of Report Builder Enterprise would cost = US$750 * 5 = US$3750
Five copies of Eurka Log would cost = US$149 * 5 = US$745

The numbers comes to US$35,495.00 (2)

Your reviewer choose Delphi Enterprise to cover if not most of basic needs. The DevExpress subscription covers all their libraries, to get maximum cost benefits. Report Builder Enterprise was chosen because the Pro version was not sufficient enough. If you design complex reports, you need Ent. version because of run-time scripting (RAP) found in it. Eurkalog is for finding bugs/errors.

(1) Price increased from US$2100 to US$2800
(2) Price is estimated, without taxes and other costs

Let's say, you run your business for 1 year, the costs would be:

5 people * US$3500 = US$17,500 * 12 = US$210,000
Rent, Internet Fees, Other expenses = US$2900 * 12 = US$34,800

Costs would be for first year:
startup .. US$35,495.00 + US$210,000 + US$34,800
1st year = US$280,295.00

Now suppose after 2 or 3 years of running, with this current recession, you fall into hard times...

Can you sell out your copy of Delphi?
Nope. the license prohibits it. Since every year have recurring fees or upgrades, it would be valued much, much less.

Can you sell out your copy of DevExpress?
Nope. the license prohibits it. [Since every year have recurring fees or upgrades, it would be valued much, much less.]

Can you sell out your copy of RB-Ent?
Nope. the license prohibits it.

Can you sell out your copy of Eureka?
Nope. the license prohibits it.

Can you sell the computers?
by that time, it would be probably useless.

Can you sell the rent?
nope, the money is gone. Either the land-lord/or building owner/ or real-estate agent took your money.

Can you sell the people?
nope, slavery is not possible. :)

What can you sell as technology company to recover costs?
The bank is not interesting in playing funny games with source-code (since source-code is difficult to value) and the empty furniture would be next to worthless.

What would a company do about non-transferable licenses?
The best idea is to think about the whole thing as a time-share holiday (where you keep paying for benefits promised but does not exist, or you keep paying money over and over again to keep the subscription) or subscription to a pyramid scheme which if you do not make enough money to cover costs, you eventually become a loser.

If you look closely at costs, did you notice that most people who toot their trumpets hard about Delphi are one's and two's?

Why is it "just" Marco Cantu? Why not Marco, Alphonso & Lucio? The 3 italian "amico mio" (friends) doing Delphi?

Why is it "just" Marc Hoffman and Carlo? Why not Marc, Carlo, Ramond & Kirsten? What happened to Alef and Weyert?

Why is it "just" Nick Hodges? Why not also Julia the internet assistant to help Nick get more important things done and Julia handle the day-to-day activities? (such as marking the items on Quality Central as fixed instead of waiting for volunteers?)

You start to see reality as what it is...

Did you see the programmer (once was using delphi) on the street with a big loan, lots of debts, no house, no car? sounds familar?

Did you also see the unemployed Delphi developer who has constantly has no job, no money (wonder why?), not many employment opportunities?

:)

Wednesday, September 2, 2009

Website Obiturary: TurboPower.com

Website Obituary: TurboPower.com

TurboPower started in 1985 with Mr. Kim Kokkonen writing the famous TurboProfessional toolkit 1.0 many years ago.

TurboProfessional collection was a set or routines for TurboPascal that aids in dos-based 80column x 40rows Menu options, Top-layer drop-down menus, DOS-based Windowed layout and simple single-file system, simple TSR hook, flat-file block I/O (it would resolve 64kb limits). The edit controls, or rather, text-based edit fields would control keyboard and mouse. (Your reviewer call it "TPro")

When TurboPascal 6.0 (with Objects) came out, ObjectProfessional was released, with a re-hash of TurboProfessional as objects instead. There was added, Text-file viewer, mini-help viewer (OPH), and somewhat decent XMS/EMS/Swapping/DPMI support. (Your reviewer call it "OPro")

TurboPower brought over BTree from a German company and called it the famous TurboPower BTree Filer package. BTree filer was an indexed-sequential implementation of the BTree algorithm in commercial package. BTree Filer had ISAM support with IPX/SPX support, Microsoft sharing, NETBIOS support. If you browse around the CompuServe TURBO forums long time ago, there was object-oriented persistence where you could stream / or serialize OPro objects and TurboVision objects into BTree filer. (More info below)

The idea was, long time ago, you were using DOS, CRT, and needed more functionality than required. For example, there was GoToXY, but that moved both cursor position and write to DOS text on that area. There were the IBM PC Interrupt guide, made famous by Peter Norton (anyone remembers the famous Norton Commander?). Thus, it was hard work to make all those code to use:

- Int 21h, 2Fh for DOS services,
- Int 10h for video,
- Int 16h for keyboard, then
- Int 33h for Mouse, then
- make direct memory access (DMA) for Printing and COM port access
- multi-plex DOS using Int 2Fh,
- Custom traps Int 3, 4, 6, 7, 8 (to prevent run-time errors)
- call IBM Lan Manager (now called OS/2), Novell NetWare, Bunyan Vines, MS Network support.
- write correctly to record or file I/O or DBF file support
- swap to disk using overlays, or call XMS, EMS, or DPMI.
- either ANSI.SYS or custom teletype support.

TurboPascal, in those days, you linked to the TurboPascal RTL, but there never seems to be sufficient code. Either you had to spend days browsing the library or hanging around the computer section of the book-store, or attend weekly group meetings:

- If you go to library, all those books would be either checked-out or so old (anyone interested in PDC Unix or K&R C basics?) or so steeped in theory (Knuth's Algorithms volume 1 with code in VAX Assembly). If you got lucky, you could get "interested" your University's librarian and get access to greater time-sharing (with the computer, not with the librarian) and faster computers to try your code out.

- In the computer book-store section, there were those discounts for repeat-buyers, or book-clubs. Those computer books (those days) were bundled together. There were usually with 1 good book and 1 bad book, such as, K&R C++ with AT&T Unix, Vax JCL* guide with Wang Word-Processing guide, or general IBM guides. [JCL: Job Control Language, not Jedi Code Library]

- In those weekly meetings, they were usually sponsored by RS (anyone remembers Radio Shack?) or Compaq (make the switch!) or Heath Cliff (Personal Computing Kits) or IBM (anyone remembers the IBM Joint Development discussions?).

Later years would be the famous IBM PC, with standardized Intel 80186 CPU, a small 2mb Hard disk, 512kb RAM, 5(1/2) inch diskette drives. More expensive models included upgrades included 640kb RAM, dual diskette drives (A:, B:) and bigger hard-disk capacity. The magic that made it work was the Intel 80xxx chip-set that included interrupt multi-plexer, DMA (direct memory access), CPU register-level support.

For example, if you wished to make the serial port (or parallel port) work, you could use Port In, Port Out command to send data to serial port. If you looked at the IBM PC BIOS manual, you could control the Diskette drive (remember the old copy-protection?) and make your own custom "diskette-format" which only your software could read.

In those days, TurboPascal was sold for CP/M and later for IBM PC. Since Intel controlled the CPU and Microsoft controlled the OS, Intel and Microsoft would sell to other vendors. So long as your hard-ware implementation would reset the Intel CPU and chip-set with correct voltages levels, set memory banks to FFh and set the PIC (Programmable Interrupt controller) to "reset" and supply power to the diskette drives, shugart hard-disk and so on, then hand over control to BIOS (anyone remembers the days when the BIOS would say, Checking RAM... 128, 256, 512...), then from BIOS to 1st sector of floppy (beep, beep, beep, beep, beep) and then get a DOS command-prompt, you could call your hardware IBM compatible.

To correctly program the IBM PC (or compatible), you had to have good knowledge of hardware, MS-DOS interrupt calls, and so on. It was hard work writing all those codes. Thus, Mr. Kim Kokkonen wrote if not, one of the first commercial packages for Borland TurboPascal product. Two years later, it won the Jolt Cola awards, one of the highest awards for Software Development.

Using TurboPascal 4/5/6, along with TurboProfessional, you could write nice front-end, small record-type IO, simple keyboard and mouse support, without having to worry too much about memory leaks, memory models, and various C/C++ specifics.

From TurboProfessional, then came ObjectProfessional. In fact, most of the source-code base from TPro and OPro would exceed the quality or completeness found in those BBS's or CompuServe forums. In one package, you could quit spending time browsing around the programming door (or Programming section), or save on CompuServe access time.

Around the next update, TPro and OPro would be DPMI compatible. That spawned off an interesting forth-party add-ons, such as Business Reports (now out of business), OPro spreadsheet add-on (from a company, now out of business) and small WordPerfect clone (now out of business, sued by WordPerfect Corp).

Then, came Turbo Analyst, licensed from code from Per, and then BTree filer. Later would come TurboPower Asynch for DOS (and Windows), and various diskette updates.

Change towards Windows 3.1
With advent of Windows, there were new products, such as, the older packages for 16-bit Windows:

ObjectProfessional -- called Windows Design Library (really old, for 16-bit Windows)

BTree-Filer -- made for both DOS/DPMI/Windows,

Asynchronous Professional -- made DOS/DPMI/Windows 16-bit

TurboAnalyst -- made DOS/DPMI/Windows 16-bit compatible.

Change towards Windows 95
With advent of Windows 95, there was shake-up:

Windows Design Library, ObjectProfessional --> some parts in Orpheus, some in Abbrevia (one-file-system), parts in SysTools

BTree-Filer --> called Flash Filer 1.0, Flash Filer 2.0

Turbo Analyst --> retired, parts in MemProof, parts in SysTools.

Escalon Products* --> On Guard Library, TurboPower essentials.

[* Escalon Products was sold to TurboPower, the owner now works for Microsoft]


Financial issues
TurboPower released a newsletter stating that TurboPower was having some financial issues, and TurboPower would be sold. Few months later, it was sold to Casino Data Systems. CDS took a hands-off approach and used some of their products, presumably, for their Hotel, Reservation and booking system, Casino products.

CDS invested into TurboPower, but it seems that, with 5 million poured over a decade profits were far away. TurboPower took a life of it's own, from Mr. Brian Warner taking over day-to-day activities until a president was found. Mr. De-Rossi came, and then Mr. Eric Hammon, Mr. Julian Bucknall, Mr. Lee (?), Mr. Fred Huffman, Mr. Mike (the AsynchoPro person), Mr. Kent Reisdorph (from Team B). The products were really good...

What's wrong with TurboPower?
What went wrong or was the company doomed from the start?

Your reviewer looked and pondered on various aspects, wondering why TurboPower failed. It had the right people, experts in their field, good accounting practices (you can find them in CDS's SEC (Security Exchange Commissions) filings year after year), good order filfilment, good customer support and excellent products...

Costs
The fall started with Imprise Delphi 4, when prices for Delphi were increased from US$99 to US$149, then US$1500 for the "Professional" version of Delphi. Many hobbyists were disappointed with the new pricing. You can spend a few hundreds on your hobby, but not a few thousands.

Let me explain. If you are a hobbyist, you could spend a few hundreds a month, here and there, but you can't possibly spend a thousand and then a few hundreds here and there as you liked. It would be too expensive.

With high prices, the people who sell add-ons would suffer, and TurboPower was an indirect result of that issue.

Shipping
Your reviewer loves TurboPower, but it made really no sense when shipping. For example, shipping (3 days), the wire-transfer and shipping would eat-up into nearly costs. I don't know about overseas, but it could really get really costly.

Your reviewer saw some complaints about shipping costs, but nope, they always shipped with manuals.

Forever in beta
The legendary products were mired in issues. TurboPower SysTools would have plenty of service patches, FlashFiler would have data-corruption issues, but to be fair, the next week or so, Mr. Julian would get it resolved.

One unusual casualty was Flash Filer, the database that could. The first version was good, but if you added more and more data, there was great risk of corruption. The problems were resolved, but that took over a year leading to FF2. Months after FF2 was released, TurboPower went out of business.

With AsynchProfessional, the product was mired in either driver issues, COMM board issues, or various modem issues. To be fair, there were so many modem versions and so many serial-boards, it was nearly impossible to test all of them, not to mention get it working for overseas customers - Try for example, getting the Caller ID in Brazil (depends on operator; You need to subscribe to CallerID package?) or making a phone call in UAE (you need to make ^7 or ^9 and then wait 5 seconds and call) or work with compatible boards (you need the Hayes-modem compatible ones). Your Fax modem receives needs to be baud 19200 and duplex, and so on.

SysTools/Orpheus was always in development, with some parts left to be desired. For example, the last versions had continually problems with their Grid and editors (to be fair, most of the 1.xx versions were marked depreciated) and newer editors were made.

Newer products, Abbrevia would work well, a good implementation of the PKZIP algorithm. Newer versions had TAR support and ZLib compatible libraries. To be fair, most of the bugs were fixed in later versions, although that resulted in weird bugs such as memory overflow, funny PKZIP compatible errors).

OnGuard had interesting CRC128 algorithm and hashing libraries, but the supposed copy protection had flaws, such as plain-text attacks. The Lockbox had weird RC4/RC5 encryption errors, that was never fixed, so the crypto results were different from standard results. (Use Hagin's DEC library instead).

You could call TurboPower support, but they often prefer you post to their newsgroups.

Not Essential?
Your reviewer could see using Orpheus for grid support, but it was so hard to use, then, SysTools was nice to have, but unless you really needed it, you could live without it. There was no reporting support (that itself is another blog post) or database library other than FlashFiler.

New Kids on the Block
The new kids, notably, Dream Company, DevExpress, LMD had comparable offerings. LMD had good products which competed against SysTools, Opherus.

Developer Express was probably what brought TurboPower down. DeveloperExpress had good product offerings, if you remember the olden days, dxGrid 1.0, 2.0, good offerings (their bars library, master-grid and so on). With DevExpress able to replace most of TurboPower Opherus, Essentials, SysTools there was hardly any more justification for TurboPower...

Sons of TurboPower
In the year 2003, months after awarded "Company of the Year" from Borland, TurboPower went out of business. The employees were absorbed into Aristocrat, but a month later, founded “ComponentScience” (founded by the same person who made Raize components), except Mr. Gary Ferking and Mr. Kent Reisdorph. A year later, ComponentScience went out of business and folded into Fafel technologies. They used to have Fafel flogs (some kind of blog website) that promoted Delphi consulting and later, removed all references to Borland.

Roll Call:
Mr. Kim Kokkonen persued his Masters degree, graduated, now at Intelligent Software Solutions,
Mr. Julian Bucknall went over to DevExpress, replacing CTO Dale Fuller.
Mr Fred Huffman, co-founded ComponentScience and now at Maxim Integrated Products,
Mr. Roy Salisbury and Mr. Robert DelRossi former TurboPower President now at Rocket Gaming Systems.
Mr. Kent Reisdorph and Mr. Gary Ferking, were at R&D at Aristocrat. Mr Kent left, and now at Rocket Gaming Systems.
Mr Mike Welch worked at ComponentScience, now in broadcasting.
Mr Steve Troxell, independent.

[There are others, but your reviewer did not manage to trace them in time before publication]

The king is dead, long live the King.

[Spelling mistakes corrected, re-edited for clarity and accuracy]
[Dates fixed]

Fan Mail: Religious Delphi Programming

Your reviewer got some nice emails about religion and programming.

Notably, this is a hate site, or that your reviewer is not right with God, your reviewer writes hate, lies, etc.

False Witness
DelphiHater could never understand about false witness in the Delphi community, such as, false advertising, in the sense you sell something, but you give something else instead.

For example, is Delphi itself, almost every year, a new version of Delphi, and more and more upgrade fees to follow. Nearly every new version has some kind of weird or strange issue which makes it nearly difficult to use, be it some memory-leak, bug, or bad implementation. Ditto for the libraries and add-ons which come with it.

Suppose for instance, you take programming out of the context and then, tell someone, he needs to pay US$800 per person to "sign-up" for the professional plan, or US$2400 for the expert plan and US$4000 for the "super-deluxe" plan to join a "gentleman's club".

Obviously, you would need to first sign-yourself-up first, and then sign-up others. Then you get involved in all kinds of activities to promote your end-results. A bit later, you make your end-result, but the results are not-so-good, and need to be better. Then, there are plenty of add-on packages you need to buy to make the end-result better, but wait, some of the add-on packages are not-so-good, have problems, and almost all of them costs money. Months pass by, and you are still making the product, bills needs to get paid.

The trouble starts when end-results are bad, or the customer is not happy. There are plenty of quick-fix solutions, sold by many vendors. Suppose you buy a package for US$300 for 5 people, it would be US$1500.00 and then, every new person who needs to help you finish your task, you would have to pay costs too. If you are an employer, you need to decide which library to license and which not to license, and for employee, use what is given.

Notice that for the library vendors and Borland, what "other" business do they have other than outside this business? What good is it to have buy custom buttons, labels, custom check-boxes, skins (the type to make your programs beautiful, not fur), code to access database, code to print reports. Each of them costs money, and each of them comes with no-compete license (you cannot make anything similar to the vendor) and upgrades, subscriptions to follow after.

[The non-compete license means that if you buy a report-writer, you cannot use make your own implementation, since that would be a license violation.]

Did you notice there are plenty of Outlook bars, Outlook scheduler-library, but few Outlook replacements? Did you notice there are plenty of Ribbons, but few final results? Of what quality are those Ribbons and Outlook bars?


Betrayal
It's very often that fellow Delphi developers back-stab each other. Your reviewer was played out many times by other Delphi developers, and no surprises here. It is more evident in the Delphi world because of close-knit community.


Stealing...
Your reviewer wonders the karma of using stolen goods?