Field Truncation Leads to Humor

A co-worker placed an innocent online order, however, due to a horrible mishap, a very wrong message got sent.

A co-worker of mine tends to place online food orders for himself, my wife, and me at a local establishment when she comes to visits.

My coworker has a tendency to like to screw with my order by placing funny text in my comment field. In his, he wrote “Your portions are too big, small portions please.” In mine, he’d then write “I am a manly macho man, I need a microscope to see your portions.” So, when we’d go to pick up our food, I’d be wondering why my order was the size of a bowling ball. He’d break into laughter, and the manager would show me the order slip. They’ve been doing this for weeks.

This week the manager asked me if I had typed in a comment. I turned to the guilty and asked “What’d you do?” In complete and sincere innocence he responded: “I did nothing. I swear.” His look told me he was being truthful.

The manager, however, refused to show me the slip. This is odd, because he always lets me see. This time he was insistent, said it was between him and my friend, and wouldn’t even let my wife see.

The next time we placed an order, I saw from the old values, still on the computer, what had happened.

My co-worker had typed this:
I am very H U N G R Y!!!
Make me happy.

However, due to field truncation in the order form, this is what the manager saw:
I am very H U N G
Make me happy.

New Dell with XP – 65 Updates Needed Out of the Box

After buying a new Dell Dimension 9600, it required a massive 65 Windows Updates before being patched enough to go onto the next step of removing trial ware, loading drivers, and updating obsolete software.

Just purchased a Dell Dimension 9200 for work with Windows XP Pro SP2 on it. No office, just plain vanilla.

Out of the box it required 62 Updates from Microsoft, 96.6MB download, estimated at 44 minutes using a fast ethernet connection.

Sixty two. On a brand new machine. And I haven’t even gotten to removing all the trial-ware cruft, installing drivers, or dealing with software updates.

After the reboot, I needed three more operating system updates, an additional 3.7MB and another reboot.

This doesn’t even count application patches that will be needed.

This movie is so true. I’m used to not having to do this.

As an amusement, I noticed Dell’s new ordering website would allow you to pay for them to remove the trial ware. Yes, you read that right – they’ll put it on for free, but you have to pay for them not to. Go try their site, it’s at the end of the PC design process.

Update: After installing applications, needed another 2 updates. IE 7 came along in the last set of updates. Oh, by the way, IE 7 blows up at least three times a day for us – it is not stable, IE 6 was much better.

Update 03-Nov-2006: For complicated reasons had to rebuild the Dell from scratch using the OEM disks. This time, 74 updates initially. (At lest Dell had done some.)

Selecting a Marriage Date

Getting married? A little forethought and you can save yourself a lot of money.

Here’s a new tip for men that you’ve never heard of before.

Decide what you like to do for a romantic get-away vacation, say the beach. Scan the beach property rental costs and find the off-season, say like November. Plan your proposal so that your wedding ends up happening during that discounted time frame.

From now on, when your wedding anniversary comes up, you won’t have to stomach a painful rental, and instead can take the amount you save and make the day even more splendid without breaking the budget.

Works for cruises, ski trips, hiking, bed and breakfasts, amusement parks, Vegas, basically anything that has seasonal rates.

Insensitive or ingenious?

Walt’s Desktop: SYSINFO Like Detection

Walt gives Belarc Advices a thumbs up, as a sysinfo tool for his desktop of recommended software.

Back in the good old DOS days there were several software packages that would provide system information such as what hardware was in the machine, what drivers were running, what TSRs had crept into memory, and what applications you had. My all time favorite was SYSINFO, it was the magical hardware probing that I was after. I’d create a special boot disk and instantly be able to tell what was in a friend’s machine.

Problem is, as Windows got bigger and “better” that kind of direct hardware probing became forbidden by the operating system. I’ve been searching for its equal ever since for the Windows world.

Sure, there’s a handful of tools that come with Windows or Office, but all seem to be lacking, and nothing that just generates a single pretty report. systeminfo and msinfo just don’t cut it for me.

A friend turn me on to Belarc Advisor. This thing is amazing. It will do everything from tell me what kind of memory is in which slot on my motherboard to exposing the software keys to the software I have installed. It produces a sleek report viewable by any HTML browser, very nice.

Walt gives Belarc Advisor a thumbs up!

If you happen to know of any other favorites that do the same kind of thing, I’d love to hear from you.

Banging Binoculars

More honest humor from children.

The other night my seven year old niece came over and wanted to do some star gazing, so I grabbed my nice pair of binoculars, handed them to her, and we headed outside.

As we were walking through the front door, she bumped them against the door frame pretty hard. Now these are fairly expensive optics, and perhaps I should have known better. I didn’t say anything, but it must have been obvious from the brief sharp squint on my face that I had concern, as Madison looked up and apologized without prompting:

“Uncle Walt, I’m really sorry I bumped your binoculars. I didn’t mean to.” She paused for reflection, “I think it happened because I wasn’t paying attention.”

I was impressed by this very forthright and honest assessment on her part. “Are you paying attention now?”

She thought for a second, “I’d like to think so.”

Ah, if only we all could have this kind of open dialog at work.

Tired of Windows Bubbles in XP?

I hate the annoying pop up bubbles that say “click here to fix me.” Here’s how to get rid of them.

Tired of Windows bubbles that tell you that you have updates waiting, that tell you that your firewall may be wrong, or that your antivirus isn’t up to snuff? You are if you know what you’re doing, and you hate these little pop-ups that appear in the bottom right of your screen.

Here’s how to turn them off.

Start / Programs / Accessories / System Tools / Security Center — then select “Change the way Security Center alerts me” (it’s in the text on the left). Uncheck the boxes you don’t want, and click OK until the dialog boxes are gone.

Note, if you don’t find Security Center there, it sometimes appears under Start / Settings / Control Panel / Security Settings.

Java EE in a nutshell for total newbies

Someone just jumping into Java may look at the SDK and the EE and wonder why they aren’t included together or why one version seems always behind the times. This article explains to the Java newbie what J2EE (or now Java EE 5) really is in terms a procedural programmer might understand.

One of the biggest hurdles in getting a procedural developer to even try an object-oriented language is to break a bunch of misconceptions. Perhaps the largest one has to do with language syntax. When a procedural person sees something that looks like a structure with code in it, they instantly think that each structure “carries” its own copy of the code around with it — which is clearly inefficient.

Once you explain that, no, there is only one place the code exists, and that the notation is defining scope, not structure, it becomes obvious how the compiler is accomplishing its magic. In fact, it’s quite trivial, impressive, and elegant.

In some ways, I wish someone had explained to me long ago what was up with selecting a Java environment, because Java loves to rename itself, bust its environments into pieces, invent new terminology for old things, and in general make a whole confusing mess to anyone who didn’t come along for the ride since day one. I’m about to explain to non-Java newbies just what J2EE / Java EE is in a simple matter you could explain to your grandmother. Assuming, of course, your grandmother wrote code.

If you hop over to the java site and poke around, you’ll see on the right hand side three things: the JRE, the SDK, and something called EE.

Let’s recap. JRE is the runtime environment, it’s for when you want to run programs, but have no need to compile them. The JDK (Java Development Kit) got renamed to the SDK (Software Development Kit) when more than just the Java compiler got packaged with it. Java, Java 2, and Java 5 are all the result of marketing names, having some relationship to the actual version number scheme: v1.2 is Java 2, but so is v1.3, v1.4. Java 5 is v1.5. Thanks Sun, this isn’t helping.

But what is EE, the Enterprise Edition? What does Enterprise mean? What is business logic? Why is it different than the SDK? Why isn’t it included with the JDK? What’s up with a client piece and a server piece? Why is it always seemingly a version or so behind the SDK? And, why, oh why, can’t Sun just give me one huge thing to download with everything in it?!?

To date, I’ve seen no one give clear cut answers to the above. And I’m about to. And the reason you don’t have those answers is because if you’re asking those questions, then you’ve got some serious misconceptions about what’s going on. Don’t blame yourself though, often people who want to be part of something exclusive make things seem more complicated than it really is and then disguise that fact with strange terminology. All is about to be clear.

The primary misconception is that the SDK is what you use to develop client applications, and that the EE version is what you use to develop server applications. Now anyone who’s done any socket programming will totally roll their eyes at the fact that the library has been split depending on which side initiated the connection, and they’ll do it in much the same way as someone who looks at a object oriented class does when they erroneously think code is being put in a structure.

What’s happened is that the terms client and server have been changed out from under you without warning. And, happily, the SDK is capable of doing both the client and server side of a socket connection. That’s not what EE is about.

J2EE (the Java 2 version) and Java EE 5 (the Java 5 version) are nothing more than specifications. That’s right, concepts on paper.

Let’s go back for just a second and look at some of those other fancy words.
Enterprise = a service or application should be scalable and distributable
Business Logic = code …that’s right… just code, like you’ve always written

Now you’re smart, you could write a framework for your application that would use threads, thread pools, data marshaling between systems, load balancers, and so forth. But that wouldn’t be getting the real work done, that’s just the infrastructure. Let’s face it, if you use C++ you use the Standard Template Libraries; if you do encryption, you don’t roll your own data structures and algorithms. Why should you? Domain experts with tons of field experience have carefully crafted highly optimized and well tested code for you. There’s no reason to re-invent the wheel, especially when there are people dedicated to building, maintaining, and improving the best wheels out there.

An application server is a running environment that dynamically loads classes, and provides scalable and distributable services laid out in the specification.

Java Enterprise Edition is the set of library classes that converse with an implementation of an application server that is compliant. In short, it’s programming by contract, just like everything else. Because there are several specification versions, there are several EE environments. Because EE is a large set of additional classes, you don’t need them if you are not running an application server that you need to talk to. Grabbing the Java EE will get you the SDK – all of it.

Now, here’s the catch. Because more people use the SDK than the EE, you’ll see patches and minor version updates for the SDK before you see that SDK pre-bundled with the Enterprise Edition. Nothing stops you from grabbing EE and snagging the latest patched SDK.

So, in order to run the Java enterprise environment, you need four things: 1) The compiler and tools of the SDK. 2) An application server like JBoss or the Sun Java System Application Server. 3) The Java EE application interfaces that are conforming to the application server you intend on running. 4) A clear understanding the services your application provides in addition to how to configure, start, stop, and deploy Java code that you write to it.

NetBeans, Suns interactive development environment (IDE), has a bundle that includes the IDE, the SDK, the EE, an application server (JBoss), and will install it and configure it for you.

So, to summarize: Java EE are additional classes that let you converse with an application server, which is a separate program that is compliant to a Java EE specification. The majority of people don’t use enterprise services for regular programs, and those that do need to have a class library that matches the application server they’ve elected to use — as such, it is not bloat or complexity that keeps it out of the JDK, but that putting one in can be problematic if there is a mismatch with the ‘server’ end of things.

Curious now as to what Java EE provides?

Well, it handles .JSP pages (like PHP allows scripting in web pages, instead the language used is Java). It handles Servlets (programs that respond to POST and GET requests), which is actually what a .JSP turns into if you think about it. It handles JavaBeans (classes with agreed upon properties, called interfaces, that let them be manipulated by a graphical IDE); it handles Enterprise JavaBeans that allow your code’s classes to run in a distributed manner — and, yes, it was horrible to name it so similar. It has naming services to find your code, no matter which machine it’s on. It can handle concurrency, scalability, transactions, logging, message queues, security policies, database connectivity and pooling, persistence and mapping of objects to relational databases, and so forth. …everything you could write yourself, but benefit from not having to.

Apple Mail Won’t Quit

Apple’s Mail program… does it just hang on you for no reason when you quit? Or, could it be it really does have a good reason for being busy and you don’t know how to lift the hood… Learn how to see what’s going on when mail is busy and how to tell it to stop quickly with a simple, gentle request on your part, never needing to Force Quit again.

I had the opportunity to use Apple Mail from a hotel room that had a rather slow ethernet connection. When I went to quit Apple Mail, the application appeared to hang.

Under normal situations, I’d blame the server or the connection, perform a Force Quit by either right clicking the Mail icon or perhaps using Command-Option-Escape and blasting it that way, resorting to the good old Unix kill command if that didn’t work, followed by a reboot.

Turns out this isn’t necessary at all. Apple was smart enough to include a way to watch what mail is doing.

When Mail is up, select Window / Activity Viewer (also Command-Zero wll open it). I now run with this window open all the time.

When Mail shuts down, it tries to do so cleanly. This means that it sychronizes what’s on your system with what’s on the server. And, if you’re like me, you got a lot of folders sitting in your IMAP account. Sometimes a sychronization takes a while.

Seeing mail show you that it’s really trying to do something before it completes your Quit request invokes a good feeling that things are really busy for good reason, and not just hung.

Additionally, Apple has put big red stop buttons next to each of those tasks. You are more than welcome to click on them, telling the Mac to skip that step and do it later. This has helped me shutdown mail really quickly without screwing up my mailbox.

Violent shutdowns of mail can result in your local cache getting out of sync, giving the appearance that some messages don’t go with the right header.

If you are ever in doubt as to the integrity of your mailbox, Apple has thought of tweak for this too: Mailbox / Rebuild. Naturally, you’ll want the Activity Window open so you can watch as it downloads your mail again.