Understanding Nerds

I ran into a really great blog the other day: Rands In Repose.  He's got a great couple of articles (written a few months ago) about nerds.  Specifically The Nerd Handbook and N.A.D.D..

We'll start with The Nerd Handbook.  Written as a nerd-oriented "Men are From Mars, Women are From Venus," this post is actually quite accurate in describing my relationship with the world.  (Note to Suzanne: read the part about Your nerd has built an annoyingly efficient relevancy engine in his head, it might explain some of my apparent forgetfulness... my relevancy engine just needs some tweaking)

N.A.D.D. is all about the ADD-esque disorder that most nerds are afflicted with.  I don't think my case is quite as advance as Rands describes (I only have seven open windows on my two monitors) but the underpinnings are definitely there.

If you can bear/ignore some gratuitous language, Rands has quite a few good articles about management, work relationships (the professional kind, not the personal kind), the work environment (or cave), and so forth.

Why Windows 7 Will Win (and lose)

I thought this was an interesting post at thebetaguy.com.  To quote the interesting stuff:

"...Windows 7 will be a from-the-ground-up packaging of the Windows codebase; partially source, but not binary compatible with previous versions of Windows. Making the break from backwards compatibility is a dangerous proposal but a dream for software developers. Performance of native applications can be increased, distribution sizes can be cut down, functionality can be added without the worry of breaking old applications, and the overall end-user experience can be significantly improved.

However, Windows' lure has always been that applications from older versions of Windows are almost guaranteed to work post-upgrade..."

This is exactly what Microsoft needs to do, from a technical standpoint.  From a financial/business standpoint, it may not work out so well.  In the long run, however, continuing down the backwards-compatibility path will only further harm their performance in future versions.

Sometimes the medicine hurts worse than the sickness.  On the other hand, Apple did it right back in 2000, so why not?

Don't Make Me Stop This Fish Tank!

I like fish.  My parents had a large aquarium as I was growing up and I always enjoyed watching the fish.  As I remember, we had a few neon tetra's, some tiger barbs, an angelfish or two, and a kuhli loach.  There was a brief (and disastrous) flirtation with a small brood of fiddler crabs, but they always ended up getting out.  We found one in the toilet once.  It was amazing that it made it that far!

But I digress....

I have a betta that I have had for a little over 18 months.  A couple of months ago I decided it would be good to bring him to work and make a "proper home" for him: I bought a real aquarium.  It isn't anything fancy, just a five-gallon hexagonal aquarium with a small filter and a cover with a light.  I'm sure to Sammy (the fish) it seems like moving up from a shack to the penthouse suite.  He is definitely a lot more active than he ever was in his cold little fishbowl.

027

-Sammy in his natural environment (sorry for the reflections)

Problem: the tank grows algae and the rocks are dirty with uneaten food.

Solution: Get a snail (for the algae) and a frog (for the uneaten food).  Problem solved!

So a funny thing happened today in the tank.  The snail (as yet unnamed) has been quite listless since I got him a couple of days ago.  I was beginning to wonder if Frogger (the frog, duh) had killed him, as he likes to poke at him whenever he comes out of his shell.  So the snail was kind of half hanging out of his shell and Frogger decided to come over and poke his head in between the snail and his shell.

Big mistake.

The snail is still very much alive and decided it did not appreciate the intrusion.  He sucked down back inside his shell in a very fast manner.

Problem: Frogger's head was still inside the shell!

So now the frog is thrashing around like mad trying to get this shell and snail off his head.  He thrashed all around the tank and finally succeeded in detaching the unwanted snail appendage from his snout.  I thought he might be dead after all that.

Rest assured he is not, he still swims around like normal, but he has good reason to be afraid of the snail now.  I need to think of a tough name for the snail, he's shown himself to be no pansy!

025

Good Picture

Here's a good picture.

My corner of the cube farm

I enjoy having my own space.  This is the entrance to my cube at Cypress.  The silver nameplate is the standard nameplate for the Boise office, but I maintained possession of my nameplate when I left Micron, so that's the blue one.  (I don't think they have to worry about any other Cameron Stewart's coming to work for them anytime soon).

The CASS on my nameplate is/are my "Cypress Initials" or TLA (Three Letter Acronym).  Mine is actually a "FLA" because they started to run out of TLA's to hand out (They could have just given me "CAM").  FLA's are becoming more common here.  My TLA is my email address (TLA@cypress_dot_com).

Clippy FTW

Like most longtime Microsoft Office users, I have accumulated a large amount of loathing and hate for Clippy, the annoying, not very helpful Office Assistant in versions of office from 97 to 2003.  I usually just hid the assistant until later versions disabled him by default.

I saw this picture on icanhascheezburger.com and thought it was hilarious.

Humorous Pictures

I Work Saturdays...

...sometimes.

Suzanne and I have this thing going where she works every other Friday.  I take the Fridays off when she works so I can watch the boys while she's gone.  Then I go in to work the next day (Saturday) to make up for it.  That way she can work to keep herself involved in her career and I don't have to take all my vacation time to make up for it (or pay for some sort of day-care service).

It's important to me that Suzanne can work.  She's a physical therapist and needs to be involved in order to stay current in her field.  As committed as we are that she should be a stay-at-home mom and I will be the supporter, I don't want to deny her the enjoyment of exercising the knowledge and skills she has acquired.

At any rate, I don't mind working Saturdays.  It's actually quite nice!  Some of the perks:

  1. No rush to get in for meetings or anything (although I'm usually here before 8:00 anyway).
  2. No-traffic commuting.
  3. Not may people at the office to bother/distract me (I get a lot done).

The only con I have found so far is that I have one less day to spend with Suzanne and the boys together.  Well, really it's one less day with Suzanne since I get to be with the boys all day Friday.

And it's hard to be at work on a Saturday when it looks really nice outside (sigh).

The Turkey Test

I just read a great piece on Jeff Moser's blog entitled "Does Your Code Pass the Turkey Test?"  It's a great piece for any software developer writing any kind of UsWare or ThemWare.  (MeWare developers are assumed to write code that works in their own localization with some degree of proficiency.  If not, you might want to think about finding another profession!)

Basically, if your code is going to be used by anybody else, ensure that it will be usable by people in other localizations.  Jeff just happens to focus on Turkey because of some unique peculiarities that exist there.

Read his post.  It's worth it.

A Little Programming

I use Visual Studio here at work.  One of the projects I'm working on right now is done completely in C#, which is an easy language for me to work in.  I minored in Computer Science at BSU, and most of the classes they teach there are in Java, especially the lower-division classes.  This works out well because Java lets you focus on all the theoretical/academic features of computing without really having to worry about the technical details of a language.  Data structures, algorithms, they go down real easy with Java.

I'm also working on a project that's written in C++.  This is a little more difficult for me because I hadn't done any C++ coding before starting on this project.

That's right, not one line.

It's kind of a jarring transition from user-friendly, object-centric Java to power-user, uber-language C++.  I had done some embedded C programming, which helps with some of the very basics, but that did nothing to prepare me for Windows Application programming in C++.

Message pumps?  Thread safety?  Templates?

I have a coworker who asked me (in reference to another coworker) the following:

"Don't they teach threading in school?  I don't think (this other guy) understands what that means."

My reply was that they don't teach it, at least not in the classes I took.  Granted, my CS education is nothing near comprehensive.  I don't know what goes on in such lofty classes as Operating Systems or Theory of Computation.  My experience is limited to the practical, EE-centered subjects of Computer Architecture and Microprocessors.  Much more hardware-oriented than the CS subjects, but that gives me a good understanding of what actually happens in a device.  This is especially important when programming for a microcontroller, where resources are limited.

So I struggle with C++.  C#, no problem, I look forward to future C# projects.  I've got my C++ Bible, The C++ Programming Language by Stroustrup, and I read it daily.  I'm sure my skills will improve as I continue to learn and use C++ more.

Anyway, I use Visual Studio 2008.  Here's my setup.  I've found that I like light text on a dark background.  I use the Ragnarok Blue color scheme from this page.  It's easier on the eyes, but I found I had to make the font size smaller.

image

Tools I can't live (or work) without

There are some things that I have installed that I have to have now.  Let me enlighten you about my environment.  Step into my digital world:

The Machine:

image

I use Vista on a Lenovo/IBM ThinkPad T60.  A lot of people dog Vista (at work here, anyway).  I am willing to live with its shortcomings in order to put up with the benefits.

The Desktop:

image

I like my desktop clean and uncluttered.  No icons, no folders, no shortcuts, just some sidebar gadgets placed on the desktop.  You may notice that I have some tabs at the top of the left monitor, I'll get to that later.  Yes, that is a Mac wallpaper.  I use Display Fusion to make the wallpaper span both monitors, because I think that looks cleaner.  My desktop is quiet place, a serene place.

The Tabs:

The tabs are part of Object Desktop's ObjectDock Plus.  I use two docks, a tabbed one at the top and a hiding launcher at the bottom:

image

The tabbed dock at the top is fully customizable, you can add whatever tabs and whichever shortcuts you want.  They make starting commonly-used programs a breeze and add some nice eye candy.

The Switcher:

I use Bao's Switcher for Vista Aero a lot.  I find it much easier to use on multiple monitors and with many windows than the standard taskbar that ships with Vista:

image

Boom! Iconified, tiled windows!  It puts each application on the monitor it is open on.  I have been looking for this on a PC for quite some time now. 

The Music:

image

I use iTunes.  It's medeocre, as far as media players go, but it supports my iPod Touch, so I live with it.  I wish there was some way I import song data like I can with the competition's product.

In an effort to easify things...

I found this this tool on Scott Hanselman's Ultimate Developer and Power Users Tool List for Windows (that sounds like the latest ATHF movie title).  So I am posting this post from Windows Live Writer, and I want to see if it works well.  I like Blogger better than Wordpress, even though I was initially swayed by Word 2007's better native support for Wordpress (it couldn't post images to Blogger).

At any rate, the Windows Live Writer looks nice, and uses a familiar Vista-ish interface:

image

Now there's a paradox for you...