Tuesday, August 21, 2007

Cheapskate Shopping

After work I went to the Carrefour supermarket in Suntec City. It's just barely visible in this photo in the lower-middle. Very easy to get there from the office because Oracle's offices are in Tower Four.



I was surprised to see that cheapskate and shoddy Chinese goods were all over the place. There even was a S$39 circular saw (610W) with the Carrefour brand on it. I was sorely tempted to buy it, in spite of the crude appearance, due to its cheapness, but was dissuaded by the thought of Customs back in Manila making my life difficult.

Anyway I ended up with a primitive cordless screwdriver and a slightly less primitive 12V vacuum cleaner intended for cars. Might come in handy. Total price S$21 or about 600-odd pesos. A steal!







I kept the receipt in case the Customs back in Manila tries to shake money out of me. Let's see them figure out if 600 pesos worth of merchandise is worth their corrupt efforts.

Nothing Much Here



Panoramic view of Marina Bay from the 60th floor executive lounge of Swisshotel Stamford. Taken with Nokia E90, stitched together with Hugin and Panotools.

Sunday, August 19, 2007

Singapore Peak Season

Is really sucky!

My plane fare was like twice what it normally costs. Hotel accommodations are also about twice what they usually are.

Ritz-Carlton is completely full. Conrad Centennial is slightly cheaper but they only have a room for a night. So I'm stuck here at Pan Pacific, which is the least desirable of the three Oracle-approved hotels. And it's still much more expensive than Ritz-Carlton last June.

This is all my travel agent's fault. I booked 19-23 August but for some reason they only reserved a room for 20-22 August. In fact even my flight is supposed to be tomorrow. I just took a chance on the last Singapore Airlines flight today to get here.

The only redeeming value of being in Pan Pacific is their panoramic elevator and this view:



On another topic, when Lalai and I left the house to go to the airport, we discovered that one of the tires on the Mazda3 was flat. There was a huge "Tox" roofing screw embedded in the rear passenger tire.

Unfortunately, driving it to the nearby vulcanizing shop (since we can't use the tiny donut spare..) further damaged the tire: the "Tox" screw was so long that in addition to the puncture it had already made, it punched two more small holes in the sidewall of the tire, where the push-type vulcanizing could not repair it.

That was quite annoying, because 16" tires are not cheap. Anyway, after the shop fixed the large hole, the tire was still losing air but could be driven a short distance. Lalai and I looked for another vulcanizing shop which repaired tires using a patch, instead of the push-type tool. Eventually we found one, where the friendly owner named Mang Freddy spent almost two hours fixing the tire. Not really worth his time, but he said it's his hobby and exercise.

Hopefully that fix will hold. Because if it doesn't.. it will be time for a new tire. And the existing one hasn't even run 3000 kilometers.

And all this before rushing to the airport to try to catch SQ919.

Tuesday, August 14, 2007

Building a 10-and-1/2 foot Skiff

I'm building my quick-and-dirty boat.

Sunday, August 12, 2007

Non-Boatbuilding Weekend

I wasted a good deal of my time yesterday.

I drove to my friend's house to continue the boat-building, but lo and behold, he was nowhere to be found, from 10:00 a.m. to 2:30 p.m. No messages or email left to apprise me of the status, either.

The old car's door lock has failed. It won't unlock anymore (the lock must be jammed or something). Rather than replace the lock with a Solex, I had some shop (Araneta Car Accessories along G. Araneta Avenue, near absent-boat-building-partner's house) install an alarm. It was a cheap alarm, about $50. Now I can remotely lock and unlock the car.

To make things worse, I entered a one-way street somewhere in Addition Hills, Mandaluyong, and got caught when I exited. The apprehenders seemed on the level so I didn't have the heart to trot out my "Magagawan ba natin ito ng paraan?" spiel. I was pretty much resigned to the $40 fine and the waste of half my day. But.. one of the apprehenders said that they could reduce the violation to "disregarding traffic signs" (a $10 fine) and they could collect the money right there. Sounds fishy, doesn't it? but they did have me sign the citation so I am not 100% sure that was a bribe.. so I got away with paying $10 and with a funny feeling that somehow I had bribed the traffic enforcers, although I could not be sure..

When I got home, I decided to hoof it to the nearby hardware store and buy some 1/4" marine plywood with the last of my coin collection. Got two sheets, "C" grade so not great at all. Carried it home and got a collection of cuts and bruises in the process (carrying two sheets of 1/4" plywood on your head for more than a kilometer is no joke!)

Since my power saw is still with absent-boat-building-partner, I had to use my dull generic KYK hand saw. But since the plywood was only 1/4" thick and the cuts were mostly straight, I somehow managed. Splintered some of the plywood near the bow. No matter, epoxy will fix that.

Today I put the butt-joints on and waited for them to dry. Used ordinary Pioneer structural epoxy (the $10 for three quarts I bought some weeks ago). I also reinforced the transom (which is a piece of 1/4" plywood, unlike Summer Breeze which is larger even if also made from two sheets of plywood because it uses solid wood stock for the transom). Used a length of 1" x 4" finished wood stock I had lying around from some telescope-building project. This will allow the boat to take a small motor, eventually.

I'm building Hannu Vartiala's 10 and 1/2 foot skiff. Sure it's not much fun compared to the 12-foot row/sailboat I was planning to build. But I can build it here at home, and remove dependencies on other people.

Next weekend, before I go to Singapore on Sunday, I should be able to go 3D already.

Saturday, August 11, 2007

Happy Friday

I haven't felt this gratified in quite a while.

Last Monday I was Java newbie. Tonight, as I write this, I am still Java newbie, but I've learned how to use JDeveloper to create Java Server Pages (and deploy the WAR file). I've also learned how to deploy Oracle Containers for Java and upload my application to it. And I've been able to demonstrate Coherence*Web clustered session handling across two virtual machines.

And everything works as advertised!

All this stuff was just words to me a week ago. Now I can write code. That has always been my measure of how I stack up against a particular technology stack. Sure my code is just conceptual (good enough for Proofs of Concept!) but complex code is just a monotonic progression from conceptual code.

I have overcome my Perl and GCC handicap!

I guess to the Java veterans this is ho-hum stuff. But I'm pretty gratified. This deserves a Krispy Kreme!

Oh wait, I already had two of them an hour ago..

Now it's time to conquer the telecommunications firm! nothing beats learning by doing! Now I can confidently present this technology and brush aside the clients' alarmed bleats of conservatism!

Friday, August 10, 2007

Oracle Enterprise Linux 5.0 Server

Downloaded the 2.6GB DVD ISO image for Oracle Enterprise Linux 5.0 Server. This is Oracle's relabeled distribution of RHEL5.



Installing packages:



Although what is wrong with this screenshot? (package selection):



Oracle is in the odd position of being a distributor of MySQL and PostgreSQL.

Tuesday, August 07, 2007

Playing around with JDeveloper

Or, how I learned to stop worrying and love 2GB of RAM.

To sum my long discourse below: I'm really growing to like JDeveloper. I managed to bumble my way through something useful and productive using JDeveloper, without reading any documentation or tutorials. That is something I have not experienced since the Form Designer in Visual Basic 4.0. I am hopeless at Eclipse, JBuilder, and Sun's Forte Java IDE. I am only marginally less helpless with Visual Studio .NET 2003. For an old command-line gcc dog like myself, JDeveloper ranks as sweet science.

I need a simple JSP application in order to test Coherence*Web, which is the transparent grid session-management plugin for Coherence.

Since I know absolutely nothing about JSP (except the fact that the familiar ASP-style tags are used to interpolate Java code into the HTML), and after hearing all sorts of wonderful speculations from my colleague the Database Sales Consultant, I decided to download JDeveloper, which is after all free-as-in-beer.

500MB and a couple hours later, I had the full-blown JDeveloper Studio on my notebook. Fired it up (a slow-ish proposition on my 2GB RAM, 1.83GHz Core Duo) and the widgets look bad. No anti-aliasing! Methinks the GUI widgets used by Eclipse look better. But nevermind..

A few wizardly clicks later and I managed to figure out how to create a JSP project. Turns out my uneducated fumbling was correct: JSP is exactly like ASP (both the Microsoft and Perl versions) in terms of architecture. So I did what I know best: no more importing of extra Java libraries.. I'm that ignorant. I just wrote snippets of Java code directly into the HTML.



JDeveloper does provide a drag-and-drop interface for plunking HTML objects into the page. And I didn't use the special controls like ADF Faces. Just simple-as-possible.

A few iterations and syntax-error hunting later, and I can run the thing. Run Project fires up the bundled Oracle Containers for J2EE (OC4J) and voila, I actually have something working!



JDeveloper even takes care of firing up the appropriate browser window.

After which, I decided that I wanted to deploy my tiny little program on another OC4J instance, running under Linux in VMWare. Deployment should be a fairly simple exercise:



Select the deployment file (above) then upload the EAR file to the remote OC4J:



How trivial can it get, right?

However deployment quickly turned ugly: OC4J would resolutely not accept the generated EAR file, complaining of various zip archive issues. After more bumbling around, queries on Oracle's Application Server forum and bugging of FMW SC's in another country, I thought of using the WAR target (instead of the EAR target).

Amazingly, this worked. Deployment produced both an EAR and WAR file. I uploaded the EAR file to OC4J using Enterprise Manager (completely ignoring the WAR file that was also created by the WAR target), and got it running. Yippee!

Now the next step is to install Coherence*Web in my deployed EAR file, so that I will get magical clustered session objects (hopefully).

Overall, not bad for a couple hours bumbling around. Considering that my last IDE experience was with Microsoft Access 97 (other than occasional half-hearted forays into Visual Studio .NET 2003 and Eclipse). JDeveloper is fun. I just try not to think about how much memory it's consuming, it's definitely sluggish even on this machine.

Turbo C 2.0 on my 640KB 4.77MHz 8088 in 1991 was faster than this. But it can't compare functionality-wise, of course. But for the basic task of writing code, compiling, and single-stepping with a debugger, Philippe Kahn's creation could run with the best.

Saturday, August 04, 2007

Upgrading a Linksys Router

We have a Linksys WRT54G access point here at home, sharing our Smart Broadband connection. This little blue box has served us well for almost two years now. And it's been on continuously for most of that time. And without a UPS or AVR to protect it from the slings and arrows of outrageous Meralco.

I've never felt the desire to play with its firmware (a truly ancient version 2.02.7) because the Linksys was working well.

However, just today Lalai needed to copy some 4GB worth of files from her notebook to mine. To my immense dismay, the Linksys would periodically crap out and disconnect both notebooks. It got to the point that I could not complete copying a single 1GB file due to the Linksys misbehaving.

So either our Linksys was giving up the ghost (18 months running 24/7 can do that to a piece of consumer gear) or, its ancient firmware was finally showing its bugs. Well, I looked up the serial number and turns out that this blue box is hardware version 2.0, so it still runs Linux.

I got the latest DD-WRT firmware for hardware v2.0 and a few minutes later, we're back! the Linksys now reports a firmware version of "Alchemy-6.0-RC5a FBN-Edition #20" whatever that means. I do recall that "Alchemy" is a Sveasoft firmware.

As an added bonus, it seems that the E90 Communicator can now use the connection. Hurrah!

The piece de resistance is still whether those huge DVD files will copy properly or not. Am copying them as I write this.