Wish Me a Happy Birthday. Give.

Tomorrow is my birthday and I’m going to be 39.

That’s one year shy of 40! Yikes!

I want you to give to someone else. Read on.

This past year has not been the easiest in my life. In fact, it was maybe the hardest. In the past year, I saw myself recovering from unemployment to being financially on top of the world to being beyond broke. I saw myself visit the darkest part of soul as I struggled with severe, sometimes crippling depression. I saw a relationship slip from my grasp while also going through recovery, joining 10up and getting back to a healthy place in life. It’s truly been up and downs for me, and while it’s been painful in many ways, it’s also been very rewarding.

Particularly when it comes to recovery from depression, I’ve come to realize how much of a positive impact it is to be outwardly focused and put resources, time, money and focus on others.

Tomorrow, my Facebook and text messages will explode with happy birthday messages, and I’m grateful. I hope in addition to sending me well-wishes (or maybe offering to buy me a drink… you can do that too), you’ll consider giving to one of these organizations, all representing my interests (my very diverse spectrum of interests!), that are working toward a goal near and dear to me.

European Migration Crisis


01.05.2014 Hamburg, Germany: 500 people opened a Refugee Welcome Centre in Hamburg situated in an empty school, while Hamburg City Council and the ruling SPD refuse and fail to solve the problem of the Lampedusa in Hamburg group. As the Hamburg Government is not willing to find a political and humanitarian solution, people took the initiative and showed how easy things can be solved!

Rasande Tyskar, via Flickr

As so many refugees are flooding into Europe from Syria and the Middle East, many EU nations are strictly interpreting EU rules that require member nations to “hold” asylum seekers in-nation until clearance can be granted by the entire EU body of nations. Due to the sheer number of refugees, this is creating enormous humanitarian challenges and tempters are running high. Across the EU, governments are struggling with what to do with hundreds of thousands refugees while the general population in most member states fall on the side of the spectrum that is welcoming to these refugees.

The International Refugee Council is based here in the United States and is coordinating with refugee councils in Europe on managing the crisis in Europe. Please consider making a donation to the IRC to assist in these efforts.

Forever Homes For All the Dogs


Fender Excited about Snacks at Christmans
Fender Excited about Snack at Christmans

I met Fender in 2011 after he was unceremoniously abandoned at Whole Foods in Austin. I decided on that day to give him his forever home. In that time, he has lived in two states, two cities, peed on 13 state capitals, claimed 973 bushes in Baltimore and has been loved and cherished by all who have met him. He’s a joy to have next to me, even when his 25 lb stretched out frame takes up my entire queen size bed, at times, relegating me to the floor.

Though I did not adopt Fender via Austin Pets Alive, their mission resonates with me. Many people I know have either worked for, volunteered with or adopted from APL, Austin’s largest no-kill shelter. The national standard for the “No Kill” label is 90% of all pets being adopted or fostered.

Since I adopted Fender, I’ve advocated for people adopting a pet rather than getting a puppy from a pet store, which are often sourced as “puppy mill” puppies. It’s so much more rewarding to take a broken and hurting animal and give that pet the life of royalty. To make that pet feel special, when they have had their trust shattered in the past through abandonment or abuse.

As a birthday present to me, if you’re in Austin, go volunteer or adopt from APL. If you’re not, please consider a donation to help APL continue their mission.

Free as in Speech, not as in Beer


A Colombian teacher uses WordPress.
A Colombian teacher uses WordPress.

Photo by Oriana Robles, via Flickr

I have made an entire career on open source software such as WordPress. I’ve had significant contributions to the community, including being a cofounder of WP Engine, writing the WordPress Bible (sadly, out of date — ask Wiley to let me write another edition!) and WordPress core and plugin contributions. Not bad for a kid from Baltimore that dropped out of college and never got a degree.

I wouldn’t have been able to do this without free, open source technology. Free as in speech, not as in beer… free does not indicate that money does not change hands. It indicates that my software can be taken, modified and distributed for other purposes.

In much of the developing world, including Africa (where I also have roots), money goes less farther than here in the relatively prosperous western bloc. When 25 cents can buy a meal, expensive proprietary software is simply not an option. The developing world is where open source becomes extremely important in bridging the digital divide.

The Free Software Foundation is on the forefront of open source technology distribution and evangelism here in the United States and abroad. For my birthday, help them continue being that champion.

Thank you, in advance, for a birthday gift on behalf of me to one of these, or many other organizations, that are doing the hard work.

Aaron Brazell

Letting Perfect Get in the Way

I’ve been contemplating a phrase for a few days now. It applies to writing code, as I do for a living, as well as a whole host of other things… from relationships, to home life, life goals and endeavors… the list goes on.

Don’t let perfection stand in the way of progress.

I know what some people are immediately going to think when they read that. You’re asking me to settle for less than the best, Aaron? Let me say, emphatically, no. In fact, settling is the opposite of what I’m suggesting.

You may have heard of the Lean Startup concept of building a new business or product. I’ve talked about it before. The basic idea is you don’t wait to be feature perfect… you build, iterate, gather feedback, iterate on that feedback and continue the process. That philosophy hedges your bets around building something nobody wants by not waiting for the final, polished product before launching into the world. It relies on the concept that you don’t have to have something perfect in order to release into the wild.

Too often when making engineering decisions in a product, the risk is that you will want to make sure everything is perfect right now. Make sure the classes are all structured perfectly. Perfect object oriented methodologies are in place. Every edge case considered. An entire code-base unit tested.

All of these are extremely important, but they are also things that can be iterated on. Sometimes you can’t write code that relies on code you haven’t yet written yet! So you write shitty code that does the job in order to get ahead, and then return to that shitty code to refactor later.

Sometimes in your personal life, you may find yourself in a relationship that doesn’t have all the ideology of “The One” (Note: What the fuck does “The One” even mean?). That person is perfect in every way. They get your hearts. Understand your twitches. Empathize and support you through all your difficulties and struggles. Yet there’s just a couple things you just can’t stand. Do you give up and move on to the next, expecting next time that you’ll find perfection? Or do you buckle down and realize what you have is pretty damn good and it will be even better than that later on?

Do you let perfection get in the way of progress?

You shouldn’t. You should release, iterate, get feedback and release again. In code. In life.

Aaron Brazell

New Adventures with 10up

It’s such a weird feeling.

Since I began this blog in 2004, I’ve been able to say I was truly hired exactly one time.

That day was Jan 9, 2013.

In 2004, I was employed by Northrop Grumman. In 2006, I left NG to pursue the startup world, I took up residence at b5media as the CTO who never got the title. I did this on a contract basis. I worked for myself for a very long time, got hired in 2013, left that job in 2014 and went back to working for myself. I just realized, over time, that I wanted something different.

I’ve avoided agencies, though quite a few have wanted me. These usually boiled down to what I term as “web development sweat shops”… Usually in the political space. They ramp up for campaign season – presidential and mid-term. They have a bunch of sales people in suits driving deals with campaigns – federal, state and local – to build websites and promote whatever brand of ideology they adhere to and the developers are overworked, have no seat at the table, and generally are expected to perform and work at 200% or risk getting fired.

I’m not that guy, so I’ve avoided agencies.

Unrelated note: Republicans have the deepest pockets. They spare no expense and question no cost. Democrats are far stingier. Though I fall on the left politically, I’m a capitalist who wants to make money as long as my name isn’t on it. Sometimes leaving ideology behind is worth it economically. Redistribution of wealth to my pocket, as it were.

I have, however, encountered a number of agencies who do not work in the way I abhor. One, in particular, is 10up.

For the past month, I’ve been working full-time with 10up on a contract basis. I’ve been blown away by their drive and collaboration from top to bottom. I have gotten to sample the goods and ensure they meet my high expectations of “work”. I have been respected and valued, and that is how they treat their entire team.

We have seamlessly worked together to ensure that, in a distributed company, I could deliver on my commitments of chemistry, communication and charm (the last not being a real thing, but I needed 3 C’s to be a better alliterative writer).

Prior to this engagement, I recognized 10up as a high-level WordPress agency. They only do WordPress, unless there’s a supplemental solution that engages the WordPress ecosystem. They give back to the WordPress community. In fact, they actively participate.

But I really knew very little about the nuts and bolts and the extent of their work. Now I do and I’m proud to call myself a 10upper as of tomorrow morning.

Thank you, Jake Goldman and team for the opportunity and the last month of fun, work and amazing innovation. I’m looking forward to doing more.

Something that caught me early on was an engagement between 10up and the company I helped start, WP Engine. It happened in San Francisco this past Christmas season and you may have heard about it… GIF the Halls.

It so happens that I will be working on the team that pulled that engineering feat off. I refer to it as the DARPA of 10up. The team tasked with creating crazy stuff that nobody has tried. GIF the Halls was a crazy project my team did. It tied WordPress with cameras for video greeting messages at the holidays. As a photographer, that’s right up my alley.

Can’t wait to try new crazy stuff. Onward!

Aaron Brazell

Dishonesty in Digital Marketing


We used to look at that number, scratch our heads and rationalize the price as a marketing tactic to make buyers believe a product was cheaper than it was. This is all based on the psychology that $9.99 looks cheaper than $10 visually.

$99.99 isn’t $100 because it’s not a 3-figure number. It’s a 2-figure number and change. It has more psychological impact with bigger purchases. $999 isn’t $1000 and subconsciously, we think, it’s cheaper.

The psychology works even if the facts don’t bear out.

But there’s a nefarious new plot twist in the digital marketplace: $19.98 isn’t greater than or equal to the minimum purchase of $20.

In the old days (of yesterday), if you go into a convenience store and tried to buy a bag of chips and a coke, you might be told that the credit card minimum was $5. That tactic is a based-on-data-driven-business reality. Credit card companies charge a per-transaction fee that is usually a flat rate, so the law of diminishing returns comes into effect.

But you could always add a pack of gum or similarly low prices item to get over that credit card minimum.

But the marketplace is different than these harsh business realities. In the marketplace, specifically digital, companies are forced into a profit-or-bust scenario where anytime they can get $9.99 more, they inch closer to profitability… And that’s a business reality too.

When I decided to try Drizly, the fantastic new alcohol delivery service that fashions itself a liquor-store-meets-pizza-delivery service concept, I placed two six packs of great IPA in my cart and went to close. Total: $19.98.

Store minimum: $20.

Mind you, pretty much everything comes in at a minimum of $9.99 so the closest you can get without going over? $19.98. To buy that pack of gum, so to speak, that gets you that extra 2 cents? Another $9.99.

This is, of course, intellectually dishonest.

If you cared about minimums, you’d make each six pack a penny more. And if that’s an artificial number to inflate profit, you force the user to spend another $9.99 for a real store minimum of $27.97. Plus delivery fee. Plus tip.

The 99 cent marketing tactic has evolved. Of course, I didn’t purchase anything from Drizly and they are, by no means, the worst culprit. But they are the most recent example.

Beware the 99 cent rule. And beware companies who sell their wares in sneaky ways in pursuit of that almighty dollar.

Development, WordPress

Adding a Time Start to WordPress Media Embeds

Ever have those times that you’d like to share a piece of media but have it start at a particular time? I did recently, and figured I’d share my solution.

It turns out, WordPress does not support this feature out of the box (though you could argue, theoretically, that it should).

We just remembered the 50 year anniversary of the Selma march which was nicknamed Bloody Sundy as 600 civil rights marchers were attacked viciously by law enforcement in 1965. It seems appropriate to sample the MLK “I have a dream speech for this demo.

Now of course, it’s all a great speech worth listening to, but what if I want to start the audio at the place we all know?

Boom, just like that. The nuts and bolts of this are tied up in this code:

Simply, I filter the shortcode attributes for the audio and video shortcodes adding a new argument – “start”. This is in seconds.

The second adds a little snippet of Javascript after each embed that moves the internal time pointer to the appropriate spot in the supplied media.

Caveat: This will not work for media that is simply cut and paste. While WordPress will translate appropriate media URLs into embeds, it does not pass anything more than the required `src` argument.

Full source code, as a WordPress plugin, can be found on Github. (Pull requests encouraged)

Aaron Brazell, Uncategorized

If I Had to do it All Again

As I sit here tonight, at a bar, typing on the WordPress app (which will undoubtedly make my fingers cramp typing long form), I’m thinking about my life. What has made me a man, a developer, a friend, and lover (I can even get in Oxford commas on the app!)

In exactly five hundred and fifty six days, I will be 40. FORTY!

I don’t look like an old man.

I don’t (usually) feel like an old man.

I don’t even behave like an old man.

Note: what follows may sound like I’m saying “Get off my lawn!”

Where were we? Oh yes, FORTY.

I just finished my first week on a new job. I’ve been doing WordPress stuff since 2004. I was learning PHP in 2000. I was developing coding chops in 1987 on an Apple IIc!

I’ve been married. Divorced. Had a kid. Owned a house. Chased the rabbit hole that is the American Dream™.

I’ve loved and I’ve lost. I’ve had dear friends pass away from cancer and heart attacks. I’ve watched national tragedy and personal tragedy, and even suffered my own.

My perspective has evolved. Sometimes willingly, sometimes not.

Take weekends and evenings. You may be single. You may not be. It doesn’t matter. Don’t work at all hours of the day and night. You’ll be less productive, because you’ll be less rested. You’ll also be better socially adjusted.

Get up early. Don’t sleep in until 11am. Your body wasn’t meant to do this. Don’t force it to. It will rebel. Related to this, and the last point, get to bed before midnight.

The man who cooks is the man who gets the woman. I’m happily involved, but my girlfriend and I both love to cook. And you know what? It got me ahead when I was single. No woman wants your idea for dinner at your place to be frozen dinners or delivery (there’s a time and place for delivery!).

Find passion that you aren’t aware of. Later in my adult life, I bought a camera and started learning how to shoot… How to visualize and see a photo. Do something, try something. Get outside your comfort zone and challenge yourself. Volunteer!

Always learn. When I started on WordPress, I was hungry. I was curious. I started learning the ins and outs. I admit that in more recent years, I’ve allowed myself to get comfortable. I’m working on some other interesting things that will stretch me even more. If you’re in tech, you have no choice but to move forward. If you don’t learn, you’ll be left behind.

Don’t take the world literally. Seriously, stop. I’m looking at you, political nerds. Stop parsing everything that politicians do. They do it because it’s politics and all the crazy is a vast, orchestrated act to get you worked up and supply them with power. Live your life. Change what you can and accept what you can’t.

Read. Everything. I’m not a book guy, but if you are, have at them. Spend less time on Facebook and Reddit and more time on sites with content that is written at a college level with an informed, intellectual audience. Read The Atlantic, Ars Technica and the huge variety of other excellent sources. Stretch your intellect.

You’re not right. At least some of the time. Give grace to others, even if you “know” you’re right.

That’s it! Or at least all I can think of after 14h of work and several beers. My hands aren’t even cramped!

Update: The dress is white and gold, you morons.


The Internet is About to Become WAY Faster

Earlier this week, the big news in the tech space surrounded the completion of the HTTP/2 Spec.

Gibberish, gibberish, gibberish.

What does this mean for the internet? The short version is: it’s about to become way faster.

Faster is extremely important if you want to make money from traffic to your site. Or, you know, if you use the internet at all. No one wants to wait for a website that just sits there and spins while it’s trying to load. We all hate that. And importantly, Google hates that.

Several years ago, Google invented and implemented the SPDY protocol. Simply, SPDY allows for the compression and efficient transmission of requests between browser and server. I’ll get into the technical details later, but for the sake of summarizing why the Internet is about to get faster… Google’s SPDY technology is the cornerstone of HTTP/2.

Now that the spec is finalized, it goes to editorial for cleanup and publishing… but the nuts and bolts of the spec will not change going forward. That means browsers and servers can start rolling out these changes as soon as… today.

Technical explanation

If you are not interested in the technical explanation for HTTP/2, please skip to the next section. I don’t want you falling asleep and drooling on your keyboard.

In the original days of the internet, there was the HTTP/1.0 spec. This spec defined how clients (browsers) and servers communicated over a network. We still use 1.0 quite a bit today, though 1.1 is the current preferred.

When it comes to HTTP, the concept is simple… a client requests a resource (image, html, mp3, whatever) from a server, the web server interprets the request, goes back into a storage closet, finds the resource, has the requestor sign for it and then sends the resource on it’s way back to the client. A simple understanding is….

BROWSER: “Hey, server… can I get that image named image.jpg? You should find it in this folder.”

SERVER: “Sure, let me go look. Oh, here it is. There you go”

BROWSER: “Thanks, dude”

If the server can’t find the image in the directory, it sends the client a 404 (Not Found), but that’s just a sidenote.

HTTP/1.0’s Problem

The problem with HTTP/1.0 however, was that it only allowed for a single request on a single connection to the server. To put it in another way, The web page has 10 images on it. In order to get those 10 images from the server, it would have to send 10 requests. That creates a lot of requests for the server and if the server wasn’t optimized for that kind of capacity, it could crash… or at least be in the weeds. It was bad all around for bandwidth as well. All of those requests add up to high bandwidth costs!

So God gave us HTTP/1.1.

HTTP/1.1’s Problem

Given this inherent problem with HTTP/1.0, HTTP/1.1 enhanced the original spec by adding the concept of pipelining. Imagine, if you will, a highway tunnel. Generally, there’s no passing in a tunnel. While HTTP/1.0 only allowed a single car through the tunnel at a time, HTTP/1.1 allowed multiple cars in the tunnel, but dictated no passing. And because the web server on the other end of the tunnel can only process requests as they come in, you end up with a stacked up queue of requests waiting to get processed and… you still have the same problem where the server gets in the weeds and slows down.

In both the case of 1.0 and 1.1, server technology evolved to allow concurrency of requests. This gave us multiple lanes in the tunnel, but 1.1 still dictated no passing. So requests in one lane, had to stay in that lane but there could be more than one lane which allowed us to bandaid the inherent weakness in the HTTP/1.x stack.

Enter HTTP/2

When Google started giving SEO benefits to sites based on speed, they also ate their own dog food and invented SPDY. SPDY allows for compression of resources in a much more efficient way if both server and client supported it. It also allowed for single requests to get many resources at a time. That page that had 10 images and had to make 10 requests for those 10 images could now make a single request to get all 10 images at once. Efficiency, I tell you.

As with any working group, the task force that put together HTTP/2 had representation from Google. Google, as a good citizen, shared it’s knowledge and spec for SPDY with the working group and it became the basis of HTTP/2. In fact, Google will now eliminate SPDY in favor of HTTP/2.

In fact, clients are supporting HTTP/2 now. Well, a lot of them are anyway… and that’s because of Google’s implementation of SPDY. Internet Explorer 11+, Firefox 36+, and Chrome all implement SPDY-HTTP/2 support, but none are currently enabled by default. Safari and Mobile Safari will likely soon get the support.

Most web servers also implement SPDY-HTTP/2 with the exception of lighttpd.

What does it mean to me?

The new HTTP spec is probably not anything you need to worry about at this point. System administrators will want to make sure their web servers are up to date and their TLS certificates are upgraded. Though the working group does not require HTTP/2 to use TLS, I’d expect most server manufacturer’s to require them in their own implementation… for security reasons.

On the client side, HTTP/1.1 still works. The working group was very careful to ensure backwards compatibility with prior versions of the spec. So if your browser makes a 1.1 request to a 2.0 server, the server will still answer in 1.1 with the same limitations I described above.

As developers, we will most likely want to use 2.0 when we can. The finalization of the spec is so new that it remains unclear what that means yet. For instance, what does this mean for the WordPress WP_Http class? Probably nothing in the short terms, but I’d expect enhancements to start rolling in as optional “toys” for developers.

Are you a developer or engineer? What are your thoughts on the new spec?


Public Enemy Number 1 for A Small Development Shop

Net-30, Net-45, Net-60.

If you’ve been working as a freelancer or run your own development shop, you’re familiar with these terms. They are the terms that many businesses leverage for paying invoices. They exist because of Accounts Payable.

What these terms mean is from the day you issue a client an invoice, they will pay it in 30, 45 or 60 days.

Seems normal, right?

For small businesses, one man shops, freelancer… this is hell dressed up as heaven for the client. You get to do the work and sometime in the future they pay you.

As a small business owner, you have much tighter margins than clients who are bigger organizations and let’s be really blunt… the system wasn’t built for you. It was built for them. They hold all the cards and you get to operate at their whim.

Sucky life and a sucky way to build a business, right?

It serves your client’s Accounts Payable department but it’s anti-competitive. Bigger organizations can go “at risk” and eat costs up front. You? You cannot. You have to pay your employees. You have to incur operating costs that should be paid for.

What’s more, many companies won’t pay for code until they receive it… and then Net-30, Net-45, Net-60.

In almost all cases, as an independent, I structure deals with a deposit (another thing other companies don’t want to pay) and with stipulation that code is delivered upon receipt of payment. It’s my insurance policy against clients who would run with my intellectual property (it’s happened quite a bit in the past!).

As an independent, I almost always reject Net-30, Net-45, Net-60 terms. It does not work for me, and if you’re an independent or a small business owner… it probably doesn’t work for you either. So stop playing that game. Just say no. They will stomp their feet. Sometimes you won’t get the business. But when you do get business, you will be paid promptly for the work you did and the playing field will be leveled.

Aaron Brazell

Weekly Blog Post Challenge

Back in 2004, I, like many other people in the WordPress community began blogging. We didn’t, I don’t think, get into WordPress because we wanted to write code or build a career. We got into it because we wanted to write. Our natural talent and curiosity took over, however, and we began writing code.

At some point, I broke this blog apart into other blogs… a personal blog, a photoblog, a sports blog, etc. All of these are spread around and in various forms of repair or disrepair.

I have nearly 1k posts here, down from 2k a few years ago when I did a purge. But I’ve only written 12 since January of 2013. TWELVE. Sadly, life takes over and work takes over and, at least for me, the artificial silos of “this blog is for professional writing, this one is for personal writing” and so on has kept me from deciding… I want to write again.

As Twitter became ubiquitous, most of my professional interactions began happening over there. Instead of my photoblog, I’ve leaned more on Flickr and Instagram. All of this has left my blogging in a sad state of disrepair.

My friends and colleagues, Brad Williams and Dre Armeda, have realized that they really want to get back to what they love doing and that’s writing more. Brad has committed to writing 100 posts in 2018 (a goal that is ludicrous for me).

Dre has begun a Facebook group (feel free to join if you plan on joining us in this exercise!) where members can encourage each other and share their content. Not everyone is committing to 100 posts. For me, I’m committing to one post per week.

I suppose now is a good time to explain that the invite to join me in this exercise does not mean you have to write about WordPress, or for that matter, any topic whatsoever. If you want to pick a topic (law, science, dating, oncology!!!), feel free. Or talk about any multitude of topics. But the exercise is more about the therapeutic exercise of writing and not so much about what you’re writing about. And it’s to give you (and me!) peers to keep us going forward.

This does count as the first post of this new commitment. I’ll have another one next week.

As part of this whole reboot, personally, I plan to consolidate my various blogs into this one. Since my online name is technosailor, it seems appropriate that should be the hub for everything else.

I’ll also be building a new theme that will accommodate all of this merged content and, frankly, WordPress has come far enough since I was blogging regularly, that it’s completely likely I can leverage new forms of content that I didn’t have access to before.

Anyways, I’m off track. Please do join me in this experiment. It will be fun!


My process for Photography Production

I’ve shared a lot of my photography via social networks – Twitter, Facebook, Instagram and Flickr. It’s generally unlike other photography that you may see around the web. I generally don’t shoot people, unless the people are part of a greater narrative or scene. Never as the object of focus in the scene. I also have embraced the surreal… more commonly known as High Dynamic Range (or HDR) photography. You either love it or you hate it. You can see some of those on Flickr.

Last night, I was showing this picture to a friend who exclaimed, “How the hell do you do this?”… and while he is no photographer, I have had that question enough to answer that question here. Take this as a tutorial.

HDR Beach Rainbow-small

I will take you through the steps of processing a photo using my workflow. Photography is an art, though, and while the steps I use achieve the aesthetics I am comfortable with, you should absolutely tinker and play. You never get any better if you don’t. And obviously, know your camera… know how to see a shot. Composition is important and I don’t think it can really be taught… it’s an innate sense that you get simply by using your camera and practicing!


Obviously, you have to start with a camera. In the photo I am processing here, I am shooting with a Canon T5i and an EF 28-135mm f/3.6L lens. I’m shooting in Aperture priority mode with autofocus turned on. What this means, in laymans terms, is that I have a wide lens (28-135mm… it’s a zoom but the lower the number, the wider the field of view), with a middle of the road aperture (aperture is how wide your lens opens up when you snap a photo… the lower the number, the more light and the less depth of field). It’s also important to shoot RAW, as RAW captures much more image data than JPEG and allows for manipulation in software like Lightrooom.

Note: Shutter Speed is how fast the shutter opens and is, as it sounds, a time thing. Aperture is how wide your shutter opens… the wider (or lower number), the more light and the shallower the depth of field is brought in. ISO is your light sensitivity. Use this in combination with Aperture to enhance the exposure of light. A lower ISO means more exposure. A higher number represents less exposure (and more noise…. fine grained splotchiness… in the image). They are all important to know and use appropriately.

This is the photo of my fur kid on Christmas Day. We will be developing this.

Lightroom Processing

I import all my photos into Lightroom. Once I’m there, I have access to all kinds of non-destructive settings and if I shoot RAW (which I do), all the visual data, including visual information you can’t see… shadows, highlights… they are all there waiting to be drawn out.

In Lightroom, I have a few steps. I want to setup my key image (the image that we’ll do all other processing from, with the enhancements I’d like. In Lightroom, visit the Develop tab and work from the top of your toolbox to the bottom. The toolbox is on the right.
The initial list of settings I make on this photograph (and usually the settings I tinker with) are as such:

  • Contrast: +40
  • Highlights: +20
  • Shadows: +89
  • Whites: +30
  • Blacks: No change
  • Luminence: 86 – Luminence is important for noise reduction. See this great article on noise reduction


Exposure is saved for the next step. Technically, HDR is a style of photography that superimposes several images of different exposures over each other. You can do this with a camera if you have a tripod and the scene does not change between snapping photos and adjusting camera exposures. This is not practical in an action shot or where there is any movement. It’s easier to take one exposure and copy it and apply your exposure changes.

In the next step, I right click on the image in the filmstrip (bottom of the Lightroom view) and choose “Create Virtual Copy”. I do that twice so, at the end, I have three equal images. I leave the original alone and adjust the second image exposure level to +2. For the third, I set it to -2. Now I have three exact photos with 3 different exposure levels. If you do adjust your exposure in the first image, then do the math to make exposure 2 as +2 from that number and the third as -2 from the original.

For example, if you modify the exposure in the original to +.50 and then create two virtual copies, your second copy should be +2.50 and the third should be -1.50.

Export these photos to somewhere you can find them.


Now, open Photomatix! Click on “Load Bracketed Photos” and find your three exposure-doctored photos.

Make sure that your exposure brackets are set correctly.

After clicking “Ok”, you can modify the settings as necessary, but I typically leave them alone. When finished, click “Align and merge to HDR”. If you shoot three (or more) photos from your camera, there is a chance that the three images are slightly unaligned. Photomatix tries to fix this. Because I use one exposure and enhance the exposure on copies, this is mainly unnecessary.

Photomatix will apply your images on top of each other and will smartly attempt to find the best aspects of each to show and enhance. Photomatix comes with boatloads of presets and you can find more in abundance on the internet. I use Trey’s, but often tweak his presets myself using the toolbar on the left.

Once you find the settings you like, click the “Apply” button…

Save it and open it up in an application like Photograph to apply a very small crop to remove the white space that always exists as an orphan of this process.

Once you’ve done this, you’re done. I do other things such as making smaller sizes for the web. I also use Lightroom’s Watermark feature on export to apply my signature. Combat stealing anywhere I can. Photography, however, is an art. Find your art and your expression. Use these tools or others. There’s no right way to do anything, outside of fundamentals. Experiment and have fun!

Here’s the final product!

HDR Fender