23
TEST
Filed Under (THIS.site.matters) by WildFire on 23-06-2004
And another weird test.
23
And another weird test.
08
Not FoxPro-related and almost a couple of weeks old already… but I just can’t resist: Area 51 hackers dig up trouble.
08
A snip from Jeff Julian’s Blogs:
After the show, I have a new respect for the passion of FoxPro developers. During a panel discussion, they show us .NET panelist that they have had features in their tools, that we are so excited about, for years.
The 46 Best-ever Freeware Utilities. Cephei posted this link inside the Outpost 0725 Forums.
05
Mary Jo Foley: Visual FoxPro ‘Europa’ Lives.
05
Time moves fast these days… too fast sometimes.
I remember there was this time when I was handling the SPL (Structure of Programming Languages) subject where I would constantly torture students mentally with machine problems and projects making them learn things the hard way. One of the principles behind it was considering that it is a war out there in the real world, you don’t baby students to prepare them for war, for the realities of IT-related jobs, you polish them. You arm them with weapons.
We were taught and trained this way as well.
In that university where I taught and tortured students for breakfast and lunch, I practiced this constantly for four years. Along with some classmates who worked in that school as well, we even introduced ‘pressure programming’ (which I’ll discuss more in the next blogs to come) and I pushed that pressure to another level.
But outside those ‘war rooms’ known also as computer laboratories, we were friends. Well of course, computer-related questions are still not allowed to be answered until they have researched and spent sleepless nights for seven days.
Seven days is such a short time, seven years as well.
Seven years after I first taught, one of those students is in a way teaching me means of making my programming related problems easier to solve. That student is Beakman.
Beakman introduced me to using Views, which I know exists but didn’t care much about until last night. You see I have these ‘old-school-ic’ principles. If it can’t be programmatically coded then forget about it. The hell with wizards and one click menus.
There was even a time when my codes when copied and pasted to a .prg file would run smoothly when compiled with Clipper 5.2. In fact back then, I had Clipper versions of my program that whenever I’m bored I’d make run along with a VisualFoxpro 5.0 module making them pass data as if they’re playing football inside the CPU. The VFP module was not even using timers, just old school for loops.
Talking to Avatar this morning resonated that possible need to retire parts of my old-school attitude. In fact talking to both Beakman and Avatar make me feel like I’m prehistoric already.
So armed with these Windows 2000 Server and SQL Server 2000 installers, a couple of 20GB hard disks, my old Compaq 500MHz PC, a screw driver, a cup of coke and U2‘s music playing on the background, I’m setting sail for a new quest.
But it doesn’t mean I’ll be completely leaving behind the cape of old school. There’s something extremely mind-thirst-quenching when using it.
04
This morning when I received an sms message telling me that the computers running Project:Valhalla shutdown as expected. The half of the neuron population on this brain of mine, which was already assigned to that project (Yup it’s taking that amount of space and energy already), leapt in joy. In fact it was leaping for almost five minutes that at the end of that period, I could feel some bouncing motion in my head. And for another hour, my head was nodding involuntarily as if I’m listening to a certain rock band’s beat.
So off I went to another client, having that sense of peace which was missing for almost a week because of those ‘outside factors’-induced problems plaguing Valhalla.
When I returned home, the Valhalla.client showed me this error:
Terminating thread due to a stack overflow problem. A VxD, possibly recently installed, has consumed too much stack space. Increase the setting of ‘MinSPs’ in the SYSTEM.INI or remove recently installed VxDs.
For a second or two the neuron population went nuts. Grinding sounds were heard on my head. When will all these problems end? BUGS seem to be coming and coming and I am slowly being drained.
I was slowly isolating the factors in my head, calculating the possible cause of the problem. All of them seem to point to that Shutdown WinAPI. Then I realized… I was online and there is such thing known as GOOGLE.
So I entered the error as a query and I got this result from Symantec’s support site.
You see… the culprit was Norton Antivirus 2001, but since the last thing that was done on that place was the installation of a new system from me, all computer-related problems are being blamed on Valhalla. Probably if an asteroid hits the ocean they would blame Valhalla too. What’s next, Valhalla as the cause of offshore related problems?
But this is just part of the thing they call as ‘work hazards’… or whatever. Besides as the saying goes… ‘Smooth seas do not produce skillful sailors.’
Or if we’ll do it the Master Yoda way:
Skillful sailors
Smooth seas
Produce not.
04
Visual Foxpro 9.0 Beta Download is now online… and the VFP June Newsletter from VS Data Product Manager Ken Levy as well.
03
VFP Revolution has been floating around for a week or more and this evening I was reading Craig Berntson’s opinion about it on his FoxBlog. Though his opinions may sound pessimistic to some (especially to those live/die-hard Foxpro coders out there), it is in a way a practical approach on how to view things.
I also have some thoughts about this matter since the first day I’ve read those ‘we-feel-abandoned’ type of articles in the ‘net, but up to this moment I’m still struggling to organize those thoughts.
Just recently I was talking online to a former college classmate of mine who is working on a company whose boss is requiring them to convert their VisualFoxpro systems into a VisualBasic one. My pet tiger and I cringed at hearing that news.
Anyway… if you’ll look closely at Microsoft.com’s Product Lifecycle Dates : Developer Tools Family, you’ll see that the Extended Support for Visual Foxpro 8.0 ends on the 31st of March 2010 and probably VFP9 which will be released late this year will have three to four more years… probably around 2014, and that’s ten years from now.
Ten years is such a long time in the world of computers and the internet era. With that span of time you can still develop countless database-driven systems that will last five times that span of time.
Hmm… should VisualFoxpro developers worry about the operating systems and platforms more..?
Just a part of the random thoughts I have on this matter that I’m still trying to organize.
03
I’m on a client’s lair updating and monitoring VALHALLA. The vibrations are good.
… and the food as well.
03
Backups… backups… backups…
02
DotNetRocks! TechEd 2004 episode now ready for download.
02
This is the second straight night that I was talking to a client that monitors Project: Valhalla. I must admit that I have overlooked some parts of the system but most I have fixed already waiting deployment and installation on my next visit. The auto-download and update utility is still in conception so I have to guide my client to do things through online instant messaging.
Go to the Desktop. Right click on the Network Neighborhood icon. Find the computer labeled as ShyMonster. No not that one… the one with the green icon that shows Elvis’ face. Find the shared folder. Enter this password. Right click. Map network drive. Pound the keys. Pound the monitor. Grab anything you can grab. Test force. Test gravity… and so on.
I think I’m grumbling too much at night that my little kid’s sleeping habits are getting affected too. He’s awake up to two in the morning watching Finding Nemo or Monsters Inc or Shrek for the Nth time. Yup and I’m already able to talk along with the movie while coding. And this is showing on some of my variables: cSquishy, cNemo, nBruceTeeth, lMikeWachowski and even procedure names: CheckShrek().
This little kid of mine has the makings of a programmer already… I’m almost convinced until he starts to growl and howl that I’m beginning to picture out what IDE or ‘x-developer-environment’ in the future should be developed in order to accommodate sounds such as this.
But back to Valhalla, most problems really are ‘outside factors’. Internet connection… mis-configured OSes. Unchecked daylight saving time features. Users that seem to be suffering from short term memory loss or the password that seems to like to forget their users. Printers that barf out things… name it, I think these things are popping out everywhere.
Just earlier tonight, the client told me that the Report Preview is ‘good’, it shows the data but when it prints things, it prints nothing. Data is showed in the preview but when the print button is clicked, the printed sheet shows nothing but headers. Weird for it was working fine just yesterday. In fact it was just working this morning. So I asked her to send the database to me, I tested it here at home and things are fine on my unit. Weird now becomes Weird++.
I tried deleting some ‘suspected records’ and some ‘fall guy records’ and sent it back to her and still the problem exists. But of course I have to guide her once again from the backing up of databases, copy-and-pasting things and so on. As a programmer you know already how frustrating it is to wait for the results. Once a mind is in motion, the mind gets pissed if the motion is delayed by an outside force. That’s Newton’s law.
Yesterday I was beginning to wonder if it is WinAPI’s way of saying: ‘You think you have conquered us already eh? Dodge this! And this!’
And I’m like… ‘Whoa… Hoo…’ Ah wait that’s FindingNemo’s Crash dude DialogBox already.
So I created a temporary patch that exports the database to an Excel sheet for an ‘easier’ way of printing out this time and just when I was about to ask her if she had printed out the file already… her online presence disappeared.
Only to reappear minutes later telling me that Valhalla’s shutdown procedure booted her out. This was followed by a slight panic because data won’t show in the preview part anymore when I realized that it was twelve midnight already and things were filtered out by date causing the filtering out of yesterday’s data.
Good thing changing dates is not that difficult. But since I added an algorithm that checks inconsistencies in dates and interprets it as a user trying to adjust the time to lessen his/her billing so he/she can save some money to buy some shoes, things get complicated once again.
This was the part where momentarily I was wishing I could just Alt+Ctrl+Del the client and start things all over tomorrow. But of course I was not trained that way. I was trained to do the axe kick + bat + flying dragon approach. So I’m saving all of these ‘energies’ for my next visit.
And just I was about to wrap things up for the night, a five minute block-out occurred.
31
I was reviewing this a while ago: Universal Thread Magazine April 2003. Plus here are some useful Visual Foxpro KB Articles at KBAlertz.com
\
31
Something yummy to start your week: Concept Art Productions for the Matrix Reloaded/Revolutions.
30
This is the Windows 98SE-compatible snippet I use for shutting down the CPU.
procedure SYSTEMSHUTDOWN
#define EWX_LOGOFF 0
#define EWX_SHUTDOWN 1
#define EWX_REBOOT 2
#define EWX_FORCE 4
#define EWX_POWEROFF 8
#define EWX_FORCEIFHUNG 16
declare integer ExitWindows IN user32;
����������integer dwReserved, integer uReturnCode
declare integer ExitWindowsEx IN user32;
����������integer uFlags, integer dwReserved‘ = ExitWindowsEx(EWX_LOGOFF, 0)
‘ = ExitWindowsEx(EWX_REBOOT, 0)
= ExitWindowsEX(EWX_SHUTDOWN, 0)EndProc
Note: The html CGIs i’m using auto eliminates * so i’m replacing it with ‘.
There’s a better one which can shutdown Windows XP and Windows 2000 and do a lot more ‘cleaning up’ procedures. I’ll post that one later once I figure out to whom I can give credits for that code.
One of the issues yesterday involves this ‘automatic’ shutting down of computers at a given time. There were no problems in the client computers but in the server module, which uses a mapped/shared virtually-created-drive approach, it shows this ‘there are n users connecting to this computer… shutting down will make them whine and howl…’ type of error. For a moment there which lasted for 10 minutes or even more, I was formulating solutions and knocking once again on the doors of WinAPI, hoping that there’s a way I could somehow supress that confirmation.
Only to realize that I can make things easier if I set a different shutdown time for the server and make it do the shutdown process after all the client PCs are knocked out.
Yeah… sometimes the best solution to a problem are those little simple things we often overlook.
29
A Saturday of a week of client visits… this day is. For most of my life Saturdays were created to quench my laziness… dreaming about being a knight or a magician in the medieval era fighting fierce three headed toxic-breathing dragons using three inch USB switchblades, a laser light as my sword and/or mind control-related powers.
This or the other 1001 dream variations where I came out an unscathed hero at the end of the day, was always the way lazy Saturdays were spent.
Not today.
There were no knights… no swords nor daydreams, just CDRs, keyboards and codes.
Although I bring a backup of my Microsoft Visual Foxpro installer almost every client visit, I seldom end up using it on a client site. This day was different. I spent most of the time re-configuring things and coding at site which I haven’t done since I started ‘serious freelancing’. I often test things and think of possible and weird scenarios a day or two before each visit. Plan Bs and Plan Cs are formulated in advance.
I guess I underestimated converting an existing project to a simpler one. It was too late when I realized that it is easier to ‘complicate’ simple programs than making a complicated program simple. I’m talking about Project:Valhalla, a trimmed down version of Project:Sophieia, both Internet Usage Monitoring Systems targeted for Internet Cafes and Computer Laboratories.
On site, the first challenge (or problem) was API related. The codes I made were targeted for Windows XP and Windows 2000. Though I tested it with Windows ME before and was quite sure it was working fine then, it seems Windows 98SE merely logs out the user instead of shutting down the computer. Good thing the first module I made which contains Windows 98SE/ME-compatible codes was included in the CD I brought along. The newer version of that shutdown I made was supposed to work with older versions of Windows but I guess there’s really a big difference in theory and once it’s working ‘out there’ already.
The next problem is server related. Though a server in this case, is not present in the client’s place. There is however a ‘pseudo-server’ powered by Windows 98SE (again) but this makes things difficult for me. I was left with no option but to share a folder and map things on the client computers. Problem is… the settings inside the SETUP.dbf, my main configuration database, would be inconsistent already with VALHALLA’s client modules and its main server module (directory settings and others). The pseudo-server was not partitioned too, so, I cannot merely place the program in Drive D: and map the shared folder as drive D. Had this been Windows XP, drive letters could be changed, though I’m not sure if it can change the primary boot drive too.
Running the program on a read-only CD-ROM is also out of the pool of possible solutions since it needs to write things.
Good thing I brought along an old compiled Essentials CD I compiled a year ago which contains the PowerPack TweakNow 2003 application which can create virtual drives. TweakNow saved the day in terms of that problem.
After a free lunch (which these days have been a sort of silent unspoken agreement between me and my clients), there were some minor-‘out-of-nowhere’ errors too… certain variables that won’t work on the mapped directory but works fine on the un-mapped one, a variable that refuses to update and sticks with its initial value unless you issue another select DBName . Go Top . cInt = DBName.Field_001 lines of code, a stubborn CD-ROM that ‘buffs-out’ which I believe was the source of a heated argument between two IT-related technicians from different companies that visited that place yesterday (another story for now), power-supply related blues, a number of time-field related issues and countless accidental reboots. I also made a couple of on-the-fly reports in that place.
Around 04:30PM when every important issue was treated, test files purged, all other utilities installed, and another batch of snacks, we decided to call it a day.
Walking out of the client’s premises, somehow I have this victorious feeling just like those medieval knights battling three-headed dragons on my past lazy Saturday daydreams.
I guess I’m just living out some dreams after all.
27
And behold the Great Avatar’s Digital Kitchen.
27
Ex.links
� DotNetNuke
� Visual Studio 2005 Team System
… and RollingStone.com reviews Shrek 2.
26
Since that day of the elections, which was 15 days ago, block outs occur almost regularly. It maybe caused by two things. One is storm (and/or weather related factors), the other is election-related ‘magic tricks’. ‘Magic tricks’ that are too advanced that creating a computer algorithm for it is two eras away from it.
This was unlike the previous block-outs which lasts only for five to fifteen minutes, not that long unless it’s in the middle of the night and out of silence, your little kid wakes up and howls non-stop. I tell you 10 seconds of child howls and cries is that powerful that even the US military scientists are planning to include this in their ‘artillery of the future’.
Back to the block out, since it was longer and we don’t have any generators here, and even if one exists, I don’t think I can code with that grinding sound even a few floors away from me, I decided to stay at the roof top sitting in the bench under the one-o’clock afternoon sun.
And I remembered the last time I was on a bench under the heat of the sun… that was 10 years ago perhaps when I was still in high school. Those days when, we, with our friends do nothing but park our butts in that bench, play basketball afterwards, talk about mindless things that I can’t even remember after an hour, punch and kick one another, play basketball again and play basketball again three blocks away.
Almost half of the time we emerge winners of the game. The other half we test if we are faster than a stone hurled towards us while the others test sines, cosines and projectiles, if we choose not to pay the bets. All of the time though, we are lucky to be alive to tell the tale. Sometimes even brave enough to return to that place where they are already posting in chalks the amount of debts we have to pay.
Ah… life was simple then. I don’t have to worry about SQLs, DBFs and corrupted CDX files. There were no compile errors. No brain-damaging API calls, no network-locking problems and such… only adventures, mischief and pure fun.
Memories like these make you question your direction in life. Why do I have to do this? Why do I have to do that? Why do I have to stay and work up to the wee hours of the morning? What for..? Why..? Why can’t I just bark and park my arse and play ball all day?
Of course I have answers to these questions but sometimes I often think if these answers are really that valid. And even if they are, another array of questions always emerge.