The Guru College

DIY Object Photography Studio

I’ve oft played with ways to get a cheap lightbox setup. A lot of people online will take cardboard boxes and cut holes in them, or balance objects on top of poles, or whatever. I used to take a sheet of typing paper, prop it up against my keyboard, and desk lamps with flexible arms over, and hunt around until I got the shot I wanted.

There is another way – replace the propped up sheet of paper and keyboard with a bit of poster board and a bookshelf, and replace the lights with a wireless flash (or two). Conveniently, I’ve got two Nikon speedlights that work with Nikon’s Creative Lighting System, which saves me from having to mess about with 100 watt light bulbs.

Using a little bit of strobist magic, you’ll figure out that once you set your flash power, ISO and aperture, you can easily vary the exposure by rotating your finger on the command dial and moving the shutter speed up and down. Here are a few shots I did this morning with this setup:

Please use ‘Fascist’ in a sentence

The Misused Word Of The Day For Today Is: ‘Fascist’

A lot of people in today’s time apparently fail to realize that there is a very specific definition for fascism, none of which relate to The Man, or not at least as we know The Man in the United States today. Nor is it a right wing ideologue who dumps verbal diarrhea on a 24 hour cable “news” show. Also, a cop beating up a demonstrator is not a fascist. That cop is someone who deserves neither rank nor freedom, perhaps, but not a fascist. To borrow a little from Wikipedia:

Fascists believe that a nation is an organic community that requires strong leadership, singular collective identity, and the will and ability to commit violence and wage war in order to keep the nation strong.

Sadness

Poking about the camera stores online, I thought for a moment that Adorama had the non-kit Nikon D7000 in stock, and ready to ship. I rushed through the order and confirmation process… only to land back on the main product page and then notice the D7000’s of all stripes are still backordered. I went ahead and cancelled the order – no point blowing up my credit card when they are in stock – and realized that I placed my other order almost 2 months ago, on November 11th.

I hate to wait.

The Mac App Store

The Mac App store is open for business. Interestingly, Aperture was given a signifignt price break: it’s now just $79.99. Considering that it first went on sale at retail for $499.99, and was then cut to $299.99, and is now offered as a build-to-order extra for a Mac for $199.99… it’s interesting that Apple is doing this. No idea what it means, but it’s interesting.

Photography Classes, Revisited

A long while back, I wrote that I was looking for some Photography classes to take. I was in Dubai at the time, where Internet speeds weren’t very good , and in-person moderate to advanced level classes were few and far between. Today, I ran across a post on BeyondMegapixels talking about Kelby Training – which looks somewhat promising in terms of breadth of technical classes as well as depth of topics covered. If I only had two or three hours each night to spend on this kind of stuff, it would be worth the $200/year pricetag…

Today’s Lesson In Perl

Today’s lesson in Perl is the difference between the DBI fetchrow_array() and fetchrow_hashref() calls. The both work, returning a row from a database, but they differ significantly how that data is stored for later use. Calling fetchrow_array() returns an array full of values from the query. It’s up to you, the developer, to keep track of what was asked for and in what order. When looking at code that is longer than a single screen, this gets to be a nightmare, as everything is referenced numerically: $r[2] selects the 3rd item requested.

fetchrow_hashref() instead packs the data into a hashref, using the column name from the query results as the key. This way, instead of checking to see where ‘user_name’ appeared in the query statement, finding that it was the 3rd field, and then using $r[2], you can just write $r->{'user_name'}. Nothing to look up, nothing to remember, and it sets you up for some much better usage down the line with fetchall_hashref().

fetchall_hashref() allows you to pull the entirety of the query results and pack them into a single hashref, referenced by whatever unique key you like. (You are using unique keys, right?) With fetchall_hashref(), you can then say $r->{$hostname}->{'service_status'}, for any suitable permutation of $hostname.

All of this comes up because I’ve just had to go through a fix a bunch of code I wrote before I discovered the magic of fetchrow_hashref(). Remember: if it’s painful to write, it’s 5 times as painful to fix 2 years later, under pressure.

Damnit, BestBuy

It’s really sad in the current economy, with things as bad as they are, when a store makes you wish it’s competitor was still in business. I’m talking today about BestBuy, and the indifference to customers they seem to have.

A month ago, I braved Black Friday to purchase a Nikon lens that was available locally, to avoid waiting 3 or 4 days for a delivery from one of the main retailers online. Figuring it was Black Friday, I paid for it online, so I’d only have to go into the store and pick it up. They even emailed me on my way to the store to tell me it was ready.

Once I got there, I went back to the camera department, thinking I was supposed to pick up my lens there. Brandishing my receipt, I was told to head over to customer service, as they would have the lens at the desk already. Excellent. I walk over, wait in line for a few minutes, and get to the front of the queue. The guy behind the desk looked through all the little cubbies looking for my lens. Finally, he called back into the inventory guys, and asked where it was. We started waiting.

Over the course of the next 40 minutes, he called Inventory back a few times. Finally, someone ran from the back of the store – from the direction of the Camera department – with my lens in hand. This whole time, the checkout lines were moving smoothly, and a number of sales reps had walked around casually behind the Customer Service desk.

It gets better.

A few days ago, the last of the extra earbud covers for my headphones came off, and I begrudgingly admitted that it was time to get a new set. (After going through all four sets of earbud covers over the course of the last 14 months, and having paid $18.00 for the earbuds, I can’t say I was disappointed – I got my money’s worth.)

So, I went into a BestBuy near my house to get a new pair of headphones. I wasn’t sure exactly what I wanted, but I had cash in hand, and I was determined to leave with a new set. I wanted to spend a bit more – between $35 and $50 – to get a set that would last longer than a year, and would be comfortable to wear for longer periods of time. I walked in and looked around for a sales representative.

And looked.

And looked. None were to be seen. This is on a weekday night between Christmas and New Years, around 6:00 PM. You’d think there would be some staff, somewhere, to help customers out. Nope.

Well, I’m smart guy, so I figure I can find headphones. How hard can it be? After walking through the stereo/speaker section, the TV/video game section, the phone section, the MP3 player section and having started to walk through the racks of DVD’s, I finally notice some sales reps helping a customer over in the Computer department. Three guys, one customer. One of the guys was on the phone, the second was staring at the first, and the third was leaning against the wall. They hadn’t been there earlier, but whatever. I ask the guy leaning against the wall where the headphones are. He just stares at me. The guy on the phone stops talking into the handset, looks over at me (without putting the phone down) and says: “What kind of headphones?”

“Regular ones, I guess?” I reply.

“Well, the wireless ones are over there” he says, as he gestures to one part of the store, “and the normal ones are over behind the MP3 display, over there” and waves his hand in another direction. Then, he goes back to his phone conversation. The other two guys don’t react at all. So, I walk over, alone, to the rack indicated, and look at my options. There is a lot of really cheap looking SkullCandy stuff, a few pairs of overpriced Sony earbuds, and a bunch of wildly expensive (but nice) Bose noise canceling sets. Nothing mid-range at all, nothing that really looks comfortable for the long haul in the $35 – $50 range.

After a few minutes of staring at the rack, I realize I need something, so I grab the least offensive Sony earbuds, and head out. The only other BestBuy employees I see are one carrying a huge load of boxes, and the cashier, who I must say was very friendly and quite pleasant to talk to. She was probably the only useful person I dealt with in the store.

As I was walking out, after paying, I realized I missed Circuit City – whose employees had a reputation for being pushy salesmen hawking overpriced goods. They may have been pushy, but they knew what they were selling, and would engage a customer to try to meet his or her needs. BestBuy has never done that for me, ever. They have shown me total lack of concern or attention. Thinking back, even when I was buying flat screen televisions or hundreds of dollars of stereo speakers… I never really got decent service. In this economy, how can you afford to operate this badly, with this kind of distain for your customers?

I returned the headphones Sunday night. At this point, I’m only going to shop online.

Newer Posts | Home | Older Posts