Monday, August 13, 2007

Software Quality -- NOT!

I run the Symantec "One Button Checkup" on a regular automatic schedule. Every time it says: "Program Integrity Scan: 12 errors fixed". Run it again and it says the same thing.

Today a program was complaining that there was no medium in the DVD/CD drive. The program was OBC.exe. The same program. Why would it care that I had no CD or DVD mounted? Just trying to annoy me.

In all fairness, System Mechanic 7, tells me that it has 4 security items that it can fix. It churns away and says I still have 4 security items that it can fix. It never gives a clue as to what it thinks the problems are. Grand.

Meanwhile, in developing software using Microsoft Access, I find that I need to hire an assistant to click the Save icon every time I add a control to a form, or try dragging a group of controls around the screen. Access panics with a lame "Microsoft Access has encountered a problem
and needs to close". I can get this message with good certainty by asking Access to Compact and Repair my database file. It's interesting that the message makes it sound as though it is doing you a favor by pointing out an error. It's not my error it has encountered.

"Microsoft Access has encountered a problem and needs to close" happens so often with any of the Office programs and even the older Visual Studio 6 (circa 1998), that I have a Google alert set up to let me know if others are tortured by this. Yes, others are, as a matter of fact. There are no published work-arounds that I've found. It's pretty clear that Microsoft doesn't have any intention of fixing the problems. They expect you to upgrade to the latest ver$ion. The latest Google alert was from somebody who had written an applicaton in Access 2003 and tried running a report under Access 2007. Same error message. Microsoft's "solution" to the problem was utter nonsense and not really practical. It would have been more helpful for them to just say, "Go away, sucker."

Software Quality is not a goal of the now-huge software companies. Open source software, freeware, and shareware not only is much more reliable, but the developer will appreciate knowing about problems so they can fix them. Microsoft wants you to pay for support.

Tuesday, June 26, 2007

The Most Stupid Helper Imaginable

I am connecting to a client system using remote desktop through my 7.1Mbps DSL connection. For whatever reason, it's a slow connection today. I'm doing database table modification and with the sluggish performance, all the idiotic things about Windows and Access become even more aggravating.

I open a query designer window and the table I've selected appears as a postage stamp on a queen-sized bed. Sure, how much trouble is it to resize it? Every single time? Year after year? The query designer "cleverly" leaves 3/4ths of the screen for you to do "OR" conditions, which I rarely use. So I not only have to resize each and every table I'm using in a join, both horizontally and vertically, but first I have to take that 3/4ths of the screen and make it 1/5th. Again and again. Year after year.

So then I'm picking fields for my query. Can I just type "tblABC"? Oh, no! After 6 keystrokes, it's looking for tables that start with "C". Can I drag a field from a table to be used as update/append information for the target table? Don't be silly!

If I happen to hit the "X" for Access instead of the "X" for the current window, Access merrily shuts down, without asking. This seems inconsistent with an operating system that has a recycle bin, and yet, always asks if you're sure if you want to delete a file!

I am always open to suggestions from users to make my software easier for them to use. If they find a defect, or something not quite thought out, I'm embarrassed and motivated to fix the bug immediately. But then, I'm not a monopoly. Reminded of Earnestine (Lilly Tomlin) the operator on Laugh In: "We're the phone company. We don't care. We don't have to."

Wednesday, June 20, 2007

Good Stuff

Experiences that don't kill you make you stronger.

I am a professional database applications developer using Access 2003. I use it instead of any number of other development platforms for several reasons:

1. I belong to one of the finest user groups for developers: The Portland Access User Group (PAUG -- www.paug.com). This group consists not of magicians who show what they can do but won't reveal secrets. This is a group of professionals who have made discoveries and share them with their peers. We learn from each other!

2. Access 2003, not being the latest product, has a wealth of technical books available. They are used books, often in brand-new condition for a fraction of the original price. www.amazon.com

3. The Internet! Google for an error message or a technical topic, and you are sure to get some useful information. There is also Usenet (google groups). I find answers on the groups are often not well thought out. When somebody publishes a web page, they generally put a lot more thought into it than when they post an answer on a news group. That said, I have a Google watch for the phrase
"Access has encountered a problem". If a question or comment is posted that has this phrase, I get an email and can go investigate. Seems like a great idea to me!

4. Desktop search! Today I was adding a "build shortcut" button to my Access Tools program. Hmmm... how do you build a shortcut (.lnk)? I remembered that I had played around with a vbscript program to do such a thing about 5 years ago. I fired up my X1 desktop search program, typed in "create shortcut" and found a version of this that I had converted to Visual Studio VB6. Splendid!

I have been driven to distraction by things in Microsoft Access 2003 that don't work right. This necessity was the mother of invention of my Access Tools program. It lets me compact and repair a selected file reliably (every single time), to replace the built-in command that fails much of the time. I read the application version number and date and have buttons to date stamp it with today's date and to increment the version number. It's very awkward to decompile the VBA in Access. So I have a button to do that.

So, right-click on an .mdb or .mde and select Tools and you can do things to the file easily that are difficult to do "The Microsoft Way".

Good stuff!

Saturday, May 19, 2007

Why?

Let's say you've got a nice ASCII file with numbers and dates separated by a tab character. So you want to import it into Access for analysis. Good luck!

The "problem" is that dates are formatted in the style 08-Aug-99, which is truly unambiguous. But Access, for some reason, barfs on it. It doesn't give you the opportunity to tell it the data type. Nooooo. It's too smart for that. It just errors out.

Yes, I knew it would. I just forgot.

...

In the June 5, 2007 PC Magazine, they report that the "flash over substance" animated cursor can be exploited by viruses. This shows up in Microsoft Office, has been fixed in pre-Office 2007 versions, but not in Office 2007.

"The vulnerability was first revealed to Microsoft in December 2006 by research and consulting firm Determina. It is related to a flaw that Microsoft fixed in early 2005, and the fact that the earlier flaw was corrected without fixing this newer one reflects badly on Microsoft's analysis of the code."

...

How can Microsoft get away with such hideous behavior in their software?

Monday, May 14, 2007

No Regard For The Past

Read in Tech Republic today: "Windows Vista's Backup and Restore tools are completely different from the Backup program that came with Windows XP and so the backup files are incompatible."

What else is new? Even back before Windows, Microsoft changed their backup from version to version of DOS, ignoring compatibility -- making your backups from previous versions useless.

I get the impression that Microsoft is only interested in new customers and ignores loyal customers.

Because Acronis True Image supports backups from all nine previous versions, I use and recommend it.

How stupid is it to have a backup program that cannot read your backup information?

How about substance over flash? Please.

Friday, May 11, 2007

Good Grief

What in the world would we do without Google?

Long ago I wrote a Word macro that is run when I click on an icon "Edit Clipboard". The idea is that you copy onto the clipboard text that you want to process in Word. Word is started up and the clipboard is pasted into a new document. A form with a "Done?" button appears. When you are done editing, if you click on Done, it copies the contents of the document back onto the clipboard and closes Word.

I used it today and got an annoying error message: "...Create Adobe PDF Monitor..." not running. I googled for this message and found the answer. Microsoft Office startups (including .DOT files) are scattered around. The errant .DOT was not where I looked first. Once found, I flushed it. The suggestion had me looking at the projects loaded into Word VBE when I open Word. There were projects from 8 years ago! Searching for all .DOT files on my C: drive, I found all of the old .DOTs that were no longer being used. Once they were deleted, they disappeared from the list of projects in Word VBE.

... On the subject of PDFs (Adobe Acrobat files) ...
The Adobe PDF reader has gotten larger and larger over time. I've heard that it is a target for viruses now. It loads slowly and frequently gets in your face about updating this or that. I have replaced it with FoxIt reader, keeping Adobe Acrobat Reader to be used only by "open with".

My old version of Adobe Acrobar writer would balk at creating a PDF from a PDF. I replaced it with pdfFactory, which is quick and flexible.

Examples:

1. I have purchased 72 issues of Access Advisor magazine. Each issue is manifested as a 75-page PDF file. Most articles are interrupted by one or more (usually more) full-page advertisements. It is so annoying when viewing in a PDF viewer or printing. Those ads waste a lot of ink or toner. Now I can find an article to print, print pages until an ad appears, skip over the ad pages, and continue on. The pages are appended into a new PDF. Wonderful!

2. I receive excellent investment articles each day from Morningstar.com. To save the article without the menus and extraneous information, I use Firefox and the extension Nuke Anything Enhanced. I simply drag across parts of the screen that I don't want to save and right-click on Remove Selection. Or right click on an object and chose Remove This Object. When finished, I simply use pdfFactory to save the article as a PDF. (This produces a more satisfactory result than trying to paste into Word.)

...

Microsoft has shown contempt for power users by dumbing down Office 2007. Where's the File, Edit, View ... Help menu? Gone! The ribbon is great for newbies. But respect those that have used Word and Excel since DOS days! I ran my commercial application (developed in Access 2003) in Access 2007 and it ran, but a lot of the screen was occupied by menus that I do not need or want. It appears that Microsoft is young thinking -- "It's all about me."

...

SQL Server Express 2005 and Virtual PC 2007, on the other hand, are quite wonderful. Especially when you consider the price: $0.00.

...

Last weekend was spent nerding out at the annual PAUG Database Developer Conference. It was excellent! Alison Balter, writer of 14 technical books, was one of the featured speakers. She mentioned that she would not use Vista if her job didn't require it. Her laptop blue-screened twice on a single plane ride from California to Oregon.

Makes you appreciate XP!



Saturday, April 14, 2007

What's So Good?

Microsoft Access
It's been around since the early 90's. My, how it's grown!

As a part of Microsoft Office, it is admittedly the strange sibling. With Word or Excel, you can jump right in and start typing. Not so fast with Access. The latest version, Access 2007 will change some of that. In some ways, that's good. In other ways, it seems to be dumbed down and doesn't take into account all the development that has been done in previous versions. We shall see.

I have used Access versions 1 and 2 back before Windows 95 was released. I missed out on Access 95, which I hear was quite bad. I did some work with Access 97 then moved to Access 2000 about 5 years ago. Almost immediately I jumped to Access 2003. There have been trade-offs. As you go to later and later versions, you get a prettier face, but possibly less reliability.

Access 2003 is quite temperamental in the development environment, but -- in my experience -- works splendidly in a production environment. Over time I am mapping out the mine field and know to expect development crashes ("Microsoft is sorry but you lost your work.") I've also written auxiliary software to help me repair a project that is starting to get infected, and to backup each precious new increment of development. This gives me a safety net so I can forge ahead, knowing that there are traps out there and to play it safe.

Access lets you design tables to hold data, forms to let users enter/observe data on their screen, reports, and Visual Basic for Applications (VBA*) modules to hold very powerful program code to tie everything together. With a few hours of training you can write simple applications. If you use the built-in wizards, you will have some of the worst-written VBA code possible. Wizard-generated forms will have time bombs built in. But, if you are lucky enough to have a first-rate user group and selection of Access books, you will learn the best practices. These practices are quite elegant, so they are more of a pleasure to use than a pain.

In the spring of 2004, I gave a 2-hour talk at the PAUG (Portland Access User Group) Developer's Conference entitled: "Working Outside The Box: Extending Access". I talked about all the wonderful ways of adding power to an already-powerful system.

The following year I gave another similar talk that included the basics of the first talk but included some new example applications and discussed "lessons learned".

Last year I gave a talk about the dark side of Access: with its wrong-headed defaults. It included how to right the wrongs.

The conclusion of these talks are this: Access by itself is good to great. Screen design tools are fair -- could be much better. Report design tools are excellent. Table design is OK but could be better. Visual Basic modules are excellent. Default settings and wizard designs are pretty bad but predictable. My talks cataloged what you need to change. Extending Access? How? You can, using the power of VBA, Win32API, and external libraries, extend Access in a very powerful way. You can run other programs from Access, including sending data via remote control to Word or Excel. You can show a live web page from within one of your screens. You email reports with no intervention. You can extend the excellent command set of VBA by loading the File System Object.

Because Access is a heaven and hell product, you can learn to deal with the hellish parts and build elegant relational database solutions. The solution can start out as a single-user database and be unscaled to a robust multi-user system (that can use M.S. Jet, M.S. SQL Server, MySQL, or Oracle backends). Flexible!

Knowing where the mines are in the minefield gives me a competitive advantage over someone who doesn't have the time or the network of developers to move up the learning curve.

All things considered, I can't complain.


*VBA = Visual Basic for Applications, which is nearly identical to the Visual Studio component Visual Basic 6, introduced 9 years ago. By the turn of the decade, century, millennium, it was the most popular programming language in the known universe. It reads like English and is, I think, quite adequate to solve many problems.

SQL - SQL is a database language that Access uses. Other database products use variations of this language. I find it quite powerful in letting you select, sort, group, total, and modify data.

PAUG = Portland Access User Group. http://www.paug.com

Monday, March 26, 2007

I Hope I Broke The Code

My intention is not to break VBA code. It is to break the "code" of how to keep Access from crashing in the development process.

One of the most sickening things in life is when you think you have a handle on your problems, only to have Reality pop up its ugly head and show you that you were wrong. The problem still exists. You were only kidding yourself.

Doing application development with Access 2003 requires you to break the code. The code is all the nonsense you need to do in order to go beyond the most basic aspects of Access.

There are many things about Access that get in the way of generating a polished application. If you care to "correct" design funnies (not ha-ha) in Access, you have to write a lot of VBA code. A considerable number of settings in Access will cause you grief. You have the added tension of making sure all of those settings are corrected.

People get upset when their favorite sports team gets picked on by referees. Your team seems to be playing by the rules but is being penalized anyway.

You spend years figuring out best practices only to find that Access rudely plays by different rules and destroys hours of work. So a developer adds to logical rules of best practices, a stupid list of "must-do's" to keep the product from crashing.

The successful Access developer knows just how to shake the chicken bones over the PC.

I have collected a list of counter-intuitive steps that one must take to keep the badness away. It seems to me that if anybody at Microsoft cared about Access developers, they would -- at best, fix bugs; at least, build in the chicken bones.

It seems ridiculous to me that in order to escape the evil "Microsoft is sorry" message, you must take time to save early and often, use a non-Microsoft compactor, use a hyper-awkward /decompile feature, and every so often move all objects to a new .mdb file.

How could Microsoft take on some of this nonsense?

1. They could have a much more intelligent backup command. You need to save multiple copies, not just one.

2. The built-in compact/repair command is absolutely brain-dead and stops you in your tracks with an error message that reflects poor design on their part -- not your part.

3. Why isn't decompile built into Access. Sure, you can start Access from the command line with a /decompile switch. This isn't DOS. Windows doesn't make that an easy thing to do.

4. Microsoft cheerfully tells you that if you get in trouble, merely copy your objects to a new .mdb. OK, let's say you have a corrupted form. It will not copy across and will not tell you that it did not. Sure, you can count objects. You have to count because it doesn't give you a total number of objects. Too hard, I guess. If an object did not make it across, then it's defective. Now what? They tell you to "simply" get one from a backup. Yeah, sure. As if. If you use Access to select all available objects and copy them from old to new, you really don't have a complete copy. What about database relationships? What about references? What about database properties?

With computers I expect some sort of automation. Yes, of course, I can manually take care of all these details in a tedious process of making sure everything is copied. But if Microsoft provided tools to do this for us, we wouldn't have to invent the tools over and over again.

I have written these tools that should have been built in:

1. Archiver - copies the .mdb to a compressed folder that is stamped with the filename, date and time.

2. Compactor - uses a single command to compact and repair the database. The built-in compact/repair fails much too often. My program never fails.

3. Decompile - this is a tricky context menu item (another 1-line command) that uses Access to decompile the VBA in a given .mdb. It would be nice to have this as a built-in command that would then recompile the code. But no.

4. Rebuild - This involves copying all objects, one at a time, from old .mdb to new .mdb. Then the references and properties are copied across. This consists of about 50 lines of VBA code. If any object fails to copy, you are informed. This copy process works (at least for me) much better than SaveAsText, LoadFromText. (Notice the unparallel naming convention?) LoadFromText can render your target database useless. It's quite frightening unless you use the built-in "backup". Yeah, right.

...

In going through my notes today about what can cause problems in an Access .mdb, I found that unused code can be a problem. Of course, there is no way that I know of, other than brute force, to determine what code has been orphaned.

I also found that it's a no-no to copy a control to the clipboard and then paste it back into a form or report. I guess I'll have to take my chance on that one. If I can't do that, then I'm really crippled.

...

Book of the day: "Fixing Access Annoyances" (O'Reilly).

...

Quote of the day: "Good grief." -- Charlie Brown

Saturday, March 24, 2007

Hope

After beating my brains out over Access crashing/burning without letting me save my design work, I tried a very general Usenet group search (but specifically for Microsoft Access) for the dreaded "Microsoft is sorry" error message. I was able to verify that all Windows XP and Access 2003 and Jet 4.0 are all up to date and that none of the PC-specific suggestions were causing my problems. It kept coming back to the suggestion that my database file (.mdb) [actually it's everything but the database] probably has cancer lurking within.

I've spent time writing programs to compact/repair outside of Access, and to copy all objects, references, and properties into a new .mdb. But it seems something was missing. It appears that I need to decompile when things start going funny. (Not ha-ha funny.) I had added a shortcut that would let me right-click on an .mdb file and chose decompile to decompile that .mdb, but it stopped working when I upgraded to Access 2003. I rewrote that right-click command from scratch and it worked!

Now I have these features available as menu items when I right-click on an .mdb file in Windows Explorer:

Decompile
Compact and Repair*
Archive

If those won't make the .mdb crash less often, then I run another program which copies everything to a new .mdb and I begin again.

The development process now involves saving whatever I'm working on several times a minute. Every time I make enough changes that I'd hate to do them again, I exit out and compact and repair then archive.

This nonsense has let me get back to rapid development.

Many thanks to Geoff Hollander and Steve Titus of PAUG for listening to my problems and not replying, "It must have been something you did." Thanks also the the World Wide Web and books on Access annoyances.

= )

*Yes, I know there is a built-in menu item under Tools to do this. Unfortunately, it does such a poor job, I use my program, which is essentially a one-line command supported by quite a bit of code to set things up.

Monday, March 19, 2007

Fellow Curmudgeons

Joy: http://www.crankygeeks.com/

I am not alone. John C. Dvorak is my favorite writer. When I get a PC Magazine, I go to his articles first. He is a refreshing change!

Re: "Outlook = Look Out!"

Re: Outlook = Look Out http://duanepdx.blogspot.com/2007/03/outlook-look-out.html

What would happen if you wrote an application program that was so good that it would give the user everything they needed. When you released new versions the users would not be interested in paying again (as they have in the past, again, and again, and again...). Most of these users have automatic software updates and so you might sneak in a "security update" that breaks the product and recommends that you jump back into the pay and pay again cycle. Just a thought.

Is Windows XP good enough that people with think twice before buying a new computer to run Vista? Will "security updates" sabotage XP installations?
Just wondering...

Thursday, March 15, 2007

Outlook = "Look Out!"

Ever put your trust in Outlook to do as it's told and send emails when you click the SEND button? Sometimes it doesn't work. You might find out when you shut down your computer that "there are messages in your outbox". It asks if you are sure you want to shut down but you really have no choice because before you can respond, Windows shuts down.

When Outlook won't send messages, I've snooped around looking at the task manager and have seen two instances of Outlook running. Only one is visible on the screen or in the taskbar. I suppose each is waiting for the other to act in a responsible way. So I bought a $5 shareware add-in program called Outlook Shutdown. If you shut down Outlook, it shuts down it's hidden cousins also.

When I'm going to be away from my computer for awhile, I use ZoneAlarm's Internet Lock to keep vandals away. If Outlook is running, it will never ever be able to send or receive an email again. It's that stupid! I have to shut it down and then reload it.

On Monday something very suspicious happened. Outlook on two computers got a "Microsoft is sorry" screen and I kept clicking until I got to what appears to be a heavy-handed attempt by Microsoft to get you to upgrade:

Monday, March 12, 2007

RAD = Rapid Application Development

RAD, man!

Rapid Application Develpment means you can fly from idea to reality. Yeah, right.

I spend entirely too much of my development day being harassed by Microsoft products that are incredibly STUPID. A person with an IQ of 40 would not have to be told the same thing over and over and over...

Windows consistently gets in the way and offers up defaults that are bone-headed and wrong. It's not bad the first time you correct it, but it doesn't remember the correction even one time. How about a little artificial intelligence rather that an Aero interface?

The web has been terrific in translating error messages into actions to be taken to fix the problem. But when the error message is " has encountered a problem and needs to close" is so general that it could mean anything, you can't get any relief. What "has encountered a problem and needs to close" means is this: poor software design.

Google for that phrase and you will find hits for these products: Windows printer spooler, Internet Explorer, Windows Media Player, Microsoft Messenger, Microsoft Front Page, Access (!), Microsoft Word, and more. The "solutions" are dubious. For Access, the theme is "you have a corrupted database... simply do this..." Yeah, right! I do NOT have a corrupted database and to do what is suggested would compromise my work.

Lately, a well-crafted database file running under Access produces the error just by loading it and then waiting for a while. Just when you are enjoying your experience (XP), the horrid message comes up. "Microsoft is sorry." By the way, "XP" used to stand for Extreme Programming before Microsoft bastardized the name.

Imagine taking a road trip. You get several miles down the road and a light comes on on the dash that says, "Sorry, but you need to go back home and start again."

Good grief.

Saturday, March 10, 2007

Follow Us -- The Wow Begins Now

In a recent version of Forbes magazine, Steven Manes, reports on Vista and Office 2007. It had me laughing and crying at the same time.

http://members.forbes.com/global/2007/0312/038.html
http://members.forbes.com/global/2007/0312/038a.html

Fer instance:

Vista
"Vista is at best mildly annoying and at worst makes you want to rush to Redmond, Wash. and rip somebody's liver out."

"If I can find plenty of problems in a matter of hours, why can't Microsoft? Most likely answer: It did -- and it doesn't care."

"As usual, things Microsoft was touting last time have mysteriously gone away in favor of putative new wonders."

""As Bill Gates winds down his roles at Microsoft, Windows Vista may be the chief software architect's swan song. It's a shame his legacy is something so utterly unimaginative, internally discordant and woefully out of tune."

Office 2K7
"Users: Adapt or die. Or stick with older versions that do most of what this one does and work the way they taught you to."

(Remarks about how functionality has been lost to flash and nonsense.)

Well said!

Friday, March 2, 2007

Think You're Pretty Good At Using Photoshop?

http://www.flickr.com/photos/mattijn/sets/311250/

Click "view as slideshow".

Interview: http://flickrz.fotografisch.at/topics/mattijn/main

All of his work is done with a digital camera and Photoshop 7. His Photoshop skills are first-rate, but they pale to his imagination and creativity. Bravo to Mattijn, a Flickr friend.

The Unspeakable Law

"The Unspeakable Law"
(one of Murphy's Laws)

If it's good, it goes away.
If it's bad, it happens.

After being so impressed with USB2 and how a USB2 socket is analogous to a power socket -- just plug in and it works.

I've got lots of USB2 sockets. Today I found that none of them worked. I didn't realize that all of them were broken because my mouse was working. Oops. It's got a USB-PS2 adaptor.

After trying the usual tricks, I came up in Safe Mode and looked at the Device Manager for USB. It showed nothing wrong. But, then again, it showed a lot of duplication. So I threw caution to the wind and deleted duplicates. When I rebooted, everything was beautiful again.

In troubleshooting, crawling around on the floor, I noticed that the USB cables are mostly nondescript black. So I decided to use my Dymo label maker and label the plugs. Of course, the first label came out on my photo printer, even though that isn't an option of the Dymo program. I turned off the photo printer and tried again. No label. I had a choice of printers: Dymo and Dymo (copy). I tried the other one and it worked!

When you go to the bother to label cables, sometimes you make some decisions about what gets plugged in where. For some reason, I was one socket short on the back side of my PC. So I added a USB2 hub for the slower stuff. Now I have 6 free sockets on the front of my PC and plugged in behind are cables for:

1. PDA
2. Graphics Tablet
3. X-Keys programmable keyboard
4. X-10 remote control computer
5. 250 Gb Archive external drive
6. 250 Gb Music external drive
7. An open case with power supply and USB-to-IDE converter for old drives
8. Scanner
9. Photo printer
10. Dymo label maker printer

The thumb drives and my camera flash card reader plug into the front.

I just looked at my framed Data General ad from the 70's. It shows an upraised fist and the caption is "Power To The Programmer". Amen.


Thursday, March 1, 2007

Access Curmudgeon

I work on software design by playing around with the product as it develops. Sometimes I discover that I need to make a lot of changes to improve it. Or I'll have an inspiration that causes me to rip out what is working so I can replace it with something better. It's an iterative process. Polishing, removing blemishes.

It's satisfying, at least theoretically. But imagine that you are trying to concentrate on your design when an obnoxious person comes up and bangs on your keyboard or unplugs the computer. It's annoying and it's hard to get back where you were before the insult.

Microsoft Access 2003 is like that annoying person. Just when things are going well -- too well, it pulls the plug. You lose all the work you've done since the last backup. You get a sick feeling when Access stops responding for too long. That inevitable "Microsoft is sorry" message is soon to appear.

I've noticed lately that when the sorry message appears, you are more screwed than you might think at first. The .mdb file size increases and that increase is some sort of cancer that makes the next crash more likely. The larger the file becomes, the more frequent the crashes. Microsoft recommends that you simply copy all objects from the old .mdb to a new one. OK, where then is the command to copy references and database properties? Ha, ha. You can easily loose a lot of work if you're not paranoid and obsessively careful.

Microsoft is known for its testing and its focus groups, right? What kind of testing is done and who are these people in the groups? Working with this software is like working with not just a stupid assistant, but one with a mean streak.

If your product has problems, do you fix them? Or do you ignore them because you are certain that your new whiz-bang products will replace the old ones.

I have an advantage of those with less experience using Access. I know a lot of work-arounds. Some of them that used to work, no longer do. Also, I don't expect the product to work perfectly. Far from it!

Back to "work".

Wednesday, February 28, 2007

Thumb in Owner's Eye

Thumb Drive

They are flash memory devices that are in a package as small as the thumb on a kid. I bought a sleek SanDisk one and marveled at how small it was. I kept it in my pocket with my change. I guess it is with some of that change in a couch somewhere. I haven't seen it in a very long time. Too small!

I have several of these and it is so easy to misplace the cap that goes over the USB connection! I am usually tense when I use one because I am trying no to lose the cap. Of course you can just buy a replacement one from the manufacturer -- NOT!

The 2 GB PQI thumb drive that has been on my keyring for 6 months lost its cap today. I wasn't going to stand for that, so I retraced my steps and found it on a sidewalk waiting for somebody to step on it and crack it. When I got home I noticed that it had separated from my keyring. Then I plugged it into my desktop PC and it hid from Windows Explorer. It worked in my laptop for what that's worth. I have an uneasy feeling about it. Time to replace it.

I bought a 1 GB SanDisk that has a slide switch that slides the USB connector out of the housing. I bought it because it has a U3 "operating system" that lets you run applications without installing them on the host PC. Problem: The U3 part stopped working and I can't find any replacement downloads on the SanDisk site. Just as well. The U3 software is normally not free. I've built a fair collection of freeware that runs on the thumb drive. I'll use it. The 1 GB SanDisk lets me stop worrying about losing the cap ... it's capless. Also it is black like the handles of my car keys, not some trendy hideous color. So I'll use it until it fails.

Thumb drives are a curiosity but not the sort of thing you would want to archive your prized documents on. Today I burned a CD of my thumb drive, waiting for this one to fail.

I Knew He Was A Drunk When I Married Him...

I make a living writing database applications using Microsoft Access. I'd rather be programming with .net but we don't always get to go exactly where we want on our career path.

I use Access 2003. Some say it's the most reliable version of Access; some say it's the most unreliable. I think that is unreliable while you are designing an application, but is thankfully much more reliable in running your application in production. I can live with that.

Recently I was making many changes to a complex data editing form. At least 10 times in an 8-hour day I got the "Microsoft is sorry" error message that lets you know that it's too bad you didn't save your work. If you work quickly, you can often remember all the changes you made between crashes and archive a copy before the next crash. It's a pain but I'm used to it.

I used to feel sorry for myself having to use a program that I'd be embarrassed to say I wrote. But then I think, "Hey! I know enough work-arounds that I can succeed in building applications with this. It would be too hard for mere mortals. This gives me an advantage!"

Today I wasn't losing my work. But Access was acting up anyway. Sometimes in the VBE window, it goes brain-dead and you can't save your work -- at least not from there. Today it refused to close down a help pane (pain) when I was finished. Thank goodness for the Windows Task Manager.

When the ugly head of "Microsoft is Sorry" appears, the message window looks very business-like. As though it's there to help. It offers to send data back to the mother ship so it can be ignored and offers to repair your database (which isn't really broken). Often, when you let it repair, it gets confused and you can end up losing everything. As far as using the information that is sent to them, don't get your hopes up. I understand that some 10-year-old Access problems still exist. There is not time to fix practical things when you are more interested in marketing "gee whiz" features rather than fixing basic problems.

Sometimes I feel as though Microsoft hates developers using its products.

Monday, February 19, 2007

Don't Give Up

Fight Back!
Posted by Picasa
http://www.flickr.com/photos/duanemoore

Sometimes It's Hard To Be A Curmudgeon

The thing I like most about Windows is the ability to continually improve the computing experience by tweaking settings in programs and by adding programs that accomplish specialized tasks. Microsoft Word has been great at allowing me to get rid of icons I don't regularly use and replace them with ones that are more appropriate for my needs. You can write some impressive macros and attach them to a toolbar button. For example, my sister uses Juno.com for her email and her messages have hard returns on every line. She uses paragraph indents rather than using whitespace between paragraphs. I have a toolbar macro that reformats the entire email so that it is much easier for me to read. One click and it's instantly done. The macro is actually a procedure that is automatically written in Visual Basic for Applications (VBA).

Some of the most useful, troublefree software is freeware and shareware. The software is never bloated and its producers are much more responsive than the big guys. The latest PC magazine has an article on "The Best Free Software". Because it is so much easier to access these programs to try out from the web, I googled for the web page with all the links. Before I arrived at pcmag.com, I came across this web page:


http://www.techsupportalert.com/best_46_free_utilities.htm#19

Before long I had found a gem of a desktop search program called X1. I've only been using it for a short time and it really appeals to me. It is extremely customizable and lets me do what I want to do. This is, by far, the best desktop search program I've seen. I've tried Google Desktop Search, and several others and had settled on Copernic. But I like X1 a lot better. In my initial testing, I found quite a few gems hiding in plain site on my hard disks.

http://www.x1.com

Sometimes it hard to be a curmudgeon.

Saturday, February 17, 2007

Irritiation: Battery-Operated Drill

I've got one of those cool battery-operated electric drills.

The trouble is, almost every time I grab it to do some work, the battery is dead. Keep it on the charger all the time? Not recommended!

Solution: Get one of those timers that you can turn things on and off at preset times. Set on at just about any time and off 10 or 15 minutes later. Leave the battery in the charger when you aren't using the drill.

It works!

A curmudgeon would wonder why the manufacturer doesn't put similar circuitry into the charger.

It's not all Bad

Back in the "good old days" there was not such thing as the registry. We copied whole programs into folders of our choice. We used the same operating system to install on more than one computer. This simplicity might have denied Microsoft and others money due to them, but it spread the experience far and wide and ended up hooking everybody on PCs.

Now we are expected to pay over and over again to keep going. Most upgrades cost far too much for the benefit given. Sometimes the new version works worse than the old.

Case: I got Sound Forge with my Sound Blaster sound card more than 10 years ago. It worked extremely well with the exception that it wouldn't always update the screen properly. If you worked on more than one file, chances are the toolbar icons would disappear and you were working in the dark. Sony had bought out Sonic Foundry and I decided to buy the new version. It had a couple of stinker problems that their support people were not able to fix. I did not get my money back.

Case: I used Norton Antivirus for many years. I upgraded to 3-license version of System Suite 2005. It installed nicely on two of three PCs but complained that I had the wrong CD Key on the third. After 12 calls to Symantec and talking to folks in Bangalore who thought I was the stupid one, they sent me a new version. It did not install either. By then, the word was that Norton Antivirus was bloated and took too many CPU cycles. I decided to pull the plug.

Case: I moved to Zone Alarm Security Suite. I bought a 3-license package and it provided a firewall, anti-virus, and anti-spam. The anti-spam was stupid. If you loaded Outlook automatically at startup, it would complain that it wasn't ready and that you should reload Outlook. I wrote a program that would wait a couple of minutes and then load Outlook. I shouldn't have to do that! It was no better at spam protection than a freeware one I had used before. The firewall seemed pretty stupid in that it was supposed to have a database of known-good programs but it would ask stupid questions constantly. When I loaded a new version from time to time, it would forget the learning information. The clincher came after less than 6 months. It cheerfully told me that the antivirus definitions that I downloaded were not valid. "Try again." After a day or two, I sent in a request for help from support. They, of course, acted as though it was something I was doing wrong on my end, even though it acted the same on 3 very different PCs. I threw in the towel on that. This is why I say "It's not all Bad."

It's not all bad: I moved from Zone Alarm's Antivirus to AVG Free antivirus. It may be lacking something, but it seems more efficient than what I'm used to and works more smoothly than Zone Alarm or Norton. I use Comodo free firewall which appears much more intelligent than Zone Alarm. For anti-spam, I tried Cloudmark and am delighted with its effectiveness. And lastly, I bought Webroot Spy Sweeper. Now I have small, efficient, free programs that handle anti-virus, and firewall duties. I have world-class protection from spam and spyware that I pay $70 a year for 3 computers. These 4 programs work much more smoothly than the Zone Alarm Suite or the Norton suite.

It's not all bad: It's really spectacular that Windows allows software from thousands of software vendors to work together, and with thousands of hardware products. It's something we take for granted, but it's great!

It's not all bad: USB2 now provides the utility similar to a power outlet. You plug in a device and it works! My workhorse PC has 14 USB2 outlets and about 10 are in constant use: graphics tablet, mouse, PDA, camera card reader, and several external hard disks. It's something we take for granted, but it's great!

It's not all bad: Cloudmark antispam is brilliant! Instead of looking through your email for words like "viagra", it relies on the kindness of strangers to click their "block" button if they happen to be one of the first to receive the spam. This marks the message as spam and it gets blocked on millions of other computers immediately. It works very well and I'm starting to take it for granted!

Oh, no!

Written 1-22-07:

Today I watched as my PC got Microsquashed. Access, of all things, stopped working. Just what I don't need. So I ran my registry checkers without any benefit. I ran my antivirus and antispyware without any benefit. I "repaired" Access without any change. It's cold comfort to see the Microsquash message: "Successfully repaired your Access application" when all it did was waste my time. I reinstalled Access and saw the same message. But whatever I did, when you asked to look at the Visual Basic window, it would agree and then display the hideous hourglass cursor for, uh, hours. I tried this with Word 2000 and it did the same. That told me that I was NOT going to win.

But wait! I have an Acronis True Image (uh) image of the hard disk as of 12/29/06!!! It worked and so I used it and cloned that hard disk into a spare tire. Several days later I realized that my Outlook mail was on the C: partition, (unlike most of my documents which are on another drive) and three weeks of email had been lost.

What do non-nerds do when Windows misbehaves?

I was so very lucky to have my image of only 3 weeks ago. All I had to do was install drivers for toys bought between then and now.

Watch it!

I recently made a charge on my credit card on the web. The charge posted on the Visa statement was exactly 2X the original charge.

I purchased a chocolate soda at Baskin Robins and put it on Visa. I thought the $5 on the cash register was kind of high but looking at the Visa invoice I noticed that they had rung it up at $9.

I picked out an electric heater at Fred Meyer. It was the only one of a particular brand and the price on the shelf (no prices on any products) was $30. When I went to checkout it rung up at $50. I protested and they said, "Well, that's what we charge." I left the product with them.

Business Integrity

Friday, February 16, 2007

NPROTECT

The big computer companies such as Microsoft and Symantec are there to protect us! We are children and they are our protectors.

I''ve use Norton Utilities since before there was Windows and got used to having them around. One feature that slipped in was the Norton Protected Recycle Bin. I thought the Recycle Bin was to protect us from making stupid mistakes. I don't think I've ever used the Norton Protected Recycle Bin in a positive way so I've discontinued it and stopped the Nprotect service from stealing CPU cycles.

Recently I was looking around on my wife's PC and found almost 200 Mb of crap in the NPROTECT folder. Tried re-enabling Norton Protection so I could delete this junk but it pretended not to notice anything. The button to delete the remnants was not enabled. I used a combination of Windows Explorer and other not-so-windows methods and deleted what I could but it came down to seeing the files but the operating system claiming that I was "seeing things". It couldn't delete what it couldn't see.

Thank goodness for Google. I googled for delete nprotect and the first entry was http://www.computing.net/windowsxp/wwwboard/forum/94102.html

Basically, it said, Run > cmd and then enter

del \\?\c:\recycler\nprotect\*.*

...which does the trick. I have no idea what the "\\?\" part does, but it works.

I know that 200 Mb on a computer with an 80 Gb hard drive is a small percentage of the space. But *I* want to be in charge, not some bloated corporation.

My First Blog

I've been using computers for more than 40 years. I develop database applications for a living. I may be idealistic, but I have higher standards for my own work than I think are generally used for commercial software in general.

Being a Microsoft Access developer, I am always amazed at how good my development tools are, but -- at the same time -- how the development of these tools stops far short of goodness. Not perfection, but goodness.

I have concluded that developers of commercial products don't actually use these products, or are thwarted by management trying to make short-term money.

I'll use this blog to share my problems and solutions.