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!
Monday, August 13, 2007
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.
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.
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!
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!
Monday, July 30, 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.
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.
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:
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:
- 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)
- 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.
- For optimized I/O parallelism, use 64 Kb or 25 Kb strip size when defining the RAID configuration.
- Use manual file growth database options. Automatic is only for development (ja! you didn't knowt that did ya?)
- 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.
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.
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!
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.
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.
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!
Subscribe to:
Posts (Atom)
A painless self-hosted Git service
Remember how a part of my NAS setup was to host my own Git server? Well that forced me to review options and I stumble into Gitea . A extr...
-
Remember how a part of my NAS setup was to host my own Git server? Well that forced me to review options and I stumble into Gitea . A extr...
-
It is a matter of "simply" finding them. If there is a need, there is an opportunity. Native cross platform? for me opportunity! ...