Friday, March 20, 2015

San Francisco Has a Vibe

I love this city. There's a vibe here. I don't feel I can quite explain it in words, but this is one of the places on Earth which resonates with my soul. San Francisco. Like Seattle, Maui and Edinburgh, too. It's mysterious to me, but I somehow feel more alive when I am in one of these places. There's a combination of factors, the lighting, the atmosphere, the proximity to water, the hills and mountains, the typical weather, the aromas of the types of food around, the coffee, the bustle or complete lack thereof. Geographic love. The feeling of not wanting to go back. The desire for change of pace.

This trip, I got to re-connect with an old friend thanks to the simultaneously best and worst thing which has ever happened to mankind, this here beast you're reading this on: The Internet. It would have been extremely unlikely I think, for me to have taken the opportunity to reach out to a few of my old friends, to let them know I'd be here for a few days, without the advent of email and Twitter and Facebook.

Thankfully, however, I mentioned to two friends (and more) I'd be in SF to demo my company's work near a trade show. Andrew took me up on the invitation and came to see what I've been working on for the past two years. And I am so glad he took the time to come hang with me for an evening and grab some dinner. It was great to catch up in person after 20 or so years, and shoot the breeze about school days, friends, biking, work, kids. All the stuffs.

We talked about our kids, as parents are wont to do, and of course, the "best and worst thing" came up. How can you be a good parent if you allow unfettered, uncensored access to all the (disturbing, pornographic, senseless, racist, homophobic, myriad-other-pejorative-adjectives) bullshit available on all the servers Google crawls? Let alone just letting them connect with their own questionable peers on Facebook or its ilk. And yet, how can you be a good parent if you deny access to all the (wonderful, literate, scientific, artistic, factual, reasonable) content of the world wide web? And their own friends! The www both rules and drools at the very same time. Parenting is becoming more difficult as time goes on, because keeping our kids from knowing things "too soon" is harder than it used to be.

Used to be you could rely on the librarian to let you know if your kid was checking out (or even just checking out) a book of questionable morals... Now, there ain't no librarian between clicking the search button and instantly seeing the top 100 images on any topic 13 year olds can imagine. Access to knowledge is a great thing, but access to certain knowledge before you're ready for it is just not the best thing for kids sometimes. Parents: take good care of your babies, and help them figure it out when they are inevitably exposed too soon to something they weren't quite yet ready for.

Dinner dinner dinner. Ah, Thirsty Bear, my old friend. As I order my second beer, while he's still half done with his first, I'm reminded I can (fortunately? unfortunately?) handle more alcohol than my friends of Asian descent who weigh less than me. More sorry for them than anything really. ;-)

We talked about biking, and racing bikes, and commuting by bike. He far exceeds my own feeble attempts at bike commuting. My commute is flat and 10 miles one way. His is through the hills surrounding the San Francisco Bay Area and 25 or 30 miles one way. I do an average of 27 miles a week. He does 200. He races. I do not. But hey, I commute by bike 1 or 2 or 3 days a week, and I'm loving it. And he tells me "every ride is a good ride." I couldn't agree more.

And... since he works for Synaptics, I took the opportunity to ask him "why the fheck does my Dell trackpad suck, but my old MacBook Air trackpad rocked?" And, as it turns out, there's actually a reason for it. It's not just "all in my head." Most PC manufacturers still connect the trackpad via the old school PS2 mouse/keyboard hardware interface because they don't want to sacrifice a USB port to have a higher speed connection between the trackpad and the motherboard. But Apple, oh Apple, paragon of producing engineered consumer delight, once again trumps every other company on the planet by designing a custom interface from the trackpad itself to the board. Their higher speed interface allows them to produce the infinitely better experience of actually tracking my fingers across the trackpad accurately. I remember fondly the days when I could actually click and drag on my trackpad. Oh, to work on a MacBook again. What I wouldn't give.

As it turns out, my friend Andrew is listed as one of the inventors on something which Apple, somehow, mysteriously, after some of them saw a demo of it in action, "invented independently" very shortly thereafter. Or something like that. Wouldn't it be cool if you could have a touch-based trackpad, but like a clear one, so you could put it on top of an LCD screen and make, oh, I don't know, a touchscreen cell phone or tablet?

(Note the dates, and recall, if you will, the first iPhone went up for sale in 2007.)

Despite the obvious use of the patented technology, which, you know, could have been an independent simultaneous invention, Andrew tells me he's grateful every day for Apple and their iPhone explosion around the world. Since they won't sell their parts to anybody else, all the other cell phone manufacturers look to Synaptics to get their transparent touch screens for their phones, which turn out to have quite a high market demand these days... Thanks, in large measure, to Apple. Moral of this particular story: if Apple wants to steal something from you... Let them!

Last time I was here was about four years ago, in 2011. I attended Apple's WWDC that year, the last year Steve Jobs was alive and spoke to the conference attendees. I do hope I get to visit again sooner than four years from now. My honey's got a conference lined up out here for July. Hopefully I'll get to go with.

San Francisco has a vibe. It resonates with my very being. And I love it.

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.

Monday, December 31, 2012

'Twas the (Charitable Giving) Season

It's that time of year again. A chill wind blowing, long, dark nights, ... balanced by warm fireplaces and Christmas tree lights.

And time to figure out how to spread some Christmas cheer without filling the world with more "stuff."

As with recent years, we are continuing our tradition of donating to charities in honor of our loved ones instead of spending money on "too many" gifts. I encourage you to consider doing the same, and helping those who are less fortunate than we are.

We've donated to the following charities this Christmas season. We would encourage you to do so too, with the charitable organizations that are closest to your hearts. Write up a blog post, or put it on Facebook, or send us a note. We'd love to hear about what charities you love to support.

Give generously!

Here's wishing you and yours a Merry Christmas and a peaceful and prosperous New Year!

Sunday, September 02, 2012

Worn out

Today, Sunday September 2, 2012:

distance: 8.01 miles

time: 94.27 minutes

average pace: 11.77 minutes per mile

calories burned: 1065

fainted after the run: nobody

calories re-ingested at Perecca's after we were done: unknown, but of course, enough to call it brunch with a cupcake dessert...

Here's a picture of the bottom of my shoe:

Think we'll be ordering new Five Fingers on Amazon later today.


Saturday, April 14, 2012

Chunk of Change for Charity

Back in February, DLR softWare LLC made its first charitable donation, based on the proceeds from Sgt Fitness sales in 2011.

Thanks to all the Sgt Fitness users out there, and those of you that voted for your favorite charity through the online voting booth at, I wrote a check for $60.00 to The 3-Day for the Cure.

Spread the word: there are those you know who could actually use a dose of discipline from the old Sarge. And every copy sold through the app store adds $1.25 to the next chunk of change for charity.

Stay fit!


Saturday, April 07, 2012


Got a really cool present from my honey this year for my birthday (and a great card, too!). Thanks, baby! It's a t-shirt that looks like this:
IMG 1115
If it seems familiar, it may be that you read this post of mine from August, 2010:

My writing's been immortalized on a t-shirt! And I get to wear it whenever I want!
I'm a lucky man. Grateful for what I do have this month, not so concerned about what I don't have. Tell me, though... what sounds younger: 45 years or 4.5 decades? My grandparents always told me you're only as old as you feel, and you can stay young at heart your whole life through. I always did think they were pretty right-on.

Saturday, March 31, 2012


March, 2012: it was weird around here. It was just as warm as June or September usually is for about two weeks right in the middle of the month.

But that was mostly a good thing: I started riding my bike to work early this year, the week after we changed the clocks to what the Europeans call "summer time." (Stupid time changing. But that's another topic...)

RunKeeper tells me I've made 6 round trips to work on my bike this month. I swear I did 7, though: I must have forgotten to use the RunKeeper on one of my commutes that first week, because I swear I did 2 the first week, then 3, then 2 again. Apparently I only tracked one of those ones the first week, though. Maybe I didn't have enough battery power that day. I can't remember, it was a few weeks ago already.

Proud of this, though: I already cracked 40 minutes on one ride in this month.

Rock on.


Wednesday, February 29, 2012

Hello Leap Day

February 29th. An extra day. But it's a Wednesday this year, so in some ways, it hardly seems like it.

What are you going to do with it?

Just in case you're not sure, Seth Godin has some good ideas.

If none of that sounds appealing to you, you should check out Austin Kleon's new book, Steal Like an Artist. It's chock full of inspiration.

If you're still not inspired, you're gonna have to write your own blog. That's all I've got for today. :-)