Written on 1:20 AM by ronald


Trying to manage different relational database used to be a headache for me as i need to install different clients e.g. MySQLFront for Mysql, TOAD for Oracle. But with Aqua Data Studio i can administrate all my databases within a single client.
The interface is very intuitive in the sense that i can can expand/collapse the databases on the left, thus very simple to view the tables or data i want
And i also like the fact that you can Import/Export data and also generate SQL Script easily. So this application will be great for any IT personnel DBA especially who need to manage different relational databases.
Posted in
Java
|
Written on 8:33 AM by ronald
I find it very hard to accept that in certain corporate web applications. The application performance testing are subjected to 3 to 5 seconds of resposne time.
And in order to meet this kind of standards. Certain process that will take longer time is actually been shifted to batch process or system prompted batch jobs.
I feel that this has an impact on usability, as user will have to keep track whether this batch process has been run complete or not. I think from my point of view, it is ok to exceed the response time for certain process that might take longer time as long as we have a progress/loading indicator.
Posted in
Java
|
Written on 7:59 AM by ronald
I was assigned with the task of looking for API that will do the conversion from word, rtf or html to PDF and after some researches these are the options i can think of
Choice 1 :
Install OpenOffice in server to do conversion from word to pdf
Pros :
Easy to implement, compatiblity is good
Cons :
Dependency on OpenOffice
Security concern regarding installation of extra software
Choice 2 :
Online HTML editor to do the customization and then convert from HTML to PDF
Pros :
Quite customizable, user can change the in the system directly
Cons :
Rejected because might have cross site scripting issue
Additional javascript coding effort
No easy way to convert from html to pdf
Choice 3 :
Client side do conversion to PDF
system will only read the uploaded pdf file and do the replacement of placeholder with the actual values and generate the output PDF
Pros :
Discrepancy of the outlook of the generated PDF will be minimial
Cons :
Currently iText or other java APIs can only read in PDF as bytes. And there is a lot of effort trying to preserve the original formatting after replacing the placeholder values and then regnerating the output PDF.
I wonder if there is any other options. For now we are more of using option 2
Posted in
Java
|
Written on 7:07 AM by ronald

One of my user requirement for the project was to have dynamic form generation for their web application
Exact requirements as follows
- Field Label Change
- Show/Hide field
- Edit list of options in the dropdown list
- Error message for each field
- Able to copy over sections of application form to another form.
I actually thought this kind of dynamic application form generation was kind of way too dynamic and it will be very hard to satisfy the user requirement since they will have varying expectation of how dynamic they will be able to customize the application form
I did a search and found the this. Now if anyone can provide me any review with this application, it will be great
Posted in
Java
|
Written on 6:05 AM by ronald
I change to Mozilla Thunderbird...for like 2 or 3 years already..
I really like it very much because of the fact that it is much much faster than the bloated Microsoft Outlook and the fact that it is free..
Even the fact that i was never able to read HTML emails as effectively as displayed in Microsoft Outlook.
But recently, i got a sudden restart of my computer and when it boot up again.
I realized all my emails was gone.
Then i realized that this is a known problem with Mozilla Thunderbird..
http://kb.mozillazine.org/Disappearing_mail
I was quite upset by this..because emails are very important contents and i cant imagine that emails can just dissappear just because i encounter a sudden restart
So i have decided to revert back to Microsoft Outlook
Posted in
Opinion
|
Written on 5:52 AM by ronald
Recently, i send an email to a DBA asking some question about whether should we use database constraint or business logic.
This is the conversation i had with her.
Me :
Should we use database constraint or business logic to validate data integrity?
DBA :
I think you should try database constraints as much as possible. Only if there are special or
complicated conditions hard to set data base constraints for that you use business logic. And then
you also have to consider the different entry points in the application. Let’s say in one screen,
a remarks field should be 56 characters. But in another screen, a remarks field must be 100
characters. In that case you set the length to the widest in the database and use business logic
to validate.
Me :
Just to add on, why we avoid using database constraint or foreign keys in our scheme design.
We may have problem archiving data if there are constraints violation
We shouldn't rely on database constraint but instead should use programming logic to execute queries such as removal of child records when parent records is being removed
DBA :
From experience, programmers are highly unreliable. I prefer that the database constraint is there to ensure that a fatal mistake is not made, esp. when the parent child relationship or some other rule HAS to be followed.
There should not be constraints violation anyway, if the constraints are necessary. If there are, it means the data is dirty, so it is time for a clean up.
Posted in
Opinion
|
Written on 8:38 AM by ronald
One problem i am currently facing now during project implementation phase is that there are so many parameters that should be configurable. And for production, staging and development environment there are altogether 3 types of different configuration files. e.g. config.properties.
Previously i was changing values whenever deploying into differnt environment thus there were alot of human mistakes.
After some lookup with fellow developers, i realize that we should have different configuration file for different environments.
e.g.
config-dev.properties
config-staging.properties
config-prod.properties
Using this approach really did reduce the number of human mistakes.
But i personally feel it really isn't a nice approach because if you need to add/remove a new parameter. You got to make the change consistent over all the three properties file.
And imagine if there are also different phases of the project.
I was just wondering if there are other alternative also.
Posted in
Java
|
Written on 8:27 AM by ronald
Recently i was assigned to work on a presentation to demo to my company on what are the benefits of using Open Source tools compared to Commerical tools for performance testing. I googled and found this video which is quite informative
Like to add in more opinions of my own too but realize actually this particular author already commented alot base on the video
http://www.myloadtest.com/open-source-tools-performance-testing/
Hope that you guys can share with what tools you all are using for performance testing too
Posted in
Software Testing
|
Written on 9:33 PM by ronald
There are two classes in Java which are being used for manipulation of Strings.
As a junior developer, i am always using String. The only reason why i use StringBuffer is only to make my code seen more clean. That was what i thought so until recently when i tried to resolve some performance issue with the uploading of files in my web application.
I have the below string operation
String strList = strList + randomNo;
Depending on the size of the uploaded file, the strList could get very long in terms of ten of thousands of strings concatenated together.
Now that was really a problem. User could get timeout exception when they upload big files. And initally i thought it was because of the validation checks i am doing for the file.
Until i googled and saw this article. Javaworld: StringBuffer versus String
after i change to using StringBuffer, the performance increased alot.
StringBuffer strList = new StringBuffer();
strList.append(randomNo);
You all can look through this article for a detailed explaination. But the conclusion is that StringBuffer should always be used for concatenation and we can always convert it back to string using strList.toString()
Posted in
Java
|
Written on 4:51 AM by ronald
I am currently working on a web application which supposedly will send out sms messages to mobile phones.
Basically the design goes like this

My web application will send an soap request comprising of the sms message and mobile number to web service which will in turn query the sms gateway and then response will be forwarded back to web service and finally back to the web application to verify that the sms message was sent.
Now, everything was working fine if i am only calling web service one at a time
If i start to make concurrent requests to the web service.
I will encounter errors like Socket Read Timout exceptions, Connection Timout exceptions
Why is this so? After spending alot of time googling, i realize that apache axis actually opens up a new socket connection for every web service call invoked.
There is a limit to the incoming and outgoing connections at the server that is hosting the web service.
So what is the work around or solution for this?
1. Increase the _call.setTimeout(new Integer( 4 * 60 * 1000 ));
e.g. 4 minutes
2. Adjust the TCP connections in the server
e.g. increase number of connection requests and adjust the tcp timeout for each connection to be lower
I will try to explain how to optimize using these two solution in part 2.
Posted in
Web Services
|
Written on 8:12 AM by ronald
I wonder how many of you have heard about Redmine. Well the official definition about it is that Redmine is a flexible project management web application. Written using Ruby on Rails framework, it is cross-platform and cross-database.
For more information maybe you can go to the official website to take a look.
Initially i was looking for an alternative to JIRA for bug tracking. I tried to review through different alternative like Bugzilla, Mantis etc. In the end i thought Redmine was the closest thing to JIRA.
I went to bitnami.org to install Redmine into my Ubuntu Linux box.
So i started to play around with Redmine, and then i realize that it is also very suitable to use as for personal task management.
Hope you all can try this out and see for yourself how Redmine can make your life more organized and can accomplish more things at a time.
Posted in
Project Management
|
Written on 7:53 AM by ronald
A blog about information technology and my working life as an IT consultant.
Posted in
Opinion
|