Thursday, November 15, 2007

Help Update 1 for Delphi 2007 available.

Another great sign of constant improvement of my favorite IDE.

If you have not get an information dialog from your installation just go to Programs\Code Gear RAD Studio\Check for updates.

You can go here to read the install and Release notes, straight from CodeGear.

Tuesday, October 23, 2007

Migrating from ADO to dbExpress...

I finally started.

After holding the migration for a long time I am doing it, the reason? well, CodeGear has a renew effort on working on dbExpress, and its latest version dbExpress 4 is a great example of it, with good performance, great connectivity with WIN32 and .Net, support for BlackFish SQL, code included and completely rewritten in Delphi, and lots of improvements on D2007 to work with it like a new SQL Query Editor.

My initial testings always showed a better performance with dbExpress than ADO, now add the fact that ADO is being discontinued by MS in benefit of ADO.Net, the choice was a lot easier.

But, what I did to migrate thousands and thousands of components? Well it wasn't easy, there was no way I could do it in the form designer, it will simply take years.

So just go, open your Data Module, switch to code view, and Find/Replace the following:

1. Replace Connection with SQLConnection.
2. Replace TADOQuery for TSQLQuery.
3. Replace TADOStoredProc for TSQLStoredProc.
4. Replace TADODataSet for TSQLDataSet.
5. Parameters for Params.
6. CmdStoredProc for ctStoredProc.
7. Direction for ParamType.
8. pdOutput for ptOutput.
9. pdInput for ptInput.
10. Add under every dataset that uses SQLConnection, Schema = "dbo" or whatever your schema is.
11. Remove every parameter item called "@RETURN_VALUE".
12. Replace TDateTimeField for TSQLTimeStampField.


Geesh, thats what I remember, I will add more to the list if I hit more rocks on the road.

Thursday, September 27, 2007

Consolas fonts.

Well, I was reading the CodeGear's non-technical newsgroups, and found an interesting conversation regarding what kind of font you use on your development IDE, among the recommendations there was the new Consolas Font from Microsoft. Well, I surrender to temptation, downloaded the font, set it up on my RAD Studio 2007 and expected to see something cool in front of me, but.... nothing happened, tried several times, and nothing happened, the IDE didn't recognize the font, nothing changed.

Luckily I did my googling and found out this nice tool, that avoided me the trouble to attempt to configure the font from the command prompt .

Well, I did it, restarted my sexy IDE and yahoooo!! I have a nice sexy font. I must admit I like it, it will take a while to feel fully comfortable with it, but i think is here to stay.

Try it! you may like it too.

Sunday, August 12, 2007

Restarting your application.

We are creating a project to automatically update our different modules. That usually implies an application restart, lots of ideas went around, a service that does that, a batch file, or another program working as a proxy of the original one, but, hey, I found this G R E A T article from Zarko Gajic who is always giving amazing tips with Delphi on how to do it in a VERY easy way.


Enjoy!

Saturday, August 04, 2007

The overload directive.

Well, it is fairly common to use the Delphi's overload directive to create a method with different sets of parameters in an object.

What I wasn't aware is that it actually works on functions or procedures that are not part of an object. That is cool.

Thursday, August 02, 2007

RemObjects and DataSnap.

I'm using a mix of Delphi's RemObjects SDK and DataSnap on our middletier, and we have implemented session management on all the services and in all the DataSnap remote modules.

Thanks to RO, that can be easily done on the DataSnap modules by turning on the RequiresSession property of the RODataSnapModule. Now the only problem with this is during design time, once it is on you will not be allowed to connect to your DataSnap datasetproviders without first logging in. So, as you can read that is a problem.

The solution? We added a command line parameter to our application server that simply controls if we want to require a session or not in our services or datamodules. Once that flag is set, we just use it as an indication while we are creating the service/datamodule.

Soon, I will post the results of a LETHAL combination, KbmMW, RO and DataSnap in a single SUPER POWERFUL MIDDLETIER MILKSHAKE.

Tuesday, July 31, 2007

Developer Day en Español!!

Hi guys,

CodeGear is hosting "Developer Days en Español" a nice gathering of great developers with the spanish speaking Delphi community.

There is a wide variety of sessions including Delphi, Interbase, PHP and Java.

It is only for 2 days, today was the first session and it was great. An average of 300+ guys were listening online to the different sessions, in my opinion a great success.

So if you want to check it out, this is the website.

Enjoy!

Sunday, July 29, 2007

A nice surprise on Delpih 2007...

I was creating a "Lost Connection" dialog box for our rich client applications and as a distraction I was browsing around through thousands of nice icons on the internet, when I finally selected the icon that i wanted, I realized that it was (as almost every nice icon now days) a .png file.

Big disappointment I said, cause my mighty Delphi doesn't support that in a native way, I need to use a open source component, (actually there are tons of them, but I don't have the time for that) so I will have to convert it to that ugly bitmap thing. Oh well, i did and when I was getting ready to upload the image, sweet surprise!

TImage supports now gifs, cur, pcx, ani, png, gif, jpg, jpeg, bmp, ico, emf, wmf. I don't know if that is something new, but for sure it wasn't on Delphi 7 :P.


Love my D2007.

Sunday, July 22, 2007

Visual Studio launch in 2008....

Latest news said that Visual Studio will see the light in a joint launch with MSSQL Server 2008 and Windows Server 2008 in Los Angeles on February 27th, 2008.

But, it will be released officially by the end of this year.

CodeGear Studio will be out around September.

Sunday, July 08, 2007

Database scalability with MSSQL 2005

Some news from the battlefront...

We are expecting at least a 75% increase of our internet traffic, db transactions, network and database activity in general so our entire company is working hard on getting ready to manage this incoming wave.

Regrettably, life is not always good and the core of the business is setup around a system using a typical client/server architecture where each workstation creates a connection to the database and to make it worst, establishes server side cursors to fetch all data they need.

Now on the other hand, the website is driven by old school ASP pages, using adHoc Queries or direct stored procedure calls to the already beat up database. Finally, it is important to mention that this is running on ODBC connections.

End result?, chaos, in high traffic moments the entire network slows down and all the applications switch to a slow silent death walk to a total IT crisis. There is no caching techniques, no business layer, basically no middle tier... all the opposite things to what I'm used to deal with, and that is why it is my mission to turn this around and take over the world. (moooooahahaha)

Well, the mission is simple, we can't change much in short time, so we need to make this system work as good as possible. So, my first task is to provide a list of recommendations towards the deployment of our new database servers running MSSQL 2005.

Yup, we are migrating from MSSQL 2000 to MSSQL 2005, people will think that it is a simply straight import/export, but special considerations need to be made when dealing with the databases collation which has completly change from one version to the other one and to the famous "compatibility modes". Keeping an imported database in Compatibility mode 80 (MSSQL 2000) may save you headaches but will offer you little in terms of all the good new toys and performance tricks that you can apply on compatibility mode 90 (MSSQL 2005).

Bellow is a summary of my initial recommendations aimed to the physical database storage design aspect that you should follow when dealing with a situation like the described above:

  1. Server side cursors implies lots of memory usage on the database. So, increase memory on the database server, the more the better. Make sure your database is using it, by checking the database memory limit. (special attention to the 3gb limit on the non Enterprise versions of MSSQL)
  2. Multiple core machine? well, you will not use them if you don't separate that big nasty .mdf file into multiple .ndfs, what is the recipe? the number of data files within a single file group should equal the number of CPU cores.
  3. For optimized I/O parallelism, use 64 Kb or 25 Kb strip size when defining the RAID configuration.
  4. Use manual file growth database options. Automatic is only for development (ja! you didn't knowt that did ya?)
  5. Increased size of “tempdb” and monitor space usage, adjusting accordingly. The recommended level of available space is 20%. All your temp tables and indexes are created there so, keep that guy with enough space, if you are using the default size that is only 8MB, and that is basically 8 floppies, so be nice, put some more space there.
Alright, so that should buy us some time to concentrate on the next stage, database optimizations. Until the next post.

Wednesday, June 20, 2007

CodeGear drops C# Builder.

I was listening to one of the weekly community podcasts from CodeGear, and one of the topics that was mentioned was the announcement of C# Builder being dropped from the CodeGear Developer Studio 2007, to be released later this year.

Winforms seems to be a no no too. It seems they will be putting all their efforts on Delphi and C++ and Delphi.Net using the VCL.Net. They will convert their existing support for C# Builder to the same level of the VB personality, which means edit, syntax highlight, compile, and basic
debug functionality.

It looks like we will have the possibility to use any existing C# component and add it to your Delphi.Net project with no problem.

For people using ECO with Winforms, they will be ways to move into the direction of VCL.Net, which will be fully supported by ECO on the coming Delphi.Net release.

I certainly agree with their moves, there is no point on supporting a language that they cant controlled. They can use the .Net framework or the Win32/Win64 native APIs, but just like they did with Win32 by building the impressive VCL on top of it, expanding the VCL to support .net will also forced the VCL under native APIs to be extended to new cool functionalities.

Lots of news around CodeGear, which just reasures my thoughts towards the fact that these guys are doing the best they can to have things going the proper way.

Oh final comment, initially it was mentioned that Generics will be only supported from a consumption level, that seems not to be the case, production of Generics will be there too. But, only for .Net initially.

Thursday, June 14, 2007

ASP.Net not too scalable....

Scalability is a daily concern on my business. We managed thousands of requests, that startup lots of transactions that will make any online bank website simply jealous.

A couple of times, I worked with companies that use ASP.Net as their web framework of preference and it was not long when we start having scalability problems. It is a well known issue with ASP.Net, but there are solutions.

I found this interesting article that talks about the issue and gives a good solution.

Read it!

Wednesday, June 13, 2007

Using Visual Studio 05...

Yes, I know, but hey, I was programming on Java a couple of days ago, so for me it is just more stuff to learn and at least it is more visual than Java.

I'm in no way leaving behind my sexy Delphi, we just got a new update and a cool roadmap, but, I need to develop some web applications that connect to my Delphi middletier and the option I have right now is to do some ASPX on C#.

If I'm lucky enough, I should have the new Code Gear Developer Studio with support for .Net 2.0/3.0 by September, so I can use it.

Monday, June 04, 2007

The big reunion.

Hi guys,
I don't know if you were aware of this great reunion between the last two old schoolers of the software industry: Bill Gates and Steve Jobs, on an interesting chat together at D5!!.

The vision they had and have is simply outstanding, the advances we enjoy today on the software area can be easily blame to these two great minds.

Enjoy!

Friday, June 01, 2007

What will many cores mean to future window releases?

This is a good article about what is going on with Microsoft around the new trend on Multi Core devlopment.
You got to love AMD Opterons :)

Thursday, May 10, 2007

Faster web pages...

This is the link of an outstanding presentation made by the Yahoo’s “Exceptional Performance Team” about optimizing website performance by addressing front end issues. This is part of the web 2.0 expo that happened last April. A MUST read.


Enjoy,


http://www.web2expo.com/presentations/webex2007/souders_steve.ppt

Yes, it is a power point presentation.

Sunday, May 06, 2007

A great option for middletier development!

For all those developers that are looking for another option to the mighty DataSnap, now there is a great opportunity to develop reliable and scalable middletier solutions for the same price.

Components4Developers is offering their popular middletier software for free. What is the deal?

Simple, register and download. TurboMiddletier is a full version of their enterprise middletier software KbmMW (a couple of transport protocols and channels are removed but nothing major), it only supports the latest Delphi version, so, if you have Delphi 2007 go and get it now!!

I personally use Data Snap, RemObjects and KbmMW in our projects and can only say good things about them. I do admit that KbmMW is a more mature framework with lots more functionality, but on RemObjects SDK favor, they offer a great DataSnap integration pack that help companies using DataSnap to migrate to their SDK.

Whatever you pick, you will be on good hands, in the meanwhile go and get that!

Saturday, April 21, 2007

Using Agile methodologies on your favorite IDE.

My current job is moving towards an Agile development, so, in order to be one step ahead of the game, I am implementing on my home projects most of the methodologies that we will or should be using in our everyday development life.

Browsing around I found this site, which basically is dedicated to implementing Agile methodologies in Delphi. Take a look at it, and subscribe to the forum, it promises to be a great source of knowledge for all those XP/SCRUM/Agile fans.

Sunday, April 15, 2007

Ajax and Delphi

I'm finally working on the web applications of my home project, and I decided to work with Intraweb 9 as my web framework which now supports "Ajax" events on most of its components and comes built-in my brand new shinny Delphi 2007.

But, browsing around I found a set of extremely interesting examples and articles about using the Microsoft flavor of Ajax (Atlas 2.0) on ASP.Net with Delphi.

Take your time on rewiewing these examples from Steve Trefethen.


It is worth to mention that TmsSoftware replied to my question about possible updates to their Intraweb web components, the answer YES!, so lets wait a couple of days, for the goodies to come.

Saturday, March 24, 2007

Delphi Developer job offer in NJ?

I saw this add from "The Lair of the Pythia" blog, so I will help spreading the word.

Delphi Job opening here!

So go there and make us all proud!

Friday, March 23, 2007

The Phone interview process...

Well,

One of the different roles that job after job I've done is interviewing new candidates for my team.

I'm very comfortable with the one-on-one, mano a mano model of interviewing, but most recently I'm dealing with a new cool variant of it, the phone screening, why is it new? well, usually that kind of process is managed by the HR people, but now days, based on the offer/demand sometimes is healthy to screen a guy before he even puts a foot out of his home.

Oh God, yes, distortion on the communication line, language barriers, unable to read body language, unable to picture your world into mine, unable to cross that border of understanding and agreement, indeed, it is a bit more difficult than my original play field.

I know that practice will make the difference for me, but also, I was lucky enough to get this link from a co-worker that it is going through the same process.

READ IT! if your duties involved phone screening, it may help you to understand the situation and save you from the confusion we noobs need to go through at the beginning.

Monday, March 12, 2007

Code Rage 2007!!! NOW!!




Guys, more than 20 online conferences covering from powerful Delphi to Java, Ruby, Php, Interbase and lots more!

Its free, its cool and its from the best developer tools company WHAT ELSE YOU WANT!!!

GO HERE NOW AND REGISTER! Starts today March 12th! 6:30AM PST!!

Thursday, March 08, 2007

10 basic principles of SOA

Lately, all my work is around implementing solutions following a SOA approach. After working for several years with multiple software vendors on my industry, and having to deal with endless integrations, I'm ending up aiming my tools and goals to it.

This is a nice little article about 10 things to consider while following a SOA mentality.

Thursday, February 22, 2007

The ADO prepared property.

Today I was playing with some ADO queries and I stumble one more time with the famous prepared property. Based on the BDS help it says:

Description Set Prepared before calling the Open method to specify whether ADO prepares the command used to create the dataset’s recordset. If Prepared is set to true and the dataset component is connected to a data store, ADO prepares the command before executing it. If Prepared is set to false, ADO does not prepare the command. The default value of Prepared is false.

Now, after a bit of research I found this interesting article on the msn dev network.

The important part is here:

Prepared property

In theory, the Prepared property was designed to reduce work on the server by pre-compiling ad hoc queries so subsequent executions would use a temporary stored procedure instead of repeating the compile phase each time the query is executed. However, this is not the case with ADO's implementation—keep reading.

Since ODBC was invented some years ago, SQL Server has gotten much smarter—it now knows how to leverage existing (in cache) compiled query plans. That is, once you execute a query from ADO (or by any means), SQL Server constructs a query plan, saves it in the procedure cache, and executes it. When the query is done, SQL Server marks the query plan as "discardable" but leaves it in memory as long as it can. When another identical (or close-enough) query comes in, which is very likely in systems running multiple clients, SQL Server simply re-uses the cached plan. This saves a significant amount of time and greatly improves scalability. It makes SQL Server actually run faster as more users are added, assuming they're doing about the same things with the same set of queries.

ADO and its ODBC and OLE DB data providers know about this strategy, and in most cases they execute sp_executesql to take advantage of this feature. However, this puts the Prepared property in a quandary. It insists on creating temporary stored procedures, but the data providers insist on using sp_executesql. The result? Chaos. I describe what happens a little later when executing Command objects is discussed.

My recommendation for the Prepared property: forget it—at least for SQL Server. For other providers, set up a trace that shows exactly what's going on—what the server is being asked to do.

Now this is extremely interesting for me, specially the sp_executesql part, DataSnap indeed wraps every call in a "sp_executesql" so we are good there, now about using the prepared property, I will do more research on it, but for now, I will leave it alone. :P



Wednesday, February 21, 2007

Code Rage 2007!!!



Go to the virtual conference from CodeGear called CodeRage 2007.

It includes Delphi, Java, Php and even Ruby sessions with an All-Star set of speakers.

For more information go here!

Now, I think that everybody knows about it, but just in case...



Delphi 2007 for Win32 is available now! and in a well expected move, the new Delphi for Php makes his debut. A visual IDE for PHP using the same VCL structure that we all know and learn to love.

Thursday, February 15, 2007

More Delphi News!!

Wow the information is in pieces everywhere.. check the following segments of "information" said by Michael Swindell (Delphi VP - CodeGear) that appeared on the borland newgroups:

"
c) Delphi Product line - we are realigning development plans and approaches
to focus on the individual native code Win32 editions (Pro/Ent) of the
products first, then fold them into an updated Studio that will include the
.NET updates. Architect and Turbo's would fall out of the Studio releases.
The Turbo's eds will become more lightweight in the process as well. The
majority of Delphi (and C++Builder) developers are focused on native code
development - so we are aligning our releases and timeframes accordingly.
Moving everything into monolithic Studio releases had some positive effects
but also some drawbacks that came thru in customer feedback. Having to wait
for the "all personalities" was not ideal for C++ and Delphi native
developers, who had either no or minimal interest or need for .NET. It
spread attention more thinly across the products, so we are changing the
approach so that during the year Delphi native developers have focused
specific attention in a product release, same with C++ developers, and .NET
developers. This approach actually worked quite well in past lives with
Delphi and C++Builder - although the complaint years ago from C++Builder
developers was that they had to wait 6mo to a year for the latest Delphi
features... which is something that we aim not to fall into. "


Then in addtion pay attention to the new "ALL DELPHI" intention with the new pricing model and SKU's:

"
Turbo Delphi Explorer -> Turbo Delphi "better" -> Delphi Pro -> Delphi Ent

same as above for C++

then Studio Pro/Ent/Arch incl both C++ and Delphi and .NET and Win32

Turbo Pro New and Delphi Pro Upgrades similar price level. So it will be
recommended in order to keep the feature level go to Delphi Pro as the
upgrade. This is a tuning of the editions. We released the Turbos with the
intention that we would see what worked and what didn't and make some
changes in 2007 to improve.

> How is this going to be handled?
> Or is the "lightweight" reference to reduced resource demands rather
> than reduced features?

lighter weight - in features and resource and download image

in general we have 12yrs of sku's editions pricing for Win32, .NET, Pascal,
C++, Linux, and more to work out the best "model" that cleans things up, and
focuses our energy (development, packaging, and marketing) on the things
that are most important to existing customers and enables us to put Delphi
into more developers hands than ever. So there will be some things that we
do that will seem like we're undoing something we've done or said
previously, or changing a position on something previously stated or
published. Some things will probably seem crazy or sacrilege, but we plan to
grow Delphi, and to do that requires a little bit of house cleaning and
tuning. We'll probably make a few mistakes in the process, but the goal is
long term. Delphi and C++Builder have helped millions of developers, we
think the Delphi way of developing can benefit millions more developers -
and we want to bring the Delphi ideas and approach to everyone we can. The
CodeGear difference is that we're going to take some risks and try new
things, but we won't be doing it at the expense of our customers. "

It is expected a Delphi release by the end of March maximum!.




Wednesday, February 14, 2007

Delphi 2006 new RollUp fix !

Already! more good news!

New Delphi hot fix rollup:

Here!

It fixes the following issues (long):


Version 10.0.2558.35231

===============================================================================

BDS2006 Update 2 Hotfix 10a

This Hotfix applies to:

Product: Borland Developer Studio
Version: 2006
Update level: Update 2
Editions: Professional, Enterprise, Architect, Turbo
Languages: English, German, French, Japanese


Description of updates that are included in this hotfix:

This hotfix contains a fix for the source code editor. If the source
code contained
accented or international characters, viewing the code as text and then
returning to
the file format would erroneously reset the source code to default ANSI,
thereby losing
the accented or international characters.

The source code (.pas) might become corrupt, especially if the source
code was
larger than 64K and if the accented or international characters occurred
only after
the intial 64K.

Quality Central Tracking Number(s): 32936, 32844
Internal Tracking Number(s): 241502, 241552

Copyright 2006, Borland Software Corporation. All rights reserved.

===============================================================================

BDS2006 Update 2 Hotfix 10b

This Hotfix applies to:

Product: Borland Developer Studio
Version: 2006
Update level: Update 2
Editions: Professional, Enterprise, Architect, Turbo
Languages: English, German, French, Japanese


Description of updates that are included in this hotfix:

This fix incorporates the following enhancements and fixes:

- The enhancement suggested in QC Report # 26063 to improve the SOAP
deserialization of multiref objects and arrays.

- The WSDL importer now exposes elements with 'maxOccurs="unbounded"'
as arrays and the SOAP runtime handles the conversion to and from XML.
(QC #35512)

- TXSDateTime (and other TXSxxxx types) can now be serialized as XML
attributes (QC #10969)

- The WSDL importer now handles schemas included or imported by the
schema
embedded within a WSDL.

- An uninitialized TXSDateTime will default to the value of
"0001-01-01T00:00:00" instead of
"1899-12-30T00:00:00.000".

- The WSDL published by Delphi applications was updated to be more
compliant with
the style expected by WSDL2Java importers.

- The SOAP runtime properly restores enumerated identifiers that were
renamed
because of conflicts with Delphi keywords or directives.

Quality Central Tracking Number(s): QC #26063, QC #33512, QC #10969
Internal Tracking Number(s): RAID #241798, #241801, #242796

Copyright 2006, Borland Software Corporation. All rights reserved.

===============================================================================

BDS2006 Update 2 Hotfix 10c

This Hotfix applies to:

Product: Borland Developer Studio
Version: 2006
Update level: Update 2
Editions: Professional, Enterprise, Architect, Turbo
Languages: English, German, French, Japanese


Description of updates that are included in this hotfix:

Removes the length limitation on search paths. Specifying a large
number of deeply
nested directories could exceed an internal limit.


Internal Tracking Number(s): RAID #242012

Copyright 2006, Borland Software Corporation. All rights reserved.


===============================================================================

BDS2006 Update 2 Hotfix 10d

This Hotfix applies to:

Product: Borland Developer Studio
Version: 2006
Update level: Update 2
Editions: Professional, Enterprise, Architect, Turbo
Languages: English, German, French, Japanese


Description of updates that are included in this hotfix:

This hotfix addresses the issue of Korean characters in the code editor
initiating
unwanted cold folding and causing access violations.

Quality Central Tracking Number(s): 35357
Internal Tracking Number(s): 242562

Copyright 2006, Borland Software Corporation. All rights reserved.


===============================================================================

BDS2006 Update 2 Hotfix 10e

This Hotfix applies to:

Product: Borland Developer Studio
Version: 2006
Update level: Update 2
Editions: Professional, Enterprise, Architect, Turbo
Languages: English, German, French, Japanese


Description of updates that are included in this hotfix:

This hotfix contains a fix for the VCL form designer to allow the F1
help key
to query the help system for the selected component.

Copyright 2006, Borland Software Corporation. All rights reserved.


===============================================================================

BDS2006 Update 2 Hotfix 10f

This Hotfix applies to:

Product: Borland Developer Studio
Version: 2006
Update level: Update 2
Editions: Professional, Enterprise, Architect, Turbo
Languages: English, German, French, Japanese


Description of updates that are included in this hotfix:

This fix enables all COM\ActiveX menu items and wizards that are in the
Pro version of Delphi.

Copyright 2006, Borland Software Corporation. All rights reserved.

Happy Birthday Delphi!! woo hoo

Today is a big day! Delphi's bday.

Yup, 12 years ago Delphi came up to the market, the coolest and greatest development language on earth came to our lives.

You will see lots of posts on the newgroups and on popular blogs about this, you can read about Delphi Spacely and Delphi Astro, Delphi expansions into Vista and Ajax :).

I will be adding links that talk about the celebration on this post during the day, so there ya go:

Marco Cantú

Friday, February 09, 2007

A new jmission!!

Well, lots of changes lately, so I haven't being able to blog for a bit.

So, let me fix that.

First, I am now living in Vancouver, yup, work takes you everywhere so now I'm on a mission to make a successful company even more successful.

I'm working again with the mighty Java during the day and during the night as usual on the super powerful Delphi. I'm working lately a lot with 3 different middle tier framework architectures, on the java side, JBoss, on the Delphi side with KbmMW and RemObjects SDK.

It is extremely interesting to see how the concepts of each of those frameworks just repeat themselves on each platform. I still cant understand why things are so not friendly on the Java side, all the functionality is there but there is a huge gap to present things in an easy way to the user.

I like Delphi cause it allows you to easily jump into something and slowly depending on your needs you can look under the hood and get into the complexity of it. Java (Eclipse, even with lots of plug ins) stills presents a very aggressive learning curve. I'm pretty sure the results at the end are fantastic, but still always seems like things are being done the hard way.

There is a big standardization thanks to Sun, XML is everywhere, but is because of those that presenting all these standards to the eye of the developer is still as plain as a text file.

Today I asked a couple of java guys what were the plug ins or they use to develop their methods and other interfaces on JBoss remote services, the answer: we don't, we go into plain code.

No service builder, no nice drop and use components.

I think that is ok, but, I'm aware their are plug ins that make your life easier (Lamboz-JBoss), but at the end of the day the java guys remain like their Linux counterparts, completely old schoolers. They produce great pieces of software but the productivity level is in my opinion low. Two companies and large teams behind their products had showed me this.

My goal is to become good in Java and try to find all the required tools to get as close as I can to the speed of development of Delphi, will I be able to achieve this, maybe not, but it will certainly be interesting to try.

Anyway, I am using a great mix of RemObjects and KbMmW.

I am behind a new idea that I want to implement on the kind of platforms I develop. RemObjects is very easy to use, and provides a great DataSnap integration pack, it is completely object oriented and their plug in system to attach different channels and message packages formats is done in the RAD way, meaning its as visual as it can be. Now, KbMmw presents the fastest memory table in town, plus it shows a great maturity in their framework (Kim has years behind this baby, so, experience talks).

Having licenses for both and using their high points is helping me to build a super scalable beast. I hope to see and post the results soon.

In the meanwhile see ya all later.