Flying is Fine — Extra Screening Sucks Hard

TSA Security Line
Thanks to flickr user redjar for the image.

I hate airports.  Not flying, flying I love.  But the process of dealing with airlines, and luggage, and most especially the TSA/Security Theater aspect of the process drives me crazy.  I flew down to SJC this week for a technical conference, MySQLConf.  It was a great conference: I met neat people, I learned new things, I got excited about tech again.  I loved that part.  The flight down was fine.  Easy, no problem through the airport.  Only the usual anxiety about the process.

Continue reading

Art Walk – Portraits and Making Use of the Opportunity

March Art Walk Participants

For Art Walk these last two months, I’ve been doing a portrait special, and I’ve found it to be a very worthwhile and good way to use the flow of traffic through my space to create more art, and to support creating more art.   It’s also been an excellent experience for networking with more people, and for practicing with all sorts of individuals.

So that end, I’m going to continue to do this, and to experiment with the lighting, background, and all sorts of the details that pertain to doing this.   Next month, for April’s art walk, I hope to get a nice red backdrop to use.

In any case, click on the image to visit my flickr profile for larger images in this set.  Lots of fun was had with this, and I’m very happy with the results.

How (not) to Influence Technologists

So I got an email today from a very cool company I know about.  They’re doing very interesting things with caching in the web applications space, and I generally approve highly of them.

But this email was vexing to me.  It was unsolicited commercial email.  Otherwise known as spam.  Boo.  Hiss!    Since I think they’re doing neat things, AND since I’ve already have a relationship with the company, I would doubly surprised to get this email.  The email was pretty targetted at what we do, and was addressed directly to me.  All very easy to do these days with databases, so I don’t hold illusions that this was crafted by hand for me.  Hardly.

But I am surprised that they didn’t cross-reference their existing customer/contact list against this to avoid this situation.

My first email to them was along the lines of “This is spam.  I’ve been talking to you already.  Why are you spamming me?”  The reply I got back was disappointing:

Our intention is not to spam, but to inform people of our products, new features and functions, webinars, etc. and offer a free trial to anyone who may want to test.  I will remove you from our mailing list if you prefer not to receive this kind of information.  We always include an unsubscribe link in our emails for people to stop receiving them if they

Our apologies to you.

I never signed up for your mailing list.  I never view webinars.  And generally, I add companies that spam me to a blacklist.  I don’t like it!

But this company does really neat things.  They’ve got cool technology, and offer tools for free to the open source community to help manage caches.  So, I wrote back:

It’s too little too late to say “we’ve got an unsubscribe link at the bottom.”  I sign up for things I’m interested in.

To be clear, I /like/ $COMPANY.  I think you, as a company, are doing neat stuff.

But I /also/ think this kind of approach is really really lame.   I know it’s the standard way that these things are done.  That cold calling and soliciting people who might be interested (or not) to get business.

But for all us technologists, it’s just annoying trash.   This isn’t how to make yourselves look like rock stars to us.   Presenting meaningful talks at conferences is.  Offering cool tools that we can use to better our websites is.   And you’re evening doing these things!

And let me be clear, I’m not pissed off at you, $PERSON.  I just really hate this style of advocacy, and I think it doesn’t serve you well.

And I sent that.   To any of your marketing types to read this, this is my take away for you:

  1. Don’t spam your existing contacts.  It’s off-putting.  We don’t like it, and
  2. Do more interesting things than spam.  Show yourselves to be world-class through your deeds.


Social Networking, Connectedness, and Privacy

CC licensed image via alancleaver on flickr.

Today I went to breakfast at Voula’s Offshore Cafe in the University District.  I had the steak and eggs with rye toast for breakfast.  It was quite tasty.  But this isn’t about my breakfast so much as it’s about the interesting example of information leakage.

I use foursquare because it’s fun, and to find where my friends are going for food, activities, and other things.  I don’t link my foursquare to any other accounts, but other people do.   This morning at Voula’s, I checked in, and saw one other person there.  I’m curious, and so I look at the foursquare profile. Turns out there’s a facebook link on the foursquare login, so I follow it.  Turns out she was sitting at the table next to mine.   I said hello and made a comment about foursquare.  Then I returned to my meal.

Her facebook profile said a lot of things: that we have quite a few friends in common, who she’s seeking, and her full name.   Now, I didn’t say anything to her about any of this, nor attempt to engage in a conversation at this time.  It would have been weird and creepy.  I didn’t want to be That Guy, or a weirdo.  But it was very much an interesting lesson in how we chose to interact online can affect us in the offline world.

When we all got out to the car, I had a conversation with the teenagers about information that you share online, and used this very real example from just now to illustraite that what you do online can have real results in the rest of your life.   Pay attention to what you post, to what you link, to all those things.  It’s very easy to draw connections between people via the social graphs.

There are many wonderful things that I get out of connecting my social graphs.   I get to point people whom I want to connect with me to where they can find me, and how they can do so.  But it bears consideration before you blithely do so.  Everything connected means there aren’t any secrets.

Art Walk – Making public time in the studio work for me.

Click for the whole set.
Click for the whole set.

So this past First Thursday Art Walk, I had my studio space in 619 Western open.  Per usual, I put some work up on the walls for people to look at, and had the artist statement up.  All the usual things.  But this time, I did something different.  Since my studio space is a working studio space, not a gallery, I decided to hold a portrait special for walk-ins during Art Walk.  What I did was I had set up the lights and had a pre-designed lighting plan for the evening.  I asked people who seemed like they might be interested (which basically meant most people) if they were interested in having their picture taken.  Sign here, give me your email and five dollars.  Thanks.  Okay, stand on the X.  Click.  click.  Click click click.  Lots of images taken.  Some people paid more to get more photos because they had a great time and wanted more than just one image.

It worked really well.   All told, I had plenty of participants, and shot many frames.  A few times, I even had a line.  That was awesome.

So what gets me about this is that this project is in line with how I like to do the photography thing: showing people themselves in the moment.  I had some of those occur.  Much fun.  I’m thinking that I’ll likely do this again next month.   Also, more work will be up on the walls.  Good times.

So if you participated in this, what do you think?  Did you have fun?


Of the Crafting of Brown Barbazu Ale

The color of the finished wort
The color of the finished wort

I use the name Studious Dwarf as my brewing name. And I do this because I feel like it does a fine job of capturing my thoughts and persona as it relates to brewing:  A brewer should be attentive to details, clean, organized, and precise.  I feel that this is well reflected in the modern mythology of dwarves.  So I use the name.  Today I made my 2nd ever batch of beer, which I am entitling Brown Barbazu Ale.  Barbazu is the name of a D&D monster, a bearded devil.  This is fun. :D  My previous beer (which came out really well) was called Red Kobold Hunting Ale, and is a red, light ale.  This current batch will be more bitter, with hoppy bites to it.

Continue reading

SeaCompression 8

I had a great night at SeaCompression 8 – Metropolis Now.  SeaComp is the local burner decompression party put on by Ignition Northwest that follows the yearly Burn.   This year’s theme is a bit of a play on what’s intended for BurningMan’s theme next year — Metropolis. 

At any rate, there were many wonderfully dressed people at SeaCompression, and I had a great time photographing them.  I also had a great time running into friends that I haven’t seen in too long.   My set of images from the event is up on flickr, here’s the link.

I volunteered to work a shift of Door for the event; this process consisted of taking people’s money/tickets, and giving them a wrist band.  That was fun, and it provided a great opportunity to say hello (which I did about a hundred and fifty times.)  The greeter shift passed quickly, and was greatly enjoyable. 

My wife attended the event for the first time, and she had a great time.  She dressed up as a punkish version of herself, complete with a crazy-wonderful purple and black wig, and silver goggles.  She met many people, and said she was glad to attend.  I was also glad she attended, because I love my burner community, and want her to enjoy it, too.   So that’s cool.  We’re going to be going to the playa this summer together, and that should be a blast.

The job done by Suspended Animation, a theme camp that ties people up and suspends them, was very nice.  They lit their subjects beautifully, and clearly showed great skill and concern during their performances.  I enjoyed their performances, and look forward to future events.

There were many other wonderful things to see:  The Black Rock City Cinemas, showing videos from participants of previous years of Burning Man; The dance stages were full and replete of Untz and the cacophony of chest-thumpingly loud dance techno music blaring across the room; and the fire spinners, doing what they love.

SeaCompression was a hell of a party, and I look forward to next time.   I heard it was better next year. ;)

MySQL, Alter Table, and How to Observe Progress

Network Gear

This only works on MySQL 5.0.  If you’re using 5.1+, this approach isn’t for you.

Today we had to do a very large alter table on some production data.  The table in question is big. 47 million rows big.  We have to make some changes to drop a column and change some indexing to support our application.  Fine, ALTER TABLE blah blah blah.  But how do we keep an eye on the progress of the alter?

There’s nothing in the documentation for MySQL that speaks to a method, nor does any google searching pull up anything (except for the one InnoDB file per table patch.)

So what’s a clever systems administrator to do?

I looked at the output of lots of status commands from MySQL, and finally I came across something useful in the InnoDB engine status output.  I noticed that there was an entry in the TRANSACTION section that speaks to the undo log entries.  I noticed that after several hours of our ALTER TABLE running that the undo log entries value was up around 33 million.  And then it occurred to me that since InnoDB does row-level operations, that this value might correspond to the number of rows that have been operated on throughout the process of the ALTER:

---TRANSACTION 0 2769988559, ACTIVE 53210 sec, process no 4115, OS thread id 1157654880 inserting, thread declared inside InnoDB 91
mysql tables in use 2, locked 2
111667 lock struct(s), heap size 13580272, undo log entries 33707735
MySQL thread id 948913367, query id 1662722204 localhost root copy to tmp table

So I wrote some bash  And some awk.  And some perl, and I made a hacky little one-liner script to dump out the rate of change, the average rate of change, the % complete, and an estimate (based on average rate of change) as to when the query might be complete.

That script is below, and you are welcome to it.  I have yet to wrap it in more clever perl to dump out an actual status bar, but I’m happy with it, and hopeful that this is a meaningful way of keeping an eye on the rate of change, and the progress of ALTER statements.

The script:

(while(true); do  \
(mysql -e 'show innodb status \G' | grep undo\ log\ entries ; sleep 1 ;  \
mysql -e 'show innodb status \G' | grep undo\ log\ entries ) |    \
egrep '[0-9][0-9][0-9][0-9]' |awk '{print $10;}' ; done ) | \
perl -e '$t = ROWS_IN_TABLE; while(1) { \
$n ++; $nn; $a = <>; $b = <>; $nn += ($b-$a); \
printf "Rate: %d, avg: %d, %0.3f%% complete, done in %d sec\n", \
$b-$a, $nn/$n, ($b/$t)*100, ($t-$b)/($nn/$n); }';

I hope you find this tool useful.

It took a LONG time for the query we performed to run, and it was very helpful to have this to gauge the time it’d take.   The moving average is not the best for long-term accuracy; restart the script periodically for better views (and wait for ~100+ trips through the loop.)

It was within three minutes of accurate.  It look a little longer than the script indicated (log undo entries was greater than the # of rows, but not by more than a small percentage (less than 0.01%.)  The total query time was 22 hours, 9 minutes, and 33 seconds.  So it was off by only 1 hundredth of a percent.

This is only valid for ALTER TABLE, but appears VERY useful. :)

WOOHOO, acheter viagra!

Musings on Technology, Society, and Photography