Rory Hill Photo Galleries: Blog en-us (C) Rory Hill (Rory Hill Photo Galleries) Thu, 05 Oct 2017 16:57:00 GMT Thu, 05 Oct 2017 16:57:00 GMT Rory Hill Photo Galleries: Blog 120 120 Some Nikon D850 thoughts Some Nikon D850 thoughts

The D850 is the first DSLR that attempts to combine high megapixel fine art and action photography in one camera.  My experience so far suggests it does so very well.  The image quality at ISO 64 slightly improves on the D810.  The focus, responsiveness and high ISO performance, while not quite in the D5 league, is not far off.

The things I really like the the D850:

  • The automatic metering is near perfect.  Landscapes rarely go wrong in matrix, general photography in central weight and when there might be concern about highlight blowout the matrix with highlight protection mode works great.
  • The focus system is very good, especially D9 and Group.  D25, D72 and D153 no longer hold the initial subject after the hold delay if something else is close to focus under the center selected focus point - a change I am not sure is an improvement but will require testing.
  • The image buffer is more than sufficient for my needs.  For anything over ISO 100 there is little value in shooting in 14bit and the 12bit buffer is close to 200 images.
  • The fold out monitor is well constructed and a long time coming to high end Nikon bodies.
  • The focus stacking feature is a welcome addition.

Some nits about the D850:

  • The ability to customize buttons to specific AF/ON area options is a real improvement. However, the arbitrary selection of options is irritating. Why limit custom options on different buttons? I've always found Nikon's limiting user options to be a little bit patronizing.
  • The location of the AF area mode button is awkward when shooting with telephotos. That should be a custom option for other buttons + command dial.
  • I just don't understand why Nikon is still using their banks without sticky settings. There are many settings that cannot be saved in a bank. There is no way to change banks quickly without multiple key presses and taking your eye away from the viewfinder. I like the Canon implementation on the 1DXMKII where each press of the top function button cycles through the custom setups you have enabled. Fast and ergonomic.
  • I like using the viewfinder level but there does not appear to be a way to turn it on permanently. It can only be activated by customizing a button, and not just any button of course. This means using a custom button that could be doing something else.
  • There does not appear to be any way to always show EV adjustments in the viewfinder without pressing the EV adjustment button. It's easy to forget you've made an EV adjustment and a reminder in the viewfinder would be helpful.
  • Peaking in live view is very useful but it only works in manual focus. Why not when the lens is set to M/A? Olympus shows peaking whenever you manually change the focus eliminating the need to flip the focus switch. This would be useful when shooting with super teles.
  • The implementation of focus stacking is okay, but I would like to choose the near and far focus limits, and I would like to see the previews of each shot on the monitor as the stack burst occurs. You can see it in the viewfinder but in low level setups the idea is to use the tilting monitor. By watching the progress you can choose when to end the stacking sequence.
  • The implementation of focus tuning requires pressing two buttons simultaneously to initiate. It should be hands free by using the timer to eliminate the shake, which is particularly obvious when tuning super teles with converters.
]]> (Rory Hill Photo Galleries) camera d850 nikon photography review Thu, 05 Oct 2017 16:46:04 GMT
D850 Setup D850 Setup


  • Display options = Highlights and Overview
  • Image Review = On
  • Auto image rotation = On
  • Rotate tall = Off

Photo Shooting Menu

  • Primary slot = XQD
  • Secondary slot = Overflow
  • Image Quality = RAW
  • NEF compression = Lossless
  • NEF bit depth = 12 bit
  • Auto ISO sensitivity = ISO 6400 min shutter speed 30s
  • Picture control = Neutral sharpen 4

Custom Settings

  • a1 = focus + release
  • a2 = focus
  • a3 = 3 / erratic
  • a7 = focus point
  • a8 = OFF
  • a9 = Single, D25, D72, 3D, Auto
  • a11 = AF-C
  • c4 playback = 20s
  • d3 = ON
  • d6 = ON
  • a9 = ON
  • d11 = ON
  • f1 (custom controls)
    • PV = Viewfinder level
    • Fn1 = AF-ON Group
    • Fn2 = My Menu 1st Item
    • AF-ON = AF-ON
    • Sub-selector centor = AF-ON D9
    • Movie record = Shutter and Aperture lock
  • f2 Playback and Live View = Zoom 1:1
  • f4 Aperture and Menus/Playback = ON
  • f8 = ON


  • Copyright = ON and entered info
  • Touch controls = ON
  • Airplane mode = On

My Menu

  • a8 AF activation (to quickly allow shutter btn to also focus)
  • Format
  • Battery info
  • Focus shift
  • Time zone and date (to check time in the field)
  • Auto fine-tune
]]> (Rory Hill Photo Galleries) camera d850 nikon photography settings Sun, 01 Oct 2017 17:44:15 GMT
The highlight clipping thing There has always been a debate about how to expose correctly.  Back in the day, as they say, when the choice for most photographers was either to shoot colour negative or colour slides, the common wisdom was to under expose to preserve highlights in slide film and expose normally for negative films.  Slide films could render only a truncated exposure range around 6-7 EV while negative films could go 12-13 EV.  The ability to render detail and colour in the brightest and darkest portions of the image was referred to as the exposure latitude, a term I like.  Many books have been written about how to expose for film using spot or matrix metering, zone systems and what-not.  It was important to be able to pick out a middle grey tone in a colour scene, like grass on a cloudy day to help the photographer compare what the camera metering system was telling him vs what he wanted to achieve in the final image.  Finally, film has another interesting feature:  the abrupt changes into highlights was mitigated into a smooth transition in what is called the shoulder of a tone curve.

Then along came digital sensors and the exposure debate escalated.  Digital photography changed a photographers thinking about exposure in several important ways.  First of all, the digital world comprises of zeros and ones, none of this tapering tone shoulder shenanigans we were used to with film.  This meant that if you did not expose for highlights properly they abruptly turned an ugly white.  A great example of this is facial highlights.  Nobody likes to see white blotches on faces.  A second change was the feedback as the photographer could review the photo immediately in a little LCD window on the back of the camera and see the exposure.  Chimping became a reflex.  On most cameras the blown highlights could be seen as "blinkies" that would flash on the camera LCD.  Finally, the photographer could refer to a RGB histogram, which would show the tonal distribution for each colour channel.  With all this feedback you would think exposures would be pretty straight forward and the debate would recede into a background hum.  But then along came ETTR.

ETTR or Expose To The Right was first promulgated by Michael Reichmann in 2003 to address the combined issue of digital linear capture and electronic signal to noise.  Human vision and the film response to light is logarithmic.  We see each doubling of brightness, or the number of photons, as an even increase in brightness.  This is not how digital sensors work.  They basically count photons.  If we see a scene and divide it into 6 even tones we see 1, 2, 3, 4, 5 and 6.  A camera sensor sees 1, 2, 4, 8, 16 and 32.  This probably seems familiar because this is how apertures, shutter speeds and ISO work.  What should be evident from the 6 tone example is that the camera sensor can differentiate 16 different subtones in the brightest part of the image but only 1 tone in the darkest part of the image.  Without diving into details about electronic signal to noise the take-away is that the noise will be much more evident in the darkest tones, where you will only see very dark, with white contrasty speckles (or red, green and blue noise speckles).  In order to see more tonal detail in dark shadows and to minimize noise ETTR suggests that you should increase the exposure so there are more photons hitting the sensor from the shadows.  This makes total sense as long as you make sure you do not blow out the highlights, which Michael Reichmann made sure to state.  If the tonal range of the image where the photographer wanted to retain colour and detail exceeded the dynamic range of the sensor then obviously ETTR would not apply.  This can be seen in the following two histograms, the first from a typical high contrast landscape with sunny sky and shadows, and the second, from a lower contrast evening landscape.

As you can see, there is some room to increase the exposure in the second histogram, while in the first, the brightest tones will start to blow out.  Since ETTR was a new concept to many photographers they tended to take the a literal view and forget all about the clipping highlights thing and there were lots of arguments in web forums about ETTR.  It  really is pretty simple:  first decide it you want to hold onto the highlights and then if you want to pull detail from the shadows.  Photos of people often present this dilemma where you need to control the highlights on skin but still want detail.

In the first image the exposure shows detail in the shadows at the expense of the highlights.  The second exposure has tamed the highlights, but now some of the shadow areas have almost gone to black.  In order to get the best out of a high contrast image like this one, we want to feather the exposure high enough to just be able to control the highlights in post processing and bring up the shadows.

But here's the thing.  You can't quite believe what your camera is reporting.  Your sensor is recording somewhere between 12 and 16 bits of information for each pixel, which is then being compressed down to an 8 bit jpeg file.  It is this jpeg file that is being used to generate your histogram, the blinkies and the image on your LCD.  It turns out that the raw files, which still have that extra information, have quite a bit more exposure latitude than the jpeg in the camera.  Also, the camera manufacturer, catering to the lowest common denominator, is being quite conservative with those blinkies and the histogram.  This is illustrated by this basic landscape, exposed at base ISO using matrix metering and a +1/3 EV bias.

histogram 3  

I don't know about you, but this looks pretty scary to me!  The sky has gone white and the blue channel is crowding both sides of the histogram.  This can't be good.  But wait, let's take a look at this in Lightroom with default tonal settings.

Landscape 1

So, what has happened?  It looks like the camera jumped the gun a little here.  The 14 bit file has a lot more information.  Also, the post processing software, lightroom, might be trying to help out a bit.  When one channel, in this case blue, blows out, the rendering algorithms cleverly try to guess what blue, if any, to show, based on information in the other colour channels.  What this all means is that we have more exposure headroom than we thought.  Here is a spectrum of exposures of the same scene, from -1 EV to +2 EV.


It turns out that even the image exposed +2 EV still has quite a bit of information in the sky, but as shown, is a little washed out in the sky.  Here is the +2 EV shot after some processing in lightroom.  

Landscape 2

It turns out that the +1 1/3 EV image still contains all the highlight information to evenly render the sky.  Here is what it looks like after some tonal ajustments in lightroom.

Landscape 3

But wait, I'm afraid there is more.  In a scene like this the camera will usually nail the white balance.  In evening lighting or artificial lighting this is not a given.  Changes in the WB move the red and blue channels in the histogram.  If you are not careful you can blow out either of these channels if the WB is way off.  You can see it in this example, showing how the histogram changes with WB.

Correct WB Too warm Too Cool
histogram 4 histogram 5 histogram 6

If the camera was misrepresenting the WB as too warm then you would be tempted to under-expose to make sure you did not blow out the reds.  If it is too cool, then you might be tempted to over-expose and blow out the reds.  Note how the greens do not move around too much.  Of course, this behavior changes from image to image.

]]> (Rory Hill Photo Galleries) ETTR Exposure Wed, 29 Mar 2017 04:56:35 GMT
1DXMKII Cfast Card Reader not recognized by Image Rescue Software 1DXMKII Cfast Card Reader not recognized by Image Rescue Software

I had an oops moment, accidently formatting my new sandisk cfast 64GB before transferring the CR2 files to my computer. I tried running several image recovery programs including RescuePro and Image Rescue 5. Even though the Sandisk Extreme Pro 2.0 Card Reader was visible in both windows 10 Explorer and OS X Yosemite Finder it was not recognized in any of the image recovery programs I tried. What to do?

Fortunately my son was visiting and he came up with this solution which involves making a disk image of the cfast card on the macbook desktop.

The first step is to find out the cfast disk identifier in terminal using

          diskutil list

The identifier was disk2 for the cfast disk. Next, create an image of the cfast drive "disk2" on the desktop called "recover.img"

          sudo dd if=/dev/disk2 of=~/Desktop/recover.img bs=1m

Finally, I reran Image Rescue 5, executing File > Add Card File to Scan ... and selected "recover.img". 

This worked.

]]> (Rory Hill Photo Galleries) 1DXMKII CFAST Card Rescue reader Tue, 14 Feb 2017 20:38:58 GMT
Canon 1DXMKII Setup My Canon 1DXMKII Settings
  • Shoot1 Color space = Adobe RGB
  • Shoot1 Picture style = Neutral, Sharpness = 4
  • Shoot2 Img type/size = RAW
  • Shoot3 Beep = Enable
  • Shoot3 Release shutter without card = ON
  • Shoot4 AF method = FlexiZoneAF
  • Shoot4 Grid display = 3x3
  • AF4 AF area selection method = Main dial
  • AF4 Orientation linked AF point = Separate AF pts: Area+pt
  • AF5 AF point selection movement = Continuous
  • AF5 AF point display during focus = All AF points
  • Play3 Highlight alert = Enable
  • Play3 AF point display = Enable
  • Play3 Histogram disp = RGB
  • Play3 Magnification = 8x
  • Setup1 Record func+card/folder sel = Auto switch card, Record/play = 2 (2 first, then 1)
  • Setup1 File numbering = Auto reset
  • Setup2 Viewfinder display = Show electronic level and grid
  • Setup3 GPS setings = Mode 2
  • Setup4 Custom shooting mode (C1-C3) = C1 in M, auto ISO and auto update enabled
  • C.Fn1 Bracketing sequence = -0+
  • Custom controls Shutter btn = Metering start
  • Custom controls AF-ON btn = Metering and AF start
  • Custom controls AE Lock btn = Metering and AF start, Area selection = 65 pt AF
  • Custom controls M-Fn btn = C (Cycle C1, C2, C3)
  • Custom controls Set btn = Set ISO
  • Custom controls Main Dial = Av
  • Custom controls Quick Control Dial = Tv
  • Custom controls Multi controller = Direct AF point selection
  • My Menu tab 1 - Format card
  • My Menu tab 1 - Battery info
  • My Menu tab 1 - GPS settings
  • My Menu tab 1 - Custom shooting mode
  • My Menu tab 1 - Date/Time/Zone
  • My Menu tab 1 - Mirror lockup
  • My Menu tab 2 - AF Microadjustment
  • My Menu tab 2 - Tracking sensitivity
  • My Menu tab 2 - Accel/decel tracking
  • My Menu tab 2 - AF pt auto switching
  • My Menu tab 2 - Number of bracketed shots
]]> (Rory Hill Photo Galleries) 1DXMKII Camera Canon Setup Thu, 09 Feb 2017 23:43:50 GMT
E-M1 Settings Olympus E-M1 Settings

Shooting Menu 1

  • Picture mode = Muted
  • Record mode (Shower head icon) = RAW

Shooting Menu 2

  • Bracketing = Off/On
  • Focus bracket = On, # shots = 100, Focus differential = 3
  • Anti-Shock / Silent = On, Set delay as req'd or 0

Custom Menu

  • *A: AF mode = S-AF+MF, Movie = C-AF
  • *A: AEL/AFL = S3/C4/M1
  • *A: MF Assist: Magnify = Off, Peaking = On
  • *B: Button function Fn1 = Magnify
  • *B: Button function Fn2 = ISO
  • *B: Button function Record = BKT
  • *B: Button function AEL/AFL = AEL/AFL
  • *B: Button function Front Bottom = DOF Preview
  • *B: Button function Front Top = Peaking
  • *B: Button function Arrows = AF Target
  • *B: Mode Dial function P = Myset1 (All pts focus)
  • *C: Release Lag-time = Short
  • *D: Info Settings Playback = = Image only, Overall, Histogram
  • *D: Info Settings LV = Image only, Custom1
  • *D: Review Settings = 25, Calendar
  • *D: Display Grid = Crosshair
  • *D: Histogram = Highlight 245, Shadow 5
  • *D: LV Closeup Mode = mode2
  • *D: Sleep = 1 minute
  • *D: Auto Power Off = 5 minutes
  • *D: Focus Lock Beep = Off
  • *E: ISO Auto Set = Between 200 and 3200 ISO
  • *H: Copyright Info = On, Artist = Rory Hill, Copyright name = 2016 Rory Hill
  • *J: Built-in EVF Style = Style 2
  • *J: EVF Info Settings = Basic, Custom1, Custom2
  • *J: EVF Display Grid = Crosshair
  • *J: EVF Half Way Level = On
  • *J: S-OVF = Off


]]> (Rory Hill Photo Galleries) EM1 Olympus Settings Tue, 20 Sep 2016 02:07:29 GMT
Granola Inspired Cookies These cookies are based on a granola recipe.  Recently I've become a grandfather, so pulling it together, I'm calling them my Grandola cookies.

Grandola Cookies

Group A

1  c chopped almonds
1  c chopped walnuts
2  c oatmeal
¼ c quinoa flakes
¼ c wheat germ
¼ c wheat bran
¼ c oat bran
⅛ c sesame seeds
⅛ c sunflower seeds

Mix group A, spread on cookie sheets, and bake for 15 minutes at 350°.

Group B

¼ c honey
1  c oil or butter
1  c brown sugar
1 egg
1⅔ c flour
1 tsp baking soda
1 tsp baking powder
1 tsp vanilla
½ tsp salt
1 tsp cinnamon
½ tsp nutmeg
½ tsp cloves
½ tsp cardamom
1 c raisins

Mix together group B, add group A and make into compacted, flattened balls on greased cookie sheets.

Convection bake at 350° for 10-11 minutes.

]]> (Rory Hill Photo Galleries) Tue, 09 Aug 2016 22:05:30 GMT
ICBC - Getting it Right Rear Ended

I had the misfortune of being rear ended by a dodge ram pickup while I was waiting for a red light.  The driver must have been distracted as he did not apply his brakes and plowed right into me.  I was temporarily stunned, my 4Runner was pushed along the guard rail and then into the vehicle in front of me.  After getting out, assessing the situation and determining no one had been seriously hurt, I called 911.  Within moments we had a fire engine and ambulance on the scene.  The firemen collected the basic information from each of the drivers and the ambulance attendant looked at the back of my head, which was bleeding from my head being driven into my head rest.  I called my wife and she came down to pick me up.

When I reported the accident to ICBC later that evening the lady who answered was competent and professional.  She immediately wanted to know if I had been injured and counselled me to see a doctor.  After collecting the information she assured me, subject to validation by the witnesses and RCMP officer, that I was not at fault and gave me information on getting a rental car that ICBC would pay for.  She gave me all the information I subsequently needed to complete the claim, including the name of my claim manager.  

The next day I picked up a rental car and the process was painless.  My claim manager called and after making sure I was okay, carefully went through how the claim process worked.  I was able to go to the towing company and pick up some personal items that I could not retrieve at the accident as my glove compartment had jammed shut from the impact.  Did I mention I was hit real hard.  After that the vehicle would be towed to the ICBC yard where an adjuster would make a determination whether my 4Runner would be fixed or written off.  If it was written off then yet another ICBC individual would let me know what ICBC would pay in compensation.  This would be where the rubber hits the road.

Ten days after the accident the adjuster called me and told me what I already knew - my 4Runner was a write-off.  He took the time to explain that he had assessed the general condition of the 4Runner and I felt his assessment was fair.  Of course, in the meantime I had been doing my homework, figuring out what my old 4Runner was worth and how to replace it.  Last year we had thought about replacing the 4Runner, which was 13 years old, but we had decided to keep it since it was running perfectly and I really loved it.  It was the perfect vehicle for me.  It turns out that 4Runners don't depreciate quickly when you drive them off the lot so we decided to get a new one.  It has a few more gizmos but Toyota has kept the same design ethos, so it is a truck in SUV clothing, not the other way round, as is the case for the competition.

So, the only thing remaining was the ICBC settlement.  The settlement process has three potential steps: first offer, appeal to supervisor and adjudication by a third party.  By this time I was armed with 23 recent sales ads for 4Runners of similar vintage which I had normalized to my year and model.  I felt confident I knew what my old 4Runner was worth.  Ironically ICBC called about the settlement while I was driving my brand new 4Runner off the lot, with the Toyota salesman sitting in the passenger seat.  Since he had kindly set up my iphone I was able to answer using the vehicle phone service.  Talking to ICBC in this situation did not seem like the best thing so I asked them to call back.  They called again the next day and I waited with bated breath to hear the number.  It was very reasonable and I feel confident I would have been able to replace the old 4Runner with something equal with the settlement.

ICBC appears to be a well run organization.  All the people I dealt with were pleasant, professional and knowledgeable.  So, thank you ICBC for making the whole process as painless as possible.

]]> (Rory Hill Photo Galleries) 4Runner Accident ICBC Thu, 14 Jul 2016 23:44:39 GMT
Some camera improvements I'd like to see  

  1. Implement automatic micro fine tuning for every lens.  The reason we pay big bucks for the best camera bodies and lenses is to be able to resolve the finest details in our images.  Especially for telephotos I'm finding I have to micro fine tune adjust (MFA) every lens.  Even then, when you buy a new body or lens it is a bit of a crap shoot whether everything is going to work or not.  The cost of the camera companies improving their quality to the point where the error tolerances are so low that these problems disappear would be prohibitive.  To their credit they have given us MFA functionality - now make it easy to do across zoom focal lengths and different focus distances.
  2. Please make my camera user programmable so I can customize it to work exactly the way I want.  A good example is taking focus stacks, which currently requires a quite cumbersome process of commanding the camera from a phone to pick a focus point and increment the focus between shots.  While you're at it, publish an SDK and encourage third parties to publish and sell scripts (also known as apps) to run on the camera.  Enough of this silly reverse engineering such as the folks at magic lantern are doing.
  3. Add a locking mechanism to the lens mount so I can't accidently release the lens by pushing the big release button while I'm carrying the camera.  That big release button sure is handy when I'm wearing gloves but it is risky when carrying large telephotos on a rapid strap.  
  4. It sure would be nice if the camera could automatically focus on eyeballs when shooting PDAF.  Any eyeballs, not just human ones.
  5. I would love to have a swiss arca L bracket integrated into the body.  
  6. Add a shutter just inside the lens mount that closes whenever you remove a lens and opens again when a lens is replaced.  This would  make it way easier to change lenses in hostile environments.
]]> (Rory Hill Photo Galleries) Camera Photography Fri, 30 Jan 2015 01:39:12 GMT
Canon 7DMKII Setup My Canon 7DMKII Settings

The default settings for the Canon 7DMKII are not terribly useful.  I make these changes:

  • Shoot1 Image quality = RAW
  • Shoot2 Color space = Adobe RGB
  • Shoot3 Picture style = Neutral, Sharpness = 4
  • Shoot3 High ISO speed NR = OFF
  • Shoot3 Highlight tone priority = OFF
  • Shoot5 AF method = Flexi/zoneAF
  • AF4 AF area selection method = Main dial
  • AF5 AF microadjustment = ON (and set for each lens)
  • Play3 Highlight alert = Enable
  • Play3 AF point disp = Enable
  • Play3 Background grid = 3x3
  • Play3 Histogram disp = RGB
  • Play3 Magnification = 8x
  • SETUP2 Auto power off = disable
  • SETUP2 Viewfinder disp = show everything
  • SETUP2 GPS = Enable everything except GPS Logger, updates = 15 sec
  • SETUP3 Rate btn function = Protect
  • SETUP4 Copyright information = Enter name and copyright fields
  • C.Fn1 Bracketing sequence = -0+
  • C.Fn1 Safety shift = ISO
  • C.Fn1 Same expo. for new aperture = ISO
  • C.Fn3 Multi function lock = Main dial and quick control dial
  • Custom controls Shutter btn = Metering start
  • Custom controls AF-ON btn = Metering and AF start, AF operation = AI servo
  • Custom controls AE Lock btn = Metering and AF start, AF operation = AI servo, Area selection = 65 pt AF
  • Custom controls DOF preview btn = One shot <> Ai servo
  • Custom controls M-Fn btn = AE lock
  • Custom controls Set btn = Set ISO
  • Custom controls Main Dial = Av
  • Custom controls Quick Control Dial = Tv
  • Custom controls Multi controller = Direct AF point selection
  • Custom controls AF area select lever = Exp compensation
  • My Menu tab 1 - Format card
  • My Menu tab 1 - Battery info
  • My Menu tab 1 - Expo.comp./AEB 
  • My Menu tab 1 - Number of bracketed shots
  • My Menu tab 1 - Date/Time/Zone
  • My Menu tab 1 - Mirror lockup
  • My Menu tab 2 - AF Microadjustment
  • My Menu tab 2 - Tracking sensitivity
  • My Menu tab 2 - Accel.decel tracking
  • My Menu tab 2 - AF pt auto switching
  • My Menu tab 2 - GPS/digital compass settings
  • My Menu tab 2 - Custom controls
  • My Menu tab 2 - Auto power off (disable when need instant AF at all times)

Unfortunately there is not a save settings option for the 7DMKII.

]]> (Rory Hill Photo Galleries) 7DMKII Canon Photography Setup Fri, 05 Dec 2014 00:56:53 GMT
Lightroom history Lightroom release history

Version 1 February 2007

  • Library module
  • Develop module
  • Web module
  • Print module
  • Crop tool
  • Slideshows
  • History
  • Hierarchical keywords
  • XMP import/export
  • Labels/Flags
  • Virtual copies and snapshots
  • Stacks
  • TAT tool
  • Red eye tool
  • Spot removal tool
  • Compare view
  • Multiple catalogues
  • Painter tool

Version 2 July 2008 (18 months)

  • Localize adjustments
  • Smart collections
  • Library filter
  • Dual monitors
  • Output sharpening
  • Post-crop vignette
  • Picture package
  • Print to JPEG
  • Suggested keywords
  • 64-bit support
  • DNG camera profiles
  • Graduated filter
  • Photoshop integration

Version 3 June 2010 (23 months)

  • New demosaicing process
  • New sharpenening
  • New chroma and luminancenoise reduction
  • Import dialog
  • Publish services
  • Custom print package
  • Watermarking
  • Grain
  • New post-crop vignette
  • Slideshow H.264
  • Backup on exit
  • CMYK support
  • Tethered shooting
  • Video support
  • Point curve
  • Lens corrections
  • IPTC Extension

Version 4 March 2012 (22 months)

  • New rendering process
  • New tone controls
  • Book module
  • Map module
  • Soft proofing
  • Basic video editing
  • RGB curves
  • Local adjustments for WB, noise reduction and moire
  • Improved CA correction
  • 32 bit TIFFs
  • Publish videos
  • Move multiple folders at once
  • Stack in collections
  • Email

Version 5 June 2013 (15 months)

  • Radial gradient
  • Enhanced healing and cloning brush
  • Smart previews
  • Save custom layouts in book module
  • PNG files
  • Video in slideshows
  • Perspective correction
  • Full screen tweaked
  • LAB color readout

Version 6 April 2015 (22 months)

  • Face tagging
  • Photo merge - Panos, HDR and HDR panos
  • Import photos directly to a collection
  • The ID plate now has an activity center
  • The keyword painter can now use any of your saved keyword sets
  • GPU acceleration in dev module if your video card supports OpenGL 3.3
  • You can now erase parts of the gradient and radial filter
  • Pet eye
  • The slideshow module has seen some love: pan and zoom, multiple audio tracks, tempo sync
  • Improved performance in the map module and web module

Version 7

  • Localized black and white sliders (v6.1)
  • Dehaze (v6.1) and dehaze as a local adjustment (v6.2)
  • Totally screwed up import with a new dumbed down version (v6.2)
  • Revert to old imprt module (v6.3)
  • Boundary warp (v6.4)
  • Guided upright (v6.6)
  • Use smart previews even when originals present (for performance) (v6.7)
  • Zoom to fit or fill (v6.8)
  • Filter or create smart collections for images with snapshots (v6.8)
  • Performance improvements to develop module (v6.8)
  • Reference view in develop module (v6.8)
]]> (Rory Hill Photo Galleries) Lightroom Photography Sat, 25 Oct 2014 23:21:00 GMT
DotTune What is DotTune

DotTune is a method to set AF fine tune for a given lens on a given camera.  The technique was first proposed by Horshack on DPReview in this post and at Fred Miranda for Canon and Nikon.  The technique uses the green focus dot in the viewfinder to determine the correct focus, based on changing AF fine tune values.  This works because the camera (Nikon and Canon) use the AF fine tune value as an adjustment before focusing.


  1. Pick a high contrast target with both vertical and horizontal lines under bright, consistent light at greater than 50X focal length distance and lock down your tripod.  Focus on the subject using live view to establish critical focus.
  2. Canon: Set the lens to manual focus and set the AF mode to single shot.  Nikon**: Keep the body and lens in AF mode, set AF activation to AF-ON only and focus mode to AF-S.
  3. Use the shutter button half press and check the focus dot in the viewfinder.  Try different AF fine tune values to bracket the focus range.  You are out of range if there is any delay or flicker in the rangefinder dot (or arrows on Nikons).  The dot must stay steady for 5 seconds.
  4. Set the AF fine tune to the middle of the focus range determined in step 3.

*Using a greater target distance tends to work better than a close distance.  The adjustment might vary by distance, but longer distances adjust better to shorter distances than the converse.

** Nikon cameras use a less sensitive focus indication when the focus is set to manual.  To get around this limitation set the focus activation to the rear AF-ON button and then use the shutter half press to check the focus dot.  This will activate the focus dot without focusing the lens.

]]> (Rory Hill Photo Galleries) Tue, 21 Oct 2014 23:36:23 GMT
Au revoir Telus My Telus Mobility Experience

Three years ago I signed a Telus contract, where for $62/month I got a Google Nexus S phone, and as it turns out, a few headaches as well.  Over the 3 years the actual phone experience was not bad, with few dropped calls and fairly complete cellular coverage, so I would give Telus fairly good marks in this regard.  Another fairly positive experience was that it was generally easy to get in contact with customer support.  Unfortunately I have a reasonable large sample size to come to this conclusion.

Shortly after I started with Telus I noticed an extra $10/month on the bills.  After quite a bit of phone tag it turned out I was being billed for an extra ring tone from some company in the eastern US that Telus was adding to my bill.  This seemed easy to deal with - I had not purchased a ring tone so just refund me for the amount you have billed me and we're good to go.  I'm sorry Mr Hill, but this is a third party so we can't do that.  Say what?  After more discussion and escalation of the issue Telus ended up refunding the money already paid and giving me a number to text with a STOP code.  Did that.  Next month same old extra $10.  I went through this cycle for 13 months before Telus finally stopped billing me for something I never agreed to.  That probably adds up to a day of my life I would do differently.

The plan included unlimited texting.  I'm not much of a text guy, so months would go by without my making or receiving texts.  As you can guess, by this time I was watching the Telus bills like a hawk.  Every now and then I would get an extra billing for texts.  Every time I would call customer service and they would very graciously credit my account with the billed texts to solve the problem, and every time they would promise it would not happen again.  I kept getting billed for texts right through to the end of the contract 3 years later.

At the end of the contract all I can think about is I'll finally be out from under the Telus yoke.  I call them up to make sure they cancel my service at the end of the plan.  It turned out allowing the plan to lapse is a non-trivial event.  It took me three phone calls and 90 minutes to do this simple thing.  I was forced to listen to Telus offers of better plans and deals, even when I told them "JUST CANCEL THE PLAN".  After that I received 4 phone calls from Telus and several emails trying to offer me better plans.  I felt like a victim of corporate stalking.

In the process of switching to another provider I needed to know how to proceed so they could transfer my cell number to my new provider.  A very nice young lady warned me that Telus would charge me a fee to transfer the number while it was still under my Telus plan.  Once more I'm back at Telus customer service, asking how do I transfer the number without being charged a transfer fee, which is really a plan cancellation penalty in my case.  The Telus lady said no problem.  We are cancelling your service on May 26.  Better leave it a day to be safe, so just go to your new provider on May 27 and they can claim the number.  On May 27 I do this and guess what - Telus has no record of my number because the service has been terminated.  Hey, I'm not surprised.  I'll just get a new number, but thanks again Telus.  At least with the new number I'm not getting any more calls from Telus trying to keep me as a customer.

For some reason I don't understand my Telus billing cycle is different than the contract cycle, so I have one more Telus bill coming in June.  I'm guessing they will give me one more reason to call customer support...

]]> (Rory Hill Photo Galleries) Telus Tue, 27 May 2014 20:51:31 GMT
If Nikon and Canon were customer oriented If Nikon and Canon were customer oriented

Nikon and Canon (Canikon) have lead the way for the last 15 years in the transition from film to digital cameras and hold the global market share for DSLRs.  They are the leaders because they already had market share, comprehensive lens and attachment lineups and some of the best image quality available.  The bottom end of their camera sales are quickly being eaten up by cell phone cameras, which provide convenience and connective sharing.  For every serious photographer there are legions of customers who just want to record and share a moment.  Canikon need to concentrate on the serious photographers from two perspectives: add value for the existing photographers and lure more people into serious photography.  What could they change to do this?

The raw file debacle

Ever since the beginning of the digital transition Canikon have created new, proprietary file formats for each camera released.  Third party imaging software literally have to decode the formats, which are all based on TIFF, for each camera that is released.  And how is this in the customers interest?  I know, let's sell a camera with secret encoded files so our customers will have to use our crap software or wait for the files to be decoded.  A lot of serious photographers will have cameras from several manufactures, and almost all serious photographers use third party software to post process their images.  They want to be able to use the same software, with their hard won processing skills, for all their cameras.

This issue obviously does not factor into customer decision making at this point in time.  No one is saying I'm not buying Canikon because I don't like their proprietary file formats.  But what would happen if Canon or Nikon worked with third parties on a standard format, be it DNG or another, and explained to their loyal customers they were doing this to:

  • make it easier for their customers to own multiple cameras.
  • enable their customers to use any software from day one, instead of waiting for the software engineers to decode the latest files.
  • make the files more archival by ensuring future software will be able to decode them.

I'm pretty sure this would receive a positive reception.  So why on earth would Canikon continue to pursue a policy that is so clearly antithetical to their best customers interests?

The camera operating system

Cameras are computers with optical peripherals today.  However, all the camera operating systems are proprietary and closed.  Why don't the camera companies release a SDK and encourage their customers to customize their cameras without having to use an external device, making them even more valuable.  For example, many photographers are making HDR images, requiring multiple exposures several stops apart, to capture the entire dynamic range of the scene.  The cameras can take bracket bursts, but only up to one stop different.  This would be an easy tweak to make.

Magic Lantern, an open code development for Canon cameras, does just this thing, making a number of customizations available.  However, Magic Lantern is essentially a hack, with perhaps tacit approval from Canon.  This is a good thing from the customers perspective.  If Canikon were truly customer driven they would be leading the charge, making their cameras extensible and programmable.  But they are not doing this.

Camera ergonomics

The DSLR, following from the SLR, has had 60 years of refinement, so one would think they should be the epitome of ergonomics by this time.  Let's take a look at this, building up from the basics.  

Customers come with different sized hands, a thumb and four fingers.  This is so fundamental it is mind blowing that DSLR cameras are not customized to hand size.  How hard would it be to make the hand grip modular, and make different sizes optimized for different hand sizes.  When a customer slips their hand around the grip and it fits like a glove I'm thinking a sale is that much closer.  It is hard to overrate the value of having a tool that is just right.  This is sort of like having cars today without adjustable seats.

All focus and exposure adjustments need to made while looking through the viewfinder.  Since the left hand is often being used to support the lens this means all adjustments need to be made with the right hand.  This has resulted in a cluster of buttons and dials around the grip, but even after 60 years of refinement, there is still lots of room for improvement.  Most of the controls are accessed by the thumb and forefinger.  Very little use is made of the other three fingers, and any buttons accessible to the latter three fingers are always awkward to reach.  The principal adjustment method is to spin a wheel, using various buttons to modify the wheel behavior.  The manufacturers need to start over and build an interface that allows the user to easily adjust exposure and focus parameters: aperture, shutter speed, ISO, exposure adjustment, focus, focus method and focus spot while wearing gloves.  Add in the ability to pick a custom adjustment and we have eight core adjustments, one thumb and four fingers.  Let's look at the thumb first.  It appears that a eight way selector works best to select the focus spot and clicking it in the center returns to the center focus spot.  Sony has managed to also include a spin command dial which works very well.  The spin could be used to modify ISO, exposure adjustment or focus method.  For this discussion let's assign ISO to this dial.  Also, most seasoned photographers use a thumb button to focus, isolating focus from the shutter release.  The rear and front command dials on Nikon work well, dedicated (without modifier buttons) to control aperture and shutter speed.  Okay, where are we?  We have direct control of everything except exposure adjustment, focus method and custom setup.  All we need is a single modifier button on the front of the grip used in conjunction with the command dials to directly make these adjustments.  This control arrangement requires six controls: a multi-selector surrounded by a command dial, a thumb focus button, rear and front command dials a la Nikon, a shutter release and a modifier button on the front.  Looking at my D4, it has 10 controls within easy reach  and the Canon 5DIII has 14!  Neither camera can make all the simple adjustments enumerated above.  I thought about this for half an hour.  Surely the big guys can do better!

Almost all serious photographers use tripods.  Most serious photographers immediately buy an L bracket to attach to the body, permitting landscape and portrait setups with a swiss arca quick release mount.  So, why isn't the mount built right into the camera?  

Quality control, parts and repairs

Some camera companies, like Nikon, are restricting the availability of parts and repairs.  This increases the cost to the customer and increases customer frustration having to deal with less than competent Nikon outlets.  Canon isn't doing much better in this regard - stories of returning a body or lens three times to get it fixed abound.  It does not take much word-of-mouth, especially in the internet age, for this to get around.  Buying something as expensive and complex as a modern DSLR without any confidence in the sellers ability to service and repair is not a good long term strategy.  It is interesting to watch Sigma at this point in time.  They are tightening up their quality control, have lower prices and excellent, customer driven service.  Look out Canikon - at least in the lens arena.

Supply and demand

The large camera companies seem to be having considerable inventory control difficulties, exacerbated by regional sales distribution issues.  Why can't a customer get any Canikon camera serviced anywhere?  Their current policies are so out of touch with global realities that it boggles the mind, and totally ignores what would be best for their customers.  Canikon should be moving their product to wherever the demand is, and not have shortages in one location and surpluses in another.  When they release a product there should be enough batteries to go around...  

Honesty and trust

At the end of the day, it all comes down to customer trust in the manufacturer.  Refusal to admit errors, blaming difficulties on the customer and not honouring recalls of cameras for manufacturing errors builds up a huge resentment within the companies most valuable resource - its existing customers.  Both Canon and Nikon, but especially Nikon, are damaging their brands when they fail to respect and they ignore their customers best interests.  I think it is safe to conclude they both have significant room for improvement in looking after their customers.

]]> (Rory Hill Photo Galleries) Canon Customers Nikon Photography Mon, 19 May 2014 17:03:45 GMT
Image Editing Strategy I've been thinking about my image editing requirements and future strategies for a while now, what with the Adobe Creative Cloud debacle and the general maturing of digital photography.  Upon reflection my editing can be divided into DAM, raw edits, compositing and merging.

Digital Asset Management

At present I use Lightroom for my asset management and this is a potential long term weakness in my strategy if Lightroom quality/performance starts to flag or Adobe decides to move it to the subscription model only.  Subscription software is simply not an option I am prepared to support, especially for something as pervasive as asset management.  It would be possible, albeit messy, to move to another DAM.  I doubt Adobe will move Lightroom to subscription for the next few years in any case.

Raw edits

At present I do my raw editing in Lightoom.  The basic requirements are to be able to edit in a large gamut color space in 16 bits to insure image data is not lost.  Current raw editors are quite robust.  Adobe has stated that Lightroom will continue to be sold on the perpetual model, so if I stay up-to-date then I will be able to work with future cameras.  However, not many are trusting Adobe these days, so I should plan for an alternative, and at this time, Capture One is the obvious choice.  


By compositing I generally mean distraction removal and filling in cropping fragments.  I own a copy of Photoshop CS6.  Basic compositing has not changed much in photoshop for a number of years other than the addition of content aware fill in CS5 and slightly improved in CS6.  Since I am opposed to the Photoshop CC subscription model I will be missing any improvements in this area, but I can always reconsider this if some new killer feature comes out.  At present I cannot find a good alternative to Photoshop that supports 16 bit editing and the Prophoto color space.  The mac program Pixelmator looks promising but is 8 bit at present.  I expect the Adobe rental model will provide the opportunity for a third party to fill this niche so I am not worried about meeting my needs in this area in the future


Merging is the combining of multiple images of the same scene to improve the dynamic range, focus stack or reduce noise in the merged stack.  While these functions can be done in Photoshop specialty programs do a better job.  No ongoing risk here.


When I first starting thinking about this I thought the biggest risk would be sticking with CS6 and not jumping on the CC bandwagon.  After considering what I really use Photoshop for I am not so worried about this now.  The biggest risk appears to be using Lightroom as my DAM.  However, no matter what DAM I choose I will be faced with the issue of what happens if the product dies or I decide to part ways with the provider.

]]> (Rory Hill Photo Galleries) DAM Lightroom Photography Photoshop Thu, 28 Nov 2013 23:10:29 GMT
Lightroom 5 The Lightroom 5 release has a modest number of new features and tweaks.  Adobe shortened the development cycle to a year and devoted resources to tweak performance in the image processing pipeline.  As a consequence, the new features are limited in both number and significance.

  • The radial filter is a new localized adjustment that works like the graduated filter but inside or outside an elliptical mask.  The primary intent was to create off center vignettes, but it is being used as an adjustment brush with a more adjustable feather.  This is a nice to have feature, but could already be done using the adjustment brush with a better feather.
  • You can now paint with the spot edit brush.  This works well in some situations, but has problems with making seamless edges with the background.  If you do not like the source selected, try pressing the / key and lightroom will pick another clone/heal source or you can still move the source manually.  This tool still needs some TLC.
  • Perspective corrections have been automated with a new feature called upright.  This can be very handy, and if you still need to tweak, you can still use the manual adjustments.  Hint - make sure to enable profile corrections and remove chromatic aberration before making an automatic upright correction as this makes it easier for the algorithm to find the "straight" lines in the image.  Another welcome addition is the aspect slider, which was developed to offset the stretching/compressing impact of wide and telephoto lenses.
  • Smart previews are lossy DNG proxy images, created at a reduced size of 2540 pixels on the long side.  They can be rendered much more quickly and edited the same way as the originals.   This could be useful if you want to edit develop settings "on the road" on a device with limited mass storage and then merge the edits back into your main catalog.  You can also create smart previews on your main computer and the develop module will respond more quickly until you zoom in beyond the 2540 pixel size.  Smart previews and pyrmid jpeg previews are both attempts to inject performance improvements into Lightroom.
  • PNG files can be imported and edited, but not written.  Transparency is maintained, although it appears white in Lightroom.  
  • There are a bunch of tweaks:
    • ​Shortcut F12 for tethered mode.

    • Shortcut F for slideshow type full screen.

    • DNG validation.

    • More filter criteria.

    • LAB readout.

    • Before/after previews in soft proofing now reflect the current state.

    • Cropping no longer resets to the entire image when you pick a different aspect ratio.  The crop border can show multiple aspects.

    • The process version is now in the histogram.

    • Book has automatic page numbering, save user page, improved text fields.  You cannot customize page size, so from my perspective, books is still pretty useless.

    • In Map the saved locations panel now supports drag and drop.

    • The GPS direction metadata has been added and can be edited. 

    • Slideshows can include videos. 

    • Windows HiDPI support. 

    • Adjustable color tints for labeling.

​There are also a bunch of bugs, including problems with selections in the bottom thumbnails not matching metadata changes made when they are selected, failure to execute sharpening and noise reduction on some exports, previews are sometimes fuzzy and lots more.


]]> (Rory Hill Photo Galleries) Lightroom Wed, 07 Aug 2013 14:59:18 GMT
I returned my Oregon 600 GPS The Oregon 600

I am in the market for a new GPS, and after some research, decided that the Garmin Oregon 600 was what I wanted.  Key factors were the added precision reading the Russion satellites, the larger screen that would be easy to see in bright daylight and 16 hour battery life.

I had used a Garmin 9 years ago, a GPS 60, and it worked quite well.  I was interested to see all the improvements Garmin had made in the intervening years.  I was quite surprised as not that much has changed.  The basic capabilities are the same and the UI did not look much different.  The LCD had improved a bit and the CPU was faster but that was about it.  I started to wonder what Garmin had been up to in the last decade - not as much as they could it seemed.

As I started to use the unit the first thing I noticed was I could not find a way to show the current time with any precision greater than the nearest minute.  Why would they dumb it down to this degree?  I planned to synchronize the time with my cameras so I could use a GPS track to geo-tag my photos.  This made it harder than it really needed to be.

The second thing I noticed was the battery drain was much higher than claimed in the Garmin specs.  They claim 16 hours, but the best I could get, operating in battery save mode, was just over 4 hours with freshly charged 2500mAh NiMH batteries.  I got about the same results with Duracell alkaline batteries.  Most disturbing was that the battery life was highly variable - one time I only got 80 minutes.  I just could not depend on the battery life.

The third thing I noticed was as I retraced my steps the tracks would be quite divergent.  With the added accuracy from the the GLONASS satellites I expected better results.  Here is a typical track comparison:

The line between the tracks shows where they were 22 meters apart.  I would often see the unit reporting an accuracy in the 20 meter range.  Where were the results of 3-5 meters others were claiming?

I was still dithering over what to do when the final straw broke the camels back.  My wife and I went for a 5.8 km walk in a downtown park.  We timed ourselves, and we took 61 minutes.  The Oregon 600 was able to get a satellite fix for only 27 minutes, reported we had gone 2.7 km and had track divergences of over 130 meters.

When I returned the unit the manager asked me quite a few questions, and it turned out he had another Oregon 600 returned with the same issues: poor battery life and poor accuracy.  Either there is something wrong with the Oregon 600 units or his store got a couple of bad samples.  He assured me the other models worked fine.

From what I have seen I would not be in a hurry to buy Garmin stock.  I think they are in the same bind as the camera manufacturers - hidebound in a paradigm when the world around them is moving forward.  I see cell phones eating them for breakfast in the not too distant future.

]]> (Rory Hill Photo Galleries) GPS Garmin Wed, 07 Aug 2013 05:22:44 GMT
Big Qualicum hike If you are looking for an easy 7 km walk through lush forests beside a beautiful stream then you really should check out the Big Qualicum trail.  The Big Qualicum river flows from Horne Lake into the ocean a bit north of Qualicum.  Over the years the fisheries have done a lot of work to maintain a salmon hatchery.  

You get to the start of the hike by taking the Horne Lake turnoff, but head east, as shown below:

The hike starts at the hatchery and follows the river upstream.  From the parking lot follow the road past the hatchery building and cross the bridge.  Keep to the left and follow the road upstream for a couple of hundred meters, passing under the railway bridge.  Just after that you will come upon a steel walking bridge.  You want to take that, crossing back to the south side of the river.

The trail follows the river, threading through an advanced second growth forest with some hints of the original old growth harvest.

The trail climbs up some stairs onto a bench for a hundred meters, before dropping back down to the river.

When you get back down to the river you will quickly come upon a walk log crossing the river.

Ignore the walk log, keeping to the left and continue upstream on the south side of the river.  The trail follows the river, under the Island Highway.

Along the way you will see a series of rock "dams" built by the fisheries to create spawning pools for the salmon.

The forest is quite lush with some excellent bear habitat.  Black bears are common, expecially in the fall when the salmon are spawning, you you should keep a watch for them.

The most exciting element of this hike is crossing a narrow walk log, but it is a piece of cake.  There is a rope to hold onto as you cross.

The trail continues on upstream

and crosses the power line.  While crossing the power line keep a watch for a jog to the left where you cross some more walk logs.

From here the trail continues for nearly a kilometer to the next stream crossing.

While the trail continues, this is the turn around spot.  You can either retrace your steps or cross the river and follow the road back along the north side of the river.  Of course, you might want to stop here for a moment as it is quite a beautiful spot.

]]> (Rory Hill Photo Galleries) Fri, 02 Aug 2013 22:24:57 GMT
Killer Granola Group 1
2 c old fashioned oats
1 c rye flakes
½ c cracked flaxseed
½ c wheat germ
½ c bran
4 tbs oat bran
½ c raw, unsalted sunflower seeds
1 c raw, unsalted slivered almonds
½ c sesame seeds
½ c chopped walnuts

Group 2
6 tbs honey
2 tbs coconut oil/butter or 1 tbs butter + 1 tbs olive oil
1 tbs vanilla
1½ tbs apple pie spice
pinch ground ginger
pinch ground cardomon

Group 3
½ c chopped dates
½ c chopped prunes

½ c chopped apricots
½ c dried blueberries

  • Preheat oven to 350°F.
  • Prepare 2 large baking sheets with parchment paper.
  • Prepare group 3 dried fruits (substitute anything you like).
  • Place oats, rye, flaxseed and wheat germ on one sheet; and the bran, seeds and nuts on the other sheet.
  • Put the baking sheets in the oven and bake for 15 minutes, giving the sheets on occasional shake to brown on all sides.  Remove from oven and let cool.  Leave the oven on.
  • In a small saucepan mix group 2 ingredients on medium heat until fragrant and coconut butter has melted.
  • In a large bowl combine group 1 and group 3, mix, add group 2 and mix thoroughly.
  • Spread evenly back on the two sheets and bake another 15 minutes.  Stir mixture on sheets halfway through bake cycle to brown evenly.
  • Let the granola cool completely.
  • Transfer to an airtight container.  Refridgerate and eat in next two weeks.
]]> (Rory Hill Photo Galleries) Fri, 07 Jun 2013 22:46:42 GMT
Learning C++ and Qt C++ tips
  • It is a good practice to always assign values to variables when they are declared.  For example:  int x =0;

  • Functions should only perform one task.

  • When addressing compiler errors, always resolve the first error produced first.

  • Use angled brackets to include header files that come with the compiler. Use double quotes to include any other header files.

  • Declare variables where they are needed (just in time).

  • If logical NOT is intended to operate on the result of other operators, the other operators and their operands need to be enclosed in parenthesis because NOT has very high operator precedence.

  • When dealing with bit operators, use unsigned variables.

  • Use delete[] to delete dynamically allocated arrays.

  • Assign pointers to 0 both when they are declared (unless assigned to another address), and after they are deleted. 

  • Always pass by constant reference unless your need to change the value of an argument.

  • Values returned by reference or pointer can be l-values or r-values. Values returned by value can only be r-values.

  • Handlers for derived exception classes should be listed before those for base classes.


Qt tips

  • When the project file is updated (.pro) make sure to run qmake to update the make file.

  • To add a main window class function slot to Builder right click on the QMainWindow object in the object inspector, select change signals and slots and add the function.  It will then appear in the signals and slots editor.

  • To add a slot to receive signals from a widget right click on the widget, select "Go to slot..." and select the signal.  A corrosponding slot function will be created in the MainWindow class.



Code Snippets


// Regular expression

QRegExp rx("^(Border|Text|Shape|Graphic)$");

if (rx.exactMatch(objectName) == true){
    // do something

// QString with arguments
statusBar()->showMessage(tr("Position: (%1,%2) in top level").arg(row).arg(column));
QString newTemplate = QString("New Template %1").arg(newTemplateCount);

// Algorithm to walk a tree structure
void DataModel::walkTree(const QModelIndex &row)
    if (this->hasChildren()) {
        for (int i = 0; i < rowCount(row); ++i){
]]> (Rory Hill Photo Galleries) C++ Qt Snippets Tue, 02 Apr 2013 22:26:54 GMT