Tuesday, July 17, 2007

Job Vacancies at Covalent Technology

Yes, that’s right, we’re hiring. We’re looking for junior programmers or fresh graduates and business development/marketing executives to help us enhance Covalentia, service our existing clients and develop new products using Covalentia. But, before I go into the details, let me just inform you how happy I am to finally receive a check from the Government of Malaysia via Ministry of Science, Technology and Innovation (MOSTI). I’d like to thank the people there who’d worked towards the disbursement of this fund even without the official signing and stamping of the grant agreement, especially, Mr. Mohd Yusree Yusof.

Now, I just can’t wait to go to the VW showroom to pay for the down-payment of a new Passat. I’m just kidding :)

So, I need the followings ASAP:

C# Web Developer – Junior Programmer / Fresh Graduate

Requirements
  • Knowledge in object-oriented programming, C#, ASP.Net, Javascript, AJAX, any database
  • Knowledge in Mono is an advantage
  • No experience/certification required – training will be provided
  • Willing to learn and use our platform – Covalentia (www.covalentia.net)
  • Positive, creative and innovative
  • A minimum of Bachelor’s degree in Computer Science/Information Technology
Scope of Work
  • To assist in developing/enhancing Covalentia
  • To assist in servicing Covalent Technology’s clients (may be located from time-to-time on-site at clients’ places) – implement changes in design and coding using Covalentia and provide technical expertise
  • To develop new products using Covalentia
Salary Range: RM 2,000 to RM 3,000
Job Type: 6-month to 1-year Contract (3 months probation)

Business Development/Marketing Executive – Fresh Graduate

Requirements
  • Some knowledge/skills in Information Technology (Software) industry – training will be provided
  • Good public relation & communication and critical thinking skills - able to work independently and interact well with all level of people
  • Well organized, self-motivated and results oriented
  • A minimum of diploma in any disciplines, preferably Information Technology
Scope of Work
  • To assist in compiling business requirement studies of the existing clients – attending meetings and providing follow-ups & feedbacks
  • To assist in compiling product documentations and help files
  • To assist in promoting/marketing of Covalentia, Covalent Technology’s products and getting new businesses
Salary Range: RM 1,700 to RM 2,200 plus commission on any new business
Job Type: 6-month to 1-year Contract (3 months probation)
Interested? Send your CV/Resume to career@covalent-tech.com

Friday, June 29, 2007

Covalentia Version 2.4

Business is as usual. Covalent Technology is back on track, and soon I should be able to see positive numbers on my spread sheets. I don't wanna sound optimistic because I am not (I am known to be very pessimistic, negative and evil), but I believe I may be able to turn this company around as planned. I've pretty much completed the 1st phase of my job here at MOCCIS Trading Sdn Bhd, and payment is so far very good. I'm working on my 2nd phase at the moment which is to revamp their current Loan Management System using Covalentia. It's going to be a pain in the ass, but a valuable pain in the ass, for it marks my first entry into the financial industry. Well, sort of.

I'm supposed to release Covalentia Version 2.4. I am already using it to develop three applications. On the contrary, it's probably better not to release it until I find and fix all the bugs. For your information, Covalentia Version 2.3 is quite buggy, and I don't recommend you to download it (say what?). It's a transition between the old version and the new one that supports Oracle, and I didn't have enough time to test it. But, the latest version should be very stable and I will freeze further development of Covalentia after this point so that I can concentrate on tweaking it to run on Mono or Grasshopper framework. The dateline is September 2007.

Now, where the heck is my grant money? The government hasn't got back to me for such a long time, and I wonder if I'm ever gonna get the fund. It's been almost 2 months since I last submitted the agreement to be signed by the Chief Secretary of Ministry of Science, Technology and Innovation and it’s most probably sitting at the very bottom of a very thick stack of documents. Oh well. No hope there. Forget about it.

I will release the latest version soon. I just don’t have enough time to come up with the help files. I'm supposed to meet this one programmer who has a Master of Computer Science from Carnegie Mellon and is gettin' much higher pay than myself. He's my junior, so to speak. And, I'm planning to hire him to help me out. Hmm, does it make any sense to you?

I now realize that I am underpaid. I made some calls and found out that junior programmers out there are making more. Seriously.

Thursday, May 24, 2007

Covalentia Version 2.3: Powered by Oracle

Covalentia 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.
  • Renaming SystemTbl table to ConfigurationTbl
    Oracle doesn’t seem to like that name, anything ‘SYSTEM’ is probably a reserved word. So, we have to rename the table to ConfigurationTbl. And while we’re at it, why not remove and add the following items:
    • Remove SystemPath column – put this variable in the web.config file instead and rename it to ApplicationPath.
    • Add a new column – ErrorLogEmail to store the Error Log E-mail address.

  • Renaming of the following tables (and their corresponding primary keys) and stored procedures because Oracle limits the length of identifiers (table name, column name etc) to only 30 characters.
    • UserGroupSubModuleFunctionTypeTbl table to UserGroupSmftTbl
    • UserSubModuleFunctionTypeTbl table to UserSmftTbl
    • DeleteUserGroupSubModuleFunctionTypesByUserGroup stored procedure to DeleteUgsmftByUg
    • DeleteUserSubModuleFunctionTypesByUser stored procedure to DeleteUsmftByU
    • DeleteUserSubModuleFunctionTypesByUserGroup stored procedure to DeleteUsmftByUg

  • Naming convention
    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 ;)

Friday, May 11, 2007

Moving Forward

Covalent 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). The fund which amounts to RM 177,020 (~USD 50k) will help to sustain FREE Covalentia for another year. We've outlined a few things that we want to do:

Objectives
  • To further develop Covalentia to become an open source cross-platform Rapid Application Development Tool for .NET that supports not only web-based application development, but also windows and console applications, and windows and web services
  • To help beginners or junior programmers of local companies and government agencies to quickly produce .NET applications faster and more efficiently to lower development costs and risks
  • To develop Covalentia E-Learning & Certification Program and online interactive support to help ICT students and unemployed graduates to learn and use Covalentia, polish their skills in .NET programming and be market-ready – to produce more highly skilled human capital
Milestones
  • Multi-database Version
    • To redevelop and test Data Access Layer and Object Relational Mapping component to support other major database servers such as PostgreSQL and Oracle servers
    • Target Completion Date: 01 June 2007
  • Cross-platform Version
    • To tweak, compile and run Covalentia on Linux operating system using Mono and Grasshopper Frameworks
    • Target Completion Date: 01 September 2007
  • Multi-project-type Version
    • To develop and test multi-project-type components to support:
      • Web Application (Done)
      • Console Application Template (Done)
      • Windows Service Template (Done)
      • Web Service Template (Done)
      • Windows Application
    • Target Completion Date: 01 December 2007
  • Covalentia E-Learning & Certification Program
    • To finalize contents, release and market Covalentia E-Learning & Certification Program and online interactive support/help
    • Target Completion Date: 01 March 2008
  • Product Documentation, Testing and Benchmarking
    • To finalize product documentation and tutorials, and to run final test and benchmarking on Covalentia
    • Target Completion Date: 01 April 2008

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' :) But, definitely, we're going to require more resources to reach these objectives and milestones. So, if you're interested to join us, do contact us, and we'll see what we can do together ;)


Oh, and preferrably women and married :)

Saturday, April 21, 2007

Setting Up a Linux Box

I 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:
  • Configuring MySQL database
    • gedit /etc/my.cnf
  • Add the following line under the [mysqld] section:
    • lower_case_table_names = 1
  • Configure the Replication Slave Section, please refer to my previous entry
  • Save the file
  • Restart the MySQL Server
  • Next, configure the VNC Server so that I can access the server remotely
    • gedit /etc/sysconfig/vncservers
    • Uncomment VNCSERVERS:"1:cozta"
    • Uncomment VNCSERVERARGS:"-geometry 1280x800 -depth 16
    • Save the file
    • gedit /home/cozta/.vnc/xstartup
    • Uncomment unset SESSION_MANAGER
    • Uncomment exec /etc/X11/xinit/xinitrc
    • Save the file
  • Restart VNC Server
    • service vncserver restart

I think that's about it ;)

And NO, we don't host gold or moolah on any of our server. So, if you're a hacker, DO NOT try to hack them because you're not gonna get anythin'. Go play someplace else (or with somethin' else or with yourself) :)

Saturday, April 14, 2007

Installing Firefox 2 on Fedora Core 4

Well, 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.
  • Download firefox-2.0.0.3.tar.gz from www.firefox.com
  • Execute the followings:
    • mv firefox-2.0.0.3.tar.gz /usr/local
    • cd /usr/local
    • tar xzf firefox-2.0.0.3.tar.gz
    • mv /usr/bin/firefox /usr/bin/firefox1
    • ln -s /usr/local/firefox/firefox /usr/bin/firefox
  • Download compat-libstdc++-33-3.2.3-47.fc4.i386.rpm
  • Execute the followings:
    • rpm -i compat-libstdc++-33-3.2.3-47.fc4.i386.rpm
  • Finally, close all your Firefox browsers and start a new one

And we're done!

Saturday, April 7, 2007

Installing MySQL 5.0 on Fedora Core 4

By 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.

The goal is to run MySQL 5.0 and PostgreSQL on Fedora Core 4 so that I can do various testing and development works, such as replication (I don’t have enough machines to do clustering and so that has to wait) and perhaps start on my Mono project.

The first thing to do was to Google on ‘how to install fedora core 4’ and ‘how to install mysql 5 on fedora core 4’. Well, I didn’t really like what I saw – a lot of people complained about plenty of problems. But, surprisingly, it didn’t take me too long to successfully get the box up and running. Or may be I was just lucky, heh.

  • Pentium 4 1.4GHz
  • 256MB of RAM
  • 40G Hard Drive
  • Boot to Fedora Core 4 DVD and install using the graphical interface
  • Skip the Media Check
  • Select the Server installation
  • Disable the Firewall and SELinux
  • Add the followings in the Packages:
    • Gnome – IMHO Gnome is much better than KDE, but some other people think otherwise. It’s totally up to you
    • Graphical Internet
    • FTP
    • MySQL Database
    • Development Tools
  • Click through to complete the installation
  • Create a default user
  • Login to the box using root
  • Open up Firefox and download the followings:
  • Remove the existing MySQL 4.1:
    • yum remove '*mysql*'
  • Install MySQL 5.0 Server & Client:
    • rpm –i MySQL-server-community-5.0.37-0.rhel4.i386.rpm
    • rpm –i MySQL-client-community-5.0.37-0.rhel4.i386.rpm
  • Start, Stop & Restart MySQL Server, and create a root password:
    • /etc/init.d/mysql start | stop | restart
    • mysqladmin –u root password ‘’
  • Login to MySQL Client:
    • mysql –u root –p
    • Enter your root password
    • mysql> drop database test;
    • mysql> quit;
  • Install MySQL GUI Tools (Administrator & Browser):
    • rpm –i ptt-beta2.i386.rpm
    • rpm –i j2re-1.4.2-11.2.el4.rf.i586.rpm
    • rpm -i MySQL-shared-compat-5.0.37-0.rhel4.i386.rpm
    • tar –zxf mysql-gui-tools-5.0r11-rhel4-i386.tar.gz
    • rpm –ivh mysql-gui-tools-5.0r11-1rhel4.i386.rpm
    • rpm –ivh mysql-administrator-5.0r11-1rhel4.i386.rpm
    • rpm –ivh mysql-query-browser-5.0r11-1rhel4.i386.rpm
  • Finally, run your MySQL Administrator (from Start Menu -> Programming -> MySQL Administrator) and enter your login information:
    • Server hostname: localhost
    • Username: root
    • Password:

And we're DONE!

At the moment, I have this box running as a Slave server (READ only) for the Covalentia.2.2 (Enterprise Edition) Live Demo at our Mirror Site at covalentia.dyndns.org. Feel free to check it out ;)