Catching HTML bugs with Safari 5
A bug in a seemingly harmless HTML code had been bugging me for almost 2 weeks. I was sort of yanking my hair while trying to trace the bug which messed up the HTML page. The debugging task was even harder because I work on a HTML template with an extension .THTML. The template does not only contain standard HTML but also tags which are only recognized by AWS (Ada Web Server) . This template file is parsed by the web application (I am developing), which has AWS library, before it is dispatched as raw HTML code to a browser.
In my design, I break down the HTML template into header, body and footer so that I can reuse the common codes in header and footer. That means, all the body templates are without <html> tag. This missing <html> tag disables the syntax-coloring feature of code editor, leading to a more laborious code reading.
Before this, I had gone through every line of html source code in the template file umpteen times. This “obscure” bug, if not removed, would throw a monkey wrench in my works. I browsed the Internet and read articles in hope that I would get some clues. So, I was reading a few articles about Extensions in Safari 5. Extensions are not really impressive to me as I do not need to add missing functionalities to my browser. Safari itself is more than enough for my daily browsing activities. Somehow, my curiosity had driven me to enable the Develop menu in Safari 5. After activating it, I noticed some debugging tools in the menu. I enabled the web inspector by selecting Show Web Inspector in the Develop menu (Figure 1) then navigated to the web page I wanted to debug. To use these debugging tools, the Develop menu must first be activated. Here is a simple guide to enabling the menu.

Figure 1
Safari 5 immediately detected two error messages as shown in Figure 2. These two errors were easily corrected. After removing these unmatched </div> tags, my web page still did not show up properly with the intended layout.

Figure 2
Then I selected the Elements tab and it showed me the page source in debugging mode as shown in Figure 3. I instantly spotted the <div class=”data-base-layer”> tag which was supposed to be in the <div id=”container”> tag.

Figure 3
I clicked on the little grey triangles in the left pane to expand the <div id=”container”> tag and the <form> tag. There were two <div class=”data-base-layer”> tags (labelled as “1″ in Figure 4) and the one in label “2″ was supposed to be right after them.

Figure 4
I checked the source file again and they seemed to be in the correct place. Further investigation finally reviewed that there were two very tiny typos lurking somewhere within the second <div class=”data-base-layer”> tag as shown in Figure 5.

Figure 5
The web inspector in Safari 5 has helped me to identify errors effortlessly. If only I had such inquisitiveness two weeks ago, I would have saved so much time and efforts in debugging my HTML codes. An proverb says: “Curiosity killed the cat.” It is not always true, at least in this case. I will say: “Curiosity saved the donkey.”
Enable Develop menu in Safari 5
One of the new features for Safari 5 is the Develop mode. It allows web developers to debug HTML code on Safari. Before you can use this feature, you must enable the Develop menu first. Here’s how you can do it:
Click on Safari menu and select Preferences. In the preferences window, select the Advanced tab and then click the checkbox for Show Develop menu in menu bar.

The Develop menu will then appear in Safari menu bar. Select Show Web Inspector to inspect your HTML code. You can also activate extensions support by selecting Enable Extensions in Develop menu. Extensions let you add those missing features.

Flash of the titans
Apple’s decision for not to implement Adobe’s Flash into iPhone OS has turned Adobe-Apple relationship sour. In an open letter from Steve Job, he has written clearly about Flash’s weaknesses and a firm stance against Adobe’s Flash. I absolutely agree with Steve based on my experience with Flash. I would say: “Flash is nice to look at, but is a nightmare to have it!”
A week or two before Apple published Job’s open letter, I learned about an open source Flash project called Gnash from Twit. You can listen to the podcast here.
I really don’t believe in develop-once-deploy-everywhere development concept. I am more a native application guy because I only believe in native performance without relying on third party software components to run the applications. My experience with Tweedeck served as a wonderful example.
Tweetdeck was developed using Adobe’s AIR and Flash technology and is a develop-once-deploy-everywhere kind of application. Its user interface on the Mac really sucks. It looks more like a Windows application rather than Mac’s native Cocoa application. One thing annoyed me was that I had to upgrade Adobe’s AIR whenever it became available. I feel happier for not running Tweetdeck now.
A Java application has its downsides as well. It too depends on Sun’s JVM (Java Virtual Machine). Java has never become an implementation language in my software development career. Only recently when I began to involve in web application development, I have to work with JavaScript. The experience is awful, in my experience.
It is understood why Adobe is so furious about Apple’s decision not to allow Flash on its mobile platform. The reason is obvious: Adobe loses its grip on Apple’s mobile devices and has been discounted in Apple’s mobile computing gameplay. But Apple is not an easy-to-squeeze apple, it is huge and capable.
Apple has been working on an open web standard HTML5 and Apple’s own version of Flash, Gianduia. With HTML5, Apple’s computing platform becomes even more open, unlike otherwise as Adobe claimed. Both are exciting new technologies which I would like to implement to the web application I am developing.
I will write more about HTML5 and Gianduia when I have found time to research more about these two.
The new WordPress
Just finished upgrading WordPress to 2.7.1 with a totally new user interface. I still prefer the one in 2.6.x so I guess I need a little time to get use to the new UI.
The upgrade is inevitable because some of my sites were affected by Yahoo! Counter malicious malware. It is a nasty injection of script. I could not locate where it was injected and my web host wasn’t very helpful. I decided to upgrade, hopefully, to wipe out the code injection.
Now, I have to file a request to Google to clear the malware listing of my sites.
Ada Obsession
Well, well, well. Kazeserver alpha RC1 has to be delayed due to some design issues and I am rewriting most part of the software so that the source can be understood easily. For the past two weeks, I was troubled by the old design but I have got a new picture now.
Isn’t Ada code easy to understand? Well, yes. But I was using a lot of Unbounded_String in records which made my code hard to read and understood. While Unbounded_String is compatible with database operation, it lacks the understandability and readability if compared to String (1 .. 10) for example.
Today, I am totally obsessed in Ada and am feeling the strongest Ada obsession after a couple of years. The feeling is still burning. If my Ada obsession keep burning, I believe I can release KazeServer for alpha testing before of June. Hopefully.
Patched a security hole in KazeServer
While I was at Honda waiting for the technician to reprogram the ECU, I found a security hole in the authentication part of KazeServer. An unrecognized user id with a null password would grant access to KazeServer but without any significant usability but posed a potential risk.
I quickly identified the cause and rectified the problematic logic in the program design. One down and many to do. One of the other critical problem is that KazeServer will get over with initialization and execute even without the MySQL server is running. A serious bug though.
Another 3 more days to release Alpha RC1 and yet so many problems and unfinished parts. I feel the release will have to be postponed then.
Pre-Alpha RC1
I am in the midst of getting the KazeServer to roll out. During this pre-Alpha RC1 stage, works have been a little pressured especially cleaning up parts of the codes to make it neater and more efficient. A number of factors are also affecting during pre-Alpha stage.
One of them is the gnat Ada compiler issue on Ubuntu Hardy Heron or 8.04. Hardy comes with gnat-4.1 with a number of packages not added. Without these packages, I can’t build AWS-2.3. So, I have to roll out Alpha RC1 on Mac OS X until Ubuntu Intrepid or 8.10 with gnat-4.3 is released (hopefully with gnat-4.3 by October). I have another option which is I have to move to Debian Etch with gnat-4.1 but including the libaws-2.2.
libaws-2.2 is a pre-built library for AWS on Debian Etch. I am developing using gnat-4.4 and AWS-2.3 on Mac OS X. Moving to Debian Etch means I am downgrading the version of gnat and AWS and I feel a little skeptical about it. This is one thing I hate most, version inconsistency among the Linux distro.
After talking to my friends on this matter, it looks like I have few choices but to target on Mac OS X for the moment considering the tasks of installing and get the Debian Etch up and a whole lot of uncertainties in gnat-4.1 and AWS-2.2.
Entering Alpha stage
Finally, after weeks of experimental development, KazeServer is entering Alpha development stage. I expect to roll out Alpha RC1, hopefully before this weekend.
KazeServer is a web-enabled membership management system that allows registered members of an organization to login to review their membership data and other membership related transactions or records. KazeServer is developed 100% with Ada and AWS (Ada Web Server). The application itself is a web server. No web server, e.g. Apache, is needed to run KazeServer. It is a totally stand-alone independent application with a built-in web server (AWS).
Looking for a web hosting provider?
Alright, you need to find a web hosting company which provides web hosting services at a price ranging from $4 to $8. And you want a detailed review of their web hosting service to ensure reliable service. Look no further, visit webhostingchoice.com for a list of web hosting providers. It is easy, quick and hassle free.
At webhostingchoice.com, you have a comparison chart of pricing, fees, disk space, transfer and rating to help you choose a web host of your choice. Click on every links to checkout the web hosts’ websites to learn more about their products and services before you jump in.
This site also includes a learning center to help you through the web hosting jargon words, hosting scams, marketing gimmicks used by web hosting providers to lure and lock in customers. The site provides comprehensive advice and FAQs to guide you selecting a web host and to avoid pitfalls and tricks.
A list of useful links and resources is also included for your convenience. You may want to sign up their newsletter for monthly updates of hosting tips, offers, coupons, interviews and etc. to keep you abreast of the web hosting business and to enjoy discounts from coupons.
Take a look before you jump!
China’s proven world class competency
During the snow hazard in China this February, the Chinese government had successfully managed the natural disaster and crisis with much professionalism in such a short period of time. According to an unconfirmed source, the Chinese government managed to develop a Disaster Management System in just 5 days. 75 software engineers from the Chinese military worked around the clock for 5 days to bring up a web based Disaster Management System to collect, manage, disseminate, coordinate, and to provide command and control to the military disaster relieve team during the recent snow hazard.
The system was developed using Ada, AWS (Ada Web Server) with a little of PHP and Perl. The system deploys a MySQL database running on Linux. The system is hooked up to air-borne SAR (Synthetic Aperture Radar) for real-time acquisition of landscaping information in snow hazard affected area to help assessing the damage of rail ways, roads, housing and forest. The Chinese army engineering company was dispatched by the system to areas in need of assistance.
I have yet to receive further details of how the system works and probably will not. Anyway, that shows the Chinese ability and responsiveness in dealing with natural disaster. Hail China!
Looking for Windows web hosting?
If you Google for “Windows web hosting”, it returns 3,260,000 or more of possible websites providing Windows base web hosting services. These web hosting company offers a wide range of hosting plans and offers. To skim through all these searches for a right plan is not an easy task and usually daunting.
WebHostingChoice.com provides you a competitive list of windows hosting plans and company. The website also provides information about scam, domains, dedicated server, and a lot more in its learning center to help you understand jargons of the web hosting. You can search or browse web hosting services by features. Perfect for beginners to learn about web hosting to avoid pitfalls that could possibly hamper your website traffic and popularity. It saves you time and money. Try it out today.
If you are running a web hosting service, you can advertise your hosting service here by submitting your web hosting company details. A great way to start your web hosting business from home and let your website and web server monetize for you!
What else? You can subscribe to WebHostingChoice.com newsletter by submitting your email address to receive up-to-date web hosting business trends and information. You will never be left behind and always ahead for the latest offerings.
Free Web Polls
Alright. You need to get an idea what your visitors think of an issue. You need a web poll which is easy to setup and most importantly it is free and does not take up additional disk space or database. There is a free web poll which provides myspace polls. It takes less than 2 minutes to sign up and get your poll up and running. Everything is stored and calculated on their server. Everything they offer is completely free and no pop-up advertisement or banners.
Spam emails and your privacy
Have you been wondering why are you receiving those spam emails? Worst when you check your email with your colleagues around and suddenly a porn email pops up. It is so embarrassing. There is a convenient software to remove porn. It can delete any files using secured method is higher than government standards, making sure the files you have deleted can never be recovered.
The software, Evidence Blaster, does not only securely remove any files or folders, it also protect your privacy by clearing all your private information about you in your browsers and email clients leaving no trace of what you did on the Internet. The software helps you to safeguard your job by covering your tracks before your employer can find any from your computer.
Make a copy of your favorite website
Have you ever come to a website and found the contents very interesting, you saved it but later after a month, you can no longer find that page again? Some websites have dynamic contents. After a certain period, the contents will be removed to conserve disk space. But, that article has something for your research paper and now it is gone!
Well, there is a website to allow you to copy web site, save it to your local hard disk. Unlike save page in web browsers, the software saves the html code, grabs the graphics, audio and video at lightning speed. Once these have been downloaded and stored on your local hard disk, you can browse off line anytime even though the original page has been removed.
This Web Site Downloader is an useful application to archive websites and/or dynamic contents for future reference. It is easy to use. Just 4 simple steps: 1. Create your project, 2. Enter the URLs, 3. Begin downloading, 4. Start browsing off line!
1 million visits
Yipee! My website has surpassed 1 million visits milestone on this last day of 2007. It took almost 6 years (since February 1, 2002) to reach this mark. A good reason to celebrate.
I like to thank all visitors and fan readers from all around the world for giving the support. Thank you and I wish everybody a Happy New Year 2008. May you and your family in good health and have a prosperous new year.



Listen to my podcast