06 November 2013

The soul of a new dev box

The dev box isn't new, really: just adding a 256 GB SSD for the primary drive and repaving it.

I made a list of all the things I need to install to get back to a working environment. Yes, the original was backed up, but I'm moving to Windows 8.1, so it's a full remodel.

  • Windows 8.1 Pro (I've avoided 8 up until now: we'll see...)
  • Google Chrome
  • Microsoft Security Essentials (corporate requirement)
  • Virtual CloneDrive (for mounting ISOs)
  • Visual Studio 2008 (yes,we still have code built with this)
  • Windows SDK 7.1 (we're tied to this specific SDK at the moment)
  • Visual Studio 2010
  • Visual Studio 2012
  • Visual Studio 2013 (some new code is being written in this, for no good reason I know)
  • Windows SDK 8.1 (for WinDbg, Application Verifier, etc.)
  • Office 2013 (I'm primarily working on Exchange 2013 restore at the moment)
  • Subversion 1.7 (haven't switched to 1.8 yet, mostly because this is for older products)
  • TortoiseSVN 1.7
  • git (I get it now, and I love it: it's a floor polish *and* a salad dressing)
  • Atlassian SourceTree (it's always useful to have a GUI when you go spelunking)
  • Notepad++ (I do more with vi in git's bash shell these days, but I still use it for searching through huge log files)
  • MarkdownPad 2 (all my personal notes are in Markdown, including the wiki on my phone)
  • Dropbox (all my ebooks and other documents are here)
  • Trillian (we have to use Skype, and it got even more annoying after Microsoft took over)
  • Code Collaborator (mostly for old code: most code reviews these days are done by repository owners via pull requests)
  • Event Log Explorer (if you have to search and filter event logs, this is a great tool)
  • Foxit Reader (because I hate Adobe Reader)
  • Visual Assist X (kinda like ReSharper for C++)
  • JetBrains ReSharper (Best. Tool. Ever.)
  • JetBrains dotPeek (instead of Reflector)
  • DisplayFusion (for multiple monitors, which I now hate: I'd rather have a single 27" or 20" display)
  • S3 Browser (all our support packages - log files, event logs, etc. - wind up on S3 as Zip files: this is useful for retrieving them)
  • VMware vSphere Client (we have a lot of test VMs running on ESXi)
  • VMware Workstation (we have a lot of test VMs running on our dev boxes too)
At home, I'm turning into an occasional system administrator: too many devices on what used to be *my* network alone. I'm setting up a server for media (mostly photos) and local backups and gradually thinning the herd (I'm down to only *cough* three notebooks, not including the one with the bad screen sitting under my desk, but that number will be one in a couple of weeks).

04 June 2011

28 March 2009

The Devalued Prime Minister of a Devalued Government

This video has been making the rounds (HT to Fraser Spiers) and despite the speaker being a British conservative and me being basically a pinko Commie socialist, I agree with what Hannan says: you cannot spend your way out of recession or borrow your way out of debt.

Maybe if conservatives here were more like Hannan and less interested in foisting a Christianist manifesto on the world, I'd pay more attention.

22 March 2009

Heads on pikes

If all the events of the last few months haven't kindled some righteous indignation over the train wreck our economy is becoming, Matt Taibbi's The Big Takeover in the latest Rolling Stone should get your blood boiling.  I wonder how our version of the storming of the Bastille will play out...

11 January 2009

It's been a busy week

Coming back from two weeks of vacation, even with a mandatory shutdown between Christmas and New Year's Day, tasks piled up and the week was hectic. The new QA manager is floundering (she already has all her staff alienated), outsourcing our current system software to the China team continues (yes, this doesn't bode well), and the firefighting and political infighting continue. On the positive side, life outside of work is good and my autodidacticism continues as I work through ATL, WTL, and yes, even MFC (the Visual Studio 2008 vintage).

My new Studio 17 notebook was sent back to Dell because IT ordered it with a Blu-ray drive (raising the price $150) and integrated video (saving $150), yielding a lackluster 3.1 on the Windows Experience Index:

There are some things about this machine I do not like, primarily the touchpad and keyboard:
  • the keyboard includes a numeric keypad, something I never use
  • the and keys and the and keys are all side by side instead of stacked as they should be
  • the touchpad is from Alps and it doesn't work as smoothly as a Synaptics touchpad.
  • the Menu key is missing from the keyboard, and it's something I use occasionally
  • the Windows key sticks when you do E to bring up Explorer, for example: the moment you type an L, you lock the machine. This doesn't happen with an external keyboard, and I'm holding out hope Dell will fix it in an update: I can live with it for now (and complain on the Dell support boards).

However, the display is big and beautiful, the system is fast (even with a 5400 RPM drive, which I'll shortly replace with a 7200 RPM drive), and there's room for a second internal hard drive (that's where the original 5400 RPM drive will go, probably to hold extra or backup VMs, other backups, and maybe a test partition for Windows 7 builds).

Since I got this thing to run Windows 7, do WPF development, and drive an external 1920x1200 monitor (and I'll be stuck with it for some time), I had IT exchange it for one with a regular DVD burner and dedicated graphics ($150). If they had bought me a refurbished MacBook Pro as I originally requested, it would have cost about the same and been faster (albeit with a smaller main screen). This all would have been simpler (and faster) if I had been given a budget and allowed to create the order myself.

In other news, my former employer in Tampa is doing gangbusters: two acquisitions in 30 days in a bad recession. I regret burning that bridge: whatever problems there were in product management pale in comparison to the insanity at my current job, but my scorpion nature wasn't quite kept in check when I was there. That, and I should never have taken the QA manager position. C'est la vie...

But hey, at least I have a job, for now. In 9 days, the country is officially under new management, and I am hopeful President Obama will make the right decisions and form the right alliances and help set this nation on a course to realizing our potential. If nothing else, he can't possibly do worse than the idiots we've had running things for the last 8 years (last 28 years, actually).

05 January 2009

More WTL resources

Using the Windows Template Library articles by R. Mack
After a promising start which builds from an empty WinMain(), it peters out after a couple of examples. Still, it's worth reading to see how simple it is to start pulling in WTL bits.

WTL Makes UI Programming a Joy articles (Zip files with a Word doc and zipped source) by Chris Sells, Dharma Shukla, and Nenad Stefanovic
Stefanovic is the creator of WTL, and while dated, these articles are worth reading to get a little deeper into WTL.

A page of WTL links in the Philippines which includes Eamon Tuathail's humbling WTL Developer's Guide in PDF: highly recommended.

Finally, a WTL tip: if you're like me, you build with Warning Level set to Level 4 (/W4) and with Treat Warnings As Errors set to Yes (/WX). To get rid of those C4996 warnings, define _SECURE_ATL.

04 January 2009

Getting started with WTL

I've spent the holidays (re)learning about WTL, so I thought I'd make a few notes as I went.

I'm using Visual Studio 2008 Professional on Vista SP1, so if you're using something else, the details may be slightly different. The essentials will be the same, though.

The first step is to make sure you have WTL on your machine with the App Wizard registered.

The current version of WTL is 8.0, and it can be found on SourceForge, oddly enough. Just download the Zip version and extract the contents into a folder on your system (I used C:\WTL80).

WTL comes with a number of scripts to add WTL support to the App Wizard in Visual Studio, but 8.0 was released before Visual Studio 2008 came out, so you'll have to add the WTL support yourself. Fortunately, it's incredibly simple:
  • copy AppWiz\setup80.js to AppWiz\setup90.js
  • open setup90.js in a text editor and make the following changes:
Compare: (<)C:\WTL80\AppWiz\setup90.js (6399 bytes) with: (>)C:\WTL80\AppWiz\setup80.js (6401 bytes)

< // Setup program for the WTL App Wizard for VC++ 9.0 (Orcas) --- > // Setup program for the WTL App Wizard for VC++ 8.0 (Whidbey)
< strvc9key = "HKLM\\Software\\Microsoft\\VisualStudio\\9.0\\Setup\\VC\\ProductDir" strvalue =" WSShell.RegRead(strVC9Key);"> var strVC8Key = "HKLM\\Software\\Microsoft\\VisualStudio\\8.0\\Setup\\VC\\ProductDir";
> strValue = WSShell.RegRead(strVC8Key);
< strvc9key_x64 = "HKLM\\Software\\Wow6432Node\\Microsoft\\VisualStudio\\9.0\\Setup\\VC\\ProductDir" strvalue =" WSShell.RegRead(strVC9Key_x64);"> var strVC8Key_x64 = "HKLM\\Software\\Wow6432Node\\Microsoft\\VisualStudio\\8.0\\Setup\\VC\\ProductDir";
> strValue = WSShell.RegRead(strVC8Key_x64);
<> WScript.Echo("ERROR: Cannot find where Visual Studio 8.0 is installed.");
< strline = "Param=\" wizard_version =" 9.0\"> strLine += ".8.0";
> else if(strLine.indexOf("WIZARD_VERSION") != -1)
> strLine = "Param=\"WIZARD_VERSION = 8.0\"";
You only need to change all 8.0 instances to 9.0; all the other changes are ones I made to productize the script, because that's how I roll.

Anyway, shut down Visual Studio 2008 if you have it running, run setup90.js, start Visual Studio 2008, and create a new project.

You will now see a WTL node under Other Languages\Visual C++, right below Win32:

Go ahead and create a scratch project using the wizard and take a look at the code. WTL comes with a dozen samples, including some for Vista, so be sure to take a look at them as well.

When you're ready to continue, head over to the excellent series of WTL articles on CodeProject, starting with Michael Dunn's WTL for MFC Programmers series.

30 October 2008

Application Manifests

I was bitten by an interesting problem with our service today.

When I ran the service on a clean XP SP3 system, I got

The system cannot execute the specified program.

Googling this phrase, it implied we had a missing dependency (DLL), so I ran Dependency Walker but found no missing dependencies.

However, Dependency Walker did find an error, giving me another set of phrases to Google:

Error: The Side-by-Side configuration information for "foo.exe" contains errors. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001).
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
"Side-by-Side configuration information" is the clue that this is actually a problem with the application manifest. Now we're getting somewhere...

As it turns out, the Visual Studio 2005 project was configured to have the linker generate the application manifest, but for some reason (I haven't root caused it yet), the manifest being generated is wrong: it specifies a dependency on the VC8 runtime, but the service is actually statically linked to the runtime to minimize dependencies.

So, the reason we're seeing this vague error when we run the service is because the application manifest is horked. When I rebuilt the service without the application manifest, the problem "went away."

The next step is to take a look at the manifest and see what it ways.

You'd think looking at an application manifest would be simple: it isn't.

Fortunately, the indispensable Kenny Kerr has written a tool which will display the application manifest: Manifest View.

24 October 2008

Compare and contrast

Sarah Palin says clothing budget row is sexist


Picture by Callie Shell, from an excellent Digital Journalist piece here.

11 October 2008

Why I'm voting for Barack Obama

While I lean so far to the left on most things that I'd be more at home in someplace like Boulder or Berkeley (perhaps), I can't think of any of the Republican candidates who were noteworthy.

Rudy Giuliani: noun verb 9/11. He's an idiot, too, showing poor judgment with Kerik, his affairs, etc.

Mike Huckabee: very personable, so long as you overlook his fundamentalism and the corruption when he was governor of Arkansas. Sorry, I have no tolerance for any religious fundamentalists: Christian, Muslim, Jewish, etc.

Mitt Romney: the smartest of the bunch, and certainly he has some business credibility, but he was very quick to change his views to match what people want (and eerily reminiscent of a Stepford husband).

Fred Thompson: please. An actor? Did we learn nothing from the disaster that was Reagan, worst president until W?

On the Democratic side, I liked Kucinich (a lot) for saying the things that needed to be said, but he was nowhere near viable.

I couldn't support Hillary Clinton because she voted for the invasion and occupation of Iraq (as did Biden). That, and I don't want another ruling family.

I like Chris Dodd a lot - smart guy, good record - but his relationship with the insurance companies was a little uncomfortable.

I like Bill Richardson for a number of reasons - record on foreign policy, record at the Department of Energy, he's governor of my favorite state, he isn't another white guy, etc. - and I was really pulling for him.

I didn't care for Barack Obama at first: his lack of experience annoyed me immensely, and I couldn't understand why people were talking about him. Just like with John Edwards, he came from nowhere to national prominence without actually doing something noteworthy, and I'm sorry, but I still believe you have to pay your dues, get your scars, earn your experience.

However, his choice of Biden addresses most of my concerns about experience (most), and Barry has earned my respect, which is no mean feat.

Look, he's been campaigning for almost two years now, he's been all over the country, he's talked to thousands of people, and he's managed to stay civil, focused, and commanding. Unlike the bitter old white guy running against him.

Barack Obama's campaign is and was much better run (ethically, financially, etc.). Both McCain and Clinton had poorly run campaigns during the primaries, and it doesn't speak well of their organizational abilities.

Barack Obama is smarter, more even-tempered, and more ethical than John McCain. No contest here.

Barack Obama did a much better job at picking his Vice President. Much, much better. I have always liked and respected Biden (apart from the Iraq vote).

Finally, Barack Obama is younger and healthier than John McCain, and the thought of Sarah Palin being anywhere near the oval office scares the hell out of me.

It should scare the hell out of everyone.

Look, we have some serious, serious problems:
  • an impending worldwide recession, possibly even a depression
  • the end of cheap oil, in a culture built entirely on cheap oil and with no viable alternatives in sight
  • global warming, massive habitat destruction, and an increasing extinction rate
  • the impending death of the seas from rising CO2 and increasing ocean acidification
  • religious fundamentalists, here and abroad
This is some terrifying stuff, and ignoring it, jumping in the SUV, and going down to the mall to load up on Cheetos and DVDs isn't going to change it.

I'm looking for someone who speaks to our better natures, who can inspire us to work together to make the world a better place, to lead us into the 21st century and away from fear, poverty, war, and ignorance.

John McCain is not that person.

Barack Obama is.

So get out there and vote. It really is likely to be the most important election of your life.