Friday, July 19, 2013

Obviously Secure

Empty your water bottle, stow it in the suitcase. Empty your pockets: wallet, cell phone, coins, keys. Put stuff in your laptop bag. Keep your license and boarding pass out. Smile, be friendly, don't be irritated or grumpy, don't look suspicious.

OK, now get the baggie of liquids out, get the laptop out, wait till the last minute to step out of the flip-flops, put 'em all in trays, push the bags and the trays into the gaping mouth of the RapiScan 620 DV... Wait just long enough to be reasonably sure they won't be burped up, forcing the lady behind you to deal with them.

Stuff the license in your pocket, show your boarding pass one more time, step through the metal detector, pause for the slight delay caused by the re-scan and eventual manual probing of the suspicious bag of the dude in front of you. Wait just a few seconds for the guts of the RapiScan to digest your stuff.

OK, you're nearly there. You are now deemed safe for air travel by the Men In Blue. But the dude who was in front of you is now behind you, waiting for his bag, hopefully not having to explain why he's trying to transport so many batteries on an airplane. Or God forbid, a sole nail file.

You do not have a shoe bomb, your water does not have any explosives mixed in with it because THAT'S RIGHT, YOU DON'T HAVE ANY WATER, your laptop cannot possibly be used to trigger anything except blog comments at this point, you ARE who your ID says you are, and there is no possible way you could be a threat to anybody for any reason while on your upcoming flight. If there was, surely they would have prevented your passage.

So, now you can reverse the whole process and put yourself back together. Mostly.

Collect your bags and trays, pooped out irregularly from the butt of the RapiScan.

Empty your trays, put your flip-flops back on as soon as possible, get your laptop and baggie of liquids, stash 'em where they belong.

Get your pocket contents back out and put them back in your pockets. Put your license away. Now keep the boarding pass in your pocket.

And, now, finally ... you can get your empty water bottle out of your suitcase, fill it up at a water fountain, take a nice long swig, and bask in the glow of your ... safety.

After all, we all know the screeners are perfect and never miss a thing. I mean, they spend a whole few seconds on EACH bag and tray. Plus, the visualization software they use to scan the bags for bad stuff is certified to have NO BUGS WHATSOEVER. I feel so warm, and fuzzy, and safe. And secure.

Thanks, Men In Blue.

Monday, June 10, 2013

Desperately Seeking Sugar Daddy

Come on, Internets. You have 13 hours left to prove how big you are...

Kickstarter project ends tomorrow morning. I need 861 more honorable mention pledgers, ... or 2 corporate sponsors, ... or 1 sugar daddy.

Tuesday, June 04, 2013

The End Approacheth: One Week Until 11:11 am on June 11...

Less than one week to go. At this time next week, we will find out whether ActiViz .NET has enough financial support to continue, or whether it will hibernate until somebody comes along and gives it a resurrecting kick.

I'm talking, of course, about my kickstarter project again. I just updated the project page with some pictures and some explanations that my non-geek "regular people" friends have a chance of understanding.

Check it out, and most importantly, share this link with your geek friends. And your friends who have geek friends. (They're the ones most likely to know somebody who actually uses ActiViz .NET...)

If we don't hit the goal of $11,000, then NO money changes hands and the project will remain unfunded. Please help spread the word if you can: I don't want YOUR money. I want you to tell the people who really need this thing to fly, just so they become aware of it. And then I want THEIR money.

So ... even if you already shared the link two weeks ago: share it again. There's so much stuff flying past everybody these days, it's easy to miss things. A little repetition doesn't hurt.

Thanks, friends!

Wednesday, May 29, 2013

Kickstarter Rocks!

I'm finally doing it: I launched my first Kickstarter project earlier this month, raising money for an open source software project. It's got 12 days and a bit to go. We're 10% of the way there. Will we make the goal? I don't know... We'll soon see.

In fact, you can see, too. It's all public, right here: -- it ends at 11:11 am on June 11th.

I would like to thank the people who have already pledged real money to this campaign: about half are people who really want the end result, and the other half are dedicated friends and family, whose moral support I have always known to be rock solid, but whose financial support of this project kind of took me by surprise. I am humbled, touched even, and honored to have you all in my life. You know who you are.

Kickstarter is awesome. I have been a backer of 5 projects since last summer. And I'm sure there are more in my future. It's a fabulous way to raise money toward completing artistic, technological, culinary endeavors and more. Stuff that you wouldn't normally be able to do because it costs more than you have, and there's no obvious way to get from A to B without having a rich uncle. Or worse, having a miserly rich uncle. Or so I'd imagine.

Karen Sabo, the creator of the first Kickstarter project I backed last summer said to me "I love crowdfunding, don't you? It's so Stone Soup." And it really is, isn't it?

It's "crowdfunding." Everybody who cares about your project kicks in just a little bit, and they help you spread the word, and before you know it, you have enough money to do the awesome thing you've envisioned.

I'm a numbers guy: I'm constantly figuring, counting things, and running what-if scenarios through my brain. The average Kickstarter pledge is about $70. For my $11,000 project, it would only require 158 people pledging at the average level to fund it. Or 1,000 people coming in for honorable mention at the $11 level. Or 10 people who really, really care about it coming in at the $1100 level. It is sooo possible.

But consider this: even better than the money perhaps, executing a Kickstarter campaign shows you something tangible about your endeavor. It proves that some number of people really do care about the art you're building. Even the campaigns that don't hit their goal end up with some pledgers. That, to me, with this specific project, is the real reason I'm running this Kickstarter campaign. If it succeeds, then I will have tangible proof that doing the work is worthwhile, and there are people who care enough to make it happen.

And if not, ... well, I've already made contact with a small number of people who really do care, and that just may inspire future actions: Kickstarter campaigns or other endeavors.

How about you? Need some money to finish a project you've always wanted to do, but have never tackled simply for lack of a large enough bank balance? Kickstarter might be for you. First, pledge to support a project that resonates with you. Perhaps even mine. :-)

Then check out their guidelines, and see if you can't come up with your own project to bring to life.

Sunday, May 19, 2013

Rush Still Rocks


The quintessential power rock trio.

They totally rock. Still. And they appeal to the thinker in me. And they do odd musical things now and again, like sections of songs in 7/4 time. And instrumental songs, where the music speaks for itself, no need for words. (YYZ, La Villa Strangiato, The Rhythm Method...)

And they don't care about blending in and being like the rest of the bands. They've got their own thing going, they do it well, and they still rock, after nearly 40 years together.

Cool facts about YYZ, sure you've heard them before: the percussive beginning of that song is the Morse code representation of the letters YYZ, which is the airport code for their home airport in Toronto.

I realized back at the end of last year / beginning of this, that I was lacking 12 of their studio albums. So I'm on a mission this year to collect one each month, and by the end of the year, I'll have them all in my music library.
  • January: Counterparts
  • February: Fly By Night
  • March: Hemispheres
  • April: A Farewell to Kings
And now, in May, this month's acquisition was their original studio album, the self-titled Rush, including the final classic track, "Working Man."

Five down, seven to go.

As my cousin Erik pointed out to me: "If you don't have La Villa Strangiato running in the background of your psyche 24/7, you are not a true Rush fan." Well, obviously, La Villa Strangiato is *always* running in the *background* of my psyche... but in March, I actually listened to it in the foreground about 38 times while I was working. I tried to learn bits and pieces of it on my guitar, too, but dang! Some of those riffs are fast in there.

If I had HBO, I would have watched the 2013 induction ceremony on TV last night, recorded last month out in LA -- Rush was finally inducted after years of being overlooked. A well-deserved honor indeed. Congrats Geddy, Alex and Neil -- and keep on rockin'... At least for a little while longer.

Rock on, eh? Ten bucks is ten bucks.

Friday, March 08, 2013

My Next Prediction: Tesla Model S for the win

The Tesla Model S is the next game changer.

I do not frequently make predictions, but I don't see how the world can stay the same old, same old after Elon & co. rolled this thing out.

Last time I wrote about a game changer was a bit over 3 years ago about Apple's introduction of the first iPad model. Was I right? I don't know, you be the judge. Have any computer manufacturers struggled or gone out of business since then? Have millions upon millions of iPads been sold?

Anyhow... the facts now: the Tesla Model S is affordable to richer folks right now, and it runs COMPLETELY and ENTIRELY without using any gasoline. Not one single drop. Fuck you, Exxon-Mobil. Every single mile driven in one of these cars is powered by pure electricity, which could potentially be powered 100% by solar, wind and hydro sources. In fact, with the Tesla provided, solar powered, free (ok, really "included in the rather high sticker price") so-called super-charging stations scattered about the highways of America, you may be able to charge your car entirely on their dime and the constant influx of power from our brilliant closest star. Last time I checked, the sun keeps rising every day.

Personally, I cannot afford one yet. But as soon as I can, or as soon as they come out with a $20k or $30k model, sign me the fuck up. This car's the future, and I've wanted it since I was a kid.

The writing's on the wall. The future is now. The oil & gas companies can kiss the long run goodbye right now. And the other car companies can follow Tesla's lead, or say bye bye real soon. It's a new game, starting now.

Wednesday, February 27, 2013

Windows Dev and Dashboard Prompt

First set up a cmd file (a batch file with a *.cmd extension) whose sole purpose is to set environment variables.

Mine, called DashboardEnv.cmd, looks like this on one of the machines where I have Visual Studio 2010 Express Edition installed:

    @call "%VS100COMNTOOLS%\vsvars32.bat"
    @set PATH=C:\Program Files\Git\bin;%PATH%
    @set PATH=%USERPROFILE%\DevBox\cmake-\bin;%PATH%
    @set PATH=C:\Python27;%PATH%
    @set PATH=C:\Qt\4.8.4-vs10\bin;%PATH%
    @set PATH=C:\dev\tools\bin;%PATH%

As you can see by inspecting that file, it sets up the environment just like a Visual Studio command prompt, and then adds a bunch of useful stuff to the PATH environment variable: git, cmake, python, qmake, ninja and jom, to name a few. I have ninja and jom in the C:\dev\tools\bin directory -- they could be anywhere, you just have to add the right directory to the PATH here in this script.

Next, set up a cmd file in the same directory as the environment batch file to display a "developer cmd prompt."

Mine, called DashboardPrompt.cmd, looks like this:

    @call "%~dp0DashboardEnv.cmd"

    @title Dashboard Prompt

    @echo Environment set by "%~f0"

    @call "%COMSPEC%"

If you prefer the "git bash" prompt to the raw Windows cmd prompt, you can change the call COMSPEC line to:

    @call "C:\Program Files\Git\bin\sh.exe" --login -i
After you have both of those setup, double click the prompt cmd file to test it out. Then you can create a shortcut to the prompt cmd file, put it on your desktop, or whereever you like, and then just double-click the shortcut to get a new instance of your customized developer prompt.

Some things I do to make the command prompt itself slightly less intolerable:
  • edit the command prompt window properties: with the window open, click on the icon in the top left corner, and choose "Properties" from the menu
  • modify the properties of the window to allow "select-and-Enter-key to copy, right-click to paste" behavior by choosing the "QuickEdit Mode" checkbox
  • set the screen buffer height (number of scroll back lines) to 9999, the max allowed
  • set the window size to something larger so you can see more text at once (120 by 40-50 is nice depending on your usual screen)
  • set the font to Lucida Console, and choose a font size large enough to read
  • if prompted, check "modify the shortcut that started this prompt" on the way out
Now that you're all set up for an interactive prompt with the right environment... here's the reason why separating it into two scripts is good for you. You can easily run any other script with the very same environment by adding one line at the top of it:

    @call "%~dp0DashboardEnv.cmd"

The %~dp0 there means "drive letter (d) and full path of containing directory (p) without any double quotes (~) of this script file (arg 0) including the trailing '\' character (implicit in p)" -- so if you write a script that references another script in the same directory, using %~dp0 is a reliable way to reference it, regardless of how the batch file was invoked. See the output of "help for" in a Windows command prompt for all the gory details about possible letter codes you can use in such constructs.

So: to run dashboards or other automated builds with the same environment that you use for interactive development, you can write a script that uses your Env.cmd file.

Mine, called RunDashboards.cmd, looks like this:

    @call "%~dp0DashboardEnv.cmd"

    @title Run Dashboards

    @echo Running script "%~f0"
    @echo.  started on %DATE% at %TIME%

    @echo Updating VTKLargeData...
    @cd "C:\dev\My Tests\VTKLargeData"
    @git pull

    @echo Updating VTKData...
    @cd "C:\dev\My Tests\VTKData"
    @git pull

    @echo Running VTK Release dashboard...
    @cd "C:\dev\My Tests\VTK"
    @ctest -S C:\dev\EasyDashboardScripts\EasyDashboard.cmake,ninja-Nightly-Release

    @echo Running VTK Debug dashboard...
    @cd "C:\dev\My Tests\VTK"
    @ctest -S C:\dev\EasyDashboardScripts\EasyDashboard.cmake,ninja-Nightly-Debug

One nice thing about guaranteeing the right environment is set for running a script like this is being able to just use "git" and "ctest" in the script itself.

Obviously, you'll need to adjust path values according to tool installations on different machines.

For more details on setting up to run dashboards on Windows, see this page over on the CMake blog. (Also published on the Kitware blog.)

Good luck -- tweet me @DLRdave or ping me on G+ if you use this technique.