Software Essays

Filed Under (SoftDev (non-VFP)) by WildFire on 29-10-2004

Best Software Essays of 2004.

NiteAngel’s Empower Splash Artwork

Filed Under (GFX) by WildFire on 29-10-2004

I should've posted about this last week, but somehow I kept on forgetting things.

What you're seeing in the left is the current splash cover of Pixelcatalyst.Lair V6.10, created by Vincent Lai (aka NiteAngel), a friend and a co-Depthcore member.

You can view NiteAngel's artwork in his official site: and inside his DeviantArt account.

The larger version of this artwork, entitled Empower can be downloaded in this link.

(It looks a thousand times better when full viewed.)

Sometime last year, when I was more active on the PixelCatalyst.Lair project, we were able to interview and feature NiteAngel. Here's the link to that interview.

I did promised myself to devote some time every weekend on that pet site of mine which will turn four years old this November (Yes FOUR YEARS, baby! (Actually six years if you would include the pre-pixelcatalyst.lair mother-sites that gave birth to it))... but somehow database-related stuff has its own way of seducing my time away from GFX.

The least I could do for now is post some GFX-related blogs.

Which reminds me... I know FireFox in a number of ways outperforms IE6. pars with MS Office... but I still have to see a product from the OpenSource world that could battle commercial graphics application such as Adobe Photoshop, Corel's products, 3DSMax, AutoCAD, Lightwave, Maya and the list goes on...

... or am I missing something?

(But please don't mention GIMP here... Photoshop (even if you slice the current version by two) is still light years ahead of GIMP.)


Filed Under (work.BLOG) by WildFire on 27-10-2004

Time travels so fast.

It was exactly at this time when we arrived here yesterday from a tough client visit where I have to re-program two database applications on site.

Something that I rarely do.

Usually, every little detail is checked and compiled before I do the visits. If I re-program things on site it means somewhere along the line, I screwed up.

Imagine this... you've worked your arse out on one module for two weeks... sometimes even sleeping at around three in the morning. Polished, tweaked, tested and done everything on that module. Then at the site, when you're about to present things you realize that you haven't created a link to that module from the main menu.

I was calculating the number of ways and the angle of projection in case I opted to throw the monitor from the third floor of that building.

Good thing I was able to bring along the necessary files to fix and recompile things. Apparently it was linked but I forgot to set the form's ShowWindow properties to 'Show in Top Level Form' which prevented it from displaying that module properly.

That was problem number one.

The second problem encountered was from a different application which shows a little error that doesn't really affect the program but is still annoying which was apparently caused by a blank value in the program database configuration file.

Quite nifty since the error was able to pass two of my error handling mechanisms. I have to fire up the VisualFoxpro tool once again on site just to check the real cause of the problem.

The third problem was the trickiest.

(Sometimes I wish I could just choose treat and hand out chocolates every time some cybernetic super forces are doing this to me.)

The GITS database application (which was the first program I made for that client (which has been working smoothly for three academic years already)) started 'acting up'.

That application contains five table reports on one of its parts. Tables I, II, III and V works fine but the report on Table IV fails.

What makes the problem unusual is the Print Preview works fine. It shows all the records/statistics that is needed but when it starts to print things already, it shows only five records.

Sometimes six.

It even shows the report legend which partially rules out printer hardware-related problems.

I spent around an hour or so mapping out the steps I've been doing and the results. (And let's not even enumerate the permutation done on that part)

After a number of tries and failures and chants, it worked. It turns out that some blank statistics on the table screws up the printing part. Which is still quite mysterious since everything is good in the Print Preview part.

A copy of an older version of the program which I usually store in the server in case some problems come up, did help solve some problems.

But if you'd asked me, I still think the chant did solve the problem.

Ah... one of those days.

Marketing for Geeks

Filed Under (SoftDev (non-VFP)) by WildFire on 27-10-2004

Marketing for Geeks. (from the same person who wrote the Product Pricing Primer article (a must++ read)).

Southwest Fox Conference

Filed Under (Visual FoxPro) by WildFire on 27-10-2004

Southwest Fox Conference information at UniversalThread and FoxBlog.

It's about time the Filipino Foxpro developers should start organizing one. There are still a lot of big companies including malls, supermarkets, telephone companies and government offices that rely on Visual Foxpro here in this country of ours.

How To Synchronize Data Displayed on Two Different Forms

Filed Under (Visual FoxPro) by WildFire on 25-10-2004

How To Synchronize Data Displayed on Two Different Forms.


Filed Under (LEGO, Random.scribbles) by WildFire on 25-10-2004


I wasn't able to resist the force... the mask of light... the Rahkshi... whatever.

In case you're wondering what that nasty-object-that-seem-to-have-spawned-out-of-Giger's-imagination is, it's a Lego Bionicle The Mask of Light: Vorahk 'toy'.

If I'm not mistaken, this model was released May of last year. I did find some species of this kind a year ago but I was still in that can't-justify-the-purchase mode. By the time I was convinced I should buy one... the shop where I found it closed already.

Last Saturday, while looking for a trick or treat basket for Angel's Halloween party, I was lucky to find some of these acquiring dust in one of the Gift Gate stores here in SM.

I've been doing some things with this since then which qs has promised me not to blog about.

I used to play LEGO when I was a boy. It has always been a great source of inspiration and fun. Now I'm hoping that something like this on my desktop could help pump up the coding and creativity neurons. (Of course that's a good excuse... I just want to play with it in between coding)

My two little kids seemed to have developed an affinity for this too. Little Angel even watches the .mov clips (in a mini-CD) that comes with the canister... and I have to practice a little negotiating skills everytime they hostage this Vorahk.

Anyway, here's a good Rahkshi Vorahk Review at BZPower Community.

Some parts of us just refuse to grow old... and if you'd ask me, I think it's good.

It feels good.

Joel Spolsky talks… Microsoft listens.

Filed Under (SoftDev (non-VFP), Visual FoxPro) by WildFire on 25-10-2004

Here's an advanced debugging approach from Calvin Hsia.

I don't know... during my first job after college we were trained in the hardcore-cool-iold-schoolic approach of debugging things sans the debugging tools and watch windows. Just plain source code tracing and... cursing.

Of course you've heard already of that now-a-classic 'How Microsoft Lost the API War' blog/essay from Joel Spolsky. Now here's another Joel Spolsky interview from

For free lance programmers like me, reading information that tackles the 'behind the scenes' and/or politics of software company helps in a lot of ways.

Music… war and neurons

Filed Under (Random.scribbles, work.BLOG) by WildFire on 23-10-2004

I can't understand how some humans can read with pumped up music playing against their ears.

Some humans can't understand too how I can manage to work with Nine Inch Nails noise or Paul Oakenfold's trance beat whirring against my ears.

Honestly I can't understand why they can't understand.

You see... programming is one of the ultimate battles between man and machine. (Hell yeah!)

You and your 'logic neurons' tapping the computer while it patiently and keenly watches in the background barfing out mocking words of encouragement once in a while in the form of error messages disguised in 07200000xHEFX statements, which most of the time the programmer pretends to understand.

Well in fact, they don't.

It's like being in a room with two rude aliens from x::country talking in their x-ian dialect smiling at you. They smile at you, you smile back at them not knowing that they're talking about your protruding nose hair already.

So why again the loud music?

One reason is that every battle scene needs a soundtrack. The bloodbath is nothing if you can't feel the swish and cuts through the music... the beat... the chant.

It's a battle everytime you're infront of the PC, problem is... everything is owned by the machine. The hypnotic monitor in front of you, the sinister keyboard that strains you and the harmless looking mouse which in truth poisons your libido.

They're all part of the big domination plan orchestrated by 00086-entities.

In fact if you're pointing out the previous programmers and software engineers that created those nifty down to the core codes and thinking that it's a man versus man battle actually... you're wrong.

Terribly wrong.

Around 42% of these humans have defected already to the side of the machine. 28% are cyborgs in disguise created by the machines itself and the rest are unknown entities. Perhaps included in that classified and unleaked information.

You see when machines mark something as a secret or make that lSecret(ComponentName, 1000) == .T., it is really set to .T. and it will remain that way unless the machine itself overrides it's 1024 layered 2048-bit encrypted password protection.

With humans... secrets are well, secret which is a good object of discussion as long as the other human refrains from telling it to another human without him/her making a blind promise of not telling it to five more humans in one day.

But this secret topic deserves a different post. Let's go back to loud music.

Everything is owned by the machine except the music.

The language of the soul... music and the soul... two things you can never digitize. Well at least no classified information pertaining to that process is 'in the open'.

Music helps you beat the machine... pumps up your neurons and distracts the machine. In fact running WinAmp would add a thread to a CPUs work.

But the machine is more powerful than that. In fact the crashes you often see is just one way of pretending that an error occurs. When a certain application 'shoots' and fires up events that corrupt the memory, or let's say a lame driver poisons the kernel-mode heap, the computer core knows that.

In fact it can prevent it but since he's too busy playing poker during the 'normal office human hours', he fires up screens that manifests the problem. Besides if he fixes everything the world will produce more 'bad' programmers... and trust me when I say the world has enough of this already to supply 10 evolutions of humankind.

Now you're wondering why it is colored blue.

Orgasms and votes

Filed Under (Random.links, Random.scribbles, work.BLOG) by WildFire on 22-10-2004

VOTERGASM: "Our goal is to have 100,000 young voters catalyse 250,000 orgasms by November 3."

Humans are weird.

If ever a certain programmer/mathematician (aka real problem solver) is brave enough to enter politics, he or she will have my 512-bit support.

That is if logic does not prevent him from diving in.

Let me post the title again: Sex pledges to boost US vote turnout.

Come on... what's the problem here?

Possible low voting turnout. (or 'turn on' if you prefer seeing it that way).

Is that the real problem? If it is... then why?

Because of lack of sex?


Let me re-phrase that:

   If ConvertToLogical(nAmountofSex) == lRare
NUMTOSTREQ(nVoterTurnout) = 'Low'

That line of code sounds very illogical to me.

Why can't humans identify the 'real' problem, find the 'real' root/cause of the 'real' problem and give 'real' solutions?

But then again... what if... considering that human beings, being the epitome of irony, have always preferred the approach that defies logic... realize that:

   IsNOTAlways(REALSolutions == EffectiveSolutions) == .T.

Then we'll be having more goals and solutions similar to the first line above.

The Man Who Could Have Been Bill Gates

Filed Under (Random.links) by WildFire on 21-10-2004

Something interesting to boot up your day: The Man Who Could Have Been Bill Gates. Truth is elusive... but anyway... it still is an interesting read.

QS and I are in 'cold war mode'... but I'll link to her PomeGRENADE article inside YOU.INQ7.

It's less than five minutes to one in the morning... breaktime period is over. Now back to some coding.

Combo Box Filter Issues

Filed Under (Visual FoxPro, work.BLOG) by WildFire on 18-10-2004

Imagine you have a combo box.

This combo box holds (and displays) the 'NAME values' which are records in database F but returns the 'IDNO values'. (I'll explain the logic behind this on a different post... later.)

Database F contains only those two fields: the 'NAME values' which are mostly items/descriptions and its corresponding 'IDNO values' (or CODE or CODENUMBER whatever you prefer, lovely-lady-of-mount-lithsoma).

Now you 'morph' your combo box so that the text part would accept manual character entries and automatically filters the DropDown Items after its InteractiveChange event is triggered.

Now here's the question...

If the user types, let's say... the characters 'CHART', would you filter all the records having the string 'CHART' in it or just the records starting with the 'CHART' string?

In other words would you:

set filter to cBUFFER $ (upper(alltrim(DBASE.NAMEVALUE)))

... or would you:

set filter to cBUFFER $ substr(DBASE.NAMEVALUE, 1, nLEN)

... given that:

cBUFFER = upper(alltrim(this.Text))
nLEN = len(alltrim(cBUFFER))

Just some little issues I'm pondering on at 2:30 in the morning.

(And I am so tempted already to activate the comments feature of this blog.)

GOOGLE’s perpetual love for something BETA

Filed Under (Random.links) by WildFire on 17-10-2004

If by 'Browser Wars' you think only of Netscape versus Internet Explorer before... think again. Of course these days it's more of IE versus FireFox.

Unless of course... Google is cooking up something.

Speaking of Google... by now I presume you've heard of Google Desktop. Sriram Krishnan posted a review of this new search tool from Google.

Quite obviously... we don't need an overhaul of the file system to come up with something nifty and useful as this, eh?

You want more Google Desktop reviews?

Here's more.

Let's just hope Google will overcome its perpetual love for a beta state. (Google News is in Beta, GMail is in Beta... and now the Google Desktop Search is also in Beta).

Not that I'm complaining. There's a reason too for that 'perpetual, lawyer-induced' beta state for Google News.

The Daily WTF: 'Curious Perversions in Information Technology'.

Windows XP Home and Professional Service Pack 2 Services 411 (via Rubik's Redemption). I was about to complain about the black background when I saw the White or Black option.

One more thing... MSNBC now offers RSS Feeds.

OK.... back to the FoxIDE and out of the cyberspace, WildFire.

Saturday VisualFoxpro Links

Filed Under (Visual FoxPro) by WildFire on 16-10-2004

Almost every VisualFoxpro RSS feeds in my aggregator are pointing here. It is the Visual FoxPro 9.0 Beta Help Refresh, an update to Visual Foxpro 9.0 Beta which was released 0100 months ago.

Here are some VFP9 Beta Samples and .NET Samples for Visual FoxPro Developers to fire you up.

And while you're there do check Ken Levy's October 2004 - Letter From the Editor.

Interested to see more Foxpro DevCon 2004 pics? There's more here and here. (Photos courtesy of Igor Vit and Alex Feldstein)

Andrew MacNeill discusses a cool new feature from VFP9: MAKETRANSACTABLE() while Doug Hennig mines gold in XSource (a must read for serious VFP developers).

Featured TBs and Defense Torture Processes

Filed Under (Random.links, Random.scribbles) by WildFire on 14-10-2004

In the local scene, Filipino [tech]bloggers are being featured here, here and here.

Last week I also stumbled on one cs-related academe blog. In her 'Blogs I Read' section you'll find some links to cs students blogging too. I guess indirectly, some calls are answered.

(CS stands for ComSci not CounterStrike nor CyberSex, Bit-wit)

She's blogging about project presentations and defenses currently. I'm beginning to miss those teaching days of mine even more... and the food too.

Areman (who just transferred his blogs to blogspot (who I worked with before I transferred here in Manila (who happens to be a classmate of mine also when I was still in college))) also posted some defense-related blogs on his site.

This is one of the many things I like about Areman, his angst which is reflected in his 'valiant' use of the f-word.

But don't let the f-words cloud you. That is an intelligent mind... you don't graduate cum laude in AdDU for nothing. (And this was six years ago, when education in our country was not that 'commercialized' yet.)

Back to defenses and presentations, one of my favorite 'torturing processes' before was making Student-01 delete five blocks of code for Student-02 to fix while I'm asking Student-03 some project-related questions. All of these things are done in front of the class.

I've also done that process every time I was invited as a panel in other schools.

It never fails to amuse me.

Some of us are just born sadists you know.


Filed Under (Visual FoxPro) by WildFire on 13-10-2004

Proof-12091.0297644588 that the Fox is still very much alive.

That's CrimeStar. I would refrain from mentioning that 'The Military' is also using Visual Foxpro until I can find the article link here in this vault archive of mine.

A number of high profile companies that use VisualFoxpro are listed here. (DOD was mentioned)

And here's a longer list from inside Fox.wikis.

Here in the Philippines I know a handful of respected companies/institutions that are using VisualFoxpro.

Quite sad though that the academe seldom include this legendary and elegant+fast+data-centric PL in their curriculum.

Even our National Bookstore don't have Foxpro books in their shelves.

Still... no worries, dude.


Filed Under (Random.scribbles, work.BLOG) by WildFire on 13-10-2004

1:10AM code-break.

I'm leaving the IDE window for awhile to ransack the fridge... recharge the mind with some coke-in-cans and some [classified infood-mation]. (Har har!)

During the client visit this morning, it was qs who ran the show. She installed the updates of five different ILS modules, while the database-fox-jedi was there beside her enjoying two palaboks, two pepsi cola in cans and one Fudgee Barr.

She finished the second chapter of QUE's Using Visual Foxpro book last Saturday. Did the installation this morning and in the afternoon scribbled out the database structures/normalization and blue prints for the FDDF project (a new client/database project of ours).

Yes... qs 'major'-ed PolSci, but code-mentoring someone who is included in the top three of the ACET n years ago (where n < 10) is... honestly both hard and easy. She's quite stubborn sometimes (Replace(This.Line, 'sometimes', 'most of the time')) and claims she was on a different line when God was giving out the lPatience(.T.) and lOrganized(.T) values. Yeah. That hard... and we're still scraping the 'easier and wholesome parts'. But then again, I believe for one to really learn how to 'code', comsci-related skills are secondary to what I'd call 'comsci discipline'. Feel free to fire up your blogs and agree/disagree with that belief of mine.

Foxpro links and being ‘normal’

Filed Under (Random.scribbles, Visual FoxPro) by WildFire on 11-10-2004

Your daily dose of VisualFoxpro articles:

Beakman and I once in a while talk on Y!IM about programming concepts, nationalis-tech principles, alien abductions, VB versus VFP stuff, old school programming versus programming approaches of the future, changing RP through techblogs, computer science education and a lot more.

Tonight we were discussing about programming moods. Particularly about me not being 'in the zone'.

You know those type of days where you can't pull your arse to code. The not-in-the-mood-to-code moments. And I was asking Beakman how he handles these kinds of situations.

Of course being the athletic person that he is, he recommended jogging, playing basketball... even badminton... getting some rest and gym (ewrk!)

Yes he is more disciplined than I am.

The talk was enlightening until he scribbled out these words:

'Try to act as a normal person.'

Damn. That must have been the best advice I had in months.

You | Post a comment

Mathematics… Politics… Macs and Marketing

Filed Under (Random.links) by WildFire on 10-10-2004

A Month with a Mac: A Die-Hard PC User's Perspective from the man behind

Great branding is a spiritual exercise... nice read. And this one too: Intense longing.

Pencils down... I had fun trying to solve GLAT, Google Labs Aptitude Test. Now I'm a little brain drained to start coding. It's a Sunday and I'm still having fun browsing through's archives.

Some of the insightful political-related opinions I've read online are written by persons involved in the software development/infotech field... here's one: Debate Devices.

Some are even posted to tickle your bones.

Probably it would be wise to listen to these mathematicians who offer some help on how to fight terrorism.

Needless to say values and logic go hand in hand in solving most (if not all) of the word problems... err world problems.

I'll continue this later... qs is making fun of me right now.