Monday, February 27, 2006

Freebie DB

Oracle and Microsoft have both released "lite" or "express" editions of their flagship database software, albeit with some rather crippling limitations. Both vendors impose a maximum database size limit of 4GB, which is laughable. Anybody who wanted to do serious work with a database would surely take pause at such a ridiculous limitation, it effectively downgrades these "express" editions to the status of "toy."

IBM however has decided to take a more enlightened (or calculating) approach. Their DB2 8.2 Express-C Edition has a two-CPU limit (I don't know if Hyperthreading CPU's are counted as two) and a 4GB memory limit. That means one can run "serious" applications (albeit without support) without mentally wondering about the Sword of Damocles of a 4GB total database size limit hanging over one's head.

It's just extremely annoying that
  • registering on IBM's web site was unnecessarily painful (a few reloads were needed before the obtuse error disappeared);
  • I wasn't able to download it anyway because I had indicated Philippines as my country of origin and apparently DB2 is a munition


I tried changing my registration information to an address in the US (the address of the freight forwarder I use) but apparently no dice. IBM is using IP address location mapping and knows I'm not in the US. Time to get that free Propel trial account.. Overall, an unnecessarily annoying setback.

On another note.. serializing an array for MS SOAP Toolkit using SOAP::Lite. One dirty way is as follows:


# serializing array @payload (note: special characters e.g. < > & don't get escaped!)
my $num = scalar @payload;
my @params = (
SOAP::Data->name(
"Message" => \SOAP::Data->value(
SOAP::Data->name( "ns3:string" => @payload )->type("xsd:string")
)
)->attr(
{
"xmlns:ns2" => "http://www.w3.org/2001/XMLSchema",
"xmlns:ns3" => "http://schemas.xmlsoap.org/soap/encoding/",
"ns3:arrayType" => "ns2:string[$num]",
"xmlns:ns4" => "http://www.w3.org/2001/XMLSchema-instance",
"ns4:type" => "ns:Array"
}
)
);

A Couple Rants and a Comet

Rant One. Had the power window fixed yesterday. It cost an unprecedented PHP 3000 (around $60). That's more than the cost of a water pump for a BMW. The replacement motor was wired in reverse, so it's now "auto-up" instead of "auto-down." And no automatic pinch detection, of course. I'll probably rewire the damn motor when I get sufficiently annoyed.

I also rewired the speaker since the car door was all open and I had nothing to do while the Banawe sidewalk boys were trying to rewind the motor, and then later look for a surplus replacement motor. It sounds nice, but the plywood holding the speaker is pretty much disintegrated.

Idea: spray 3M undercoating on the inside face of the car door. Might be less of a pain in the ass than Flashband, with similar soundproofing properties.

Rant Two. Due to the shameless stealing of cable TV signals around here in Taguig, SkyCable has decided to scramble their signal. They've been going around installing cable decoder boxes, and we just got ours last night. It's an ancient analog unit and it sufficiently degrades the signal quality. So much so that the video quality is now just broadcast quality instead of cable quality. Our shiny new TV is wasted. Good thing it came with a free Divx-capable DVD player, and there's Smart Wifi to get current episodes of US shows. Oh well.

A Comet

Turns out there's a new comet that's somewhat naked-eye visible right about now. Comet C/2006A1 Pojmanski. A few screenshots from my antediluvian Starry Night Backyard 3.12 (circa 2000):




And, some ephemeris data for it:




I feel motivated to fix the finder mount on my 10" telescope so I can have a look sometime in the next few days. The comet rises at around 4:15 a.m. and is magnitude 5 - 6 or so. Not so fantastic, but still something worth watching.

Sunday, February 26, 2006

Car unreliability strikes again

Actually the trailing arm bushings have been complaining since the beginning of the year. I was planning to have them replaced yesterday but ran out of time.

Just my luck -- while leaving the bridal shop, the driver side power window jammed halfway down. Couldn't roll it up or down. Pretty bad because can't leave the car unattended. So when I got home, I removed the door panel (not as hard as I had feared). Lubed and cleaned the power window rail, but it was still jammed.

So I cut the cable (kinda like a bicycle brake cable) just so I could hand-raise the window. Of course it just looks closed, but is pretty damn easy to move down. Beats having the window half open in plain sight to the world. But I have to have it fixed tomorrow because come work week, I can ill-afford to have the car so darn unsecured.

Monday, February 20, 2006

Went to Ilustrado yesterday..



And went hog-wild with the Canon photo-stitching software!

They didn't have an event yesterday, which was just as well. I am slightly leery of the quality of their buffet, due to some negative comments online. But their Norwegian salmon (not on the buffet, unfortunately..) is fantastic, and Lalai loved the pasta with pesto, olive oil, and prawns. I didn't really like the pasta that much, though..

Saturday, February 18, 2006

Mozcom PayEasy Brings Home The Bacon



Mozcom's PayEasy universal payment gateway won first prize in the E-Commence category at the recently concluded DTI/CITEM E-Services Philippines 2006 show at EDSA Shangri-La. I can't help but feel some pride knowing that PayEasy was the last major project I did at Mozcom before I left the company last November. It is kinda heartwarming.

I haven't had any development "triumphs" of late.



So I'm really, really hoping that my employer's Malaysian adventure takes flight. I could breathe some of that rarified air, ha ha ha. Of course, if the adventure goes well, our Lords and Masters will be well pleased.

Fun with soap

No, not the soapy, don't bend over to pick it up in the prison shower kind.

I've been working at integrating my employer's current content delivery platform with the Web Services interface of a Malaysian cellular carrier. They are using Microsoft SOAP Toolkit to expose their guts. I've had the distinct (dis) pleasure of
  • calling their system (it's hard because much of the stuff on the net about interfacing SOAP::Lite clients with Microsoft pertains to .NET Framework, but the MS SOAP Toolkit is deprecated and unsexy)
  • hand-crafting WSDL files which are acceptable to the MS SOAP Toolkit
  • creating SOAP web services (using Apache mod_perl and SOAP::Lite) which can be called from the WSDL file by the MS SOAP Toolkit
I must say, MS SOAP Toolkit is a far more annoying beastie than Apache AXIS. I've accumulated a bit of lore on how to encapsulate data nicely for MS SOAP Toolkit, which I'll post here a bit later. Arrays are a particular annoyance: it's easy to deserialize arrays returned by .NET or MS SOAP Toolkit from Perl (just use valueof) and you automagically get an array (or an arrayref, or a hashref -- a simple call to ref() will clear things up easily).

But serializing an array into a form acceptable to the beastie MS SOAP is an entirely different ball of.. soap. Of course one could just cop it and insert raw XML into the SOAP envelope (that does work).



I've had great success using MindReef's SOAPScope product. In fact, I wouldn't have been able to figure out how to call that nameless cellco's Web Services from their WSDL file, without SOAPScope. Apparently, MS SOAP is sufficiently dumb that one can't do the usual "...asmx?WSDL" URL trick to get the WSDL. The WSDL is seperately generated with some command-line tool (how.. Unix-y). Anyhow SOAPScope figured out the correct way to call the Web Services, and I used the XML diff functionality to compare its output with that from SOAP::Lite. And adjusted accordingly.

I had to use MindReef's web-based SOAPScope interface, which was quite an annoyance what with the clunky internet connectivity at work (see my rant below in "Smart Wifi.") Actually SOAPScope at $99 is a pretty darn good deal. But I'm the only one using SOAP at my company and I don't want to ask the bosses for $99 to buy the tool. I'm not even a regular employee and I've already expended some leave..

Never thought I'd be this challenged (and drained) by work. My last job was relatively easy by comparison. Even on those days where I'd stay up all night to get a project I'd promised the CEO working -- I never felt any self-doubt. I worked hard, sure, but I never doubted that I'd come through.

At this job.. well, every day brings new hard stuff! I mean, I just rolled out a new mobile service this week on Smart (two VAS short codes). I set up the content delivery platform for a new short code (not quite trivial, as we don't have a common code base and there are at least three versions of the core libraries floating around) and helped the PM's test SPCC charging. Plus I'm developing new platform functionality for that Malaysian cellco and a totally new 3G project for a Singaporean cellco.

And sometimes a whole day passes before I can get something working. Thank heavens for SOAPScope. It's saved my sanity these past few weeks.

I thoroughly do not regret coming to work for this company. I've learned a huge deal, so even if they decide to boot me out, I'll still have gotten something out of it. But not a Friday night passes when I think of all the disposable time I've lost.

I guess part of that is due to moving to a new house, and preparing for our wedding. But I don't even get to do my homemade telescope eyepiece stuff anymore. I have no time to wax the car, old as it is. At least we have broadband here..

Yesterday the rest of the company was relatively jubilant. In spite of barely meeting the 2005 revenue targets, the Big Bosses decided to award performance incentives. Apparently, the company-wide average is two months additional pay. Which is quite generous, more than 10% incentive. It's funny because at our meeting it seemed that everyone was trying to contain their jubilation. But for me, it's totally irrelevant, because I've only been here three months. Heck, I might even end up not getting regularized if the Big Bosses believe I'm not pulling my weight.

Smart of them. So if I want an equivalent windfall, I'll have to slave away for 11 more months of this. The bad thing is, 2006 is gonna be a tough year for us. So it's very unlikely that the company will be able to afford a two-month incentive come next year. Rats. I'm really pinning my hopes on the Malaysian operation. If it flies, that's a regular new revenue stream for the company (and not inconsiderable!) And since I'll have had a significant role in the project, I can rest easy.

Thursday, February 16, 2006

Smart Wifi

Smart "Wifi" is pretty good. As broadband goes, at 988 pesos (roughly $20) for 384kbit. Plus, no cables needed! PLDT actually has a 999 pesos for 384kbit myDSL package, but you need to pay another 600 - 700 pesos ($15) for the phone line. I have two cellular numbers so I don't need no steenkin' phone line.

Downloading stuff from BitTorrent gives a sustained speed around 250 - 300kbit. Not bad for a consumer broadband product with no committed information rate.


Smart is using Motorola Canopy equipment on 5.7 GHz (Hello Moto!) The CPE they are using has an integrated sector antenna, RF section, and Ethernet transceiver in one. It's configured via a browser interface. Power and signal are provided via Ethernet. There's a small power brick and "power injector" inside the house (next to the computer). Basically you configure your PC to get an IP address via DHCP. You get a fake IP address on the 192.168.0.0/16 network. This is a smart thing (no pun intended):
  • conserves IP addresses
  • reinforces that this is a consumer broadband service, you can't run a server because you don't have a public IP
  • quite important: users with no personal firewall on their computer don't become vulnerable to trojans
From what I've seen, the CPE implements 56-bit DES encryption. So me and my neighbors aren't exactly on a LAN.

As luck would have it, we're on the 4th floor of the building, and there is direct line of sight (about 200 meters) to the nearest Smart cellular radio tower. The installer guy didn't even "line up" the CPE, just pointed it in the general direction of the tower and immediately got signal. So far no drop-outs or anything. Will see what happens when La Nina hits and there's heavy rain. But so far, so good.

My connection here is even better than at the office. We have an E1 (2.048Mbit) connection there, but thanks to our provider's #$%#$!! stupid misconfigured CheckPoint firewall, we lose connection at least ten times a day. Thank heavens we're moving to Vitro.

staying alive..


this is really a car repair and DIY blog.

two months after the master cylinder rebuilt at the dealership, the car almost completely lost braking power. it was leaking brake fluid like a sieve. i had quite a few adventures driving the car in that diminished-brake state. one could say i was taking stupid risks, and i guess i was.

funny thing happened on the way to banawe. or rather, at banawe. i'd just arrived there saturday afternoon, 4:00 p.m. after a long and tiring drive (it gets really hard to drive when you can't use the brakes!) i had just parked the car and turned off the engine when..

it wouldn't start. it just plain wouldn't!

anyway i remembered that there might be a problem with the fuel pump wiring (a perennial problem, in the past week it has had trouble starting about three times). so i checked the fuel pump wiring harness under the back seat. it was hot! and one of the wires was frayed and shorting against the metal car floor.

the mechanics seemed reluctant to look at my brakes, muttering that i should call an electrician. #%#$%!! i went there to have my brakes fixed, not to reap yet another problem.

anyway, i had some wires, scotch tape, and wire cutters in the glove compartment. actually i also had a cheap digital voltmeter in there, but i didn't use it. so all the mechanics of that garage ignored me, and i rewired the harness right there. and it started. it was 4:30 p.m. and they said it was too late to fix my brakes. %$^##$!!

come monday, i decided to go to Speedyfix in greenhills because it's closer than banawe. so i did. i left the car there and took a taxi to work. i was an hour late. they fixed it. busted front caliper. that's a $150 part. luckily they managed to find a "surplus" one (removed from a wreck in japan i guess). so in total it "only" cost me $100 for everything including labor.

ah well..

just an hour ago, i rewired the fuel pump harness. the original plug was in bad shape, so i removed it and spliced in a computer power supply plug. you know, those things that power hard drives and such. i got one from a busted auxiliary fan (it has one male and one female connector). and i used that. trouble is, the original harness had 5 wires and the computer power supply plug only has 4. so i used a screw terminal block for the last wire.

it seems to be working well. i liberally wrapped all the wiring with tape (i have no heat shrink tubing, which is what i wanted to use but no time to go to alexan in SM megamall). then to prevent the electrical tape from unwinding, i put four plastic cable ties around the cable bundle. it's very substantial now. hopefully that's the end of the hard starting.

i also slathered a lot of elastomeric sealant "Vulca-Seal" equivalent along the upper rubber of the windshield. La Nina is coming according to today's paper and it's gonna be raining a lot. in the past month the windshield has been leaking so badly and it's stained the headliner. quite annoying and disconcerting when you're driving and water is dripping on your hands and pantleg. it doesn't look too great, but it's a cheap solution.

we've only had this car for like 22,000 kilometers and have spent a lot on repairing and maintaining it (about 5 pesos per kilometer, i've figured). that's quite a bit. but the overall cost of operation has been about 22 pesos per kilometer inclusive of the repairs, acquisition cost, fuel, and so forth. a new car would cost anywhere from 27 pesos per kilometer (toyota corolla altis 1.6 J) to 30 pesos per kilometer (hyundai tucson 2.0 cvvt). even if we could afford it.

so i have to exert more DIY efforts keeping this machine alive.

since i got some torx bits, my next project is gonna be cleaning the idle air control valve and adjusting the throttle position sensor. hopefully that will get rid of the occasional erratic idle. it's a pity because the engine still runs smoothly when goosed, and has a lot of power. i wish when we get a new car we can keep this 626. i've gotten pretty attached to it in spite of all its failures. it's never stranded us anywhere far and hasn't put our lives in danger. and it was the first car for both me and lalai.