For Photographers, Instagram Square Photos are Worse than a TOS Update

Austin, Texas

I’m a photographer and I use both my iPhone 4S and my Digital SLR to take photos.

There’s a difference between taking pictures and taking photos, however, and the nuance is an important thing to understand. When you raise a camera and snap a photo, unless you’re paying attention to things like composition, lighting, depth of field, aperture, shutter speed and ISO, you’re taking a picture. If you’re doing all of those things (or reasonably close to all those things), you are safely in the category of “doing photography”.

One is casual. The other is intentionally art (whether good art or not is a subjective matter that shouldn’t be handled in this post).

Art doesn’t have to be Pablo Picasso or Ansel Adams or John Lennon. It doesn’t have to have a philisophical meaning or intent. Art is the expression of the Artist on an outward medium. Or in the case of photography, it is more simply the interpretation of what the eyes sees into a likeness in film or in digital media. Photography as art cannot be done haphazardly. That’s how people get caught in the trap of buying a $2000 camera and wondering why their photos suck. Because there is no context of movement, sound, smell or touch, the essence of a point in time must be captured entirely visually. If it’s done right, it’s art because care, intent and a degree of skill are needed to translate the moment into a snapshot.

Photographers work hard to get this right. It takes a perceptive eye, a knowledge of the equipment, lighting and composition to make a great piece of art in the form of a photograph.

I thought this was about Instagram?

This is about Instagram. Instagram’s app used to allow the user to upload a photo that did not fit a strict “square” format and pinch and squeeze to resize and get an entire photo in. While this was not as aesthetically pleasing as it could have been, it gave the photographer the ability to use the entirety of a photo and the composition nuances in it.

The new app does not allow for this zoom and strictly enforces a square model. The Next Web covers some of the pushback and takes the opposite side as me – that it’s high time Instagram enforce a square photo.

Take this photo as an example. I love this photo of Downtown Austin from across the S. Lamar St Bridge. The composition here is extremely important. The reflection of the bridge in the water, the trees and of course the kayaker under the bridge make this photo what it is. Here is my post-production piece.

Austin, Texas

However, what happens with Instagram? I have to scroll to one side or the other or find a happy medium in the middle for this photo.

Austin, Tx - iPhone

I realize, of course, that many users hate to see black bars across the top of the Instagram photo, as it was the day I posted my photo to Instagram!

Austin, Tx - Old InstagramHowever, this is the balancing act that Instagram has to consider. While creating a photography app for the masses, the need to keep photographers on board is essential. The new app takes away the artistic prerogative and choice from the artist and puts discretion in the hands of the masses. Last time I checked, the masses don’t shoot my photos, edit my photos, make artistic choices about my photos or have the same skills or style that I possess as an artist.

choose what my photos look like. I use Instagram to publish because it has two things: an audience and a distribution vehicle. When I post to Instagram, I push my photos to both Twitter and Facebook. I chose this even with the artistic limitations that it offered before this app update (namely the “letterbox” that goes with the photos that don’t fit into a square format).

One can argue that Instagram had to make a business decision, perhaps inline with the desires of their Facebook overlords. I guess that argument can be made. But removing artistic license abilities of artists who are using the platform is a terrible idea. Imagine if Twitter had said, back in 2007, that they had this platform that could only be used with 140 characters because it was built for use over text message and, since that was their original idea, and the colonial approach to the short message service was the only appropriate way of consumption, then text messages would be the only method of use allowed.

That is, in fact, exactly what Instagram has said indirectly, and what the Next Web article (linked above) advocates. Hey, photography used to be limited to a square format because it was the cheapest way to do it. Yeah… and then we got 35mm film which opened up a 4:3 ratio. And then we got digital that opened photographers to new technologies to create different formats, styles and use different concepts to create art.

Imagine if all our music sounded exactly the same way as the Beatles did in the 60s. Would there be any evolution to music? Of course not, because every artist would sound exactly the same way, use exactly the same cadence, write lyrics that epiphanize the exact same mindset that existed in the 60s and generally would be boring today – and I’m a big Beatles fan!

Returning to a square format is not a bad thing. There are vintage schools of thought in every format of art, fashion, music and culture. But that doesn’t mean that every artist should be forced to adopt such styles. That makes photography boring and conformist. That’s not why we do photography!

 

Contest: 3 free copies of the WordPress Bible [UPDATE]

Today marked the drop of WordPress 3.5 and I want to celebrate.

Tomorrow, I’m going to give away three autographed copies of the WordPress Bible. You have to be on Twitter. I apologize to those who have chosen to abandon Twitter, or have chosen not to participate, but it is the defacto communications medium of the 21st century and how I operate.

The book is a mix of advanced and beginner content. Therefore, I will do trivia. Trivia will have a beginner round, an advanced round and an intermediate round. All WordPress oriented. The winner is in my sole discretion and you will be required to provide your mailing address if you are selected.

WordPress core contributors are not allowed to participate in the beginner or intermediate round. If your name is on “the list” of 3.5 contributors, you cannot win those rounds. You can, however, participate in the advanced round.

The beginner round will consist of questions surrounding theme and plugin management with possible questions around usability and interface.

The advanced round (the only round open to core contributors) will be based on WordPress APIs, hooks and advanced WordPress development.

The intermediate round will mix both but the developer-oriented questions will be more common and basic and user questions will be more difficult.

You must hashtag your answers with #wpbibletrivia. Failure to do so disqualifies you for an answer.

The first answer I see that is correct is a correct answer. My judgement solely.

There will be 10 questions per round so pay attention.

The beginner round begins at 11am Central Time.

Share this on Facebook, Twitter or whatever your social media channel of choice is. The questions will be asked on my Twitter feed: @technosailor.

Good luck!

Update

The winners of the trivia contest were David Peralty for the beginner round, Kim Parsell for the intermediate round and Kailey Lampert for the Advance round. Well done, everyone!

TUTORIAL: Building Custom Rewrite Endpoints in WordPress

rewrites

Recently I concluded a sizable project that involved deep integration with an external API. I was responsible for creating content pages based outside of WordPress. To be clear, the pages would use an internal WP template, but all the content was generated using this external API.

In order to make this work within the WordPress Rewrite system and serve pages that WordPress knew how to handle in a non-traditional way, I had to tackle this in a multi-prong way: using the template_redirect as well as the built in Rewrite API.

Note: I’m not giving away the full sauce here as the project is non-open source. As well, I’ll be abstracting some stuff a bit. If you’re smart, you can fill in all the blanks regarding how to fully implement this.

First we need a base class:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

class Base_Class {

  public function __construct() {
    $this->hooks();
  }

  public function hooks() {
  }
}

new Base_Class;

This is the base of pretty much every class I write as part of a plugin in WordPress. If you don’t follow Object Oriented coding practices, start now.

The next step is to register some variables with WordPress. Because WordPress is using the template_redirect hook to get the proper template files, you will often lose necessary query string variables, and you definitely can’t use them in an endpoint (i.e. /foo/bar) without WordPress knowing about them.

So let’s register them using the query_vars filter.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
class Base_Class {

  public function __construct() {
    $this->hooks();
  }

  public function hooks() {
    add_filter( 'query_vars', array( $this, 'query_vars' ) );
  }

  public function query_vars( $qv )
  {
    $qv[] = 'foo';
    $qv[] = 'bar';
    return $qv;
  }
}

new Base_Class;

After this, we want to actually create some rewrite endpoints. In this example, I want to allow permalinks like /foo/content-slug/ and /bar/content-slug. With the following code that adds a rewrites() method to the class, and hooks on the generate_rewrite_rules filter, we can create these two endpoints. In our imaginary template, we would use get_query_var() function to handle logic for display purposes, but that’s outside of this article scope.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
class Base_Class {

  public function __construct() {
    $this->hooks();
  }

  public function hooks() {
    add_filter( 'query_vars', array( $this, 'query_vars' ) );
    add_filter( 'generate_rewrite_rules', array( $this, 'rewrites' ) );
  }

  public function query_vars( $qv )
  {
    $qv[] = 'foo';
    $qv[] = 'bar';
    return $qv;
  }

  public function rewrites( $rules )
  {
    global $wp_rewrite;

    $new_rules = array(
        'foo/([a-z]+)/?$' => 'index.php?pagename=wppage-holder&foo=' . $wp_rewrite->preg_index(1),
        'bar/([a-z]+)/?$' => 'index.php?pagename=wppage-holder&bar=' . $wp_rewrite->preg_index(1),
    );
   
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
    return $wp_rewrite->rules;
  }
}

new Base_Class;

Specifically, note the new rewrite rules and how they are structured. If those permalink structures identified above match these new rules, then we will pass the request on and use the template file designated for a page (that you do have to create in WordPress, by the way) with the slug ‘wppage-holder’. This can be done by designating a template file on the page edit screen or by naming the template as page-wppage-holder.php in your theme – again, outside the scope of this article.

If the permalink matches foo, we pass the foo variable on. If it matches bar, we pass the bar variable on. Logic on the other end left to you.

This is where I have to stop using this example, for client confidentiality purposes, but imagine what is possible now if you extend this and use the template_redirect hook to handle some custom redirects leveraging wp_redirect()?

Imagine. :)