Thoughts on Engineering, Photography, and Design.

Hey, I'm Ryan Heath. I design & develop things for a living and play with cameras for fun. This is where I share my thoughts on all of that — and probably more — along the way.

Shooting Film: Bessa R2A

There was a time when I simply could not understand what the appeal was when it came to film photography. It always intrigued me, but I was never certain that I had the patience for it and the overall process just felt so… pointless? But here I am. Years later, I have a different perspective. I recently picked up a 20+ year old, used film camera.

Scale

Voigtlander Bessa R2 w/ 35mm Nokton Classic f/1.4 II

Right off, this camera is beautiful! And if you know me, I can’t dare use a camera that doesn’t align with my aesthetic tastes.

I’m not a product review kinda guy, but it’s worth noting a few things that make this camera special:

  • The largest framelines are 35mm, which is what I plan on shooting with this camera.
  • I shoot aperture priority, which this camera has! (along with +/- 2 stop exposure compensation)
  • The rangefinder patch is excellent, despite the camera being old-ish.
  • It’s a M-mount, so I can use my existing VM lenses.

There’s a bit of anxiety that comes along with shooting film, but it does seem to make you hone in on what you’re doing because you can’t make “test exposures” to verify anything. If you over expose a scene on purpose, you won’t know if you blew those highlights until you get the film back. You’re forced to understand how different films react to light and be a lot more intentional up front, which I (so far) am enjoying.

Another thing I didn’t really think about: you sort of choose your “edit” up front. Sure, you can make small adjustments to the scans in post-processing, but for the most part, you’re choosing your colors, contrast, and overall feel up front before you head out with your camera. That’s kinda cool and very different for me.

We’ll see how this whole thing plays out. I’m still a digital shooter at heart (if nothing else because of the cost of film, sheesh), but I will say, the feeling I get when cranking the film advance after every shot is pretty addicting.

Anyway, I find that hobbies—including photography—require you to “keep it fresh” to stay motivated and inspired. Right now, for me, that’s the Bessa R2A. Wish me luck!

Composition Tip: Scale

Let’s get to it: When you’re shooting something big, think of ways to show its scale. Scale is a powerful composition trick that adds impact to a photo. When properly done, the viewer can feel like they’re in the scene vs looking at the scene.

Scale

100mm, f8, 1/1300, ISO 125

There’s nothing special about this photo, but I intentionally waited for this gliding bird to be in the scene solely because of scale. I think having that tiny bird in there shows how large the cloud actually is, as well as the rainbow.

Now, this is just a photo of some random clouds, so perhaps it’s a poor example. But imagine if this were a massive waterfall? Or a mountain? By itself, it would be a nice photo, but the viewer may not be able to comprehend actually being there. Now, if at the base of that waterfall or mountain were a tiny car, or person, or tree, or… you get the idea. The photo would feel completely different. And overall, isn’t that the goal? Make the viewer feel something (good or bad)?

Next time you’re out shooting, keep this in mind: for grandiose scenes, the impact and drama of your photography can be greatly improved if you’re considering scale.

Photographing the Moon

It seems like it should be really easy to photograph the moon, right? And I guess it is, but there are a few things to be aware of for a frustration-free experience.

Moon

560mm (400mm w/1.4x teleconverter), f8, 1/250, ISO 800

Reach!

Depending on what you’re after, it helps to have a long lens so you can do one of two things: fill the frame and/or take advantage of compression against a foreground subject. Have you ever seen those photos that look fake, where the moon is gigantic behind a… lighthouse, for example? Yeah, that’s what telephoto compression does.

A 100-400mm is a great lens to have for a lot of reasons, but can work well for moon photography.

No IBIS

Given you’re at such a long focal length, you’re probably going to need a tripod. And when you’re on a tripod, IBIS can actually have the opposite affect on your photo and cause camera shake. Although, if it’s windy, you can (maybe) consider keeping it on. The point here is to be aware that this is definitely something to think about.

Fast Shutter

Believe it or not, the moon moves very fast! Even a 10s shutter speed could result in soft images due to movement. Additionally, the moon is very bright, so you want to be careful to not blow out the highlights to the point of no recovery. I typically start with 1/250 and adjust from there.

Manual Mode

You want full control over your camera when photographing the moon. This means controlling aperture, ISO, shutter, and focus! It seems like you should be able to autofocus on the moon, and sometimes you can, but the dynamic range is often so extreme that your camera could get confused. It’s just easier to give in and go full manual.

Keep It Simple

It’s very easy to forget things in the moment when on location, so a simple rule that can get you close is to match your shutter speed with your ISO. If you shoot 1/250 then use an ISO of 250. If you shoot 1/1000 then use an ISO of 1000. It’s not always perfect, but it gets you in the ballpark where you can properly tweak from there.

Plan!

Buy PhotoPills. If you do any kind of landscape photography consistently, you will want this app. You can easily see when the moon rises, where it’ll be, what time you need to be where, etc (plus it has sunrise/sunset, milky way, AR mapping, and so much more).

Epic shots require a little thought ahead of time, so don’t ignore this step.

And finally, have fun!

Riona Buthello

I grew up drawing and painting almost constantly. These days my “creativity” comes out through photography. But when I stumbled onto Riona Buthello’s work, I’d found something that combined the two.

Riona Buthello

Like, c’mon. Incredible.

Many artists paint things that look like photographs, or attempt to, but there’s something about her style that aligns perfectly with my tastes. I strive to take photos of these exact moments.

From her site:

My work tends to make people stop and wonder whether they’re looking at a photograph or a painting until they see these slight textures in my work.

I would say she nailed it.

I recommend following on Instagram, too, for the video clips — it comes to life so effortlessly.

Infrared Sensor Conversion

I recently had the sensor in my old Fujifilm X-T3 converted to infrared (720nm). I used Kolari Vision for this, which involved sending the camera off for a few weeks. The result is exactly what I had hoped for!

The cheaper alternative is to use lens filters to do this on top of a normal sensor, but they knock out 6-10 stops of light, which means you can forget hand-held shooting. Everything must be stood up on a tripod, which is fine, but kind of limiting. So I opted for the full, permanent conversion.

Infrared Parking Lot

It’s been a blast so far! Seeing the world through infrared opens up a ton of new photographic opportunities. It’s tough dedicating a camera to this permanently, but since that affords me normal shutter speeds and accurate autofocus, I have no regrets.

Oh, and a bonus: infrared photography works best in mid-day, blue sky, full sun situations (which is otherwise a photographer’s nightmare). So now I’m able to shoot 24/7, no excuses!

The Proactive Engineer

I’ve been a young engineer, mentored young engineers, and now I manage (some) young engineers. One of the best perspectives a young engineer—or any engineer—can have is being proactive.

Engineering is complicated. There are often multiple teams and departments coinciding with ever-changing requirements. This can provide engineers with a tempting out (or “pause button”) when working on a problem because they feel blocked on some level. Does something like this sound familiar?

We can’t work on that yet because there’s no API.

Quite often, though, there’s more an engineer can do than claiming blockers. With minimal additional effort, let’s see how much more helpful a response like this might be:

We can’t work on that yet because there’s no API. But I spent some time thinking about what inputs and outputs we would need to properly build X feature, and wrote up my notes as a proposal for the backend team’s consideration.

Makes a difference, right?

It’s easy to throw things over the fence. It takes intentional effort to avoid it. But when you do, that proactive mindset can go a long way within a team and helps nurture a problem solving culture. It’s not about you, me, or them. It’s about solving a problem and helping everyone involved come up with the best outcome for the situation.

We all want to work with helpful, caring individuals… a proactive brain can help convey that to others.

How to continue making kerosene lamps on the eve of electricity

I don’t think I fully believed in AI building software until fooling around with ChatGPT. Maybe it won’t affect software development like it feels like it might, but I don’t think it can be ignored any longer.

I like to imagine that all of us in software development, as it looks today, are busy making beautiful kerosene lamps in all shapes and sizes. We’re improving the burn efficiency. We’re finding ever clearer forms of glass to let the light through. We’re tinkering with a formula that’s been around for a long time. But as we do, Edison and Tesla are busy inventing electricity in the other room.

Setting Ownership in Rails

There’s a common pattern in a lot of applications to track who did what. Who created this post? Who was the last person to update it? Maybe it’s for accountability, maybe it’s because your client is nosy.

There are gems for this, but it’s such a simple thing, that extra dependency isn’t really worth it. So let’s take a look at a pretty simple way to achieve this in Rails 7 using a concern:

 1module Ownership
 2  extend ActiveSupport::Concern
 3
 4  included do
 5    before_validation :set_ownership
 6
 7    scope :created_by, ->(user_id) {
 8      where(creator_id: user_id)
 9    }
10    scope :updated_by, ->(user_id) {
11      where(updater_id: user_id)
12    }
13
14    belongs_to :creator, class_name: 'User',
15      foreign_key: 'creator_id', optional: true
16    belongs_to :updater, class_name: 'User',
17      foreign_key: 'updater_id'
18
19    validates :creator_id, :updater_id,
20      presence: true
21  end
22
23  private
24
25  def set_ownership
26    current_user = Current.user
27
28    if new_record?
29      self.creator_id = current_user.id
30      self.updater_id = current_user.id
31    else
32      self.updater_id = current_user.id
33    end
34  end
35end

Now, for any model that has creator_id and updater_id columns, you just have to include the Ownership module:

 1class Post < ApplicationRecord
 2  include Ownership
 3
 4  # ...
 5end
 6
 7>> @post = Post.find(1)
 8>> @post.creator
 9# => #<User id: 10 ... >
10>> @post.updator
11# => #<User id: 20 ... >

And whenever a Post is created, the creator is automagically set; similarly, whenever any Post is updated, the updater is automagically set. This, of course, assumes your application has user sessions, since you obviously need to know who’s logged in doing the creating and updating.

Cinebloom Diffusion Filters by Moment

I’ve had a cinebloom diffusion filter (10%) on my X100V for about a year now. If you’re not sure what a diffusion filter does, Moment’s site says it best:

The CineBloom Diffusion Filter takes the edge off your digital sensor. It not only catches and blooms light, but softens hard edges and has a smoothing effect on skin tones, making wrinkles less noticeable. Escape the clinical, ultra-sharp look of digital with this specialty glass.

While I’m someone who thrives on sharp images, for the 10% filter at least, I haven’t noticed a sacrifice in sharpness. Here’s a sample with (right) and without (left) this filter:

Comparison

It’s subtle, but it’s there.

This filter pairs really well with the output of the X100V, straight out of camera. Here’s another photo looking straight into the sun while my dog, Penny, is racing back and forth between my wife and I.

Penny

Again, the X100 series already produces stunning photos… but if you’re itching to mix it up a little bit, a cinebloom filter might be just the thing.

Compositions Using ViewCatcher

The ViewCatcher is a tiny little tool that is really useful for determining compositions when out in the field. It’s a plastic “card” that slides open to represent the view your camera would see. Here’s what it looks like:

The ViewCatcher

This thing may seem silly at first. But if you’re a photographer who walks around searching for compositions, I’m sure you’ve done one of the following two things:

  1. Stop to set up your tripod and mount your camera, only to find yourself continuing to move all over the area with your tripod fully extended searching for the best composition.
  2. You keep your camera out in your hand instead of your bag, repeatedly holding it to your eye to see if there’s a photograph to be made.

Both of those approaches are fine. But they drain battery, take time, expose your gear more, and can be annoying to deal with. With this little card, you can pull it out of your pocket as needed and focus your eye on a potential scene.

The ViewCatcher Example

If you’ve seen an old film director make a square with his hands and close one eye to look through it, this is that very concept. By filtering out the noise you can make better compositional decisions.

There are multiple popular aspect ratios supported (it has little marks indicating how far to slide it open):

  • 8x10
  • 8x12
  • 9x12
  • 11x14
  • 12x16

It’s quite handy!