If you’re not into a software-related career…

Filed Under (Random.links, work.BLOG) by WildFire on 09-09-2004

I spent more than half of this Blessed Mother Mary’s day (or make that yesterday since it is already 4AM (again)), in bed… sleeping.

Slept up to 12Noon, fired up and tweaked some codes for a couple of hours, took my lunch at 3PM then went off to dream away (Some dream episodes just hunger for sequels). Woke up around 6 in the evening and wondered how come time travels so fast.

I should’ve went to the office today to work on a freon-filtered room and tinker with Fedora Core 2 in between coding, which I have just finished downloading a couple of days ago.

I have burned the .iso images last night and was able to convince qs to ‘lend’ me her ‘not-so-old’ Pentium II 166MHz IBM Aptiva computer.

That computer currently runs on Windows XP SP2 so I don’t see any reason it wouldn’t run in a Linux-powered OS.

Yup XP SP2 can run in that 166Mhz/64EDO RAM machine. Although the prior Windows XP SP1 runs faster. SP2 tends to slow down almost everything.

Stress on the ‘everything’ and not the ‘almost’.

But then of course, the comparison here does not involve trojan/spyware-infested Windows XP SP1 machines.

Anyway, I was reading Stephen Sawyer’s post on why he is pursuing a different career after spending years in software development. It makes you think of a lot of things especially if you’re into software development.

EvenMore(DeepThinking++)… if you have slept too much for one day.

If you’re not into a software development related career, what do you think you would be doing right now?

What if it needs to be a job that shouldn’t be computer-related… what would that be?

Will you survive?

Feel free to transmit your binary thoughts here and let us hear some neuron decibel. (Note: You can post as GUEST… no need to register).

Not Just Usability…

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

Here are some infotech-related warps before I’ll proceed to my late night programming related tasks.

GMane. Nope it’s not related with GMail but the idea is as slick as well… or even better. Info-overload level… stratosphere.

Joel Spolsky: It’s Not Just Usability. Indeed… one needs charm too. Software applications are not exempted to charm pre-requisites you know.

OSS torpedoed: Royal Navy will run on Windows for Warships. Giving a new dimension to the object known as the ‘Blue Screen of Death’… or is it ‘Scream’? Well… who cares there’s not much difference really.

Planet Mozilla and Internet Explorer blogs. What else can you ask for? Those are direct links to their feeds by the way.

Still don’t have an RSS Aggregator? Time to download RSSBandit which recently upgraded to v1.2.0.117.

What else do you want? How about blogs from John Cormack (the brains behind IDSoftware and Doom) and Quentin Tarantino?

It’s a fake Quentin blog though. But who cares? Even Tarantino’s publicist was impressed.

Henry Sy and Micro-ISVs

Filed Under (Random.scribbles, SoftDev (non-VFP)) by WildFire on 06-09-2004

Inspiring. (link via Beakman’s blogs)

This article talks about Henry Sy from his daughter’s point of view. Henry Sy, for those who don’t know him, is one of the most successful entrepreneurs here in our country.

He started from ‘humble beginnings’.

Her daughter in this article talks about his father’s 14 Principles which he and his family applies in the way they tackle things. These principles are not only applicable in business but also in education, software development and day to day life.

It is also good to note that Henry Sy came from China and went here to the Philippines at age 12 to seek greener pastures.

Something which is quite different these days. Now, most Filipinos are yearning to jump into the next boat of opportunity that drives them outside the bounds of this country.

But not all of us wants to jump in that ship. Some of us share the same views Herdy Yumul points out in this article. (Also a link from Beakman)

Besides, I believe the business of software development is one area our developing country could compete with the other far developed giants.

Speaking of ‘business’ and ‘software development’, I found some good links related to Micro-ISVs while reading Wesner Moise’s blog that tackles this matter.

He also gave independent and small software marketing related links such as: Shareware-Marketing.netStartUpJournal.comStartupSkills.comSoftwareMarketingResource.com and SharewarePromotions.com.

These sites include RSS feeds so my RSSBandit aggregator adds more pounds… as well as the tendency to be ‘info-overloaded’.

I am already subscribed to Eric Sink and Joel Spolsky‘s feeds which also shells out insightful software-related marketing views.

But then of course, if you’re following Microsoft’s moves keenly you’ll learn a lot of strengths and sometimes weaknesses from their visions, moves and ‘workarounds’.

Fastwrite.com Resources

Filed Under (Visual FoxPro) by WildFire on 06-09-2004

Foxpro-resource link: Fastwrite.com. Don’t forget to check the Resources and Downloads section.

How about some RSS Feeds, NeuronsBehindFastwrite.com?

VFP and SQL Server stored procedures

Filed Under (Visual FoxPro) by WildFire on 04-09-2004

Unicode characters are returned when you run SQL Server stored procedures (via KBAlertz.com)

Fox.wikis… baby.

Filed Under (Visual FoxPro) by WildFire on 03-09-2004

One of my source of information when I’m doing research is Fox.wikis.com which comes with an RSS Feed by the way. Here are some of the latest updated wikis from that site:

This snippet info-vault of mine is getting huge. I really need to finish that Snippet Organizer project of mine.

September 2004 – VFP Letter from the Editor

Filed Under (Visual FoxPro) by WildFire on 03-09-2004

Time travels too fast indeed. It was like days ago when I posted VFP’s August 2004 Newsletter. Now comes Ken Levy’s September 2004 – Letter from the Editor.

Although I claim not to belong in that pool of humans with irrational desire to upgrade to the latest software version of their choice, I am really looking forward for this ninth version.

Function RantRelease(PissitivityLevel)

Filed Under (Random.scribbles, work.BLOG) by WildFire on 02-09-2004

Function RantRelease(PissitivityLevel)

In this digital world of ours, everything is but 1 and 0.

Equate those values to Output or LackofOutput.

There is no such thing as ‘I-fsckin’-did-my-best’ + IIF(PissitivityLevel > nTolerableValue, ‘!’, ‘.’)

Hell no. ‘Losers always boast of their best’. Those are Sean Connery’s words in that 1996 movie, The Rock.

Output or nothing.

Of course we can never control all the other factors, internal and external… but we have Error Traps to at least minimize, catch, record and refrain from doing such errors ‘recursively’.

We also have events triggered during those error occurences. Our behaviours, attitudes… our knee-jerk reactions. I admit though this is one department I should work on. I get terribly annoyed everytime I see a string 0000000s in my life.

Even if these are ‘first class zeros’.

When working for and with me, that is one character you should have.

Return IIF(nFumeReleased > (PissitivityLevel/2), PeaceofMind, Rocks)

Nose hair as Data Storage

Filed Under (GFX, Random.links, work.BLOG) by WildFire on 02-09-2004

During our client visit yesterday (just hours ago really since it is still 1:11AM and I’m still up), I asked qs to setup and configure the computers inside the internet laboratory while I was finalizing some database integrity checking.

Yup… these days she’s not only involved in database discussions, data flow concepts and usability testing, she’s also doing hands on configurations.

She was even able to override that hide START.RUN feature I included in the IUMS program.

Plus she showed me where MSCONFIG was hidden. For years I was thinking this was an ‘internal command’. I didn’t even bothered looking it up.

But anyway, while she was doing this cleaning of the startup garbage entries through MSCONFIG, running the Novell client application and entering the dummy username and password I created to test the program… she found herself attempting to copy and paste some values from PC-001 thinking she could paste it on PC-002.

Weird and funny really, but this occur to me once in a while. And probably you too have been in this kind of situation.

Which makes me think, what if we can really copy and paste things to a memory within our bodies, let’s say the hair on your fingers or your nose, which can easily be retrieved (and pasted) with a short cut key interfaced with a computer.

It could even be used for storage of passwords and stuff.

Yeah I know, you’d point me to those fingerprint/voice/iris-powered technologies. But I’m talking here about the little amount of data which you can store within your body parts and not using your body parts as a the key.

Some of you would probably lecture me of how the brain should be used… but hey if Microsoft was awarded a patent which involves the usage of body as a source of power (power conduit and data bus to be precise and that was more than two months ago), why not use other parts of the body aside from the brain for little harmless amounts of data storage?

But then again… probably I just need some rest.

Spiderman, anyone?

Cathy Pountney: VFP9 Reports

Filed Under (Random.scribbles, Visual FoxPro) by WildFire on 01-09-2004

Cathy Pountney posted two VFP9 report related articles at MSDN: What’s New in the Visual FoxPro 9.0 Report Writer and Visual FoxPro 9.0 Report Writer In Action.

Since I was a kid, I have always been fascinated with illusions. Here’s one. Probably I’ll be posting more illusion-related pictures/artworks from now on.

Besides… “life is an illusion… peel one layer… another one will reveal”.

MSDN.VisualFoxpro

Filed Under (Visual FoxPro) by WildFire on 30-08-2004

MSDN . MSDN Library . Visual Tools and Languages . Visual Foxpro

Unload(TheSuckinessState)

Filed Under (Random.scribbles, work.BLOG) by WildFire on 28-08-2004

I spent most of the day talking and working with a telecom technician who works for a company that provides spanking fast DSL internet connection.

That is if ‘spanking fast’ is defined as the urge to apply a quick blow in the arse to the person next to you every time you get annoyed with the speed. But seriously it is faster than my 56K dial-up internet connection at home.

I even had the chance to ride on their service mobile and talk about life with him, talk about food, the sea and raising children. He accompanied me to a computer hardware retailer, gave me a discount after the owner allowed us to test the component first before even paying for it.

Sometimes we often hear the word ‘sucks’ being added to something. Company-001 sucks. TechBlahBlah sucks.

The world sucks.

Most often we add this word because we’re dissatisfied… or probably because seeing the negative side is inherent to our human traits.

And we do this without even considering the reasons behind such thing.

This technician (I won’t name names nor I would name the company since I don’t like saying negative stuff to a Philippine-based company even if it is already owned by a foreign entity), works with his partner (yup just the two of them) servicing 100++ (or even greater) clients covering an area which is nTechnicians(raised to the power of 32(square miles)).

The company holds N number of employees nationwide five years ago, now they’re down to N/4 and N here is a five digit number having a val(substr(alltrim(str(N)), 2, 1)) > 6. They’re even planning to trim down even more.

Indeed… it is a sucky world out there.

But there’s nothing we could do to improve things by re-stating the obvious.

One must unload(TheSuckinessState).

How?

There are tons of ways really.

But none of them includes including the word ‘sucks’ in anything that disappoints a first person’s pathetic self centered soul.

The 2038 Bug and Y10K compliancy

Filed Under (Random.scribbles) by WildFire on 27-08-2004

Got nothing else to do, buddy?

How about fretting about the arrival of the 2038 Bug… and start optimizing your programs to make them Y32768K compliant. Seriously making it Y10K compliant is enough.

Or you can HTTrack with me. The current site on my list is Microsoft.com/SQL/.

Dave Barry and the Olympic spirit

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

Dave Barry is blogging about his Olympic experiences. Funny stuff. He talks about drugs, taxi cabs in Athens, weightlifting facts and TIPIYOTKI!

Funny as always.

CodeDump-20040825.153618 (Brute Lee)

Filed Under (Visual FoxPro, work.BLOG) by WildFire on 26-08-2004

Code Dump: the time where you take a break from your programming related tasks to talk about your programming related tasks.

In PROJECT::SOPHIEAI (IUMS: Internet Usage Monitoring System), USAGE.dbf holds the records that stores the log-in/log-off information of the users of a certain internet lab/cafe at a given time and space. Along with the IDNO number of the user of course and some other fields.

Violating the second rule of normalization (or was it the third rule), I also included the TotalNumberofHoursUsed per usage and the TotalFee paid.

If you follow strictly the normalization rules, you know that you don’t have to include in the database fields that can be derived from two or more fields that are already in the database.

For example if your database has fields named Field01 and Field02 with sample values 10 and 618 respectively, you don’t need a Field03 which will store 628, the total of Field01 + Field02. Normalization rule will then call you moronic and consider you an outcast of the database programming world.

You deserve to be eaten alive by vultures.

You deserve a punishment such as watching Barney re-runs again and again.

But in some cases, yes… believe me… there are times when you have to violate and override this rule. These are the cases when speed-related principles are far more important. Plus… considering that these days hard disk space is getting cheaper and time (since Mida’s era) is constantly gold, it justifies the normalization override process.

So back to PROJECT::SOPHIEAI.

Now because of some ‘outside factors’ (again), I need a patch that would make a different database, CRED_NET.dbf, which holds the fields TimeLeft and Credit be synchronized with the data USAGE.dbf holds.

Let’s say USAGE.dbf records for student 0001 are (let’s just take the important fields for discussion):

DATE IDNO TotalTime Fee
20040812 0001 01:00:00 25.00
20040815 0001 02:00:00 50.00

Now CRED_NET on the other hand holds how much is left for a student 0001. There are instances when the values on both databases don’t synchronize. Yes the existence of these databases violate the normalization rule once again but you have read the reasons above already, right?

And can you stop reminding me about normalization rules so we can go on?

So to correct things you execute this untweaked patch (I’ll call it the ‘brute force approach’… ‘Brute’… like ‘Brute Lee’)


   select CRED_NET
   set order to CCRENAME
   do while not eof()
      cIDNO = alltrim(CRED_NET.IDNO)

      **' ···································· 
      **' SECTOR.007.BEGIN

      select USAGE
      set order to CUSAIDNO
      go TOP
      do while not eof()
         if alltrim(USAGE.IDNO) == cIDNO
            cTimeCount = TimeCalc(cTimeCount, USAGE.TIMETOTAL, 1)
            nCreditsTotal = nCreditsTotal + USAGE.FEENET
         endif
         skip
      enddo

      **' ···································· 
      **' SECTOR.007.END

      select CRED_NET
      cTimeReflect = TimeCalc(cTimeCount, '40:00:00', 2)
      nCreditsReflect = 800.00 - nCreditsTotal
 
      rlock()
         replace CRED_NET.TIMELEFT with cTimeReflect
         replace CRED_NET.CREDIT with nCreditsReflect
      unlock

      skip
   enddo

The above code works… of course, but… like any process in this world that involves brute force, it is slow.

Now replace the SECTOR.007 part of the code above with this:

   select USAGE
set order to CUSAIDNO
set filter to alltrim(USAGE.IDNO) == cIDNO
go top
do while not eof()
cTimeCount = TimeCalc(cTimeCount, USAGE.TIMETOTAL, 1)
nCreditsTotal = nCreditsTotal + USAGE.FEENET
skip
enddo

You’ll see a HUGE difference in terms of execution speed.

TimeCalc is a function by the way that adds, substracts, multiplies and divides two time variables. Something which I’ll post later. (You can find the basic/raw version inside the Microsoft Help and Support Site though),

Of course when you’re doing these kinds of patches, don’t forget the progress bars. It is a good hypnotic-mechanism for the users to develop this affinity for your software.

CodeDump-20040825.153618.End

Now back to work.

Security in Foxpro

Filed Under (Visual FoxPro) by WildFire on 26-08-2004

Foxpert: Security in FoxPro (Protecting Application and Data). With the advent of tools such as ReFox and UnFoxAll, this whitepaper is a must read. But it includes more topics aside from these decompilers mentioned.

Linus Torvalds’ Benevolent Dictatorship

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

Linus Torvalds’ Benevolent Dictatorship

I think, fundamentally, open source does tend to be more stable software. It’s the right way to do things. I compare it to science vs. witchcraft. In science, the whole system builds on people looking at other people’s results and building on top of them. In witchcraft, somebody had a small secret and guarded it — but never allowed others to really understand it and build on it.

Miscellaneous Foxpro links and AI

Filed Under (Random.links, Visual FoxPro) by WildFire on 21-08-2004

West Wind Internet Protocols 4.55 (wwIPStuff) released. The class library supports the following:

  • SMTP and POP3 Email support
  • HTTP – Access Web content from VFP
  • Advanced HTTP support
  • FTP – Transfer files
  • Low Level Socket Access
  • Dial up Networking
  • IP Address validation
  • Fast C based Conversion Routines

Along with that release, is an insightful article: Why West Wind Html Help Builder is NOT a .NET Application.

I’m days behind linking this… Ken Levy posted the August 2004 Visual Foxpro Newsletter which contains a FAQ that answers some of VisualFoxpro-related issues.

Dan Appleman started his blog. His advice for future computer science majors and RAD is not productivity posts are an early favorite of mine… especially the RAD-related one.

So let’s get real. Bad programmers write bad code. Good programmers write good code. RAD lets bad programmers write bad code faster. RAD does NOT cause good programmers to suddenly start writing bad code.

If you can remember, a couple of months ago he enumerated why he refrains from blogging. How I wish those unmovable-arse humans I convinced to blog would also have a change of mind.

While reading Wesner Moise’s blog (.NET Undocumented, one of the first blogs I subscribed to), I found out that KurzweilAI.net now has an RSS feed. I ‘HTTrack-ed’ that site before when I found some very very interesting AI-related articles.

If you are using the HTML version of that site and can’t seem to find the syndication feed link, here’s a direct link to the rss feeds.

More and more programmers who are using VisualFoxpro are coming out in the blogosphere. Here are two links that I have discovered just recently: Craig Bailey and Andrew Coates (not entirely VFP but he mentions VFP once in awhile).

I wonder if it is just me still getting used to waking up around 4AM (I usually sleep around 3AM) or my FireFox browser, that makes the OZ 2004 Speaker section scramble the names and the pictures. It works fine on the IE6 browser though.

Visual Foxpro on GotDotNet.

Here are some alternative programming fonts. Nice… thanks Vernon Labayog for that link.

Freelancin’ Risks 101

Filed Under (work.BLOG) by WildFire on 20-08-2004

Shit happens.

What a way to start a blog.

QS and I had a difficult day. Although our problems are unrelated and we’re not up against each other, still it doesn’t remove the fact that crap happens.

But let’s look at the good side of things… at least she’s blogging once again.

Although I do enjoy freelance software development very much, it doesn’t remove the fact that outside factors come in the way. These outside factors are often used to blame the programmers for every problems popping out of this world.

The user is using the program you created, sidetracked and visited a spyware/trojan-infested site, crashed the computer and spread the worm in the local network, eradicated his documents, impaired the OS which in turn hangs the program.

Guess who they’re blaming?

They blame the programmer and his Level42 idiot-proofed database application.

Of course this is just the simplest variation of certain problems a freelance developer encounters. I could go on and on enumerating them all.

Yes… ‘freelance software development’ may sound sweet to one’s ears, yet… it holds a lot of risks too.

While in a non-freelance software business, clients and some users tend to blame ‘the company’ for any other outside related bugs too, the developers have a better shield. In fact, some are even protected with seven headed salivating bulldogs guarding the programming zone.

While in worst cases, notorious (or shall we use ‘careless’ to be less harsh) programmers get fired or castrated, you seldom see them being blamed directly by users or clients. Experts would even sometimes blame the marketing department or the head for enslaving these borgs in four-sided cubicles.

You don’t see ‘the programmer Mr. Anderson coded this bug, redirect your hate mails to his email’ lines in support forums and company websites.

In some cases, it is the support telephone entities that receive these kind of ‘attacks’. Or the project heads who would professionally protect his team and defend his programmers to the last 8-bit of his blood

In the freelance world you’re on your own. You are responsible for the un-released memory-based variables you make that cause your program to crash the OS. You see unchecked bugs unfold before your eyes while you are presenting the program to your clients. You hear their problems directly. You interact with them. You feel their pain from using your ‘Duh-I-thought-I-solved-that-already’ programs.

You are responsible. No shields or bulldogs to protect you. You’re on your own.

But you do learn and grow.

Not that difficult really if the problem lies on the code or the ‘logistics’ of the program.

A lot harder when the problem lies on the users’ attitude, in the way they view computers, in the way they view life.

And a helluva-lot harder when you don’t know what really caused the problem.

Add the fact that your name is always on the line.

In the world of freelancing, if there’s one thing you have to hold dear and hold it dearly like it’s a 1024K halo-blue-ish diamond found behind the galactic borders of the Andromeda Galaxy only every 1168 lunar cycles… that would be your name… your reputation.

Yes… your reputation.

It can make you or break you.

What’s worse is when your name and reputation is on the line because of the things you don’t do. Because of the ‘outside factors’.

The blasted ‘outside factors’.

But like any other thing this world holds, it’s how you handle these things that counts.

And that too could make and break you.

But whatever happens… life goes on… and still, shit happens.

After-blog dangling references:

I’ll keep you updated on this problem and will make things less abstract once I have a full grasped of what the cause of the problem really is.