Introduction to Mathematics

If you have 3 apple pies and 19 people, how should you slice the pies so that each person gets an equal share? Each person should get 3/19 ≈ 0.1579 pies, but if you make each pie into 6 slices, that’s only 18 slices for 19 people. You have to slice each pie into 6 and 1/3 slices, with each slice being equal except the 1/3 being smaller, and then give the three 1/3 slices to the 19th person.

What if you have 1 pie and the Half-Blood Prince from Harry Potter and the Half-Blood Prince is the only person dining? Then you have 2 pies per person, assuming he’s half a person. In the expression 1/(1/2), move the denominator to the numerator and flip the ex-denominator, making the reciprocal and thereby converting division to multiplication. 1/(1/2) becomes 1*(2/1) which is just 2, because any number without a denominator has a denominator of 1.

Your neighbor lends you $8000 at 3.75% interest compounded annually, with no payments being required for 25 years and the full balance and interest being required to be repaid at that time. What is the payment? $8000*1.0375^25 ≈ $8000*2.5102 = $20,081.34.

What if you want to make a graph of the increasing amount owed on the Cartesian coordinate system where y is the number of years and x is the dollar amount in thousands? Use the equation y = 8*(1.0375^x).

PROBLEM: Your truck gets 15 miles per gallon in the city and 19 mpg on the highway. Your destination is 38 miles away as the crow flies, 42 miles away through the cities, and 49 miles away if you take Interstate-95. However, taking the interstate requires 5 miles of city driving. How many gallons of gas will be used on each route, which one uses the least gas, and how much does each trip cost if gas is $4.15 per gallon?

SOLUTION: First, note that there are only two routes: 42 miles through the cities and 5 miles through the cities PLUS 44 miles on I-95. Then, do this:
42/15 = 2.8 gallons –> 2.8*4.15 = $11.62 in gas
5/15 + 44/19 ≈ 2.65 gallons –> 2.65*4.15 = $10.99 in gas

NOTE that with the variables provided, the longer route is in fact the cheaper route. However, in reality there would be an inordinate number of variables, such as your engine’s efficiency, time of day, traffic patterns, traffic lights, and unforeseen events. For example, traveling an extra 7 miles may necessitate an earlier oil change or some other maintenance. If you get into an accident on the interstate at 80 miles per hour, you might be instantly killed rather than being only wounded if crashing at a much lower speed in a city. Highway driving vs. city driving requires different mental concentration and one may appeal over the other depending on your upbringing and psychological makeup. In the city, you are more likely to be pulled over by policemen and ticketed. The road surface may be smoother on the interstate, which will prevent your tires from wearing down as quickly. If you break down on the interstate, you may be stranded if you don’t have a cell phone. All math problems simplify.

PROBLEM: The 2012 Presidential election is coming up, and observing that Ron Paul (R) and Barack Obama (D) have won the primaries, General Electric is deciding how much to donate to each candidate’s campaign. GE’s budget is $4,000,000, and they estimate Paul has an 8% chance of winning and Obama has a 92% chance of winning. GE estimates donations to Paul have a political worth three times greater than donations to Obama to secure support from the Constitutionalist movement. How much will GE donate to each campaign?

SOLUTION:
3*0.08 = 0.24
1*0.92 = 0.92
0.24+0.92 = 1.16
4,000,000/1.16 = 3,448,275.862
3,448,275.862 * 0.24 = $827,586.21 to Ron Paul
3,448,275.862 * 0.92 = $3,172,413.79 to Barack Obama

PROBLEM: Steve Jobs is developing the iPad 3 for release November 28, 2012 and must choose between Foxconn’s 64GB isolinear-NAND flash chip and Foxtrot’s 59GB neo-EEPROM flash chip. Foxconn’s chip costs $28.78 and has a five-year failure rate of 2.8%. Foxtrot’s chip costs $26.55 and has a five-year failure rate of 2.1%. Both chips are functionally identical in form factor, read/write speed, power consumption, resiliency, and failure potential, both technologies are equally reliable, both companies use slave labor, and both companies are of equal capacity, reputability, and geographic location.

Apple estimates the market value of an extra 5GB (64GB vs. 59GB) of storage capacity to be $14.50 per unit, and estimates that each five-year failure will have an effective cost of $895.88 on Apple’s image, future sales, and support network. Which chip should Steve Jobs choose?

SOLUTION:
($28.78 – 14.50) = $14.28 effective cost per 64GB Foxconn chip
$26.55 = $26.55 relative cost 59GB per Foxtrot chip
$895.88 * 0.028 = $25.08 failure cost per 64GB Foxconn chip
$895.88 * 0.021 = $18.81 failure cost per 59GB Foxtrot chip
$14.28 + 25.08 = $39.36 total cost per 64GB Foxconn chip
$26.55 + 18.81 = $45.36 total cost per 59GB Foxconn chip

Jobs should choose the 64GB Foxconn chip, even though it is 0.7% more likely to fail in the first five years, because it’s easier to market a 64GB device than a 59GB device so the 64GB Foxconn chip has an effective cost of $6.00 less than the 59GB Foxtrot chip, given the variables.

PROBLEM: General Motors Company is developing a new type of engine that improves fuel economy by 100%, but has discovered that 0.000097% of the engines blow up when reaching a speed of 88 miles per hour, instantly killing everyone in the vehicle and seriously wounding everyone in a 100 foot radius. GMC is considering including this engine in its new SUV, the ThinkNeighbor Plus, which will get 42 highway miles per gallon instead of the standard 21 highway mpg, will be manufactured in a quantity of 5 million, and will sell for $38,000. GMC estimates only 0.5% of ThinkNeighbor Pluses will ever reach a speed of 88 miles per hour, and estimates the Public Relations costs of each explosion will be $8 million. The U.S. State Department has pledged to blame the explosions on domestic terrorist attacks, but only to a limit of three. Should GMC manufacture the ThinkNeighbor Plus?

SOLUTION:
NO. Since the question is “should GMC manufacture the ThinkNeighbor Plus?,” it isn’t even a math question because “should” is completely subjective.

More next time.

Making WordPress Tag Balancing Work with Exec-PHP

I use the WordPress plugin Exec-PHP to use PHP in my posts, but under normal circumstances if I do this with “WordPress should correct invalidly nested XHTML automatically” (a.k.a. tag balancing) checked in Settings > Writing, I get this nasty error whenever I try to use PHP:

Parse error: syntax error, unexpected ‘?’ in /home/thripp/public_html/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code on line 1

The solution the developer provides is to simply disable that feature. That’s fine most of the time, but I encountered a tricky situation where I needed to use PHP and have WordPress close open HTML tags which I simply could not close.

My posts on this blog are usually photos with short descriptions, but occasionally I write long articles which may go on for thousands of words. Up until last year, my tag, category, and archive pages displayed the full content of my posts. WordPress excerpts were unacceptable for two reasons: 1.) they are always 55 words; 2.) I use Post Thumb Revisited to auto-convert 800×600 images to 400×300 thumbnails, but it only converts them through the_content filter, not the_excerpt. While the excerpt length is customizable in WP 2.8 or newer, I am unwilling to upgrade from WPMU 2.7. What I really needed was an excerpt that used the_content, respected all HTML tags, worked with Exec-PHP, and let me customize the excerpt length.

Enter The Excerpt Reloaded. The plugin was 5 years old, so I found an updated version with bugfixes that was only 3 years old. I quickly wrote this code for my theme’s index.php file and left it this way until today:

if(is_category() || is_archive()) the_excerpt_reloaded(200, ‘all’, ‘content’,
     true, “<strong>… continue reading</strong>”, false, 1, false, false,
     ‘p’, ‘Click to see whole entry.’, true);
else the_content(__(‘… CONTINUE READING’));

This has been the best of both worlds. It cuts off the content at 200 words, so most of my photos do not have a “continue reading” link because my descriptions are under 200 words. Longer posts are cut off after 200 words, so my archive pages do not become unnecessarily long. I had to set the 8th argument of the_excerpt_reloaded, $fix_tags, to false, because I would get the same old Exec-PHP error if it was set to true. “No problem,” I thought. I already have tag balancing disabled in WordPress, so what could it hurt to disable it here?

Recently, however, I encountered an insidious bug when a post was cut at 200 words in the middle of a <strong> tag. The tag would never be closed, meaning the rest of the page would be bold! Take a look at this screenshot:

Unbalanced tags

What do you do about something like this? Obviously, there are many solutions. I could rewrite the offending article so the 201st word is not in the middle of an HTML tag. All I would have to do is put in a few filler words earlier in the article. I could enable tag balancing, write some code to check if each post contains PHP, and not use the_excerpt_reloaded in those cases. I could use custom fields on posts to determine which mode of behavior should be used. I could upgrade WordPress (oh god no). All of these solutions seem suboptimal.

Instead, I went to the problem’s source. If $fix_tags is true, the_excerpt_reloaded runs the content of the excerpt through balanceTags. What is balanceTags? A WordPress function in /wp-includes/formatting.php which activates force_balance_tags. What is force_balance_tags? A WordPress function in the same file which looks like hieroglyphics. All I wanted to do was force the function to ignore PHP, but I couldn’t figure it out. It wasn’t a simple matter of ignoring <?php ?> tags. My PHP tags often appear in the middle of other HTML tags. Here is the source code of a typical photo on my blog:

<img src=”http://thripp.com/files/photos/flash.jpg” alt=”<?php the_title(); ?>” />

I took this picture of raindrops falling at night, and my camera’s flash reflected off one of the raindrops. It looks like a star going supernova.

[­sniplet fuji-a360], <?php fexf(); ?>

<a href=”[­sniplet photos-path]stock/<?php echo fprm(); ?>-stock.jpg”>[­sniplet stock-dl-text]</a> (<?php fsze(fprm() . ‘-stock.jpg’); ?>) or <a href=”[­sniplet photos-path]stock/source/<?php echo fprm(); ?>-ss.jpg”>[­sniplet ss-dl-text-lc]</a> (<?php fsze(‘source/’ . fprm() . ‘-ss.jpg’); ?>).

[­sniplet stock-rights]

Looks pretty terrible, huh? I’ve got sniplets in there, custom PHP functions, concatenation, nesting… you name it. This template creates the file paths for the photos, source files, and stock versions right from the post title, because I upload the photos by FTP and follow a rigid file structure. The only reason there’s a full IMG tag at the top of each post is because Post Thumb Revisted won’t create the thumbnails to automatically generate my gallery without it. The template also displays the size of the source files and then extracts and displays the Exif data from the photos in my preferred format, which was extremely difficult to set up and is something I used to do manually. It runs itself, and the functions are really quite interesting.

Anyway, what I needed was a way to bypass force_balance_tags entirely, but only in regard to PHP code. I need the function to close dangling tags like <strong>, <em>, and <u> if the_excerpt_reloaded cuts the post in the middle of a tag.

After a lot of unsuccessful Google searches, I remembered that I solved a similar problem at the beginning of October in Tweet This 1.8. On the “Write Tweet” page, Tweet This uses a modified version of Jeff Roberson’s Linkify URL to delimit URLs with a space on each side (function tt_delimit_urls). A tweet like “Check out http://www.google.com/!” becomes “Check out http://www.google.com/ !”. Then, I use Ext-Conv-Links by Muhammad Arfeen to convert all long URLs to short URLs if the tweet is over 140 characters (class tt_shorten_urls). This works great for most URLs, but I discovered it breaks URLs containing underscores. http://en.wikipedia.org/wiki/South_Africa gets sent to the URL shortener http://en.wikipedia.org/wiki/South, which gets converted into http://bit.ly/bzLvSK_Africa, which doesn’t work at all. Totally unacceptable.

After many hours of torment trying to fix Jeff or Muhammad’s code, I decided to approach the problem from a different angle. Why not just replace underscores with something else on the way in, and then change them back to something else on the way out? Good programming doesn’t dance around problems, but I’ll take a practical solution that works over an idealistic solution that fails, any day. But what string to replace underscores with? I can’t use a special character or something that might be used in a tweet on purpose, because it will get converted into an underscore. After some thought, I settled on t9WGb5. It doesn’t look pretty, but it works, and I doubt any URL containing “t9WGb5” is ever going to be purposefully included in a tweet. So I proceeded to write statements like str_replace(‘t9WGb5’, ‘_’, $url) and str_replace(‘_’, ‘t9WGb5’, $url) at the necessary places throughout the code, and URLs with underscores worked like a charm. As an Easter egg, try writing a tweet over 140 characters containing a URL where you replace an underscore with “t9WGb5” yourself, for example, “test test test test test test test test test test test test test test test test test test test http://en.wikipedia.org/wiki/Southt9WGb5Africa”, then preview it on the Write Tweet page. Check the preview page for the short URL, i.e. , and you’ll see that your “t9WGb5” was converted to an underscore before the long URL was even sent to Bit.ly, as an artifact of my kludge-like solution.

Couldn’t the tag balancing problem be approached in the same way? Of course it could. A simple modification to /wp-includes/formatting.php did the trick. Right at the start of the force_balance_tags function, I replaced “<?php” and “?>” with “[![?php” and “?]!]” using str_replace, as follows:

function force_balance_tags( $text ) {
     $text = str_replace(array(‘<?php’, ‘?>’), array(‘[![?php’, ‘?]!]’), $text);
     $tagstack = array(); $stacksize = 0; $tagqueue = ”; $newtext = ”;

Then, at the end of the function, I change it all back:

// WP fix for the bug with HTML comments
     $newtext = str_replace(“< !–“,”<!–“,$newtext);
     $newtext = str_replace(“< !–“,”< !–“,$newtext);
     $newtext = str_replace(array(‘[![?php’, ‘?]!]’), array(‘<?php’, ‘?>’), $newtext);
     return $newtext;
}

All this happens either before or after Exec-PHP executes. I’m not sure when, but it doesn’t matter. My goal of being able to use tag balancing with Exec-PHP has been reached. I now have $strip_tags set to true in the_excerpt_reloaded and “WordPress should correct invalidly nested XHTML automatically” enabled in Settings > Writing, and all I have to do is re-apply the hack when I upgrade WordPress. It’s amazing what thinking outside the box gets you.

I can’t actually write “[![?php” or “?]!]” inside any post on my site, because my hack will convert those strings to real PHP code and they won’t be displayed. How did I display the code above? My actual /wp-includes/formatting.php file uses underscores instead of exclamation points. How did I include the sniplets in the example post without the Sniplets plugin executing them? Breaking the parser with the &shy; HTML entity. Simple.

Earlier, I talked about the functions I use in my photo template to automate display of file size and Exif data. Here are those functions:

function fsze($f = ‘simplicity-stock.jpg’, $p =
     ‘/home/thripp/public_html/wp-content/blogs.dir/2/files/photos/stock/’)
     {$n = array(‘Bytes’, ‘KB’, ‘MB’, ‘GB’); $p = $p . $f;
     if(file_exists($p)) $b = filesize($p);
          else $b = ‘1000’;
     echo round($b/pow(1000, ($i = floor(log($b, 1000)))), 2) . $n[$i];}

function fprm() {
     return str_replace(‘photo-‘, ”, preg_replace(‘/-+/’, ‘-‘,
          preg_replace(‘/[^a-z0-9-]/’, ‘-‘,
          strtolower(trim(str_replace(array(‘?’, ‘…’),
          array(”, ”), get_the_title()))))));}

function fexf() {
     $exif = exif_read_data(‘/home/thripp/public_html/wp-content/’ .
          ‘blogs.dir/2/files/photos/’ . fprm() . ‘.jpg’, 0, true);
     $shutter = $exif[‘EXIF’][‘ExposureTime’];
     $fnum = str_replace(‘f/’, ‘F’, $exif[‘COMPUTED’][‘ApertureFNumber’]);
     $focal = $exif[‘EXIF’][‘FocalLength’];
     $iso = $exif[‘EXIF’][‘ISOSpeedRatings’];
     $date = $exif[‘EXIF’][‘DateTimeOriginal’];
     $date = str_replace(‘:’, ‘-‘, substr($date, 0, 10)) . ‘T’ .
          substr($date, 11);
     if(substr($date, 0, 4) < = 2007) {           $id = substr($date, 0 , 10) . '_' . substr($date, 11, 2) .           'h' . substr($date, 14, 2) . 'm' . substr($date, 17);}      elseif(substr($date, 0, 4) >= 2008) {
          $id = str_replace(‘-‘, ”, substr($date, 0 , 10)) . ‘-‘ .
          str_replace(‘:’, ”, substr($date, 11)) . ‘rxt’;}
     $md = str_replace(‘-‘, ”, substr($date, 5, 5));
     $hms = str_replace(‘:’, ”, substr($date, 11));
     if(substr($date, 0, 4) == 2004) {
          if(($md < 0404) || ($md == '0404' && $hms < 020000) ||           ($md > 1031) || ($md == ‘1031’ && $hms > 020000))
               $ldate = $date . ‘-05’;
          else $ldate = $date . ‘-04’;}
     if(substr($date, 0, 4) == 2005) {
          if(($md < 0403) || ($md == '0403' && $hms < 020000) ||           ($md > 1030) || ($md == ‘1030’ && $hms > 020000))
               $ldate = $date . ‘-05’;
          else $ldate = $date . ‘-04’;}
     if(substr($date, 0, 4) == 2006) {
          if(($md < 0402) || ($md == '0402' && $hms < 020000) ||           ($md > 1029) || ($md == ‘1029’ && $hms > 020000))
               $ldate = $date . ‘-05’;
          else $ldate = $date . ‘-04’;}
     if(substr($date, 0, 4) == 2007) {
          if(($md < 0311) || ($md == '0311' && $hms < 070000) ||           ($md > 1104) || ($md == ‘1104’ && $hms > 070000))
               $ldate = date(“Y-m-dTH:i:s”,
               (strtotime($date) – 18000)) . ‘-05’;
          else     $ldate = date(“Y-m-dTH:i:s”,
               (strtotime($date) – 14400)) . ‘-04’;}
     if(substr($date, 0, 4) == 2008) {
          if(($md < 0309) || ($md == '0309' && $hms < 070000) ||           ($md > 1102) || ($md == ‘1102’ && $hms > 070000))
               $ldate = date(“Y-m-dTH:i:s”,
               (strtotime($date) – 18000)) . ‘-05’;
          else     $ldate = date(“Y-m-dTH:i:s”,
               (strtotime($date) – 14400)) . ‘-04’;}
     if(substr($date, 0, 4) == 2009) {
          if(($md < 0308) || ($md == '0308' && $hms < 070000) ||           ($md > 1101) || ($md == ‘1101’ && $hms > 070000))
               $ldate = date(“Y-m-dTH:i:s”,
               (strtotime($date) – 18000)) . ‘-05’;
          else     $ldate = date(“Y-m-dTH:i:s”,
               (strtotime($date) – 14400)) . ‘-04’;}
     if(substr($date, 0, 4) == 2010) {
          if(($md < 0314) || ($md == '0314' && $hms < 070000) ||           ($md > 1107) || ($md == ‘1107’ && $hms > 070000))
               $ldate = date(“Y-m-dTH:i:s”,
               (strtotime($date) – 18000)) . ‘-05’;
          else     $ldate = date(“Y-m-dTH:i:s”,
               (strtotime($date) – 14400)) . ‘-04’;}
     if(substr($date, 0, 4) == 2011) {
          if(($md < 0313) || ($md == '0313' && $hms < 070000) ||           ($md > 1106) || ($md == ‘1106’ && $hms > 070000))
               $ldate = date(“Y-m-dTH:i:s”,
               (strtotime($date) – 18000)) . ‘-05’;
          else     $ldate = date(“Y-m-dTH:i:s”,
               (strtotime($date) – 14400)) . ‘-04’;}
     if(substr($date, 0, 4) == 2012) {
          if(($md < 0311) || ($md == '0311' && $hms < 070000) ||           ($md > 1104) || ($md == ‘1104’ && $hms > 070000))
               $ldate = date(“Y-m-dTH:i:s”,
               (strtotime($date) – 18000)) . ‘-05’;
          else     $ldate = date(“Y-m-dTH:i:s”,
               (strtotime($date) – 14400)) . ‘-04’;}
     if(preg_match(“///”, $focal, $m)) {$pieces = explode(‘/’, $focal);
          $focal = intval($pieces[‘0’])/intval($pieces[‘1’]);}
     if(preg_match(“///”, $shutter, $m)) {$pieces = explode(‘/’, $shutter);
          $shutter = ‘1/’ . round($pieces[‘1’]/$pieces[‘0’]);}
     echo $shutter . ‘, ‘ . $fnum . ‘, ‘ . $focal . ‘mm, ISO’ . $iso .
          ‘, ‘ . $ldate . ‘, ‘ . $id . “n”;}

Those were tough to write. PHP’s native functions for calculating the size of files believe that a kilobyte is 1024 bytes and a megabyte is 1024*1024 bytes, which is completely false and unacceptable. I had to write my own function to calculate proper file sizes. I take all my pictures with my clock set to Greenwich Mean Time, but I still want to display the time in local time (Eastern) with the GMT offset. I couldn’t figure out how to write a generic function, so I just did it for each year up until 2012, using the United State’s Daylight Saving Time rules. I’ll have to update the function in 2013, but I hear the world is going to end in 2012 anyway.

If you think this adds to my page load time, you’re probably right. But I use W3 Total Cache to completely cache each page of my blog, so it doesn’t matter.

Next summer, I’m going to China with my Mom. I will be leaving the Eastern time zone for the first time ever. I will definitely need to update the functions above, and I will probably have to specify the time zones manually for all the photos I post from the trip. Should I worry about that now? Of course not.

Maternity Portraits of Jacquelyn and Shaughn

Jacquelyn and Shaughn

On 2009-09-30 I shot some studio portraits for my friend Anita Cohen at Daytona State College, of her pregnant daughter Jacquelyn and her daughter’s husband Shaughn. Even though I’ve been a photographer since I was 13 (5 years), this was my first time working formally. Thanks to Prof. Joe Vance for letting me use the photography studio at Daytona State College even though I’m not in the photography program (I’m a computer science student).

Jacquelyn is due to have Shaughn Brady Jr. at the beginning of Nov. 2009. Sadly, Shaughn has to return to Iraq for his second tour in Apr. 2010, so he’ll miss his son’s growth from the age of five months to over a year. Here, he is wearing his camouflaged U.S. Army uniform. He’s a driver rather than front-line infantry. I hope he stays safe and doesn’t have to kill anyone.

We had a white background. Anita helped me figure out how to set up the hot lights and deflectors. I used one incandescent light (warm a.k.a. yellowish) on the left and one fluorescent light (cool a.k.a. bluish) on the right, which worked well. While some maternity photographers exaggerate the size of the woman’s belly or emphasize deep, brooding poses, I did not do that here. I prefer realistic, upbeat portraits showing love and joy.

Jacquelyn and Shaughn

Shaughn kissing his wife’s belly. I wasn’t sure about Jacquelyn’s facial expression, but I think Shaughn’s outfit balances the discipline of the army with the love he has for his wife and first son.

Jacquelyn and Shaughn

The only portrait of Jacquelyn and Shaughn I used the flash on. This is a conventional rather than artistic portrait, but portraiture is about the people in the portraits, and not necessarily innovation of the medium.

Shaughn is covering a red birthmark above Jacquelyn’s belly button. On the first portrait I edited it out, but on the second it was easier to leave it. I like to remove most blemishes to make people look how they’re supposed to look. My goal is to discreetly present an idealized version of reality. I don’t want laymen to say “this is Photoshopped!” Photographers will always say it, but non-photographers should not notice. However, depending on the angle and lighting in can be hard to clone out blemishes, so I have to balance art vs. time. I don’t air-brush; I either remove blemishes well or I don’t remove them at all. In my portfolio I have done difficult edits requiring hours of work (i.e. removing twigs, power lines, and houses), but elsewhere I re-shoot or leave it.

Jacquelyn and Shaughn

Our couple standing together, with Jacquelyn showing her tattoo saying “Shaughn” in cursive with a Hibiscus flower. The tattoo is for her husband and her son. I like it.

Jacquelyn

Anita (Jacquelyn’s Mom) calls this the “Marilyn Monroe” shot, in the style of an actress from the 1940s and ’50s famous for poses like this. For all the portraits, Anita wrapped the green sheet around Jacquelyn. Underneath Jacquelyn had a blue bathing suit on. Unfortunately that came through here (on her hip), but we didn’t notice it at the time. It’s not a big deal.

I shot all these portraits using my Canon Rebel XTi with my EF 50mm F1.4 prime lens in RAW mode. I edited in Adobe Camera RAW 5.0 (vignetting and color) and Adobe Photoshop CS4 (spot-editing), which is industry standard. I brightened the photos and made the colors warmer by shifting to a white balance with a higher Kelvin temperature, because I used automatic white balance in camera which was too blue.

Incidentally, a Daytona State College photography student asked to shoot Shaughn while he was in the lobby, but Anita shouted out “he’s already taken!” :grin:

Big thanks to Anita for making a $100 donation to my photography fund. I opened a checking account recently and deposited it there. I will use it for whatever photography or non-photography purchases I need to make in the next months, or bills.

I give well wishes and lots of love to Anita, Jacquelyn, and Shaughn, and I want the United States to leave Iraq, Afghanistan, and every other country we occupy, as soon as possible, never to return. :smile:

What printer should you buy for your office?

My Mom just sent me this question:

Dear Son,
My coworker Mark asked me if you have any good suggestions on laserjet printers. His printer at home ran out of ink and he doesn’t want an ink jet. If you know of any good deals out there, could you let him or me know?

Thanks.
Love, Mama

My answer:

Dear Mom,

I used to recommend Lexmark and HP, but I no longer recommend them because they gouge on toner in their low-end laser printers. I now recommend BROTHER.

I have a Brother HL-2140 and I like it. I paid $50 on sale (OfficeMax)… it’s $80 on Amazon now. Watch for a sale. It prints fast and clean. While it doesn’t duplex, you can just put pages face up, top toward you to print on both sides manually. I’m still on the starter cartridge (1000 pages) but you can order third-party replacement cartridges online for $30 shipped (refilled), which print 2600 pages. Much cheaper than new Lexmarks which have no refilled cartridges… $100 a cartridge with them. Brother is usually cheaper.

If he orders it have him order through this link: http://www.amazon.com/exec/obidos/ASIN/B0010Z1W06/brilliaphotog-20

Then I get 4% ($3.20) and it costs him the same. That link puts an Amazon tracking cookie on your computer… I get a 4% commission on anything you order within 24 hours as long as you don’t delete your cookies.

Black and white (monochrome) laser printers are the de facto standard for printing text and documents. They use them exclusively at my college. Inkjets don’t even compare. Laser printing is one-tenth the cost of inkjet and the text quality is better. It’s also much faster… I can print a 20-page document in under a minute.

The HL-2140 is really for 8.5*11 paper… I think it’s not good with envelopes or other sizes.

Love, your son,
Richard

I haven’t printed a document with an inkjet printer in over 2 years. Photos are great on inkjets. However, if you’re going to print walls of text, you need a black-and-white laser printer. I have one of both.

As for printing a lot of photos… you’d be best to go through an online printer like Snapfish or Shutterfly. They produce resin-coated chemical prints from a digital source using a laser, usually with very expensive Fuji Frontier machines (expose and then develop, stop, fix, wash, all automated in darkness). It’s cheaper, the quality is miles beyond inkjet prints, and the prints are WATERPROOF… I can put one of my 4*6 prints from Snapfish underwater for hours. Then when I hang it out to dry, it’s just fine. Awesomeness.

Color laser printers also exist… but I wouldn’t recommend them for photos. I also wouldn’t recommend them for the office, unless you want to spent $500 or more. I have a Lexmark C534N ($700 printer I got free after rebate 2 years ago), and after printing 1500 pages it just says “service fuser”… I don’t know what to do. Color lasers are more expensive per page, even in black and white mode. They’re expensive, large, heavy, complicated, and failure-prone. In the office, stick to black and white laser printers.

Trivia: toner is finely ground bits of black plastic (also: yellow, red, and blue plastic in color laser printers). The laser printer etches toner onto a drum with a laser. Then, it literally fuses the toner to the paper at a temperature of up to 400 degrees Fahrenheit. The paper doesn’t catch on fire because it passes through the fuser in just a few seconds. But it comes out nice and hot…

What printer do you recommend? Post a comment!

How Not to Be a Photographer

• Make sure everyone is smiling and pretending to be happy before taking the picture. Candid photography? Never heard of it.

• Don’t take photos of people; they don’t want you to take their photos anyway. Just stick to rocks and plants.

• Make your rocks blurry and your flowers over-exposed. Then claim it’s art.

• Pump up the saturation and contrast on that rose, so it’s just (255,0,0) all over. Then everyone will appreciate the beauty.

• Print your photos, then scan the prints at 600 pixels per inch. Now you have 48 megapixels!

• Never switch from auto mode. Only scary people use aperture priority. Manual mode is for the fully insane.

• Or, switch to manual mode, and refuse to use auto-focus. The camera doesn’t know how to focus. It’s just blocking your artistic vision.

• Always talk about your artistic vision, and the wonderful community of photographers your a part of. Maybe people will start believing it.

• Say a 12 megapixel camera is 20% better than a 10 megapixel camera.

• Buy a $2000 DSLR, then stick a cheap lens on it.

• Set your new $2000 camera down to go to the bathroom. Follow the advice in 10 Ways to Get Your Camera Stolen. Why would anyone want a camera?

• Refuse to use anything but a prime lens. Those zoom lenses are too modern and convenient. They’re not sharp enough either. It’s settled. You’re not a real photographer if you use a zoom lens.

• Constantly talk about “real photographers” versus the non-real photographers that are pervading your art form. Make sure some reference to film vs. digital is included.

• Say that film is useless, because digital is magical and does everything.

• Say that digital is useless, because film is the only true photographic medium.

• Assume you should always keep your camera zoomed out, because whenever you zoom in, you must be losing quality.

• Complain about the scary focal lengths on SLR lenses. 18-55mm? What’s that mean? 3.06x zoom? Why didn’t you just say so?

• Assume that 4x optical zoom is the same for all cameras, and that all cameras have equivalent focal lengths by default. You have no concept of wide-angle or telephoto.

• Keep your new DSLR at 18mm all the time, then wonder why everyone’s so fat and distorted.

• Use big words like barrel distortion, pincushioning, vignetting, chromatic aberration, etc. You have no idea what these mean, but they must make you look smart.

• Refuse to buy a camera that doesn’t use AA batteries.

• Use the flash all the time. If you have beautiful ambient lighting and a fast lens, kill it with a blinding strobe.

• Never use the flash. The flash is evil. Fill flash is eviler.

• Say that digital is no good because all print copies wither and turn green in three months. Chemical prints? For digital? That’s crazy talk.

• Ask if you need a lens to use the camera.

• Print your photos, then DELETE the digital source files. You don’t need them anymore, right?

• Assume anything with “digital” in it must be great. You need a “digital” lens, with which you should use digital “zoom,” because it must be the way to go.

• Keep calling your memory cards “disks” over and over. Windows does it; it must be right.

• Refuse to edit your photos. It’s just not true photography.

• Create a 20-page policy booklet before you snap any photos. You have to stay at 50mm all the time, because that’s most photographic. Certain menus on the camera are off-limits, because they’re too un-photographic. Those menus are: white balance, exposure bias, picture styles, color toning, sharpness and contrast, and several others. You can edit on the computer, but only to make the photo look more like the original scene. Contrast adjustments are okay, but cloning is not. Dodging and burning must be reviewed by a committee.

• RAW beats JPEG. If you use JPEG, you’re an idiot. Make sure to polarize all your friends on this, and then shun the ones who have ever used JPEG.

• JPEG does everything RAW does. The picture quality is identical. You only need RAW if you’re doing lots of editing, but if you need to do that, the photo is no good anyway!

• Plan out a sliding scale of quality settings to save space. 10MP RAW is just for special art photos. 10MP JPEG is for normal shooting, while 5MP JPEG is for birthdays and events (because of the volume of photos). Use the 0.3MP JPEG setting for anything you’ll post online. Heaven forbid you should accidentally shoot a special art photo when you’ve planned for something else.

• Keep no backups of anything. Just one copy of your photos in My Pictures. Or, make a backup copy… on the same hard drive.

• Catalog your photos by giving them descriptive file names. How to give file names to photos is bunk.

• Make eight copies of that photo: one for your flowers folder, one for macros, one for colors/red, etc. Nevermind that you’re wasting 70 megabytes.

• Complain that your DSLR’s LCD screen is broken.

• Complain that new digital cameras immediately become obsolete. I didn’t know they stopped making SD cards and batteries.

• Complain constantly. Be negative all the time. Photography is crap. Print articles like 10 Reasons Photography Sucks and Isn’t an Art Form to prove it to everyone.

• When someone shares his photography with you, ask him if it’s Photoshopped. If he says anything like a yes, shun him. If it’s a no, accuse him of lying, then commence the shunning. We photographers are so good like that.

• Print 4×6 photos on an inkjet. You knew it was coming.

Torrential Rain

After weeks of threatening skies that produced nothing, we’re finally getting some rain in Daytona Beach, Florida (Ormond Beach actually, but they’re close). I was drenched on the way to school yesterday, and we just had quite a cloudburst at my house. Here are two photos:

One thing that you’ll find when it’s raining a lot… is that it’s hard to get a good picture! First, it’s very dark out, so motion blur becomes a big problem. Second, you’ll take lots of photos where it looks like nothing is happening! (I always do.) Just a bit of fog or a gloomy sky, instead of the big raindrops and howling winds that your eyes see.

You can only really show the wind with a motion blur shot of trees, or if there’s a tornado or tons of mist flying about. You get photos with no rain because it takes a fast shutter speed to show it, which you can’t use in the dark normally (try upping the ISO sensitivity and using a smaller f number). But I have some other tips to capture the mood:

• Over-ride the auto-metering by stopping down a bit. When you want a dark scene, the camera doesn’t know and will make everything look bright and cheery. You have to fix that yourself.

• Show puddles, big puddles. Or the raindrops hitting those puddles. Use as fast a shutter speed you can, or a slow one showing the blur of turbulent water.

• Get a shot of raindrops falling. This works best if it’s still raining and the sun has come out, because there’s plenty of light and you can easily use a fast shutter speed, like 1/2000 of a second.

• Show raindrops on a window with a dark sky behind it, from inside your house or in the car.

• Stake out a spot and take shots of cars kicking up water, like my shot, Make Waves.

• Take shots before the rain starts, like I did with The Red-Brick House. Often, the sky is beautiful and ominous, but after the rain starts falling, it turns to a boring gray mush.

• Get closer. Even if it’s blurry, snap photos of rain sweeping off roofs or draining from gutters. You’ll capture the experience of torrential rain much better than just pointing your camera into the sky.

• When it’s blue and rainy out, your camera will “fix” this by making it look a normal, warm gray. Over-ride the white balance by using the “sunny” setting (not cloudy, as that’s too warm). You’ll get more interesting, unsettling blue tones, without them being excessive.

• Protect your camera! Put a plastic bag over it, then cut a hole for the lens if you need to. If you’re particularly wealthy, you can even buy a camera rain cover (there are lots of options).

• Go to the river or ocean and take shots of all the rain hitting the blue water, or the haze off in the distance. Watch out for lightning, though.

• If you’re going to photograph lightning, set up a tripod under a roof somewhere, shooting with a thirty second exposure. You’ll need to close down the aperture as far as you can, perhaps even using a filter to keep the light under control during the lengthy exposure. Don’t trust your camera; under-expose your photos. If any lightning does turn up, the camera won’t be expecting it, so the shot will turn into an over-exposed blob if you’re listening to the meter.

Now you know what to do. Just wait for some rain, and get out there.

How to Always Get the Perfect Shot

There’s one technique that I’ve found useful, when you’re waiting for the perfect photography moment, to never miss it.

Snap so many shots, you can’t miss.

You’re bound to get a good shot of those falling raindrops if you take 50 photos instead of one. Now, there are a few pre-requisites. First, you have to have the shot well composed. The shutter speed must be adequate, and the exposure dead center. If you mess up this, you’ll just end up with 50 bad shots instead of one. Focus can be a problem, because the camera may change itself automatically between shots. Switch to manual focus once you’re locked in if possible, or keep your eyes peeled for blurriness through the viewfinder or on the LCD screen.

If you’re working with a digital compact, switch to burst or continuous shooting mode first. With a DSLR, you can just click away. Here’s an example of what I shot yesterday of raindrops on my front porch:

Overshooting in practice

Click to enlarge, and you can see I took no fewer than 35 distinct photos. All in a period of two minutes. But for something as chaotic as falling water, you need to do this to get the perfect moment. The masters in film photography did it despite the terrible expense, but the cost is nothing besides wear and tear on your camera in the digital age. You can delete all but the best afterward, but you won’t even get the best unless you shoot ten times more than what a normal person would.

As you can see above, my favorite was the second one. So why didn’t I just stop then? Because I had no idea what would come afterward. I just parked myself in the same space, and kept clicking away, because who knows what may appear? Perhaps the drops will form a heart shape, or collide with each other in mid-air?

If you really want to go overboard, you could film it instead, and then grab the best frame from the video. My Canon PowerShot A620 offers this. But a standard camcorder is only about 640×480 pixels, which is 0.3 megapixels (compare to 10 with my Canon Rebel XTi). The optics and picture quality are lower, and there are more compression artifacts. You won’t be able to freeze action with a 1/4000 second shutter speed like with my raindrops. And many frames will be blurry, because their meant to be watched in succession, not picked apart. An HD camcorder may be better. But overall, I don’t recommend it.

Generally, the higher-end your camera is, the bigger it’s storage buffer, so the quicker you can take shots. On my first camera in 2004, I could only take a shot every three seconds, max. But on my DSLR, I can shoot ten shots in five seconds, and then only wait a few seconds to take some more. And that’s in RAW mode. You want to use RAW mode if you can, because if there’s a problem with exposure or white balance, you can recover from it, and you have more editing leeway in general. But if your camera has a fast processor and you switch to JPEG, you may have a much larger buffer for burst shooting.

Now you know how to not miss the moment. You have to do this to get a good action shot; I’ve done it on all my best work, like Raindrops and Speed. Sometimes it takes dozens of shots. But if it’s a good scene, and you have the other factors right (exposure, focus, composition, aperture, shutter speed), then it will work and it’s the way to go.

Of course, you can’t even get the best shot if you don’t even have your camera at the ready. Read 8 Tips for the On-Cue Photographer for advice with that.

How to Brand Your Prints

the back of a photo, annotated with laser printing

Photos in print are much harder to brand than photos on your website. If your printing in any great quantity, the tedious process of writing out your name, website, and other pertinent information on the flip side becomes insurmountable. Secondly, most photographic papers have a resin-coated backing, which stubbornly refuses any water-based inks. My methods in this article are aimed toward unframed 4*6 prints, as that’s what I deal with myself, but they can be easily applied to other formats. In fact, the fundamentals of permanence at the end are essential to any print medium.

Whether your printing photos for your friends, family, art, or business, it is doubtless that any copies floating about can make convincing advertisements. Your very livelihood is at stake; what can you do to make sure that everyone knows that you are the creator of those photographic masterpieces? Luckily, you do have options.

1. Put your name right on the front of the print, straight from the digital source files. This is an easy way to demarcate your work; you don’t have to deal with any hand writing or messy backprinting. Unfortunately, it’s a bit distracting, and anything more than the title and your name is pushing it; include your website and the text will get more attention than the photo. Plus, if you’re going to put the info anywhere, it’ll have to be at the edge of the print, perhaps in a border surrounding the image. You’re going to have to deal with the bleed edge, and it’s a pain because what looks fine on the screen will often get cut off in a borderless print. This becomes especially important if you’re out-sourcing to a lab, as they often crop tightly, and you have less control than with home printing. Nonetheless, as long as you use a big enough border, this is effective, especially if you’re drop-shipping your prints and can’t intercept them to label the backs elegantly. I’m using this very technique for The Freedom Project, my free print offering; the image area is 5×3.34 instead of 6×4, and the extra space is used for a border, with the title and my name at the bottom.

2. Label the back of the print by hand. This is fine in low volume, and provides a connection to your audience. There are downsides though: it’s slow and eats away at your time, your handwriting won’t be as readable as printed type, and getting the ink to stay without damaging the print is a challenge. Don’t even think of using a ballpoint pen; the point will leave a noticeable impression on the front side, and if the ink is water-based, it’s not going to adhere anyway. Your best choice is a pigment-based permanent marker; a Sharpie or equivalent. Ultra fine point is good, as long as you don’t press down too hard.

3. Rely on your lab to label your prints. Usually, they print a tiny dot-matrix label, including the file name or custom text. Winkflash prints the file name, and SmugMug offers custom text, for example. Both are limited to about forty characters—hardly enough space for your name and website. This post by dogwood at the Digital Grin forum sums it up:

Just my two cents, the backprinting option is a GREAT idea… though in reality, it does look pretty poor. The printing is tiny, there are frequent errors, you can’t use symbols (including the copyright symbol), and it looks like one of those 1980’s dot matrix printers is used to create the text.

The provided backprinting is a step up from nothing, though.

4. Label the back of the print with a rubber stamp. You’ll run into the same problem as above: dye or water based inks will never dry. Your only choice is pigment-based or permanent ink, which are less common and more expensive. It’s hard to clean either off your stamps, and the former has the con of not being permanent. Read more here: Ink Pad Basics. Look into alcohol based inks if you pick this route, as they will stick to even plastic.

5. Label the back of the print with an ink-jet printer. This won’t work at all. Trust me, I’ve tried it. It’ll come out looking fine, but as soon as you touch the ink, it smears all over the place, even if it’s sat out for two weeks. It’s fine if you’re using double-sided paper, but if you are, you don’t need to read this anyway.

6. Label the back of the print with a laser printer. Now we’re getting somewhere. This is what I do for all my 4*6 prints using a Lexmark E450dn; the opening image is an example. This won’t work with many printers, and has some problems. For starters, many laser printers get too hot and will damage the finish or curl your prints permanently. Don’t expect any specs on this from the manufacturer. You run the risk that the plastic in the print will melt and get caught up on the rollers, immobilizing your expensive machine. This happens more often with inkjet photo paper, which isn’t designed to stand up to heat. And many printers don’t like to label 4*6’s; you’ll have trouble setting up the tray, and getting the print to be centered. The upside is if it works, you have a cheap and fast way to batch label prints, even with lengthy annotations that fill up the whole back side, like in my example image. The “ink” will always stick, because it’s in fact toner, ground up particles of plastic, which are burned to the paper with a fuser as hot as 400 degrees (Fahrenheit). I lose about one in two-hundred prints, because the printer messes up and crinkles them. But I can run a stack of seventy-five through in eight minutes, usually with no intervention, provided their all the same photo.

7. Use water-based ink, but cover it with a piece of scotch tape. The ink smears a bit under the tape, but remains legible. This looks really ugly. It works, but leaves a bad impression, so I don’t recommend it. Another downside is that the tape may peel with time or under wear.

8. Use printer labels. Get a pack of 2000 clear inkjet labels (just over a cent each), then print on them with your inkjet printer. The ink will absorb into the label, and then you can just stick the label on your print. This is a good method because it overcomes the problems of the prints’ non-absorbent surface, but applying the labels is more time consuming than printing directly as in method five, stick-on labels don’t look as good, and they’re expensive. Plus, they can be easily peeled off.

9. Give up and do nothing. No, no, you can’t do this. Moving on . . .

Now that you know how to do it, the next question is what to do. By do, I mean write. Pick facts to stand the test of time. Your name is a good start, but unless it’s terribly unique (like mine), you’ll want a bit more information so people can track you down—not to stalk you, but so they can buy more of your work and commission you to take photos of their children and pets. Put your website on the back, but be wary that a URI like http://www.flickr.com/photos/richardxthripp/ doesn’t inspire much confidence. It isn’t good for you either—what if Flickr bans you for some unjust reason, or you get tired of the limitations and want to move out on your own? All the photos you’ve labeled and distributed are going to be out of date. Fortunately, you can have the best of both worlds; register your permanent domain for about $10 a year, then set it up to forward to your Flickr account (or SmugMug, or deviantART, or whatever). Any good registrar will offer forwarding, and then if you change photo services or start using your own domain, you can change the settings. All your photos and t-shirts you’ve printed will never go out-of-date, because they’ll be forwarded to the right place as you so smartly set up.

Regarding permanence of information, the same applies to phone numbers. While your number may be better relegated to a business card than to the backprinting on a print, either way, get one you can stick with. You can’t count on your parents or roommates to forever take your calls, but a good solution, if you don’t mind a new number, is GrandCentral, a free proxy phone service with voice mail, multicast forwarding, and other perks. I use this for the 510-936-2417 phone number I bandy about on my contact page and elsewhere, yet it forwards to both my secret home and cell phone numbers, simultaneously. When I change numbers, I just update the record at the website, and start receiving calls at the new number, even though I’m still using 510-936-2417. Since Google has acquired the service, it should remain free and reliable for a long time. You have to sign up for a waiting list, but when I did it, I was chosen in about a day.

So now that you have your shiny, permanent web address and phone number, what else do your fans have to know about their beloved artist? It’s debated, but I feel that every great photo deserves an equally wonderful title, and if there’s anything your print viewers should know, it’s the title of the gem which has entered their collection. Flaunt it proudly on the label. It’s the first thing on mine. An index number is a good idea, so if you’re called for reprints, you can look up the photo by number right away. If each of your photos has a unique title like with mine, I suggest skipping it, however.

Now, what not to write. Unless it’s photo-journalism, don’t write the date. Photos like my Raindrops are timeless, but if I announce that it is from two years ago, people will think it’s old and not valuable, especially when I want to pass it off, implicitly, as recent work. Put the name of your photography studio if you run it, but not if you’re an employee, unless your employer requires it. I have an aversion to “copyright” and “all rights reserved” for backprinting. It’s a waste of ink, your work is copyrighted regardless in the U.S.A., and it won’t deter any thieves. Going with this theme, don’t watermark prints, ever. Even if you’re giving them out. It’s bad karma. Besides, a scanned print won’t be near the quality of your master files.

Do write some notes, if you’re labeling with an efficient laser printer. I do this on a lot of my pieces now, and my friends enjoy reading of the method behind my creative madness. Sign a few prints with a blue Sharpie, so it’s not mistaken for a facsimile signature; they might be collectors’ items someday. Put your website down, but don’t think of detailing your pricing or photography services; people can contact you if they’re interested, and that information is perishable anyway. Whatever you print, make sure it’s big and readable. I use Arial, size 14 for my branding, size permitting, so even blurry-visioned folks can read the title without glasses.

I do hope I’ve helped you in tackling this issue. Marking your prints is a major step toward developing your personal photographic brand, and the virtues of the printed format continue to complement Internet publication. May your followers never wonder who you are, and may your contributions shine through the photography community.

Dynamic Galleries and Random Images for WordPress Photoblogs

I was looking for ways to optimize my website . . . to make it quicker and easier for me to maintain and update, while being fun to browse for my visitors. The problem with the old gallery and random photos at the top of each page, was that I had to make the thumbnails and update the page and database for both (I was using the this randomizer plugin for WordPress), each time I added a photo. It was good because I’d crop, scale down, and sharpen each image to look its best, but the extra work was too much. I found the Post Thumb plugin is the perfect solution. I installed it, set it to make 100×70 thumbnails, and then added this code to my blog header:

<?php the_random_thumb(“link=p&limit=5&category=8”); >

That makes it show five random photos from the category for my photos, linking to the page for each instead of the file. The great thing here is that the thumbnail folder and accompanying MySQL table is updated automatically, so photos are added to the pool as soon as I publish them. A random photos section is good for the casual browser, who just looks at what catches his eye.

Next, I wanted to create a dynamic gallery and random image page. I added the Exec-PHP plugin so I could use PHP code in pages and posts, but found that WordPress inserts a line break between each thumbnail, against my wishes. For that, I added this modified version of Text Control by Jeff Minard, then setting it to not auto-format the gallery and random pages.

The code for page one of the gallery is:

<?php the_recent_thumbs(“subfolder=g&width=200&height=160&link=p&limit=60&category=8”); ?>

and for page two:

<?php the_recent_thumbs(“subfolder=g&width=200&height=160&link=p&limit=60&offset=60&category=8”); ?>

The parameters with all the ampersands tell the script to make 200×160 thumbnails instead of the default, to save them in a subfolder named “g” (for gallery of course), to link to the posts the photos are in, to display sixty thumbnails per page from category 8 (my photos), and, on the second, “offset=60” means to start with photo #61 (computer programming languages count from zero). When I get over 120 photos (I’m at 83 now), I’ll have to make page three manually. I don’t mind that, since mine is a low-volume photo-blog focusing on quality, so I’ll only need to make a new page every few months. I’m stoked enough by what can be done without my help.

Next up was the random page:

<?php the_random_thumb(“subfolder=g&width=200&height=160&link=p&limit=24&category=8”); ?>

This is almost the same as the first gallery page; the function is the_random_thumb instead of the_recent_thumbs, and I reduced the number of photos from 60 to 24. It worked great, except the random photos would not be refreshed on each visit to the page. The problem was the caching module I use, WP-Cache, so I solved it by adding “/random” to the list of rejected URIs in its settings. Unfortunately, this makes the random page the most computationally expensive on the site, which is especially a concern because I’m on cheap, shared hosting. I’ll keep an eye on it, and if it gets too popular and things start crashing, I’ll reduce the number of images or pull the plug.

As if this wasn’t enough, I had another feature to add: a link to a random photo for sale in my expensive shop (powered by YAK), at the top of the sidebar on each page. After doing the above, this was easy:

<?php the_random_thumb(“subfolder=s&width=128&height=86&link=p&category=389”); ?>

This time, there is just one thumbnail per page, so “limit=” is omitted (it defaults to 1). The subfolder for the thumbnails is “s” for shop; you can make the subfolder’s name longer, but I’m keeping it short for simplicity. The width and height are different to match the size of my sidebar , and the category is #389, to show only posts from my shop for framed prints. I’m letting WP-Cache in place, but it clears every day (a.k.a. 86400 seconds), so each page will show a different print each day.

Is that enough? No, Post Thumb isn’t done helping me. I normally create the thumbnails and HTML code showing them for each photo, but the plugin can take care of that automagically. I made these choices in the settings:

Alakhnor's Post Thumb auto-thumbnail settings

For the screen capture of the settings you see above, I added the rel=”nothumb” tag after the alt text, because it’s 475 pixels wide, so resizing to 400 isn’t needed. But I’ll be letting it auto-thumbnail most of the time. For Sunrays 3, for example, I would normally make a thumbnail, upload it, and write this HTML for the post:

<a href=”http://thripp.com/files/photos/sunrays-3.jpg” title=”Sunrays 3 — orange rays of sunshine pierce black clouds”><img src=”http://thripp.com/files/photos/sunrays-3-sm.jpg” alt=”Sunrays 3 — orange rays of sunshine pierce black clouds” /></a>

But now, I write this:

<img src=”http://thripp.com/files/photos/sunrays-3.jpg” alt=”Sunrays 3 — orange rays of sunshine pierce black clouds” />

. . . and the plugin resizes and saves the photo, uses the new version as the image, links to the full-size version, and specifies my alt text as the hover title, while showing the abbreviated code when I return to edit the post. And this is all done before sending it off to LiveJournal and Xanga (with LiveJournal Crossposter and Xanga Crosspost). Very cool, and better than what WordPress does out of the box.

Post Thumb finds the first image in a post, then using a thumbnail of it to represent that post. Since I only put one photo to an entry, it’s perfect in my case. I have both the convenience of a photo-blog and the versatility of a text blog. I can write text articles like this one right alongside my photos, both show up to my RSS and email subscribers, and I can include lengthy descriptions for my photos, while WordPress and Post Thumb do the heavy lifting to compile a detailed blog and minimalist gallery. This is more than can be said for WordPress 2.5’s built-in galleries, or the add-on solutions. It is much preferable for teaching galleries like my own, with lots of text and information accompanying images, than for people who just want to put up scads of photos with no details. I use Gallery2 for the scads of photos (my gallery is private). WordPress and Post Thumb bridge the gap.

While I was at it, I switched default fonts on the site from Lucide Grande to Arial, because it’s included with Windows, and renders better at small sizes in Firefox. I also changed the banner from olive green to a powerful black. The last step was to add links to the new gallery pages below the banner. Changes are good.