Saturday, October 31, 2009

Windows 7 and Windows Live

I received both of my $50 pre-order copies of Windows 7 Home Premium early this week, and upgraded our Vista laptops.  I could not be happier, and am considering forking over for 7 Ultimate on our DVR box.
Personally, I never really bought into the anti-Vista hype.  I think that was a result of Vista coming out more than a year later than it should have, with poor OEM/driver support, and high hardware requirements.  But technology-wise, Vista was Microsoft’s best OS ever.  If you wanted a 64-bit box, there was no question – you wanted Vista, not XP 64.  I thought the Windows Mojave experiment did a great job of highlighting that Vista’s problem was one of perception, not technology.  But you never get a second chance to make a first impression, and Vista never recovered.
So, Windows 7 gets all the advantages of piggy backing off its older brother Vista, but with none of the baggage.  It has the same Aero eye-candy, searchable everything, and stability.  There are some noticeable differences though:
  • If you’re already running Vista, you can do an in-place upgrade.  Leave yourself plenty of time though cause it takes 3+ hours.  But, it was really clean and easy and worked flawlessly on both our family laptops.
  • UAC (user access control) is actually usable in Win7!  It was the first thing I turned off in Vista, but I’ve found myself still using it with Windows 7.  You can configure it with a simple up/down slider to control its verbosity, but the default is reasonable.  I’ve only been prompted when I installed software updates, and otherwise it’s been properly quiet.
  • Windows 7 is snappy.  When you open the laptop lid, the OS is instantly up from sleep mode.  It’s so fast in fact that I had to verify that the laptops were actually in sleep mode when the lid closes, because I couldn’t believe that it was up so fast.
  • The new task bar is just wonderful!  It is worth the upgrade just for this.   The quick-launch bar went away, and I’m a huge user of that so I was initially concerned.  But the searchable start-menu plus the new task bar pinning feature make it really usable and intuitive.  Jump lists are cool, but no apps outside of MS’s stuff use them yet.
  • Window gestures are slick.  Drag a window to the top of the screen – it maximizes.  Drag a window to the right or left, it resizes to bisect the screen.  Did that by accident?  Drag the window again and it goes back to it’s previous size.  Want to get rid of all windows but the one you’re working on?  Shake the window left and right and the other windows will minimize.  Have 2 monitors?  Hit WindowsKey+Shift+right/left to move your window to the other screen.  For the short-cut junkie, this stuff is handy, but not really revolutionary.  But it’s a sticky feature - once you start using it, it just feels right and sticks with you and you’ll miss it when you go back to XP.
  • This is the first MS OS in 10 years where you don’t have to have IE installed.  If you choose not to, the rendering engine is there for Windows Help and other stuff, but you have no front-end browser.  It’s not just hidden – it’s gone.  I gave up IE years ago, and only use it from intranet sites at work, so this is nice.  They’ve also unbundled Messenger, Mail and probably some other things I never wanted or used.
  • Interestingly, absence makes the heart grow fonder – not having used those programs for awhile, I wanted to see where they wound up.  The answer is “Windows Live Essentials”, which is a really nice package.  You can pick and choose from an ensemble of apps, including IM, Mail, Movie Making, Photo management, family internet safety tools, and the tool I’m using right now called Windows Live Writer – a blog posting tool that ties in with all sorts of blog software and lets you write your posts offline in a nice editor.  It even downloads your blog’s theme so that you can see the correct styling and preview your post as it will be shown on your blog.  What a great little app!

There are a few problems and annoyances too.
  • The installer for Vista will do an in-place upgrade, but if you’re still on XP you’ll have to install from scratch.  Considering that XP is still the predominant MS OS, that may be a sizable barrier to the layman.
  • There’s no longer a nice little network icon telling me when I’m connected to my company’s VPN.  That’s annoying because I often forget to disconnect when I’m done working.
  • My computer still takes a little over a minute to boot from power-on to password prompt.  I’m not sure why boot times are never addressed by the Windows development team.
  • The name Windows 7 is even weirder than “ME” and “Vista”.  Windows 7?  Are we trying to compete with Apple and their OSX (ten) brand?  I’m not sure how we get there.  NT 3.5, NT 4.0, Windows 2000, Windows XP, Vista, and then Windows 7 are the OS releases using the NT kernel – that’s 6 total.  If you go by kernel versions numbers, that might work because Vista was version 6.0, but Windows 7 is kernel version 6.1.  It’s all very markety feeling.  Lucky seven.  I suppose that’s to be expected since Vista had a marking problem.
Overall, this is a worthwhile upgrade.  If your machine can run Vista, it’s a no-brainer – it’ll upgrade in-place and run 7 and you’ll love your PC again.  If you’re on XP, it’s a different beast.  You may well be better off buying a nice new $500 laptop or $400 desktop with 7 pre-installed.

Saturday, October 10, 2009


When I was in High School, we started using graphing calculators in all my math classes and some of my science classes too - geometry, algebra, pre-calc, physics, and statistics are the ones I remember. There were a few choices for which calculator to use, but the teachers typically had the TI-81. It was about $75 at the time if I recall. They had a little device that hooked the calculator into the overhead projector and were off to the races.

I, of course, would never have been satisfied with the TI-81 knowing that there was another, more powerful alternative - the TI-85. It was more expensive, but way more powerful and included a BASIC-like programming language. Back in the time when there were no iPods or sub-5lb cell phones - back when pagers were just beginning to be all the rage for people other than drug dealers - the TI-85 was the hand-held device of choice at school. Disguised as a tool for learning, it doubled as a Gameboy during study halls with soundless black and white games like Breakout and Battleship. I knew mom and dad would have gotten me the TI-81 as a "school supply", but I wanted the 85. I wanted it bad enough I made the ultimate sacrifice for a kid - I asked for it as my only big Christmas gift.

While my brother and sister opened their toys, I unwrapped a piece of electronic school equipment that came with a 350+ page manual about levels of math that I didn't yet understand and some I had no intention of ever learning. But it had 20 pages of pure gold at the back of that manual that told me how to program with it. And I was hooked.

I had programmed before. My dad got the family one of these as a gaming system and gave me a book with BASIC code in it. The program was saved off to a tape. I made a game, not from my own imagination, but from the meticulous transcription of pages of code from some book for a game I didn't understand and didn't really enjoy playing once it was done. I understood what programming was, but not really how to program. We got an 8088 when I was in 2nd grade, so I was familiar with computers, but not so much with programming them. The TI-85 was a portable coding device where I was limited only by my imagination and the hardware.

The programming was actually quite awful. LABELs and GOTOs abound. A callable method was coded as a separate program, so you could have 10 different unusable partial programs whose only purpose was to serve one master program. Needless to say I quickly learned to use the GOTOs instead, though thinking of it now makes me cringe.

I made programs that calculated the present and future values of loans with compound interest. I coded up a brute force calculation to discover what fractions reasonably approximate PI (22/7 and 355/113 are good ones). And, I made an adventure game called Gack that took one whole weekend to build and nearly every bit of memory on the calculator.

The concept of Gack was simple - it was a Dragon Warrior style game. You were a warrior trying to survive and gain gold and experience so that you could buy stuff and level up. There were 4 maps, each with progressively more difficult enemies. Each map had two locations, and each location had two different enemies that would attack you at random. If you defeated an enemy, you got gold and experience and could eventually advance to harder maps. If you lost, you would lose 1/2 of everything and have to start over at the shop. There were really only a handful of images in the game - the maps and the picture of the shopkeeper. The rest was text.

The final battle was a shocker - once you finally had enough gold and experience to buy the last item you needed, you entered the shop and the image flipped back and forth progressively faster between the normal shop keeper and a negative image of the shop where the shop keeper was revealed to be a skeleton. Once the back-and-forth reached a seizure inducing rate, the image stuck on the negative and the skeleton used the final weapon against you. You only had a 30% chance of victory against him, which made it a little awkward starting back in the shop with 1/2 your stuff like nothing just happened when the evil shopkeeper offed you. Perhaps this was a subliminal venting of some frustrations with working retail... hmmm...

Anyway, you could share programs with others via a cable, but not many people were willing to wipe out everything they had to take on Gack. Truth be told, I never actually played it all the way through. I built the thing - but there was no magic in playing it.

My most popular program, by far, was a program that intercepted key presses and simulated functions within the calculator without actually performing them. The reason I wrote this was that our pre-calc teacher was afraid of cheaters, and so he wiped the memory on everyone's calculator before a test. I never cheated myself, but I know I enabled others to do so. But I put way too much work into my programs to have them deleted, so I would start up this program on test days. When the teacher made his rounds and wound up at my desk, he would press the keys for the memory wipe sequence and the calculator showed all the right prompts - pixel for painstakingly designed pixel - and reported the memory was gone. It even showed an empty program launcher in case he checked. But my precious code was completely in-tact in the one and only place it was ever saved.

I still have the calculator in my desk, and it still works. Though I don't keep batteries in it and never use it. It's funny to think of all the various languages I've programmed with over the years: BASIC, VB, Pascal, assembly, C/C++, Java, ASP/VBScript, JavaScript, T-SQL, Perl, Ruby, C#, Boo, VB.NET, and probably plenty of other little ones I've forgotten from college courses (I know I learned and forgot a whole lot of LISP at one point). But really, my love of programming all started with this little calculator. Best childhood Christmas gift ever.