| Cozta Norhalim 的个人资料cozta.net日志列表 | 帮助 |
Covalentia Version 2.3: Powered by OracleCovalentia may not be as good as other code generators such as Iron Speed etc to have version compatibility, but at least, it’s FREE of charge (since I’ve consumed a lot of other FREE stuffs from the internet, I’d say it’s time to give back to the community). I realize that this is a big issue - whenever Covalentia gets upgraded, migration from the previous version to the latest one is going to be a pain in the ass. But, worry not – we’ll address this issue later on when we come to that stage ;)
I’ve spent tremendous hours trying to include Oracle Database as one of the databases supported by Covalentia. And it ain’t an easy job. Oracle Database has got some limitations compared to other databases such as Microsoft SQL, MySQL and PostgreSQL. Perhaps, this is the reason why it’s faster? No? I have no experience in using Oracle and so I can’t say much about its real performance compared to others. Now, let’s talk about these limitations, and you’ll soon find out why I had to do the changes that I did in the latest release.
Covalentia uses the following naming convention for tables and columns respectively: TableName and ColumnName Oracle (and PostgreSQL), however, doesn’t allow this. Well, not really, you could preserve the case but this will cause some major problems when coding Covalentia as I have to add “TableName”.“ColumnName” here and there (with “) in the SQL queries. So, we have to stick with TABLENAME and COLUMNNAME (all capital case) for Oracle and tablename and columnname (all lower case) for PostgreSQL. As you may already realize that this may cause problems when generating Business Objects, Component and Control classes and User Controls (classes names, variables names and web controls IDs etc). MySQL, on the other hand, strictly sets the table names to be lower cases. This, however, doesn’t hurt much as we can manually change them before we generate the Business Objects. The rest, ie. the column names, are fine and work like a charm. If you’re deploying your database server on a Linux machine, don’t forget to set the lower_case_table_names=1 in the my.cnf file under the [mysqld] section. We’re going to come up with a solution to this problem in the next release (Covalentia Version 2.3 Reloaded). So, stay tuned Moving ForwardCovalent Technology has just secured a grant (fund) under the Enterprise Innovation Fund Scheme from the Government of Malaysia (Ministry of Science & Technology). We've returned the draft agreement and signed the acceptance letter on May 03, 2007. Now, we're waiting for the official agreement to be released and signed by both parties (that'll take some time or a lot I suppose
Objectives
When there's money, there'll be a lot of possibilites. A lot of things could happen. We might end up buying a beamer instead. Just kiddin' Oh, and preferrably women and married Setting Up a Linux BoxI spent numerous hours last week trying to recuperate my skills on setting up a Linux machine properly to run a dedicated MySQL Database for our Showcase - list of applications powered by Covalentia. The Mirror Site is now running two separate machines - one application (web server) and one MySQL Database server.
Please refer to my previous entry on how to install MySQL on a Fedora Core 4. After doing all that, I had to tweak a few things to make it work:
I think that's about it Installing Firefox 2 on Fedora Core 4Well, before I forget, I better jot down everythin' that I did today for future reference
Fedora Core 4 comes with Firefox 1.0.5 or lesser, I can't remember. You could upgrade this to Firefox 1.0.8 using yum install firefox, but apparently, this version doesn't support my new Covalentia Showcase page which I just uploaded. It just hanged and so I decided to install the latest version of Firefox Version 2.0.0.3. Unfortunately, it doesn't have an RPM which would definitely make my life easier. And the installation instruction at Firefox totally sucks, ie. there is NO instruction. Well, I couldn't find any.
And we're done! Installing MySQL 5.0 on Fedora Core 4By default, I’m a Windows user. The last time I used Linux or Unix platform heavily was back then in Cornell, around 10 years or so ago. I have lost my touch and limited skills, and I think it’s time to hone them.
And we're DONE! Covalentia Version 2.2 Enterprise EditionOne my clients complained the other day that their application using Covalentia with MySQL database has become a lil bit slower than usual as the data grows in size. So, I thought I should come up with a version that supports Master & Slaves (MySQL Replication) servers. The idea is to execute the CREATE, UPDATE and DELETE functions on the Master database server, and READ on one of the Slave machines. In addition, I will have to move the Reporting Service to another machine which will Read from another Slave machine. This way I can minimize the load on the current application and database servers. And apparently, it didn't take me too long to do this:
However, before I could proceed with the testing, I needed a Slave database server. Luckily, I still have my old-and-underutilized iASUS notebook which I primarily use to back-up my files. And so, I installed MySQL Server 5.0 on this machine and set it up as a Slave as follows: Slave (old notebook - Windows XP Professional):
Master (my current notebook - Windows XP Professional):
And that should be it. Done! Oh not quite. I needed to test it to see that this setup's really working. And the simplest test was to logon to Covalentia and browse to Administration Module --> Log Management --> User Log, and hit the Search button. I could see the latest log entry and, thus, the READing from my Slave server was successful. Back in BusinessCovalent Technology is back in business. My goal is to turn this company around – solve the financial crisis that has long haunted my Excel spread sheet – before the end of this year, before I move on to another venture. New Hosting For Covalentia.Net Community PortalWe are in the process of moving the contents of our lame server to a real hosting provider, from BolehLand to VPSLand.com. The previous provider wasn't real, our server was hosted under a FREE plan not available anywhere else in the world
Oh well, in any event, this migration process will take awhile, perhaps a week or so. I've never used a Virtual Private Server before, and I think that it's kinda cool. So, why not try it out. And the price isn't that expensive (I can still afford it, well, may be I have to skip a few breakfasts and lunches in a month, that'll do) at USD 38 per month, equivalent to approximately RM 136.80 per month.
Donation anybody? Help us out so that we can continue to provide FREE Covalentia. Stay tuned. To Err is HumanTo really fuck it up, you need a computer
Well, we got a new job at MOCCIS Trading (Malay Officers Cooperative Credit And Investment Society). But, it's not the kinda job I had in mind. The previous developer, Meridian Diversified, which provided a Java solution for day-to-day operation at MOCCIS decided to pull out two weeks ago and refused to hand over the source codes properly. However, the biggest problem isn't the source codes, but the complex month-end back-end reporting services executed via scripts which sat on one of their workstations. And the workstation was taken away.
Hmm. So, Covalent was called in to solve these problems by performing some miracles. Reverse engineering in less than 15 days? Yeah right. Whatever source codes that they left were not documented. The codes really suck. And, I freakin' don't understand their naming convention. Some LF_SHIT, SF_SHIT, what the heck is LF? SF? The connection strings and schema names were hardcoded which have to be changed and recompiled every single month. And guess what, they're still using Corba, and IBM DB2! Oh geez, it couldn't get any worse. Tell me, how do you truncate a table in IBM DB2? You can do it easily in MS SQL, MySQL and PostgreSQL. Just one sql statement "TRUNCATE <table_name>" or "TRUNCATE TABLE <table_name>" would do. Oh wait, IBM DB2 doesn't support this. We have to drop and re-create the table or load it with an empty fuckin' dummy file. IBM DB2 costs around RM 50K, and it can't even do a simple truncate function. Fuckin' hell.
Do you know how much this Meridian Diversified which apparently doesn't even have a website charged MOCCIS Trading? RM 50K a month since 2004, just to execute some silly back-end services that they refused to automate. And the development work? I heard a fuckin' RM 3 Million for such a lowsy java solution (with hardcoded connection strings, fuckin' stupid developer
And how much would Covalent charge? Well, we're going to charge 'em, let's see, hmm... RM 15K a month for performing miracles, and redeveloping the whole thing using ASP.NET. Cheap eh? Yeah, we are cheap mofos
If anyone of you out there thinks that I haven't done enough community or national service, well, think again! BullWe're in the news - Software giant to help local ISVs.
First of all, The Star spelled the company's name wrongly. It's supposed to be Covalent Technology Sdn Bhd, not Covalent Technologies. And, secondly, we're not a public listed company (Berhad).
What help? The only thing that I got was one free lunch with that Microsoft Malaysia Managing Director and that Boyd guy at some lowsy restaurant. That's about it. And I had to listen to all the entrepreneurship bull plans which will never materialize for an hour or so. And let's not go into MDeC. I will not waste my breaths on this super bull organization. The way I see it is that we're the one who's helping them to come up with some bull events and programs (which some other people make a lot of money) and to show the rest of the world, and their bosses that they're doing something to help (bull) the ICT industries in Malaysia.
So, who's helping who? You're not helping entrepreneurs. How can you tell entrepreneurs what to do when you're not successful entrepreneurs yourselves? You rely on the government, and get paid every bull month.
Stop this bull, and find us some real jobs. Mr IP Address 66.249.65.171The upgrading work for Covalentia Portal is pretty much done. However, if you encounter any error or missing links, please do not hesitate to e-mail me at support@covalent-tech.com. I plan to add more features, but that can wait. I still have other things to work on, especially the Danial Portal (a local cartoon series in Malaysia, please tune in to RTM 1 every Tuesday at 7:00 PM GMT +8).
Now, I received a lot of errors from this guy, Mr. IP Address 66.249.65.171. If you do a look-up here, you'll find that he's from Alma, Michigan. And I can't seem to reproduce these errors. The portal is working absolutely fine on my laptop. So, what could go wrong? What exactly is going on here? What version of IE or Firefox is Mr. IP Address 66.249.65.171 is using? My outlook is clogged with e-mails (error log) because Mr. IP Address 66.249.65.171 doesn't seem to wanna stop browsing Covalentia.Net Portal over and over again (man, he must love this site so much), even as we speak. Well, I don't mean to be rude (no pun intended), but for the love of Mother of Ganja, could you please tell us what you really are doing oh dear Mr. IP Address 66.249.65.171 so that I could fix these errors? Sometimes, the IP Address changes to something else like 65.55.209.141, 65.55.209.140, 65.55.209.133, 65.55.209.134, 60.51.164.249, 207.46.98.74 and so on. Anybody? But, if you're a web crawler, hmm, well then just forget about it A Lil Upgrading WorkCurrently, I’m busy upgrading our Covalentia.Net Portal. I receive quite a number of minor errors everyday (it’s now running on the old version 2.0), and I’d like to stop all these annoying e-mails immediately. On the Danial Portal, I’m still waiting for the designer team to give me the front-end so that I can do the integration part which shall take a lot of my time.
I’ve nothing else to tell. Well, not really. I'm working on another project, but it has got nothing to do with IT.
It's hmm.. a secret Have You Seen It?If you haven't, check it out. The latest Covalentia Version 2.2 at http://www.covalentia.net
Oh, by the way, here's a reply from exabytes regarding the previous hosting issue: I wrote:
--------------------------------------------------
Dear Exabytes,
I think you should clearly state in your website that the MySQL supported is version 4, and not the latest version 5. Version 5 has been around for quite sometime. If you only put just 'MySQL', a lot of people will assume that it is the latest version.
In regards to my client's hosting (www.danial.com.my), my app runs on ASP.NET 2.0. So, to host on Linux is not an option. My solution now is to advise them to either terminate, refund their money and look for another hosting company, OR pay an extra RM 380 per year for your Microsoft SQL database service. We'll let you know then.
Reply:
-------------------------------------------------- Hello Cozta,Thanks again for your feedback.
I have reported your suggestion to our management for further review.
Hope to hear for good reply from you.
If you have any enquiries, please do not hesitate to contact. Thank You!
[Censored]
-------------------- Customer Service Manager Exa Bytes Network Sdn Bhd Yeah. Whatever. When a Good Day Turns UglyOf late I’m working on two projects – The Great Hunt Community Portal and Danial Portal (www.danial.com.my). Both portals will be running on my latest version of Covalentia Version 2.2 which I haven’t released. The Great Hunt Community Portal, a new Employment and Project Outsourcing Portal, was initially scheduled for a soft-launch today. However, due to the recent upgrade of Covalentia (due to the recent release of ASP.NET 2.0 AJAX 1.0 RTM), I have to postpone the proposed launch date, hopefully before the end of this month. And, I will post the project’s source codes on our Covalentia Community Portal. Yes, you heard me right, I will reveal everything, how it is done etc. So, stay tuned
As for the Danial Portal (www.danial.com.my), if you’re in Malaysia, switch your TV on to channel 1 (RTM Satu - Saluran Info Anda ie. Saluran Propaganda BN), and watch the new local cartoon series, Danial, every Tuesday at 7.00 PM GMT +8. Covalent Technology has been awarded by MediaCal (www.mediacal.com.my) to develop this portal using our Covalentia platform. Everything is going well until today after we signed up for a web-hosting solution from exabytes.com. Well, they claimed that they’re the no. 1 web-hosting company (don’t they all do so?), but still they can’t give me what I need. I need ASP.NET 2.0 with AJAX 1.0 and MySQL Server 5.0 to run Covalentia. If you look at their website, it is stated there that they do support MySQL (without stating which version that they support). And it turns out to be MySQL Server 4.1.22. I could switch to Microsoft SQL 2005 instead (since Covalentia supports both Microsoft SQL 2005 and MySQL 5.0 as well as PostgreSQL 8.1+), but I have to pay extra (which they don't tell on their website too).
I admit that it is partly my mistake. I should’ve asked first before signing up. But, being a customer (in this case I am when usually I’m the vendor), and a customer is always right, I think exabytes should highlight CLEARLY in their website what version of MySQL that they support. And they should put the extra payment that I have to pay to use Microsoft SQL 2005 too. I just hate hidden charges. I mean, what’s wrong with putting all the information up there? It’s not like somebody is gonna get killed if you tell the whole world how much you charge extra or if you use the old MySQL Version 4.1. And you claim you’re the no. 1? Geez Microsoft AJAX RTMMicrosoft has just released the ASP.NET 2.0 AJAX 1.0 RTM. Please note that if you’re using the current version of Covalentia Version 2.1.1.27388, you’ll get numerous errors because it is still using the Microsoft AJAX 1.0 RC (Release Candidate). A few people have already e-mailed me, and I will do the migration as soon as I can. In the mean time, if you want to do it yourself, you can simply follow the migration guide:
http://ajax.asp.net/documentation/Migration_Guide_RC_to_RTM.aspx I don’t see that many changes, so I think that it should be relatively straightforward. If you have any question, please don’t hesitate to e-mail me at support@covalent-tech.com. Oh, and thank you for your support A New VentureSo it begins. One of my business partners has partly left Covalent Technology and joined another team, Innovation City (Innovasia), and I am pretty much alone in this nice office. However, this new development will not affect Covalentia in any way. The direction will stay the same – Covalentia will be FREE for all to download and use, and Covalent Technology will continue to service its customers. In fact, there are some new leads and possible funds that may come into play and fit nicely into Covalent’s sustainability equation. And in addition, by the end of this month, I will launch a new community portal, codenamed The Great Hunt – an Employment & Project Outsourcing Community Portal. This portal will complement Covalentia’s Training Program – to provide trainees with a channel to market themselves to the outside world and get better exposures.
So, despite my early plan to join IPerintis for a better pay, leave Covalent Technology and let it sail down the drain and rot (just kidding), I am the one who’s being left behind
On another note, along with my other partner who owns this office, we are venturing into a trading business. As a result, a new company, Covalent Engineering, is formed. In its early inception, Covalent Engineering plans to become an authorized distributor for Proguard which carries a range of personal safety products. It’s a tough market out there, I know. But, trading is relatively a good business, and I have to start somewhere Covalentia Version 2.1 ReloadedThere are a few minor bugs in the recently released Covalentia Version 2.1 which I came across while working on Covalentia Version 3.0. I’m going to upload the files again once the internet connection here gets better. It’s very slow at the moment but has got nothing to do with the recent Taiwan’s earthquake. The portal is hosted at some place which I can’t mention for FREE. And so, you can’t expect much from a free stuff
I saw the total downloads this morning was around 128 (6 days or so after it was released). Not bad eh? If you’ve already used it to develop your application, you might want to replace (or do some changes to) the following files:
That’d be all ;) New Release & CommitmentHappy New Year to all! I know it’s rather late to wish now but I’ve always been a late bloomer, and it’s better late than never
Well, I’m back from a good long holiday, and ready to resume work and continue to develop FREE Covalentia. In fact, I’ve already uploaded Covalentia Version 2.1 as promised earlier. This release includes:
At the moment, I’m working on the next release (Version 3) which will contain a lot of major changes, especially in the Data Access and Business Object Layers. It will also include other new features such as .NET Framework 3.0, ASP.NET AJAX 1.0 (if they decide to release it soon enough), Windows Presentation Foundation (WPF), Oracle database support and more. If you are one of the users who frequently download Covalentia (one of the 300 or more people registered at the Covalentia Community Portal) and you want to contribute some ideas on how the future Covalentia should be or look like, feel free to e-mail me at support@covalent-tech.com. N-Tier and Globalization IssuesInitially, I was facing a minor globalization issue. A glitch, I thought, and nothing more. Someone from Turkey (or somebody with a tr-TR culture installed in his or her machine or set in his or her web browser’s language setting) must have tried to visit www.covalentia.net but to no avail. The person was probably feeling frustrated and forwarded me the errors (you don’t actually have to do that because all errors are automatically logged and sent to me at errorlog@covalentia.net). After a careful inspection, I found out that it’s not really a minor issue, but a major one. I had everything wrong. The culture configuration in the web.config file is not supposed to be set to auto:en-US. This will cause everything – I mean everything – from the database connection string to date and time to follow the CultureInfo.CurrentCulture information. If your database, MySQL database for example, is an English version (mine is), it will give the following error (note the date is Turkish as well as the word "uid"):
The following error/exception has occured in the Covalentia.Net Portal - FREE C#.Net Code Generator on 16 Aralık 2006 Cumartesi 23:33:32. Please response immediately. Thank you. GUID: 11c2ae5b-8c14-4bb3-80e5-ee837f263e27 Type: Unhandled Exception Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: Keyword not supported. Parameter name: uıd Source: MySql.Data Stack Trace: at MySql.Data.MySqlClient.MySqlConnectionString.ConnectionParameterParsed(Hashtable hash, String key, String value) at MySql.Data.Common.DBConnectionString.Parse(String newConnectString) at MySql.Data.MySqlClient.MySqlConnection.set_ConnectionString(String value) at MySql.Data.MySqlClient.MySqlConnection..ctor(String connectionString) at Covalentia.Core.Data.SqlDataProvider.ExecuteReader(String connectionString, Int32 databaseTypeId, String query) at Covalentia.Core.Data.SqlDataProvider.ExecuteReader(String connectionString, Int32 databaseTypeId, String tableName, String queryExpression, Boolean executeScalar) at Covalentia.Core.Objects.GetObject(String connectionString, Int32 databaseTypeId, Type type, String queryExpression) at Covalentia.Core.Objects.GetObject(Type type, String queryExpression) at Covalentia.CRUD.Read(Type type, String queryExpression) at Covalentia.Controls.Portal.Default.InitializeSkin(Control skin) at Covalentia.Controls.SkinControl.CreateChildControls() at System.Web.UI.Control.EnsureChildControls() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) IP Address: 85.105.17.21 Raw Url: /Default.aspx Date: 16 Aralık 2006 Cumartesi 23:33:32 And so, I have to fix a lot of things. I can’t use the CultureInfo.CurrentCulture to display data according to the user’s culture installed (or web browser’s language setting). Instead, I have to use the following: CultureInfo ci = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);
For the rest, I have to use the third type of culture that is culture-insensitive – CultureInfo.InvariantCulture. So, my bad. My deepest apology goes to the Turkish person or whoever he or she might be. I had replaced the auto:en-US value with just en-US. Feel free to browse the portal. We're the FOC bunch. Covalentia is for charity That’s not all. After the recent launch of Windows Foundation, I realized that I couldn’t create a Windows Application (WPF) using Covalentia. Covalentia is very much focusing on generating web applications on the fly – and my plan is to make Covalentia a robust platform or code generator that can support other types of applications as well, not just web application. My mistake is just like any other programmers’ mistakes. We tend to follow examples on the net every now and then, and those examples do not necessarily follow the supposedly correct rules of programming N-Tier or enterprise level applications. And so, I have Windows.Web.UI and Windows.Web.UI.WebControls in the Business Object or Logic Layer. Oooops As a result, the new release of RC 2 mentioned earlier will not happen so soon. I’m working 24/7 to restructure both the presentation and business layers. Perhaps, next year? In the meantime, enjoy your holidays Microsoft AJAX RCIt took me 3 to 4 hours to migrate the old Atlas codes to AJAX RC. There were some issues with the Menu and Tabs, but I managed to fix them. The CollapsiblePanel doesn’t seem to work properly with FireFox if the direction property is set to horizontal. I’ve posted this problem at the CodePlex’s issue tracker. A few other important things to note:
I hope I’ve not missed anything. I should have jotted down everything.
After migrating the codes, I did some changes to the Sub-Tabs to make use of the AJAX DropDownList. I will upload a new Release Candidate soon (RC 2). It will include supports for the PostgreSQL database as well. So stay tuned ;) |
|
|