Archive for the ‘work.BLOG’ Category

control.EXE

Tuesday, June 20th, 2006

DECLARE INTEGER ShellExecute IN shell32.dll ;
INTEGER hndWin, STRING cAction, STRING cFileName, ;
STRING cParams, STRING cDir, INTEGER nShowWin

ShellExecute(0, 'open', 'control.exe', 'timedate.cpl', '', 1)

MY qs... is so cool. She's dissecting WinAPI related stuff these days. Screams and grumbles are reaching a new level though. But that's normal when you handle these kinds of areas.

The last few days have been very busy for us. We have a data entry module due this Saturday afternoon. But before that we have to hurdle three more client visits.

And we already had 7 client visits in the past 8 days.

The second leg of my sleep is even interrupted by client calls. They're my alarm clocks these days. And I don't even dare to whack their heads when they do the ringing. (The first leg stops when I have to randomly poke (and annoy) my kid to go to school. (Hopefully, education will not hinder his learning.))

Ah well... one of those days in the lives of us freelancers... : ]

PrintWARS

Wednesday, June 7th, 2006

You know... we have this printer in the office, which I shall call Jana, who would randomly barf out errors unless you pull her closer to you... talk to her... say nice things to her. And even worse things if qs is the one handling her. I'll assume she's around 17 years old in spirit. Probably vegetarian.

So every time I have to print something I have to pull her close to me (in an angle facing me), caress the cover and access this affection.woo.database of mine.

Anyway... to compensate for this... here's a tip.

In case you wanted to cancel a print job... and a thousand and five delete key hitting won't do, cancelling all print jobs won't work, purge, curses, spells and a dozen turn off/reboots and all. Try clicking ALT+CTRL+DEL... click Task Manager... select the Processes tab. Look for spoolsv and hit DELETE.

But then again... you might need another 1001 reboots to make that work... : ]

Pixelwarps: 2ADVANCED.com version 5.00ANGELWorld 8.3 (with AJAX) and 2YUPPIE.com.

Back to codin'.

VFP… qs… and HTMLs

Wednesday, May 31st, 2006

It is 3:28AM and I do hope what I will scribble here would still make some sense.

As you might have noticed May has become a month for TheLair. I've been sleeping around 4AM (and sometimes even around five in the morning (when the sun.daylight.init event happens)) working on that seven year old site.

Maiden Seven Artwork
Maiden Seven of Azure Realms / Download 1600x1200 illumination

We released V7 last May 19 and I was still tweaking the site up until hmmm... 30 minutes ago before I devoured what some might consider a midnight snack at three in the morning.

Good thing I introduced and trained qs how to code and develop database applications in VisualFoxpro (the samurai/jedi way) a couple of years ago.

Now she's coding for around 9 hours a day, answering client system-related queries and fixing some bugs while I'm sitting on my arse working on HTMLs/PSDs/JPEGs/css-es/javascripts and other graphics/website-related matters.

You can't disturb me when I'm working on something so qs is intimate these days with the chm file that came with Visual FoxPro 9, the fox.wikis.com site and of course... Google.com.

Every now and then she discovers things in FoxPro which I haven't even encountered yet... which is good.

But when she starts to grumble and mumble random incoherent words and stuff, it starts to scare me though.

In random places, to make things worse. Random places!

Like there was this one time when we were in the mall... a crowded mall, and I with all my invisible hover drones were mapping and calculating the fastest route we could travel from Point A to Point B, and qs out of nowhere started blurting out normalization principles, dtos/alltrim approaches, cdx optimization and database initialization topics and techniques.

Did I mention we were in a crowded mall when she started doing that..?

���

Anyway... come June 2006 I will return to the usual programmer mode, and will work on graphics/web related stuff on weekends.

I am also planning on how to integrate VFP on my site.

Nope... no Active FoxPro pages for now or some other VFP on the 'net related tools but more on generating, parsing and converting data to an equivalent HTML format.

Upload, download and synchronization mechanisms included.

I still have to finalize the specs though. But I'll be tackling that in the near future and the links.database section of TheLair will be the first to be handled.

Also, I am heeding Craig Bailey's call to make Visual FoxPro cool. In line with that I am creating some icons, which I plan to release for free once I'm done with one set.

Visual FoxPro (and other developers as well) can download and use these icons in their applications.

Ok... 3:48AM... bed's calling.

It's no secret that a conscience can sometimes be a pest
It's no secret ambition bites the nails of success
Every artist is a cannibal, every poet is a thief
All kill their inspiration and sing about their grief
Oh love...
- U2 (The Fly)

We have faith in FoxPro’s future.

Thursday, May 11th, 2006

I may be occupied ('occupied' used instead of 'busy', for the latter seems so overused these days that if each of the letters are to be converted (even in its compressed format (parallel worlds not included)) to food, there would be no need for noble campaigns such as ONE and MakePovertyHistory)...

Let's do that sentence again.

I may be occupied with TheLair V7 creation these days in between client visits but that doesn't mean that I'm not aware of the news about YAG's departure from the VSData team.

And this comes at a time where FoxPro is soaring high in the TIOBE rankings (which leaves even some humans wondering), the proliferation of insightful FoxPro-related blogs and all those positive fox-vibes which we've seldom seen in the past fox years.

I'm looking at the FoxPro team picture which was featured inside that VFP9 CodeFocus issue and MIGHTYAG will be the Nth person leaving from that crew.

Mike... John Koziol... Randy Brown... Ken Levy and now YAG.

Honestly a part of me wants to be as optimistic as Andrew. Really it's a cool job and I'm pretty sure one way or another FoxPro will benefit strategically from it.

Craig Berntson's prophecies, though, haunt the northern hemisphere of my brain.

Plus I'm starting to hear darklings chanting 'Denial! Denial! Denial.' in the background.

Seven of Yoda's fleas armed with green light sabers are guarding my back so I'm safe from these creatures for now.


Cover Darkness Volume I Issue 07 � Top Cow / Pencils: Marc Silvestri / Inks: Batt / Colors: Steve Firchow


The Angelus � Top Cow / Pencils: Marc Silvestri / Inks: Batt / Colors: Steve Firchow

  [off.topic.initialize]

For those who are wondering, these are how darklings look like.

Currently I don't have a picture of Yoda's fleas but somehow they look a little similar to Top Cow's Angelus character. (Yes... envy my back.)

[off.topic.deconstruct]

But despite of these negative forces, I still believe in FoxPro. I believe in its future.

I have faith in FoxPro's future.

Now I was in the process of balancing these thoughts when my pet tiger Bruno butted in.

'Now who's working on Visual Foxpro?', he asked.

I rushmored my brain, but still, it took me around 17 seconds before I could find a reply.

'The community, Bruno. The community.'

With that I dismissed him, since qs and I still had to prepare for yesterday's client demonstration.

cSTR01 = 'I believe in the community that supports Visual FoxPro, as well.'
cSTR02 = 'I have faith in FoxPro`s future.'
cEnter = InsertSTText(at(cSTR02, ThisBLOG), IRchar(13) + IRchar(13) + SetTF(cSTR01, 'B'))

... and I believe in a future with FoxPro and it's legacy in it.

Greg Moreno: Interruption is Your Enemy

Friday, April 28th, 2006

Greg Moreno: Interruption is Your Enemy.

Amen.

Sometimes it even takes weeks for me to get into the zone. I received a Level III certification on the pretending-to-be-working skill seven years ago.

I don't agree with the Josh Groban part though... : )

Related link: (Music... war... and neurons, baby.)

VirCrash.Part.003.2006.0427

Friday, April 28th, 2006

VirCrash.Part.003.0427

The real headache though lies not in the detection, removal, or the existence of the virus. MY real problem is this which-shall-remain-nameless virus tends to have the power to control negative forces.

The CPU fan started malfunctioning after the virus was detected. Then there goes the never-ending orphaned file/link error messages. The fourth partition of hard disk 01 couldn't be seen afterwards. Then partition 01 of hard disk 02 followed. Even my reserve hard disk 03 encountered problems of his own and a clean Windows XP refused to be installed on my reserve-and-fresh-from-the-cabinet hard disk 04.

I do back things up often, but there are files that are still to be backed up which I placed on what I thought would be a secure partition which ended up doing that now-you-see-me-now-you-don't dance.

I'm scribbling this part 47 hours after the problem manifested but imagine the suffering in real time. Even IKIA started kneeling, calling the gods of thunder and the names of celestial beings in between cursing and yelling indescrible things to some innocent ants.

This scribble is getting longer already... if you're still reading this you could consider yourself as belonging to a small fraction of humankind whose attention span has not yet been affected by the second wave of the upcoming alien invasion.

VirCrash.Part.002.2006.0426

Friday, April 28th, 2006

VirCrash.Part.002.2006.0426

Ah... CATALYST (TheOffice.PC.02) was infected, my laptop as well. Qsez two computers are clean even if her virus definitions are months late... ah.. talk about a fair life.

(A woman's intution is indeed far more powerful than the arsenal of tools I have.)

The info I have gathered online is not that accurate, or probably I am holding a mutated/evolved copy of that virus. It infects .exe and .scr files, but it also seems to have a target-list-of-to-be-infected-exe-files in its code since some .exe files that I haven't run nor touched for quite some time (and I'm pretty sure these are not system files) were infected too. Something online virus encylopedias from av sites are not stating.

It also hides its code in running processes which makes it hard to detect and manually remove when active. Process explorer tools are useless at this point.

But just because this was my major virus hit for quite some time means I don't deal with them regularly. In fact we see them during every client visit we have... to the extent that our first routine on site is to backup and scan files before installing our updates.

Add the fact that one of my bosses in my 'regular job' has this eternal fascination for porn sites. Even brought a couple of friends for some porn-fest, probably, months ago that produced the 10092 pop-ups the following day.

I hold him and them responsible for my constantly improving anti-spyware/virus/worm removal commando like skills... : )

Now off to clean this PC. I am now hearing the linux users cheering in the background.

VirCrash.Part.001.2006.0425

Friday, April 28th, 2006

VirCrash.Part.001.2006.0425

PARCEL... MY home PC got infected with 'that-which-I-would-not-speak-of' (/that-which-I-would-not-hyperlink) computer virus.

This would be the first MAJOR infection of one my drones since 1996. That was ten years ago. College days... just months after I was given a PC I could truly call mine.

Yes... that experience was terrible enough that it caused me to religiously install/run/update five tools for protection. Along with a truckload of common sense (You can buy a dozen at a discounted price at Waltermart), cybernetically-enhanced instincts and paranoia.

(Of course a pet tiger who could sniff computer viruses/worms when hungry. (And this one's hungry all the time.))

A reliable anti-virus application, a paranoid 'stand-alone' firewall (no... not the one that comes bundled with SP2), an all around ---ware immunizer/remover, and a couple of 'top secret' tools were there for me all these years.

(Except for the ---ware tool since these SPY/MAL/ETCwares just went fashionable a couple or more years ago but vhoi their growth almost made me forget the existence of 'old school' computer viruses.)

What makes things more ironic is I got infected when I was downloading an update to one of my protection tools from a respectable site.

Just like ten years ago when I was infected upon bringing home a copy of an infected set of virus definitions from our computer lab.

(Edit... apparently judging from the trail of infected files after SEVEN HUGE hours of scanning, I got this days before... which makes the virus a 'that-which-I-would-not-speak-or-even-think-of'. It might try infecting brainwave frequencies too.)

I don't have an internet connection at home so I depend on downloadable manual updates. (And probably CATALYST (the office PC) is not infected after all since it updates automatically but I'll find out once I'm there.)

It infects 32-bit .exe files. And I probably felt the symptoms before when it would automatically rename the files I am copying to lowercase. I did suspect but seeing the dates and byte sizes to be what they should, and the processes panel showing no hoodlum-looking process, and items being intact after MSCONFIG-in'... I chose to ignore.

As of now I'm not yet sure of what the root cause of this one is... let me waste my time and investigate further.

User is NOT always right.

Thursday, April 6th, 2006

Start with this... Doug Hennig: The User is Always Right.

Then proceed here... Craig Berntson: Complexity and Experience.

While I do agree with almost all the points stated in those blogs/articles, the 'User is always right' mindset does not appeal to me that much.

User is always KING. Insert fat/lazy/abusive/bum KING... but that doesn't mean he's always right.

Probably one of the reasons, I studied mind control and hypnosis before I studied coding.

Multiple Detail Band in Visual FoxPro 9

Wednesday, February 8th, 2006

After countless trials and errors, with each error pounding one of my faithful neurons, reading (and re-reading and re-reading), roundtrips to the Program Files\VFP9\Samples directory and pathetic attempts to have a crash course on 'Absorbing the Mozart Effect 101'... I finally figured out how to make VFP9's multiple detail band feature work on one of my reports.

(And no, Mozart wasn't helpful this time.)

More than 77 neurons are off to meet their maker. I stopped counting though an hour and a half ago, so there's probably more. (And we're not even counting the injured and now-limb-less ones.)

Yes I know... I'm quite late with this. Most VFP9 coders are now using the multiple detail band to extract data from different databases located in parallel universes while I have been using the dump N table records to one 'cursor/table holder' with generic field names where I can extract data for reporting...

... or firing up CrystalReports.

Anyway at 1:37AM, I'm scribbling this down just in case an alien decides to teleport its presence here in this room, do some wholesome (I hope) experiments and decides to mind-wipe me afterwards, which might possibly corrupt this multiple-detail-band-eureka moments I have.

Also this could probably help a coder out there who decides to google things after being mind-wiped by an alien.

Just a basic overview... I'll call these step by step 'hints' not a 'guide'. (A User Guide expert would scream bloody hell when he sees this. (But trust me a programmer will understand. (Especially those mind-wiped by aliens.)))

Given:
Parent.dbf / Child01.dbf / Child02.dbf
Right click = Right click in the Report Designer.


1.
  File. New. New report. (No wizards.)  

2.
  Data Environment. Add the three (or more) tables.  

3.
  Set the relationships. (P » C01 and P » C02.)  

4.
  Right click. Select Data Grouping.  

5.
  Data Grouping tab. Group Nesting Order box. Add. And add field from your parent table (Your primary key... for example: PARENT.CODENO)  

6.
  Right click. Optional Bands. In the Detail Bands box, Add another Detail Band.  

7.
  Now you have two bands. One for you, one for the alien.  

8.
  Double click on the Detail 1 separator. The Detail Band Properties window pops out. (Or if you like the longer process... Report... Edit Bands... select Detail 1.)  

9.
  Check Associated header and footer bands. (Trust me you need this. Aliens are allergic to this.)  

10.
  Repeat steps 8 - 9 for Detail 2.  

11.
  Data Environment. Drag the fields to their appropriate bands. Parent fields on the Group Header. C01 fields in the Detail 1 band and C02 fields on the Detail 2. And aliens in the footer part.  

12.
  BTW... you should have saved your report already and instinctively press CTRL+S every now and then in case the aliens...  

13.
  Now double click the Detail 1 'bar' (separator) again.  

14.
  Detail Band Properties. In the Target alias expression enter 'child01' or the name of your child database. (NOTE: Be sure to include the '')  

15.
  Do the same with the other Detail bands. The Detail 1 band separator should now look like 'Detail 1: Child01'.  

16.
  Add appropiate headers, lines and all. Align things.  

17.
  Beautify your report. Make it look professional. Nevermind if your clients are using a stone-age dot matrix printer.  

Hope this helps.

Now I'm off to re-inspect the protective shields of this room.

FoxPro… resources and TheForce.

Saturday, January 28th, 2006

For those programmer fathers out there, or humans who support someone or our very selves to live, which I think most of us do... we code not just for the challenge or for that ever-quench-the-thirst desire to solve things that tend to be abstract in an abstract way disguised in the form of for-loops, bits and 0101010001001s.

We code for food.

We may be directly solving and creating systems, thinking of our clients needs but in the cubicle filled workplace of our minds, there is that space in the server room inside our craniums exclusively reserved for our needs, our families' needs and/or our children needs.

(Feel free to include your dog and your goldfish. (My pet tiger and pterodactyl are self-sustaining though.))

But of course, there are also humans who are, let's say for the purpose of discussion... are from the start of their lives, financially and materially lucky. Almost everything are laid down at their feet.

Now I'm not generalizing on the next line, but some of these lovely humans tend to lack 'TheDrive'. Again I am not generalizing all of them. It's just that time and time again I seem to encounter and interact with some of them seeing sparks of that tendency. I mean the tendency to lack TheDrive.

If little forces lesser than TheForce tend to spoil someone or something with resources, it chips at parts of the inherent little drives that strive beneath, thus dissolving some good bits of the output.

When the Wachowski was on a tight budget, they produced one of the best sci-fi, mind-challenging movies of all time, The (first) Matrix. Fast forward almost three years later, they have huge resources to produce bloated Matrix follow-ups.

(Not that I don't like them, they are major vfx eye-candies and there are still sparks of gems here and there (not to mention Monica), but they fade in comparison to the potential of what the first installment has to offer.)

Some probably will include George Lucas and Star Wars in this list, but hey... the third episode was probably enough to save what the first two episodes lack (Well at least the first half of the third episode).

In a way, FoxPro belongs to that make the most of what we have list.

Not only is it a good resource-friendly product, it creates database applications, which if properly used, makes use of existing resources, however scarce they may seem... efficiently.

Unlike other PLs that are so spoiled, bloated, hogs too much memory and requires system requirements above the roof... FoxPro uses what it really needs.

(There goes Avatar and Beakman yelling 'We know where this part is heading!' But trust me it didn't started that way.)

Re-TITLED

Thursday, January 26th, 2006

Just as I was about to penetrate the coding zone after having a hell of a time freeing myself from the huge holiday hang-over, TheForce tends to display its mastery of randomly triggered events that somehow barfs me again out of the coding zone.

Now the holiday-hang-over-excuse realm won't accept me anymore and I'm stuck in between this I-have-to-code-and-work-but-I'm-not-in-the-zone and the i'm-on-extended-vacation-i-can-justify-this-laziness sphere.

Good thing I can blog.

Anyway for the past few days, I've been receiving quite a number of client calls already, e-mails and sms-es, some of which even serve as my wake up calls (literally). It seems our clients are revving up faster than me.

One of the differences between the corporate and the freelance kingdom perhaps.

But inspite of these thing we were able to install one of our database systems (made in VFP9 this time (most current versions of our systems are done in VFP8)) to a new client, some details of which are the main reasons why I'm scribbling this while waiting for qs to finish using the bathroom (her bathroom usage tends to increase folds every year (and we're not even going to include the dressing up part)).

Now back to the client I was talking about.

Our proposal to them was submitted last October of 2004, got approved last December 2005, and a couple of days ago we installed the first system, the Human Resource modules. We need to further customize our exising Payroll System to cater to their needs and interface it with a bio-thumbrint TimeKeeping/DTR system, which will be installed by another IT company.

The HR part is installed in four companies already (mostly schools and universities) so it is quite 'mature' already and needs no further customization. The Payroll System on the other hand is installed in one company, so I'm giving qs the responsibility of 'stabilizing' it.

Remind me not to create a title for a certain blog before scribbling it. My title's supposed to be located seven degrees north and I'm heading the south in this blog. I will end this here and start a different blog on Visual FoxPro and the Developing Countries after this.

Wordwrap in GridColumns

Wednesday, January 18th, 2006

Hmmm... no wordwrap on GridColumns..? ONLY headers are allowed to wordwrap..?

I even tried adding a textbox and a label object inside the grid to simulate that Excel spreadsheet look on some fields but to no avail. Probably I'm missing something.

As of 5:23PM of the 18th of January 2006, I'm a BLOG-first-before-finding-a-better-solution programmer.

MY bloody pet bloody tiger bloody screams we bloody need bloody wordwrap feature on bloody grids.

Andrew MacNeill: How misinformation feeds FoxPro myths

Monday, December 12th, 2005

Andrew MacNeill: How misinformation feeds FoxPro myths.

"It's not about the product - it's about the DESIGN!!!"

Indeed... indeed.

The problem with Visual FoxPro (or any RAD tool for that matter) is because they're easy to use, some irresponsible programmers fire up wizards and tools to create applications without proper planning.

PLAN... plan plan... things on paper. Create solutions that will cater not just to the immediate need for this month, or this year... but to the future.

I usually spend two weeks (and sometimes even more) in the planning phase which includes the creation of the database structures and overall flow.

And in more than one instance, I've even brought some folded papers in my wallet so I can retrieve things easily if ever an idea or a possible problem pops into my mind.

Back in my previous workplace, we even brainstorm on things like this. Every programmer shares his input while the others fire up possible scenarios and problems.

As for the misinformation part, the world holds too much consultants and IT specialists already, who for the sake of discussion, let's say are powered with the latest processor chips in their brains.

They think fast.

Too fast.

In this field of software development, thinking deeply is much preferred.

UIC 100

Thursday, December 8th, 2005

MY previous workplace/battleGROUND celebrates its Centennial Jubilee Celebration today.

Happy 100th year to the University of the Immaculate Conception.

I have quite a number of 'BLOG-able' work experiences from that place. One of these days, I'll post some of them.

The Beauty of Simplicity

Thursday, December 1st, 2005

The Beauty of Simplicity.

Make it pure... less is more.

Same holds true with the interface of your forms and... your codes.

Problem Solving 2192.1029.1777

Thursday, November 24th, 2005

Programmers or developers or any human in the problem solving workforce, tend to have difficulty solving the problem if their minds are clouded beforehand with buffered and imagined scenarios that they think will cause complications to occur.

Anticipating problems which may possibly occur in the future is a good programmer virtue, yet sometimes, it can serve as a hindrance itself to attaining solutions.

It is always good to have a Plan B, but always keep in mind why you need that alternative. Forgetting the real reason of having conceived a plan B in the first place can sometimes mislead you.

I have this Plan B in case Plan A will not work considering I'm using an A-10 approach and Factor A-9 exists.

Enumerate first the real possible causes that prevent A-10 approach from working before jumping to Plan B, which most of the time is a lazy way out.

Never blame Factor A-9 too.

Sometimes we do have this set of possible causes which blind us.

And blind us big time, it does.

Validate those variables first. Sometimes the most efficient solutions are aligned with the most simple and obvious answers.

CLICK for a LARGER much SEXIER version.

Last week, I decided to include a TreeView control in one of my newly converted VFP8-to-VFP9 projects. During the development phase, my mind was already clouded with the possible DLL-Hell related stuff, possible VFP9-libraries-on-site compatibility issues, the well-behaved Windows 98SE machines in my clients site, green alien abductions and countless possible shenanigans that might occur.

And so it goes, after two failed installation attempts, DependencyWalker tinkering, InstallShield version upgrades (and even downgrades), CD archive searching, three CPU testings, OLE/DLL manual gathering and regsvr32-in', compilations and recompilations, VFP5 Developer's Guide skimming, screaming, punching, calling the gods of Asgard... and countless other efforts, I still... was unsuccessful.

Only to find out that the real cause of the problem lies in my code itself.

You might blame my alien-related paranoia for not detecting the problem right away, but... the main reason is that my mind was already clouded with too many factors that prejudiced/poisoned/muddled the problem solving process.

Free the mind, human.

Even the most complex problems are dealt with with an array of systematic step by step simple solutions that work.

You don't need to study rocket science to be able to do that.

(And go back to the pen and paper approach if needed. (Papers rock!))

Qs and her code-baptism of fire

Monday, November 21st, 2005

Last week, Tuesday evening to be precise, a client called us. It was a rushed call, the line was not that clear too but from what I heard at that time, she wanted us to create a program which is due by Friday.

Qs and I have done two database projects for this client already, so I thought it was just a simple module modification, a new report perhaps, or probably help on a PowerPoint presentation or something.

But still, in the back of my mind, I was thinking, perhaps they really want a new database program.

A database program that needs to be completed in, at the most, two days.

When the client called us again during lunch of the following day, somehow worried that we haven't arrived yet (we scheduled to visit around 3PM), I was thinking this must really not be a database program because database projects usually needs at least six months to be completed. (Well, at least in my case (some even years))

Three hours later, we found out that indeed the client wants us to create a 'simple' POS-type database program that will record the sales of their yearly three day bazaar.

It was indeed a database program.

The client did understand the situation and requested just the 'basic' modules. The things that can fit in that amount of time.

In times like this it is the 'challenge' that drives (and blinds) us usually.

We have some developed data entry engines already, and of course Visual FoxPro as a tool by our side.

Now at this point, I failed to mention that an alien activated my wisdom tooth 27 hours earlier. I was not feeling that well, so qs, my loving-wifey-who's-been-using-VFP-for-a-year-already, decided to tackle this two day project.

I on the other hand if strength permits, would do the reports.

After almost a couple of sleepless nights, data transfers here and there on our computers (we don't have that sourcevault/core-related stuff yet), at 5PM the next day, we were installing the basic modules in the client's site.

Installed. Demo-ed. User test drive and every thing went smoothly except for one child database where I forgot to set filter to !deleted().

But aside from that the test went smoothly.

The next day I decided to visit the client early to oversee things. Thank heavens, after 90 transactions, the program was running well. I even interrupted to install a minor update, observed afterwards and things were still working perfectly.

There's that joy a programmer/developer experiences when he sees his work at being used. I see buyers holding the print-outs and I'm having that same feeling I felt just like the first time a database program of mine was used in the university I worked in seven years ago.

How I wish qs was there that morning because for some reason she wasn't able to accompany me. She was scheduled to visit the next day.

Now here's the funny part.

It was around 9:30AM when I decided to go home. When I arrived, qs and her grandmother and her parents wanted to visit the bazaar. So I decided to come along.

(The client's three hectare community is just three city blocks away.)

When we arrived, I decided to stay outside while qs is savoring that 'my-database-program-is-running-running' feeling.

After 30 minutes or so, qs and her parents and grandmother were in line to pay. There were three customers before them paying.

Now take note that at this point the program never crashed yet.

Three customers completed the transactions... print went well... no error.

Qsez dad and mom paid. Zoom the printer printed nicely.

... and now it is qsez turn to pay, she handed the goods to be recorded and...

Guess what... the database program crashed for the first time.

It worked smoothly during our test drive, the client's test drive, from 7:30AM to 10AM up to the point where qs was the one paying.

The client who was also operating the database program even informed the swarming customers... 'Naglalambing ang program kasi siya ang may gawa.' (I can't translate things exactly but partially it means that the program is being affectionate to its creator... something like that.)

Three minutes later we found out that the cause was a loose printer cable connection.

Call it coincidence, call it fate, baptism by fire... (I have my own experience in my old workplace (program crashes for no obvious logical reason + customers swarming and piling up).

Call it what you want... but I strongly believe, the aliens have something to do with it.

Thoughts on TheFoxProShow 024 (Better late than never)

Thursday, November 10th, 2005

I was archiving the access logs of Pixelcatalyst.Lair and Foxpro.catalyst while The FoxPro Show 024 was playing once again in the background.

I did hint a while back that I'll be posting something TFPS024 related. The FoxPro Show 25 came out, then 26, 27, 28, 29, 30 and 31... a couple of Mondays podcasts were also released and after a month, I'm still here unable to scribble those buffered thoughts.

OzFoxRocks even went online a couple of weeks ago.

So I was thinking it was about time I 'unbuffer' those buffered thoughts which a couple of minutes ago are being electrocuted by strange toon-porn infested neurons.

There's a problem though with unbufferring a month old casing of thoughts. The mind-to-fingertips-to-keyboard coordination just won't work smoothly.

Though I remember most things discussed in the show, I would like to double check on one detail.

Now there's a difference too, when you're working, archiving, reading some parts and listening at the same time through an P850.00 (1 US dollar = P55.00) speaker... I kept on skipping the part where that detail was being discussed.

It was an insfoxpirational show, so I didn't mind listening again and again.

After the fifth replay though I noticed that ants and a couple of six legged entities were slowly swarming in.

Sixth replay and I'm seeing metal plated grasshoppers with tiny boxing gloves and soccer shoes.

Now... It was the fear of the eight-legged creatures weaving out that got me to stop the other works and concentrate on listening... and there on the 13:27 timestamp, I found what I was looking for.

I'm currently multitasking once again (I can't seem to blog if I'm not doing some other stuff, and returning to this window every now and then to continue my chain of thought (and listening to some loud Moby stuff)), so I hope I get this right.

Ken Levy was giving out the 100:1 ratio in terms of Visual Studio/Visual FoxPro's usage. Which he further places on a different perspective that based on that 100:1 stat, VS can gain in three days what VFP can sell for a year.

(That would make approximately 122:1 though, but still... we get the point.)

My first thought/reaction when I first heard this a month ago was why not re-include Visual FoxPro (without changing the VFP core) inside the Visual Studio package.

Ah there... I'm hearing the uproar of CLR purists (and yes I admit I'm not an expert at this marketing/branding stuff (besides Microsoft's licensing and pricing is not that simple to start with)).

But let's just do a little elementary math.

Approximately VFP's price is 650 dollars.

Now... Visual Studio comes with different prices and I don't have the actual statistics to show which edition/package sells better. But for the sake of this blogcussion, let's pick the Professional Edition which is around 800 dollars.

Now let's go back to that 100:1 ratio above. If VFP can sell 100 copies in 300 days, VS can sell the same number in three days.

(Let's use 300 instead of 365 since this is 'elementary math' and I will refrain from using the 'for the sake of discussion' line from here forth)

Going further VS can sell 100 * (300/3) copies in 300 days. And that is 10,000.

Now for the sake of discussion (didn't I mention that I would refrain from using that already...), let's include VFP inside VS and just jack up the price of VS to 800 + N dollars (where N is less than VFP's current price).

(I know VFP is worth MORE and if I have enough bucks I wouldn't mind buying VFP even if it's base price is more than 650. Legacy is priceless... but just FTSOD (For The Sake of Discussion)).

Now if N = 50 then, 850 * 10,000 is 8,500,000.

The additional 50 * 10,000 alone is 500,000. Much more than 650 * 100 which is equal to a 65,000.

And even if N = 10, 10 * 10,000 is still 100,000... 935,000 more than 650 * 100.

Yes I know I know... the pricing of these shrinkwrap softwares are more complicated than elementary math and there are tons of factors involved.

And for the nth time, the things posted above are FTSOD. Though there are possible benefits for both products (VS and VFP) and the community as well, if MS packs back VFP inside the Visual Studio package.

And there are disadvantages too, which are in the first place the reasons why VFP was not included inside that .NET package. (As discussed inside the Fox.wikis site, the Universal Thread forums and countless other fox sites.)

(Also notable are the advantages of shipping Visual FoxPro as an independent product.)

A clientbase of 100,000 (though I think VFP's actual client base is more than that) is still NOT negligible.

And if you can remember around 2,000 years ago, a shepherd left 99 sheep to find one missing sheep. Though the FoxPro community is far from being lost sheep, we deserve the same kind of lovin'.

Right..?

Are we really investing on the right data handling tools and formats..?

Thursday, November 3rd, 2005
Zkarkakaorooom. More like Z... k... a... r... k... a... r... m.

That is the sound of my fourth rssreader/tool conking out after months of accumulating feeds.

And it's not even overfed. Every now and then I 'safestore' the feeds into its .mht format to be stored in a directory somewhere. Yes, I do this part semi manually with the help of the ever-reliable Norton Commander designed for Windows 95.

Out of respect for their developers, I won't mention their product names.

Most of these rss-readers bonk out when they accumulate tons of data. And I do expect more from them.

This fourth one, holds a lot of important features, well the features that a pack rat like me prefers, and in fairness it did survive longer than the previous three. (Well actually more than three, but I'm only counting those tools which I used for more than three months)

And now it crashes every now and then, hangs and pretends to be seeing drunk mouth-watering aliens almost too often.

(One or a few more crashes are forgiveable, a couple more is believable especially if aliens are indeed involved, but more than that... I'll be blaming either a lame developer or a lame tool (or both))

Which gets me thinking. Are we really entrusting the storage of data, and the data format itself to the proper tools and formats?

Please don't make me mention the three letter acronym.

(OK... most of the technologies involved in this have three letter acronyms... so take your pick.)

One can always download these rss feeds, convert them to a format that can be stored inside VisualFoxPro's native database engine (or even use an SQL Server (though that would be an overkill in terms of what I really need for now))...

... use VisualFoxPro to sort and browse data and I don't believe even in running this for a year, VFP would conk out because it was overwhelmed with more information than it can process.

Unless of course, the... ok... for once, let's refrain from involving aliens.

Don't even mention that 2GB limit this time. There are tons of workarounds for that excluding the use of nanotech and parallel universes.

Can these new tools at least make themselves reliable first before masking and donning that 'the-future/the-next-big-thing' cape.

... and Beakman wonders why I try and use old technologies.

They're not old... they are reliable.

Yes... reliable.

���

Here's an offshoot of that chat I had with Beakman yesterday (Happy Trip by the way, Mark.)

WF: I'm porting some of my old VFP6/VFP8 projects to VFP9 already, Mark. Blah blah blah... and more detailed blahs.
Beakman: Is it compatible..?
WF: Dude, Visual FoxPro is 20 years backward compatible.

Darn... I did use 'dude' in that statement.