The FoxPro Show 033: Conferences and an Interview with Tamar Granor.
Thank you very much for the mention and the kind words, Andrew.
The FoxPro Show 033: Conferences and an Interview with Tamar Granor.
Thank you very much for the mention and the kind words, Andrew.
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.
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.
Restart now... restart later.
The existence of these two buttons have been talked about in countless blogs online.
Some of them even strongly believe that a good OS should not require a restart everytime an update has been done, or a new software has been installed.
(I disagree though. That's why new OSes/applications require higher and faster specs... so you can reboot faster.)
Personally I don't have anything against these two command buttons. The problem lies when they appear too often. There's no problem seeing them once after a certain installation, but having them pop up every five minutes or so is a different story.
An entirely different story.
Why not add that checkbox that says 'Do not notify me again for five Earth years.'?
I don't have problems when I'm encoding documents or spreadsheets... no problems even if it interrupts my comic babes surfin'... or when I'm coding.
I can't imagine a programmer's world with no interruptions, no phone rings, no distracting sounds, cubicles near your playing love songs or any form of interruptions.
That's a boring world. It will lead to a robotic atmosphere creating bug-less softwares. (Bug-less?! The software industry would probably mature at the age of 2 and end at the age of 5 (Bugs are what keep us alive.))
Restart now. Restart later.
It is when I am fighting swarms of alien invasions, kicking some chimeran-ceramic-coated alien butts about to initialize some wormhole coordinates and jumpgate sequences in an undisclosed sector, that I don't need those two buttons interrupting my quest to save the world.
It's my human arse that gets kicked every time I pause just to click 'Restart later.'
And these are intelligent lifeforms we are dealing with here. After a couple of interruptions, they can calculate already the amount of time in between pauses and initiate their attack process in that window.
So please, for the good of humanity... drop the timer or include that 'Do not notify me again in five Earth years' checkbox.
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.
The FoxPro developer community, albeit small, is consistently more vociferous, demanding, passionate, cohesive, and loyal than any other community of practice I have observed. The FoxPro community presents itself as a single, well-defined customer for which, compared to many other developer tools communities (e.g., VB and C#), it is relatively easy to identify and prioritize feature needs.
Here's the link to the SednaX Project. I wonder what the 'X' stands for..?
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'.
I know you missed those TestRenders in this site. This one's Teria Yuki version 2.00. Rendered in Poser 6 and PaintShop Pro 5.02.
Let's make this semi-regular... what do you think..?
FoxPro, aliens and pixelbabes.
It was also almost a year ago when I uploaded Citadel. Time flies so fast. Pretty fast for something that's abstract.
Terai Yuki 2 is her generic name. Let's name her Addrienne. What do you think, qs?
Now that's a good excuse to... well, a lot of things really.
(Thanks wraith for the link. It's about time you start your own blog.)
|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.
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.
... and one of those SUPER-HUGE SIGNS that indeed, the alien invasion is near. Too near.
(Thanks wraith for the link.)
Foxite sports a new look. It loads faster... more organized.
And the previous HTML links still work. Great job!