Tom Hackett Photography: Blog en-us (C) Thomas P. Hackett [email protected] (Tom Hackett Photography) Tue, 21 Sep 2021 16:13:00 GMT Tue, 21 Sep 2021 16:13:00 GMT Tom Hackett Photography: Blog 120 60 NFT = Not for Tom Recently, I created my first and second (and probably last) NFT.  NFT, which is a TLA(1) for Non-Fungible Token, is built on Blockchain technology, which is also the basis for crypto currency, such as Bitcoin.  NFT is all the rage in the arts community these days because an artist can create an NFT based on a piece of work (such as a digital photograph, photograph of a work of art in some other medium or even a video).  That work can then be sold as an NFT and its provenance guaranteed (or, more accurately, verified) through the Blockchain. 

“Why last?” you might ask.  The answer begins with an article in The New York Times published on September 5, That article documents the shocking growth of computing power needed to maintain the Blockchain.(2)  I say “shocking” because computing power consumes electricity.  (As an aside, I find, as a (retired) IT professional with a master’s degree in Computer and Information Science, the whole idea of spinning CPU cycles just to prove that you have done so is somewhat like jacking up your (front wheel drive) car’s wheels, putting the car in Drive, and spinning the wheels just to show that you can.)

There are two obvious environmental problems with Blockchain technology.  Blockchain maintenance is highly competitive and success depends on computational speed.  This causes those who compete in this field to upgrade their computing equipment as quickly as possible, meaning that used computers fill recycling centers and landfills at breakneck speeds,  burying toxic metals, plastics and other undesirable garbage.

Along with this increase in computational power and speed comes increased use of electricity.  The generation of electricity is currently (sic.) one of the main contributors to the release of carbon dioxide into the atmosphere and, thus, to rising temperatures.  In order to curb global temperature increases (which many believe is necessary for human survival), we will need to reduce or eliminate electricity generation from coal, gas and oil (so-called fossil fuels) and replace it with generation from renewable sources such as wind, solar, hydro and perhaps nuclear.  If we are to succeed in slowing or stopping global warming, it seems obvious that we must increase electricity production from renewal sources at least as fast as we increase electricity production—probably a great deal faster.  There needs to be a two-pronged approach:  increasing production from renewal resources while slowing, stopping or even reducing production from fossil fuels.

Applications based on Blockchain technology seem bound to continue their use of electricity at a higher rate than we are able to increase generation of electricity from renewable sources.  Hence, Blockchain (crypto currency, NFTs, etc.) must be curtailed.

But Blockchain applications have social benefits, right?  They are independent of governmental regulation.  They allow for anonymous transactions.  They have the capability to make the wealthy much more wealthy.  They provide a basis for ransom demands.  They may even make Internet and other cryptography-based security measures easier to compromise.

NFTs in particular have beneficial uses.  They have spawned a new industry in digital collectibles (e.g. crypto kitties).  Who thinks we don’t need a digital replacement for Barbie dolls and Cabbage Patch Kids?  Oh yes, and they seem to provide some benefit to artists.

As a worldwide human community, we can’t afford the Blockchain.  I would ask other artists to abandon NFTs and join the opposition to the Blockchain.

(1) TLA = Three Letter Acronym
(2) At this time, the exponential growth of computing power consumed by blockchain-based applications seems unavoidable.  To understand this, we need to consider three classes of problems.  The first are problems that can be solved in an amount of time bounded by a polynomial (P).  In other words, as the size of the problem’s input grows (e.g. the number of words to be sorted in a list), the amount of time required to solve the problem is bounded by a polynomial (i.e. a mathematical expression that may include addition, subtraction, multiplication, division and exponentiation to a fixed non-negative exponent).  It is worth noting that because a problem is in P doesn’t mean it can easily be solved.  The time required to sort a list of words alphabetically can be bounded by the square of the number of words in the list, but for a large number of words, that’s still a lot of computing.

A second class of problems are called NP.  This means that if you have a proposed solution to the problem, the proposal can be validated (or refuted) in an amount of time bounded by a polynomial.  This does not mean that there’s an NP algorithm to create a proposed solution, only that if you have some way of guessing, you can know whether your guess is correct or not in an amount of effort bounded by a polynomial.  

There is an open question on mathematics as to whether P = NP.  In other words, is it possible that any problem solvable in Non-polynomial time could also be solved in polynomial time.  There is a subclass of NP problems called NP-complete, meaning that if you found a P solution for one of them, it could be used to create a P solution for all of then.  This has been a question of research going back over thirty years.

The third class of problems, known as NP-hard, are problems to which no known polynomial time solution exists, even if you already have a way to generate guesses.  In other words, the amount of effort to verify or refute the guess is not known to be NP or easier.

One classification of Blockchain algorithms requires a “proof-of-work” (PoW).  PoW implementations are generally either NP-complete or NP-hard.  The Bitcoin algorithm, for example, requires PoW.  Another set of blockchain algorithms, called “Proof-of-stake” (PoS) are easier, but may still be NP-complete.  



[email protected] (Tom Hackett Photography) Bitcoin Blockchain NFT non-fungible token NP-Complete provenance Tue, 21 Sep 2021 16:13:12 GMT
The Vast Playground of Photoshop Brushes I developed this script for a mini-class to be given at the Ulster County Photography Club in Port Ewen, NY on May 9, 2018.

Brushes are among the most versatile and powerful tools in Photoshop.  This presentation is based on Adobe Photoshop CC release 19.0 and later.  Adobe Photoshop Elements has brush capabilities that are similar in concept to Photoshop CC but more limited in capability.  Lightroom has something that's called an Adjustment Brush, but it is pretty much just a selection tool, used to defining an area of your image that you want to affect and then allowing you to make basic adjustments, such as exposure, contrast, highlights, etc.  It bears little or no resemblance to a brush in Photoshop CC or Elements.  The brush capabilities in Photoshop have been evolving quite a bit recently.  There have even been some changes in the six weeks or so since I started developing this presentation.


There are two primary ways of using a brush:  On a “pixel” layer (such as a copy of the background layer or a new blank layer) or on a layer mask.  A brush cannot be used directly on an adjustment layer (although it can be used on an adjustment layer's layer mask).  We won't go into painting on layer masks unless there’s time later, since that requires a knowledge of masks that I don't assume everyone has.


Basically, brushes in Photoshop allow you to draw or “paint” pixels freehand on your image.   Let me start with a simple example. 


If you select the brush tool (or type the shortcut letter b), you will see the options bar for brushes.  Several characteristics can be adjusted here.  The first you will see is the size, in pixels.  If you click on the pull down you can adjust the size and the hardness (which is kind of like feathering).  Another way to adjust the size, and one that will prove to be extremely handy is to use the square bracket keys.  '[' makes the brush smaller, while ']' makes it larger.


Next is the mode setting, which defaults to Normal.  This is similar to a layer mode, but applies only to the “paint” you are currently putting down.  Unlike the layer mode, this mode only takes effect when you paint after selecting it.  It doesn't do anything to the paint that has already been put down.  There is one special, and very useful, mode here for most brushes, and that is Clear.  When you paint in the Clear mode, it removes any previously painted pixels on the active layer.


Opacity, again, is similar to what you will can set on an entire layer, but it effects just the pixels for a given series of brush strokes after making the setting.  It is the maximum opacity of your painting with one series of brush strokes.  In other words, if you set an opacity of 50%, the pixels you paint while you hold the mouse button will never exceed 50%.  Flow, on the other hand, affects the rate at which the pixels are added.  If, for example, you set a flow of 10%, you will have to go over that spot five times to achieve 50% coverage.


I'm not going to talk about any of the other options on the brush options bar at this point.  Some of them are just too advanced; others we'll get to later.


So far, we can see some rather basic brushes.  These are hard or soft round brushes.  Note that some of them say things like “Soft Round Pressure Size.”  This indicates that you can adjust the size of the brush, not only by moving the slider or using the square bracket keys, but also by applying different amounts of pressure on the pen when you are using a tablet.  Most of what you will need to do with brushes can be done with the mouse, but if you become a serious brush user, you may want to get a pen and tablet to take advantages of many settings that can be adjusted dynamically with the pressure, angle, etc. of your pen.


Between the size and the mode is an icon that looks like a file folder with a picture of a brush on it.  Clicking on that will give you the complete brush settings menu, and when I say complete, I mean that there are tens or hundreds of settings that you can manipulate for any brush.  This menu can also be accessed from Window>Brush Setting or simply F5.


So let’s take a walk through some of the more interesting settings in this menu.


Before we do that, however, I want to introduce some good practices:

Each time you make a change that you like or find useful to a brush setting, you should instantiate it as a new brush preset.  You do this by clicking on the menu icon in the upper right and choosing New Brush Preset.  Let's see a simple example.  At the bottom, you will see a setting called Spacing.  With a Spacing setting of 1% or so, the brush paints a continuous line if I drag the mouse or pen.  Now let's see what happens if I change the spacing value to, say, 127%.  Now, it looks like I've taken the brush and dabbed it on the canvas at regular intervals.  If I like this effect, I can save it as a New Brush Preset, calling it something that will be meaningful to me, such as Soft Round with Spacing. 


Now there's a problem that arises here in that if I keep doing this, I will wind up with a myriad of brushes that may make it difficult for me to find the one I want.  A second good practice is to throw away brushes you're not needing.  To do this, you simply select a brush or a folder of brushes and drag it to the garbage can.


But before you do that, be sure to save any brushes you have created that you may want to use again.  To do this, hold the control key (command on a Mac) and select the brushes you wish to save.  Then, once again, click on the menu icon, and this time select Export selected brushes.  Now you have an important decision to make:  where to save them.  The Photoshop default (in Windows at least) is C:\Users\[your user name]\AppData\Roaming\Adobe\Adobe Photoshop CC 2018\Presets\Brushes.

But let's not use the default.  Rather, create and use a directory that you can find and remember.  You don't need to replicate what I do either.  I have a directory on the C drive called $TomHackettPhotography which contains everything on my computer related to photography.  Under that, I have a subdirectory called Adobe which includes everything to do with Adobe products (except what's installed with the product).  Under that I have Photoshop CC, which contains folders for Actions, Brushes and Workspaces (so far).


With this scheme, I save my brushes under c:\$TomHackettPhotography\Adobe\Photoshop CC\Brushes.  Now any time I want to use those brushes, I just go to the menu icon, select Import Brushes, navigate through my own directory structure and click on whatever collection of brushes I want.  This brings up the question what to name your brush collection when you save it.  One recommendation is to use the file name of the photograph you're working on.  That way if you want to go back to work on that image at any time in the future, you can find the same brushes you were using.  If you are working on another image with similar needs, you can import those brushes and at some point export them under the name of the new image. 


So now, back to talking about the brush settings.


To me, there is little that is more boring in landscape photography than a large, cloudless sky.  Here is an example.  Now, there are several ways to add clouds to this sky.  One is to place a photo with robust clouds on another layer and use blending options to let it show through in the right places.  This can be tricky, though, when the sky is interrupted by such things as trees, mountains or buildings.  You may have to wind up making detailed selections where you do (or don't) want the clouds to show through.  Or, you can paint on your layer mask.  But, as I said, that's a topic for another time.


In Photoshop CC, I have another option.  I can select a brush that already has a cloud shape and “stamp” or “paint” it into the sky more easily and quickly and, I contend, with more realistic results.


When you select a brush from the Brushes window, you're essentially selecting a brush tip, such as round, oval, flat, and a group of brush settings that was in effect when the brush was saved.  We already mentioned changing the brush size and mode.  Let's look at the detailed brush settings.  We won't have time to go over all of them, but I wanted to touch on some of the more important ones.  The first one we come to is Brush Tip Shape. 


We already talked about spacing, which allows you to create a “stamped” effect even though you are clicking and dragging the brush across the canvas.  You can also specify hardness, which controls the degree to which the “paint” conforms to the exact size of the brush, rather than being “feathered” around the center.


Below Spacing is something called Shape Dynamics.  This is where things get really interesting.  We begin to see the word “jitter.”  When we set basic parameters like size, it turns out we are really setting a baseline.  Size jitter allows the program to more or less randomly change the size as we drag or stamp the brush.  Why would anyone want to do that?  Well, we'll get to that in a minute.


Another control I want to point out here is, well, Control.  Here, among other things, we can set the control to Pen Pressure.  This means if we are using a pen and tablet, the size is going to be controlled by the pressure we exert with the pen on the tablet.


The next control is called “Scattering.”  Here we can control three things.  The first is Scatter, which means the distance from the baseline that we draw.  We can use the slider to control the amount of scattering, or rather the extent to which the program can deviate from our placement of the brush.  This can be coupled with Count, which controls how many instances of the brush shape are allowed to be created each time we paint.  Count Jitter specifies how far from the count number we have set that the program can deviate.


Back to the cloudless sky example.  Photoshop CC ships with hundreds of brushes, each configured with its own tip and settings.  You can also download, sometimes for free, brushes created by others or create your own brushes.


As it happens, I downloaded some cloud brushes.  So I'm going to click on this little icon in the upper right corner of my brushes panel and choose Import Brushes. 


Let's look at TPH Cloud 7.  Looking at the brush settings, we start with Brush Tip Shape.  There are a number of characteristics we can play with here, but we first look at spacing.  If we click to turn spacing off, we see two clouds, signifying that we really intend to use this brush as a “stamp” brush, meaning that we click where we want it go be placed and don't intend to drag the mouse or pen.  If we turn spacing on, then we can see the effect of moving the slider.  This means that as we drag our mouse, the brush will put down multiple “clouds” along the way.


We can also change the size here, but I prefer to expand and contract my brush tips using the left and right square brackets on the keyboard. 


Scattering allows the clouds to appear above and below the line taken by our pen or mouse.  Here we see something called “jitter.”  We will see this again and again.  It signifies that the values for characteristics like “count” vary somewhat randomly.

What I want to illustrate here is painting clouds into our image.  Now it just so happens that I have created and saved a cloud brush.  If we set the Spacing to maximum, we can see the brush tip itself.  It kind of looks like a cloud, doesn't it?  I'll use a spacing of 159%, which I found by trial and error.  Under Shape Dynamics, I have set the size jitter to 61%.  I'll set the Scatter to 100%, the Count to 1 and the Count Jitter to 50%.


The last option I'm going to talk about with respect to the clouds brush is Build-up.  When this is on, the longer you hold down the mouse button or keep the pen on the tablet, the more intense the painted object becomes.


Now, before I actually do any painting, there are two other things to set.  One is the foreground color.  Since we want light, puffy clouds, I'm going to set this to white.  Next, I want to do my painting on a separate layer, not the background layer.  This is because I want to work non-destructively.  I could type Control or Command J to make a copy of the background layer, but instead I'll just type Control or Command Shift N to create a new blank layer.  I'm also going to give it a meaningful name, in this case, “Clouds” or “Cloud 7,” using the name of the specific brush.  If I totally dislike the result, I can just delete the layer. 

A few clicks with the mouse, and we've created somewhat realistic looking clouds in the sky.


In the remaining time, I'd like to show some really cool options.  If I were a painter, I'd draw you a nice picture, but I'm not, so I'm just going to doodle on a plain white background.



Let’s continue our journey through the Brush Settings.  I'm going to skip over Texture and Dual Brush and go right to Color Dynamics.  It's not that the others are unimportant, but in the limited time we have, I want to show just a couple of interesting settings.  I'm setting the Saturation and Brightness Jitter to non-zero, but the one I want to emphasize here is Hue Jitter.  This allows the program to vary the hue as we paint.  It will use analogous colors to give you a bit of variation.


Now if we draw a simple line, we see that it changes color along the way.  Another interesting setting is to set hue jitter to 0 and foreground/background jitter to something like 50%. Now we see the stroke alternating from the foreground to the background with everything in between.


To further show the effect, I'm going to paint on a blank canvas and start with the color picker to choose a starting point.  For this, I am going to load another set of brushes that come with Photoshop CC.  I could go to the Photoshop default location, but instead I have copied these to my chosen location.  What I'm going to load here are from a collection called KYLE brushes (whoever Kyle is).  I'm choosing impressionist.abr because it contains a brush called Monet that I particularly like.


Now if I use this brush right away, you can see that it does not illustrate the Color Dynamics setting I created a while ago.  This is because whenever you load a brush it reverts to its original default values.  That's one reason that I recommend that whenever you modify a significant setting you should create a new brush preset and eventually save it.  So I'm now setting the Color Dynamics.  Viola!  An impressionistic brush stroke indeed.


Now texture is magical.  You can use one of the preset Photoshop textures or create your own.  Again, creating textures is beyond the scope of this presentation.  By zooming in, we can see the texture that I've selected for this illustration.  (I probably wouldn't use this for clouds.)  Part of the magic is that you can use it again and again, and the texture will stay aligned between different strokes.


The last option we're going to look at transfer.  I'm not sure what this does with a mouse, but with a pen, the pressure can control the opacity of the brush.


This is just the tip (pardon the pun) of the brushes iceberg. 

Real life example


At this point, I'd like to give a somewhat realistic example of how you can easily change the color and style of a simple photograph. 


Copy background layer as a reference.  Turn it off.


Create another copy of the background in between the two layers.  This will be the first working layer. 


Convert this layer to B&W (Image>Adjustments > Black & White).


Still on this layer, select Filter > Stylize > Find Edges.


Then Image > Adjustments > Brightness/Contrast to your liking.


Then Filter > Sharpen > Sharpen More.


New layer.

Impressionistic brush (or any other brush you'd like to try).


I (Eyedropper) to sample on the reference layer.


B and adjust size.


Paint the background.  Don't worry about spilling onto the flower.  We can fix that later.  Turn off the layer you've just painted.


Create a new layer for the center of the flower.


I to get the color from the reference layer.


B Reduce the size of the Brush.


Paint the center of the flower.


Turn off.  Create new layer for petals.


I to get color from the center part of the petals from the reference layer.


Adjust color in Color Picker.


B to paint the petals.


Play with blend mode/opacity of painted layers.


Change brush mode to Clear to get rid of mistakes.

Selected topics


Whenever you have a brush selected, there is the possibility of making a symmetrical drawing—horizontal, vertical, diagonal and several other combinations.  This is chosen using the butterfly icon on the options bar.  You may have to go into your Photoshop preferences and turn on Technology Preview to get this feature.

Types of brushes

From time to time you may see an icon in the upper right corner of a brush preset.  The icons correspond to the types of brushes available from the tools bar.  There are brush tool brushes (sometimes called paint brushes).  These just lay down color (or “paint”) wherever they go.  If a brush preset has no icon, it can be used as a Brush, Mixer brush or from the Smudge tool.  If you select a brush with the mixer icon (a droplet to the left of the brush symbol), you will automatically be switched to a mixer brush.  If you select a brush with the smudge icon, you will be directed to the smudge tool.


A mixer brush puts down paint of its own and smudges or blends with what is already there.  A mixer brush is a variation of the brush tool.  It is intended to simulate realistic painting techniques.  The amount of paint it puts down is controlled by the Mix setting on the options bar.  If you want paint from another layer included, check Sample All Layers.  (In the latest release of Photoshop, this is a symbol that looks like a stack of pancakes with arrows at the corners.)


A smudge brush picks up existing paint at the point where the stroke begins and smudges it.  It does not put down any paint of its own unless Finger Painting is checked or you hold the Alt (Option) key.  In that case, it puts down paint of its own, depending on the Strength setting in the option bar.  In other words, finger painting on starts laying down paint with the foreground color; off starts with the color under the pointer when you begin the stroke.  Note that if you want paint from another layer to be included, you must turn on Sample All Layers.  The smudge brush is actually a variation of the blur tool.


The term Blender is used differently depending on who is using it.  I don’t think the official Adobe help or tutorials mention Blender brushes.  Ironically, if you do a search on Photoshop Blender Brush, you will be directed to articles o Mixer brushes.  Yet, some of the brushes now supplied with the product (especially the ones identified with Kyle) are called blenders, even though they switch you to the smudge tool.


Other information

By far the most complete explanation of brushes I’ve encountered is “Working with Brushes in Photoshop CC” on Creative Live.  The instructor is Lisa Carney, who I find particularly difficult to listen to.  If you want to go deep into brushes, you might want to check it out.  Otherwise, I figure I’ve saved you from having to listen to Lisa.




[email protected] (Tom Hackett Photography) Tue, 08 May 2018 20:41:01 GMT
A little excursion into number theory for digital artists Back in the twenty-aughts, I think it was around 2008, I was invited to submit photographs to an exhibit entitled "Numbers."  Based on the works that were selected (none of mine were), the title of the exhibit should have been "Numerals."  Each photograph prominently displayed an Arabic numeral.  (I don't remember there being any Roman numerals, which seems like an obvious omission.)

Upon reading the invitation, I immediately thought of the number zero and submitted this photo:

BlackBlackThis is all black, the color you get when each pixel has zero values for Red, Blue and Green.

As you see, it is plain black.  It is the result of setting all of the pixels with Red, Green and Blue values of zero.

Another obvious interpretation would have been:

WhiteWhiteThis is pure white, the color you get when the values of Cyan, Magenta, Yellow and Black are all zero.

Think there's nothing there?  Look again.  It is an image of pure white.  This would be the result of printing an image where all the pixels have a zero value for Cyan, Yellow, Magenta and blacK.  (See note.)

In addition to the "black zero," I also submitted the following as my representation of the number five:


As you can see, there are five posts holding up the roof.  This, to me, is a representation of the NUMBER five, not the NUMERAL "5."  As a definition for the number five, I used "the set of all sets that can be put in one-to-one correspondence with the set consisting of five things."  This is a fairly standard definition for a number.  If I have, for example, a set of five stickers, that set is a subset of the number five.  We could, to demonstrate the one-to-one correspondence, put one sticker on each post.  There would be no leftover stickers and no empty posts.  [A side question, to which I don't know the answer, is the cardinality of the set five.  Clearly, the cardinality of any subset of five is five.  But how many subsets are there in five?  I'm sure the number is infinite, but what kind of infinite?]

Needless to say, neither of my submissions was accepted for the exhibit.  I wonder of the curator(s) even understood why I submitted "five."

I had in mind at the time to submit a photograph representing infinity.  (Yes, infinity is a number--or rather two or more numbers--too.  Keep reading.)  I thought having two mirrors facing each other, exactly aligned, would create the appearance of an infinite regression of images in an infinite regression of mirrors.  The problem I faced, in addition to aligning the mirrors properly, was that the camera would inevitably be right in the center of the image, and I didn't want to do that.  Now, a decade or so later, I think I have solved that problem. so here is my (first "successful") representation of the number infinity:

InfinityInfinityThis represents the effect of two mirrors facing each other in perfect alignment. For this artist, it represents 0ﭏ (read "alef-null," the zero is supposed to be a subscript), the number of countably infinite things, like the integers.

This photograph attempts to represent the infinite number known as aleph-null

, aleph being the first letter of the Hebrew alphabet.  This is sometimes referred to as "countable" infinity because, although you cannot count all the mirrors, you can describe or imagine a procedure for counting them even though you'd never finish.  In essence, the definition of countable infinity or aleph-null is the set of all sets that can be put in one-to-one correspondence with the integers (or positive integers, or natural numbers, or anything you can think about counting). 
See for more interesting trivia.

The rational numbers are also a subset of infinity, but not the irrational or real numbers.  The irrationals are a different number, sometimes called beth-one  (R, or simply in homage to Georg Cantor who, in 1891, proved that not every infinite set can be put in one-to-one correspondence with the natural numbers).

I leave the pictorial representation of R as an exercise.  Needless to say, had I been able to submit this photograph for the exhibition, it would not have been accepted either.


Note:  You may think it odd to have two representations for zero.  I thought so too, until I started working in the data processing industry.  My first job was with a mutual funds and life insurance company that, naturally, owned a computer.  They ran a neat program (not written by me) to calculate commissions for the sales force.  I once worked on a bug, reported by a compulsively honest sales person, which manifested in the following way:  Whenever a sale was made, the commission was calculated by this program and paid to the person who made the sale.  Of course, as with most financial products, the purchaser had a period of time to change his or her mind and ask to have the money returned.  When this happened, the program once again calculated the commission, which should have been deducted from the sales person's pay.  But what this particularly honest sales person noticed was that instead of being deducted from his or her pay, it was being added again.  One might suspect that the less honest sales people were keeping quiet about this and enticing their friends and relatives to buy mutual funds and shortly thereafter cancel the purchase to build up commissions for the sales person. I was given the task of solving this problem.

Without going into too much detail, let's just note that the bug was an artifact of how negative numbers are represented in computers.  The most common representation is called "two's compliment."  If you have a positive number, say three, represented in binary as 00000011 (using, for example, an 8-bit "word" as it were, or "byte"), to form a negative three, you compliment each of the bits--11111100--and then add a 1, giving 11111101.  So now, with an 8-bit byte we can represent 256 numbers, from -128 to +127, and it can be shown that any byte with the left most, or high-order, bit set to 1 is negative.

There is, however, another representation called "one's compliment," which is generated by simply changing all of the 0s to 1s and vice versa.  So, if 0000101 represents five, negative five is simply 11111010.  This gives us the ability to represent -127 to +127--more symmetrical and perhaps easier to implement than two's compliment.  We can still (almost) recognize negative numbers by the 1 in the high-order bit.  But this introduces an anomaly that may have some interesting consequences.  Just like in the case of RGB and CMYK color schemes, there are two possible representations for the number zero:  00000000 and 11111111.  It is as if we had a positive zero and a negative zero.

Here we come to the crux of the problem I was asked to investigate.  The program, for reasons I never went into, did some convoluted calculation, probably on the premium.  If the result was zero, meaning that the premium had been returned to the customer, then the commission was taken away from the sales person.  Otherwise, the sales person received a commission.  Now it happens that the computer in question used one's compliment notation, and (for reasons that are no longer clear to me) the result of calculating a returned premium was often or always negative zero (11111111).  When it came time for the program to decide whether or not the premium was zero, the machine decided that "negative" zero was not the same as "positive" zero.  And since the result was not equal to (positive) zero, the sales person received another commission.  All of this is to some degree just a hypothesis, since I was working in the computer language COBOL, not the native language of the machine.  But when I changed the program to figure the commission by a different method, it behaved correctly, and the scheme of earning a commission for both the sale and the return of a policy or mutual fund shares came to an end.




[email protected] (Tom Hackett Photography) aleph-null beth-one bit black byte finite georg cantor infinite mirror negative number numeral positive regression set subset white zero Fri, 23 Mar 2018 21:52:08 GMT
On not leaving a mess Several things came together for me this summer.  The first was a question from an acquaintance, a painter and retired public school art teacher.  He was asking where he and other older artists could deposit, donate or store their art work where it would be well taken care of when they died.  I'm sure that most of us who produce works of art would like to think that they won't just be scattered to the four winds and unappreciated.  Yet, realistically, unless we are of the caliber of Picasso or Van Gogh, it's unlikely that much of our work will be treasured by anyone after we're gone.

At about the same time, I read "American Nirvana" by Adam Gopnik in The New Yorker  (August 7 & 14, 2017).  It made me think of how much suffering and anxiety is engendered by our attachment to things--even things of our own creation, be they material works of art or, as is the case for many photographers, images encoded in digital files.  I realized that, even thought I have been practicing photography in a concentrated way for less than a decade, I have accumulated ("amassed" might be a better word) thousands of images, hundreds of prints and several dozen frames.  Unless I put some determined effort into organizing and culling them, I will be leaving a mess for my heirs sometime in the next twenty-five years or so.

Into my pondering on this subject came another article, "The Best Time Ever" by an editor of LensWork, Brooks Jensen (LensWork #131:  August 2017).  Brooks suggests that we consider publishing photographic works primarily in PDF format rather than in photo books or as prints.  This makes some sense.  If my heirs wanted to, reviewing PDF files, deciding which to keep and which to discard, would surely be easier than sorting through prints.  They could easily decide to ignore all of them without having to find somewhere to dispose of them.  (Of course, they would be stored on some media--DVDs, flash drives, external hard drives, the "cloud," etc..  But these are compact enough that they could be ignored for years without bothering anyone.  In fact, I presume that images stored in the "cloud" would simply be destroyed soon after it became apparent that the owner was not paying the fees required to maintain them.)

Prints would still be made for exhibits, or course, of for sale by galleries and display in museums.  But I anticipate that the volume of this material in the perpetual care of the artist (and her or his heirs) would be relatively small.  

Yet, I remain somewhat unconvinced.  For me, making a print is an enjoyable and rewarding part of the craft, or even the artistry, of photography.  It requires finalizing decisions about the image, choosing a size and adapting the image to a combination of printer, ink and paper (or canvas or metal transparency or. . .).  Perhaps technology will advance rapidly in this area, but today few have the opportunity to view images on a large screen with sufficient resolution to match what can be achieved in a modest print of 12" x 18" or 20" x 30"  Printing also provides the opportunity for publishing limited editions (for those of us who are fortunate enough to be able to sell editions of more than zero), with greater control than can be exercised over PDF files and other electronic media.

Because I enjoy making prints, I continue to print at least one per week (to keep the nozzles from clogging) plus any I need for exhibits, sale or as gifts.  Thus, I continue to accumulate over fifty additional prints per year.  

I would be interested to hear how others are dealing with this issue.


[email protected] (Tom Hackett Photography) artworks attachment pdfs photo books photographs prints Fri, 22 Sep 2017 01:57:36 GMT
Is a 2x teleconverter useful? I have a 70-200 2.8 Nikkor lens that I am quite happy with. On rare occasions, I want a longer focal length. (I am not generally a nature or wildlife photographer). After looking at the prices of 400mm FX lenses, I quickly decided a longer lens was not in the cards. So I decided I could make my 70-200 2.8 into a 140-400 5.6 with a TC-20E for less than $500. I expected some degradation of the image (as compared with a 400mm lens), but thought the results would probably be acceptable.  (Note:  I am shooting with a Nikon D800E, which gives me about 36 mpix.

I was initially pleased. At some point, however, I took a series of images with the TC-20E on my 70-200 at a focal length of 400mm. The subject was about 1/2 mile away over open water. The results were not as clear and sharp as I expected. So, I upgraded my technique to make sure the camera and lens remained rock steady during the exposure and experimented to find f/8 as an optimal aperture. Then I had an idea for a further experiment.

I photographed a distant subject, first with the converter for an effective focal length of 400mm, then without the converter at 200mm. In post processing, I cropped and upsampled (using Photoshop's default algorithm) the 200mm image so that it had the same angle of view as the 400mm image. I was surprised to find that the upsampled 200mm image had more sharpness, clarity and contrast than the 400mm image. I suppose that the upsampling algorithm does some sharpening on the way, so I applied the unsharp mask to the 400mm image to obtain similar results, at least in terms of sharpness. But I was not happy to achieve for several hundred dollars something that is merely similar to what I could have done in software.

I repeated the experiment on a D700 (12 mpix).  This time, the lack of sharpness was a bit less noticeable, but still present.

Conclusion:  Don't bother with the TC-20E if you're using a high megapixel camera.  If your camera has less resolution, you might make out better.


[email protected] (Tom Hackett Photography) 200mm 2x 400mm teleconverter Thu, 17 Aug 2017 21:27:53 GMT
Photo Myths 2: Saturation Photos taken in the bright sun are more saturated than those taken in shade or on an overcast day.    

Our hypothesis here is once again that the statement is literally true.  However, it contradicts the intuitive sense of many photographers, who feel that a cloudy day yields more saturated colors.  We try to show that the increased saturation from “flat” surfaces, which do not produce a shiny reflection of the light source, is defeated by glare from “shiny” surfaces, such as certain foliage, giving the overall impression that the image is less saturated.  This hypothesis can be further tested by introducing a polarizing filter to reduce the glare of reflection from “shiny” objects, thus yielding an image that is more saturated overall.

What is saturation?

Our first challenge is to understand what saturation is.  Webopedia ( has the following definition:

“In graphics and imaging, color saturation is used to describe the intensity of color in the image. A saturated image has overly bright colors. Using a graphics editing programyou can increase saturation on under-exposed images, or vise versa.”

Beyond the obvious typographical and spelling errors, this definition is seriously flawed.  It fails to distinguish luminance (“intensity,” “overly bright”) from saturation.  Based strictly on this definition, one could conclude that a bright pastel color had more “saturation” than a deep red.  This type of definition may be at the root of the misconception that photos taken in bright sun are more saturated than those taken in shade.

To see that this definition is questionable, if not mistaken, we can examine the color picker in Adobe Photoshop CC.  (Prior versions of Adobe Photoshop will show similar results.)  In the color picker, we see that each possible color can be understood in five ways:  LAB, CMYK, as a hexadecimal number (#), RGB and HSB (for hue, saturation and brightness).  For example, a blue sky might appear as L: 49, A:-6, B: -42 in the LAB color scheme.  (Details of the interpretation of these schemes is beyond the scope of this document and can be found elsewhere.)  The same exact color is C: 82%, M: 47%, Y: 2% K: 0% in the CMYK interpretation and has a hexadecimal number representation of 4e78b8.  The RGB components are R: 78, G: 120, B: 184.  For this color, the HSB hue is 216, the saturation is 58% and the brightness is 72%.

Staying with this same hue of 216, we can move the selection to the far right and observe that the brightness remains the same (72%), but the saturation rises toward 100% as we move the selection.  When the saturation is 100%, we can observe that the R value (in RGB terms) is 0, the G value is 72 and the B value, as we might expect, is the highest, 184.  By the same token, if we slide the selection to the far left, the saturation goes to zero without affecting hue or brightness, and the RGB values become 184, 184 and 184.  The LAB representation becomes 75, 0, 0.  In other words, it is a light gray, the very opposite of what we usually consider saturation.

A better definition of saturation can be found in Adobe help (

“Strength or purity of the color (sometimes called chroma). Saturation represents the amount of gray in proportion to the hue, measured as a percentage from 0% (gray) to 100% (fully saturated). On the standard color wheel, saturation increases from the center to the edge.”

Finally, we turn to the Art Institute of Chicago ( for what is probably the simplest and most straightforward definition of saturation:

“the relative intensity of a hue when compared to gray.”


We took two sets of photographs.  One was a close-up (macro) of a small flower with a yellow center, white petals and green stem.  The other was of a tree in full leaf.  In both cases, we took photographs in bright sun and in obscured or overcast sun, with a lens shade and without, and with a polarizing filter and without.

For each photograph, we selected 3x3 pixel samples of several areas.  For the flower, we sampled the yellow center, the white petals and the green stem.  For the, we sampled leaves in full exposure to the light, in partial shade and in deep shade.  For each photograph and for each sample, we used the Photoshop Color Sampler Tool, which gave us the RGB values for each sample.  From these, we used the Color Picker to calculate the saturation from the RGB values.


In nearly cases, the samples from photographs taken in the bright sun were more saturated than from those taken in overcast or obscured sun conditions.  The one exception was that in the photographs of the flower taken in bright sun, the white petals were more saturated when a polarizer was used than not.  But even in these photographs, the yellow flower center and the green stem were more saturated without the polarizer.


It turns out that this myth is, simply, TRUE!  Colors are more saturated in bright sun than in overcast conditions.  A polarizer can be used to “darken” the blue sky and to reduce reflections off of water and some foliage.  When it comes to the polarizer’s effects, your own visual perception is the best guide.  But in general, bright days are best for saturated colors.


[email protected] (Tom Hackett Photography) bright sun overcast saturation shade sun Sat, 29 Jul 2017 12:26:40 GMT
Photo myths 1: do not use a lens shade Myths and legends abound in the world of photography.  Every so often, I come across one being propounded by a lecturer or instructor.  I like to experiment to prove or refute the legend.  I am not a professional researcher and do not have the time and tools to draw definitive conclusions, but I offer my results in the hopes that others will confirm or disprove my findings.

Our first "myth" concerns the use of a lens shade.  Not so long ago, I heard a lecture in which the presenter recommended never to use one, because it cuts down on the light reaching the sensor.

Do not use a lens shade; it reduces the light.

This seems to be literally true.  According to our experiments, removing the lens shade increases the light hitting the sensor by up to 1/3 stop.  This is a small difference and occurred in only 1/2 of our samples.  The question is whether the quality of the additional light recorded by the sensor enhances the image.  Our hypothesis is that the additional light hitting the front element of the lens and reaching the sensor is not part of the intended image and therefore tends to reduce the quality and saturation of the image.


We took two sets of photographs under varying conditions: One was a close-up (macro) of a small flower with a yellow center, white petals and green stem. The other was of a tree in full leaf. In both cases, we took photographs in bright sun and in obscured or overcast sun, with a lens shade and without, and with a polarizing filter and without.

These photos were taken at ISO 100 and f/11 with aperture priority. Using matrix metering, we compared the camera’s metering assessment (in terms of shutter speed) and the histograms of the resulting images.

For each photograph, we also selected 3x3 pixel samples of several areas. For the flower, we sampled the yellow center, the white petals and the green stem. For the, we sampled leaves in full exposure to the light, in partial shade and in deep shade. For each photograph and for each sample, we used the Photoshop Color Sampler Tool, which gave us the RGB values for each sample. From these, we used the Color Picker to calculate the saturation from the RGB values.


In several cases, the shutter speed selected by the camera’s light meter for the photograph taken without a lens shade was shorter, by no more than 1/3 stop. But the photographs taken with the lens shade showed a few percentage points greater saturation than those taken without it.


The myth is questionable. You may see a small increase in the amount of light recorded by your sensor (or be able to use a faster shutter or small aperture) if you do not use a lens shade. But the increase in light will not improve your photograph. The additional light will be extraneous and tend to reduce the saturation of your image. After all, reducing extraneous light is what the lens shade is for in the first place!

[email protected] (Tom Hackett Photography) exposure lens shade saturation Sat, 22 Jul 2017 21:28:17 GMT
Unexpected color cast in print Recently, I thought it would be a good idea to create a "test strip" in the margin of one of my photographs.  Here's how to do it:

First, create a white border around your image.  There are several ways to do this, but I use a simple procedure.  Resize the image so as to leave room for the border.  For example, for an 8.5 x 11 print, resize to 7.5 x 10.  Note that you don't want to just crop it to that size.  Use Image > Image Size to actually change the size.  Ensure that your foreground color is black and your background is white.  Then choose Image > Canvas Size and specify the actual paper size (e.g. 8.5 x 11).  Anchor the canvas in the middle, and specify Background for the canvas extension color.  (If the canvas extension color setting is grayed out so that you can't change it, create a new target layer to work on: Control + Shift + Alt + E.)

Next, use the rectangular marquee tool to create a rectangle along the bottom border.  (You can use one of the other borders, with appropriate modifications to the following instructions.)  Now, create a new Gradient adjustment layer.  Make sure the gradient is Foreground to Background, and set the angle to 0 degrees.

Then, create a Posterize adjustment layer, and select between 6 and 10 Levels.  Be sure to select Layer > Create Clipping Mask to limit the posterization to the Gradient Fill layer.  Now select the Gradient Fill layer and double click on it, bringing up the Layer Style menu.  In that menu, select Stroke, and specify a size of about 10 pixels, a fill color of black and a normal blend mode.

With my homemade test strip in the border of my image, I was ready to print.  I have calibrated my monitor.  I am using Epson paper in an Epson printer with the corresponding Epson-supplied profile.  So I was shocked when the test strip on my print was not white, gray and black but variations of a warm brown.  It certainly didn't look brown on my monitor.  In fact, as I moved the cursor from the left of my test strip to the right, the RGB values shown in Photoshop's Info panel when from 0/0/0 to 255/255/255.  Intermediate values were all perfectly balanced grays (e.g. 113/113/113).  I concluded that there must be a problem with the printer or the paper.  Maybe the paper was too old.  I guessed I'd have to buy one of those expensive colorimeters and make my own profiles.  

Meanwhile, I had been ignoring the flashing ink light on my printer.  From long experience, I'd learned that the flashing light meant it was time to by a new cartridge to be prepared when the current one was empty.  I nearly always have new cartridges on hand, so that wasn't a problem.  I knew that when any of the cartridges was actually empty, the ink light would come on solid, and the printer would stop printing.  I've even changed ink cartridges in the middle of a print and couldn't detect the point in the print where it had stopped to wait for me to make the change.  So, I continued to experiment with photo filters, fill layers and other techniques to try to compensate for the brown cast.  The results were mediocre at best.

Then yesterday, the ink light came on solid.  I changed out the cyan cartridge for a new one and proceeded to print a new image, one that I had not added any compensating fill layers or photo filters to, but on which I had created the requisite test strip.  I was expecting to see a brown cast in the test strip and then begin experimenting over again to get rid of it.  To my surprise, the test strip came out black, gray and white without a hint of color cast.  The print looked great!  It then finally dawned on me that the "brown" cast was probably due to a lack of cyan, and that, the result of a nearly empty cartridge, the cyan color had not been applied sufficiently.

The lesson?  No, I'm not going to start changing cartridges as soon as the ink light blinks.  But when the ink light is blinking, I will create test strips to help look for a color cast.  If one shows up, I will change the cartridge before it is completely empty.  What I pay for changing cartridges sooner will be more than compensated for by the time and paper I save.



[email protected] (Tom Hackett Photography) Test strip color cast low ink Fri, 16 Jun 2017 02:46:58 GMT
Free software is worth every penny. Is software ever really free?  I have worked for over one half of my life creating, supporting, maintaining and fixing software of one sort or another.  I consider the photography that I do to be a form of software, and even if I do not make a living from it, it is expensive to create, and I do expect to be paid for letting others use it.  That (and my respect for professionals who make photographs for a living) is why I rarely contribute photographs gratis for publication.  What will happen to the quality of images in our lives if free photographs make it difficult or impossible for professional photographers, or artists working in the medium of photography, to earn a decent living?  For one answer, we might take a look at so-called free software.

"Free" software comes in a number of forms.  Truly free software, that is software that is developed without remuneration and for which no payment--whether directly, through donations or to obtain the "full function" version--is expected, is exceedingly rare.  Some people may be tempted to cite the Linux operating system as an example.  Surely, the Linux kernel is available for free.  But was it developed for free?  Linus Torvalds, the original author, was not, as far as I know, compensated for its development.  But he based it on Minix and Unix.  Minix was developed by Andrew S. Tanenbaum for use by his computer science students.  He was undoubtedly compensated for his teaching, and he published Minix in a textbook from which he presumably received royalties.  Unix itself was originally developed by paid employees of AT&T Bell Labs.  The operating system now known as Linux has been enormously enhanced from the original kernel, largely be people working for small to large corporations (e.g. IBM, which modified it to run on the mainframe).

This brings me to the sore point that motivated this post.  Since retiring from IBM (and even for several months before my retirement), I have been using IBM Lotus Symphony for editing documents, spreadsheets and presentations.  Symphony is based on the Open Document Framework (ODF), an ISO international standard format.  I was drawn to it not only because it was free (free to the end user, that is, but developed by paid employees), but more especially because I dislike Microsoft Office and its predecessors.  One of the reasons I dislike most Microsoft products (even those--like Windows--I am virtually forced to use) is constant incompatible upgrades.  I can barely count the number of times I have received a document that I am unable to edit because the original author had a newer version of Office than mine.  Symphony used ODF natively, but it was able to read and write Office documents (.doc, .xls, etc.).  It did a pretty fair job of handling them.

Alas, IBM does not support Symphony on Windows 8.1, and I understand it has ceased development of Symphony and donated the source code to Apache Open Office.  I tried using Symphony on 8.1, but it just does not work properly.  So, I got myself a free copy of Open Office and have been using that.  Unfortunately, I have found it to be extremely unstable.  It crashes whenever I use it for more than a few minutes.  I am the secretary of a not-for-profit corporation and was taking minutes at a recent meeting where I had a spreadsheet and some other documents open.  I had to resort to taking notes manually (I'm old enough to still bring pen and paper to meetings) and re-booting my laptop a number of times.  Even simple correspondence seems to tire out the Open Office software after a few letters.

So, I am reluctantly forced to resort to Microsoft Office, with its incompatibilities and impact on my wallet, to perform my uncompensated responsibilities.  But although there may be incompatible upgrades from time to time, it is stable.  It works.  Meanwhile, I'm delighted to pay Adobe $9.99 plus tax per month to use Lightroom, Photoshop, Bridge and so forth. (If only I could afford Framemaker!)  I pay this partly from funds I accumulated when I was paid to write and test quality software.  Adobe products are stable and highly functional, and tutorials on their use are incredibly easy to fine.

Perhaps some day, if I live so long, I will be able to migrate to Linux, but only if I can run Photoshop natively (as well as Quicken and other favorites).  Meanwhile I'm getting about what I pay for when it comes to free software.



[email protected] (Tom Hackett Photography) Thu, 19 Feb 2015 23:50:26 GMT
Note cards and greeting cards You can now use virtually any photograph in our collection to create a note card or greeting card.  Many sizes and templates are available.  Simply choose a photograph, click on "View all products. . ." (bottom right of the screen), select Greeting Cards and start customizing.

[email protected] (Tom Hackett Photography) Mon, 30 Dec 2013 03:04:07 GMT
W28th Street emily042emily042

What interested me about this scene was the cathedral, basilica or church at the center.  I was walking on the High Line when I first noticed it just around sunset.  I walked a block or two in order to line it up with the street.  Although it's clearly in New Jersey, I don't know the name of it or exact location, but I think it might be in Union City.  I was delighted to see the clarity of the detail in foreground and background.

[email protected] (Tom Hackett Photography) Manhattan New York City Sunset Union City New Jersey Sun, 27 Oct 2013 23:41:17 GMT