Jun  08
27
Fun with Liquibase

I started playing with Liquibase two days ago on June 24. I wanted to take advantage of Liquibase’s ability to generate database schema upgrade DDLs given an existing database and Hibernate mapping files. This capability was new in Liquibase 1.6. I downloaded version 1.6.1 on June 24.

My ultimate goal was to integrate Liquibase into our Ant-based build system, so I started exprimenting with Liquibase’s Ant tasks, specifically diffDatabaseToChangeLog and updateDatabase. The diffDatabaseToChangeLog task kept complaining about not finding the Hibernate mapping file, so I switched over to Liquibase command line interface hoping for more luck. After a few hours of tinkering, including changing command line’s CLASSPATH environment variable and liquibase.bat’s CP variable to include the path to hibernate file, I managed to generate a Liquibase change log. Along the way I realized that Hibernate file needed to be in the CLASSPATH to be visible to Liquibase.

[Continue Reading]


Apr  08
1
.NET 1.1, 2.0, 3.0, and 3.5

I got to understand the relationships between the various .NET versions (1.1, 2.0, 3.0, 3.5) through the project I am currently working on. It all comes down to the CLR version. I could elaborate in my own words, but I won’t because I am lazy and that I just found a nicer article that lays it out in pretty pictures.


Feb  08
25
I didn’t enjoy Beautiful Code either

A while ago I borrowed the book Beautiful Code from the library because I thought I would enjoy it, but after reading chapter one and another one on MapReduce, I returned the book pretty much unread. I found it too dry.

I didn’t think much about why I didn’t like the book as I just assumed I was too lazy, but Jeff Atwood of Coding Horror summed it up pretty nicely.


Feb  08
6
IWAM_HUH?

I spent a few hours today troubleshooting an IIS website .msi installer problem. This post serves as a future reference for myself.

[Continue Reading]


Jan  08
17
Tabs in navigation list
Tabs in navigation list
Tabs in navigation list.

It’s been at least two years since I started self-hosting this blog, but I finally cleaned up the CSS so the navigation list works the way it was envisioned: links are supposed to be tabs off the search bar instead of disconnected buttons.

Below is a brief account of previous navigation lists, for probably just my own interest. I don’t have screen captures of yore, unfortunately.

Version 1 of the navigation bar went live with the rest of this blog. For the longest time, what was supposed to be tabs off the search bar actually came off as buttons disconnected from the search bar. I basically left things untouched, for the theme was at least functional and the look acceptable.

I pushed out version 2 of PHP/CSS 1-2 weeks ago. It was basically a cleanup job, not limited to the navigation list. In this version tabs were connected to the search bar, but only in FireFox and only at the default text size. Enlarge or reduce the text size, and the tabs drifted apart from the search bar faster than Initial-D. A potential header background issue also nagged at me.

With the current version I finally managed to super-glue the tabs to the search bar. The glue remains sticky in FireFox, IE7, Opera, and Safari, regardless of font sizes. I found this new glue formula last night as I surfed across a WordPress.com site utilizing Misty Look theme. I then adapted.

[Continue Reading]


Jan  08
14
Wix KeyPath trickery

Let me start by saying that I don’t enjoy working with Wix and that I am a total Wix beginner. I get virtual headaches every time I have to deal with Wix. The most recent head pain came from the requirement to remove a certificate from Windows’ certificate store only after removal of all dependent websites. Just rely on Wix’s Component reference count, no? Well, as I expected, nothing worked the first time.

My understanding of reference count was that it depended on the KeyPath attribute within the component and that the flag could be set on either a registry or a file. I had 2 .wxs files for the 2 web applications, and each contained a Component section with the same GUID and KeyPath.

[Continue Reading]


Dec  07
25
XAMPP 1.6.5, PHP 5.2.5, and Symfony

I am no longer able to re-install Symfony via PEAR today - php.exe would consume 25% CPU (and more and more memory) while spinning in place forever (I aborted after 30 minutes). I suspect it had something to do with yesterday’s reinstallation of PHP 5.2.5 over XAMPP 1.6.4.

Funny thing is, I installed XAMPP 1.6.5 which supposedly came with PHP 5.2.5, but the CLI problem resurfaced. I had to manually copy over php\ext\php_mysqli.dll (and NOT mysqli_php.dll) from yesterday’s PHP 5.2.5 download. Looks like the version of PHP that comes with XAMPP 1.6.5 is not exactly pristine.

Unfortunately as of now neither PHP 5.2.4 nor 5.2.5 allows me to install Symfony via PEAR.

[Update @ 2007-12-25T23:40-8:00] I give on PEAR Symfony. Sandbox Symfony, here I come.


Dec  07
24
PHP CLI crashes on Vista

I had XAMPP 1.6.4 with PHP 5.2.4 on my Vista machine. Every time I ran PHP in command line (CLI) it crashed miserably, though after completing the task at hand. I thought Vista’s User Access Control (UAC) was the culprit, but turning it off did zilch to fix the problem.

Turned out the real fix is with PHP 5.2.5, or at least with its newer copy of mysqli_php.dll. I downloaded PHP 5.2.5 following the instructions, and PHP CLI crashes no more.