Friday, December 08, 2006

Javing my way....

Again, I'm working on the interesting world of Java. Last time i play on the gray side of the moon was 1.3 years ago. On that opportunity Java -> WebLogic -> Oracle was the recipe for sucess (after Delphi obviously ;)).

Now, it is Java -> JBoss -> DB2, ja! nice combo, that could bring up some fatality moves and maybe even a famous friendship key combo. My experience with DB2 is close to zero, but should be similar to Oracle, and JBoss, so far it looks too similar to WebLogic, too soon to tell but we will see.

So back to the topic, lately I've being programming on Javita, and really, it is a nice language, sometimes gets into the same cryptic style as C but in general is acceptable. I have one basic complain so far.

The "switch" statement, requires a "break" line, that sounds to me like a forced move, close to a "goto" kind of move, if we are analyzing different cases, as soon as you found the matching one, you should just continue the execution out of the switch statement, but nope. The guy just goes all the way down if it is not stopped by a nice break. Easy to fix, great, but it caught my attention.

Well, thats it, on a lighter note, we had nice encouraging numbers on TIOBE, increased D popularity up one rank, but not enough to take over the crown of Ruby as the language of the year.

Oh lots of promotions on Turbo Delphis and components all over the world, some of them as down as $200USD for TPro.

Oh, I am still missing a nice post with my experiences with Subversion, it simply rox, really guys, want to use a source control software!, use Subversion. :)

Back to work!.

Thursday, November 30, 2006

I did it again!

I must admit that it was on my plans, really, I was going to buy those components sooner or later, but while browsing on the CodeGear general third party components newsgroup I found an offer i couldn't resist. What was it? well, go into the website or in to the newsgroups and find out, it will be easy to just provide the link eh?

So on the mighty Christmas spirit I bought another fine set of tools for my ongoing home project.

The lucky ones are a set of tools to provide remote assistance to your clients, for example, lets say that your client has a problem with its machine or with the software itself and he is getting a weird error message that doesn't matter how many times he describes it on an email, or through the phone yo simply can't understand what he means or how the error is happening.

Well, the solution is simple, ask him to go to the About option on his menu, click Help and click on the button request Remote Assistance...

On that moment a request will be send to my servers up in T.O. and I will be able to jump in into his desktop after his authorization to view live and under his supervision what is going on with his system. This is in my opinion the ULTIMATE technical support :).

My kudos to the Real Thin Client for such an outstanding job.

Saturday, September 30, 2006

Access to the path "C:\WINNT\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files..." is denied.

Well, this weekend i spent several hours (lots) setting up our new bug tracking software (Axosoft if you wanted to ask) and out of nowhere we start getting the message :

Access to the path "C:\WINNT\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\bugtrack\5607edd7\fc4d1071\hash.web" is denied.

everytime we try to access their web version of the product. I tried everything i could, and I asked my dear friend google many times. My problem was that lots of people described the problem, but their solutions didnt work for me.

Finally, this mighty article from the msdn saved the day. Interesting to know is that the problem came up as a combination of us installing, IIS 6.0 and then promoting the computer to be an additional domain controller. That series of events cause ASP to lost control over their temporary directories.

Who figures eh?

Friday, September 29, 2006

How to determine what version of .Net you have installed.

Well, I ran into this situation. After a quick search i found this simple but effective article in the MSDN network.

That only reminds me of the importance to keep a proper versioning system, on days when using years to determine the version of your program (at least for marketing purposes) is the way to go, we cant forget the importance to keep the traditional x.x.x.x version system going and BUILT into each of the files of your system.

Wednesday, September 27, 2006

Monday, September 11, 2006

Turbo Delphi en Latino America.

This one goes in spanish!


Para aquellos hispanoparlantes en Latino America que quieran comprar sus versiones de Turbo Delphi o tengan preguntas de como obtener soporte de Borland en sus paises, adjunto los comentarios de dos empleados de Borland al respecto de este tema:


My name is Lisa Flores ( and I work in the
Developer Tools Group for Latin America and wanted to let all of our
Latin America and Caribbean customers know that you can indeed purchase
Turbo locally in many countries and in others, directly from the Latin
America/Caribbean sales department. This page will give you your local
purchasing options:


Spanish-speaking Latin America:



Lisa Flores
Account Manager - Latin America & Caribbean
Borland Software Corporation

Friday, September 01, 2006

A success story of ISAPI, Datasnap and D2006.

A while ago I was hired to extend and complete a very complex ISAPI Delphi web application.

This application was intended to manage high volumes of web requests and responses, with peaks of 55,000 logins per day and around 35,000 transactions per day.

The system is power up by a nice 3-tier architecture using all the DataSnap gadgets available, including a nice implementation of the out-of-thebox load balance and redundancy components included on DataSnap.

Years and several jobs later, a big problem started to show up on moments of high load/volume, a terrible "No more available connections" message start affecting the webservers, the worst part was that the asp wrappers of the ISAPI were fine, so everything pointed to a problem with the dll.

I was contacted to work on this problem, so that is how my adventure started.

Initially the solution was to increased the amount of instances of the DLL that could be loaded in memory. I also tried increasing the IIS back log settings for pending http requests, all this helped but the problem persisted.

The next solution was to increase the number of webservers, this off course helped, brute force did its magic but the volume of requests increased and after some months and the problem showed up again.

After some research, I decided to go the dramatic way, so I ended up upgrading the application to the all mighty Delphi 2006 and its new FastMM memory manager, a new Midas, and the addition of the ISAPI Thread Pool unit.

In order to test if the solution was effective enough without putting at risk the live production system, I setup a nice test environment using the well known opensta testing framework.

The test consisted of 30 virtual users, each user accessing 20 different player accounts, browsing the website, checking their balances and logging out of each account. I ran twice each test against the old and the improved dll.

The results were very good, the response time per request when from an average of a 100ms per request to 25ms per request. (THAT DRAMATIC!)

On the dark side, I got only 6, "500 errors" on the test runs. So on one side I was happy because performance just jumped up, and in the other side I was concerned because I wasn't sure if I was properly addressing the main reason of all this mess.

So I decided to ramp up the test by going up to 100 virtual users and push to the extreme those 60 maximum active modules. The result, simply impressive...

The test ended up doing 12830 http requests to the dll, in the old DLL out of those 12830, 1850 were "500 errors". What "500 error"?, well the famous "not enough available connections". BINGO!

I switched dlls and tried again... GOSH, DELPHI ROX. Out of 12830, only 10 "500 errors". The dll was able to answer most of the requests properly and still in a good time.

Do I have to say more? I can't hide the fact that some nice architectural changes helped a bit, but, FastMM, ISAPI thread pooling and DataSnap, are the perfect combination for web dlls.

Delphi Small Team Pack!

Hey guys,

The DTG is going all the way, in a couple of days will put their products available for download (including the free Delphi version) and right now you can buy the Delphi Small Team pack, 2 licences with a 20% discount in the Pro, Enterprise, and Architect editions.

Great opportunity for those small high productivity factories out there. :)

Check it out here

Monday, August 07, 2006

Turbo is Back....

Great news!

The Delphi (Development :P) Tools Group is starting its comeback by announcing the return of the Turbo tools. Yeap guys, Turbo Delphi, Turbo C++, all the good ol' friends for all the professional and enthusiast developers out there are BACK with a vengance.

Check this link with the news.

Wednesday, June 07, 2006

Oracle experiences...

In my current job i have the pleasure to work on an Oracle powered environment.

That has allowed me to get enough knowledge to give a personal evaluation of it, compared to the newest MS database server MSSQL 2005.

In summary, MSSQL 2000 has nothing to do against Oracle 9i or Oracle 10g, in that case MSSQL 2000 looks like Access with Steroids.

But when we put in the mix the latest and greatest MSSQL 2005 things change. Under such situations MSSQL 2005 goes along the way of Oracle 9i, but fails to reach the performance and tweaking capabilities of Oracle 10g.

Oracle has put lots of effort on simplify the Oracle installation and management of the database, but still lacks to the easy of use of MSSQL.

My current home project is being developed on MSSQL 2000, but it already pass some initial testings on MSSQL 2005, so, it is almost guaranteed that by the time its first version is out, it will be running on it.

The next step will be to move my ADO components to dbExpress so i can proceed thanks to DataSnap to support Oracle and MSSQL on deployments.

Why picking MSSQL over Oracle after saying that the last one is better? well, simple, easy of use, i need to have the initial version out soon and there is no time to spend on a database migration.

DeadLocks? well that was the big cons with MSSQL 2000, but i must admit that having all those locking problems did help me improving my SQL skills and my general knowledge of the MSSQL engine. What about Oracle? well, so far, it has behave properly, but we havent hit the system with enough transactions to safely say that is better.

What i do know is that Oracle manages a better locking system, If i'm not mistaken it is applied on a row level , now you can specify that manually on MSSQL (2005 has it by default) but come on wouldn't be nice if you dont have to specify your locking hints everywhere in your SQL statements? (yes you have to if you are doing any serious enterprise system).

Now, I'm going back to my duties and i will keep entering more rants on system performance later.

Wednesday, April 19, 2006

Delphi 2006 Update 2 is out!!

Yes guys, the big D got his latest update. If BDS was rock solid, now it is just steel solid.

Download the udpate here.

See what was fixed here.


Saturday, April 15, 2006

Latest news: New Delphi "DevCo" maybe announced on May 8.

Well, all this is based on news reported on one of the best Spanish language Delphi forum, Club Delphi , a well known spanish blogger and one of the main Borland Software distributors in Europe Danysoft.

It seems that on May 8th, in a conference in Spain, the new company will be announced. The article mentions that the new company will be based in Europe.

The article also mentions that is likely that the new "DevCo" will not be part of a well known buyer but a new and independent company.

The existence of a strong Delphi Market in Europe and also the good and strong anti-monopoly software rules plus protectionist from the European Union will be a plus to help "DevCo" in its way to the top.

Now, is this true? no idea, but May 8th is not that far ago, so i think we can wait a bit and find out.

Delphi Rox!

Tuesday, March 28, 2006

Linux and Oracle.... NOW I really love Delphi.

Well, these days I had to deploy one of our company projects in Linux and Oracle (Just in case, it is not built on Kylix).

The plan was to install Red Hat 4 ES and Windows 2003 server on two different VMWare machines running on my Windows XP computer all linked in a nice virtual network.

It has being a while since I play with Linux, last time I did I used the Mandrake Linux distribution more than 5 years ago, and it wasn't a pleasant experience. But I assume that more than five years later, I will have the closest thing to Windows I can imagine on the penguin environment.

Gosh I was totally wrong. My mission was basically to prove that we can have a full product installation using ONLY the GUI (Gnome /X-Windows), you guys must understand that giving this kind of statement on a fully Java/Sun/Solaris environment is the closest thing to a blasphemy only overcome by the use of Microsoft / Windows related products on our environment (which I'm doing by introducing Delphi :))

Anyway, as a summary of my experience:

* Red Hat 4 installer is great, it was the closest thing to the famous "Next, Next Finish" we are so used to in Windows.
* Soon or later you will have to use the command line.
* Gnome desktop is still far behind Windows.
* Linux guys like to build a mist of mystery on their products. All the things I did in order to install Oracle on Linux can be done on the GUI, *if* someone puts a bit of time on finishing the GUI and adding some of the tricks that can be done only through the command line. (permissions is an example).
* Oracle installer should ask for the root user/pass and do all the required installs without having to stop and ask the user to manually go, change user and run scripts to be able to finish the installation.
* Linux REALLY needs some good RAD environments. (Did I said Kylix?)
* Copy/Paste is a pain, some applications will not recognize the copied items from other apps.
* WARNING!! The File Browser doesn't recognize the files with names .something. This caused me a bunch of issues cause Oracle installers used lots of files with that kind of names. (e.g. .extract_args.
* I ended up copying the files using the command line. If you ask me, that is SAD. (Yes I did enable to view all file types and hidden files, didn't work)

Well, I can keep typing but it is enough, Linux is cool, but gosh, once you work with Windows and Delphi you realized how nice and green are the lands on this side of the computer world.

I can't believe people still pushes for terminals and command prompts, I mean think about it, movies, TV series, internet, everything shows the new generation of developers (kids) that it has to be graphical, kind of "Minority Report" feeling.

Terminals look cool, for all of you hacker lovers, but, it is the 2000's, that is a no no, now days.

Cya all.

Thursday, March 16, 2006

Windows Vista will not use .Net

After all, .Net is taking some time to lift off. The following articles extracted from a good discussion on the borland newsgroups show us how the new Windows operative system ended up not relying on the .Net framework.

and ...this other ones covering the API and GUI.

Personally, I'm more interested on future native Win64 support. If Intraweb is able to catch up and improve its performance (which they did in version 8), then i will not have any other use for .Net (which i think is only useful for web apps for us Delphi developers) in the short term.

Thursday, February 16, 2006

Letter from David I to the Brazilian Delphi Community.

A great post to a big community down south, that touches the topic of Delphi spinning into its own company.

Click here to read it.

Delphi 2006 Architect version Trial available!

Try the best Delphi ever. Click here to download the Delphi 2006 Architect Trial.

Thursday, January 19, 2006

Transactional Data Modules on Delphi 2006

Tonight i was working on my project's middletier using DataSnap and i decided to add a new Transactional Data Module, perfect, i click on File / New / Other and select the MultiTier tab... ooops, it only says Remote DataModule!!!

Where is my Transactional Data Module!! Well, it seems that the Wizard didnt make it for the official Delphi 2006 release (as i said officially), BUT... after a quick "let me ask Mister Google" i found this good entry on Borland's Chris Bensen blog. Good stuff it is there, notice that you will have to enter "both" (Free) in the component factory section if you want to specify support for both Single and Apartment Threading Models, the option in the wizard only offers Single or Apartment.

Anyway it seems that Delphi 2006 supports them fully and there is no problem with it. (We already deployed our newly D2006 compiled modules).

Another way to do it is just to open your project with Delphi 7 and add the transactional data module, save, close and go back to D2006. (Hey, i still use the D7 help file :P)

Friday, January 13, 2006

Marco Cantu's eBook Delphi 2006 first draft

I mentioned before on the borland nontech newsgroups that Marco Cantu was planning to extend his Mastering Delphi 2005 book.

Well, here is the link to his initial Delphi 2006 ebook first draft. I can say that Marco's book is great, it is part of a good collection of Delphi .Net books on my office, which i will be waiting to increase with his next book, which i expect to be available when Delphi 2007/2008 comes out.

Enjoy the good reading.

Monday, January 09, 2006

2005 is gone, welcome 2006!

Well, personally and professionally 2005 was a great year for me, i spent my Christmas in my beautiful and warm country, the perfect way to close a good year.

But now, it is 2006, and what better way to start the year than with the BEST DELPHI EVER, yes sir, i am right now installing the Man, the Mighty One, the only Delphi not bashed so far in the non-technical borland newsgroups... Mr. Delphi 2006.

So far so good, i'm installing right now my standard components: JVCL 3.10, SUISkin and ExpressGrid.

If all these guys come up right, then we are ready to move, yup, i'm not thinking twice, i'm going all the way, i'm migrating from Delphi 7. It is worth it and the feedback so far has been A+.

So, people, the time is now, Delphi 3, 4, 5, 6 and 7 users, we have our safe spot is Delphi 2006.

Let the party begin.

Pst. It looks like i will have a lack of sleep this coming days. :)