Photos Stats

For my main Photo library, I use Adobe Lightroom Classic. It does everything you would want, and does it really well. But I only use it for my photographic photos. That is, photos that have a bit of thought put into them, the kind of photos that are taken with a tripod, or a circular polariser. I also use Apple Photos as my everything-ever-taken library, so all my phone photos, all my photographic photos, all my holiday photos, random snaps, and everything in-between.

Apple Photos has become a really powerful photo library management tool and image editor. It seamlessly syncs across all my devices, as well as iCloud Photos, which makes it a really useful part of my backup process.

As a managed library, there is a database that holds all the information about the photos and videos in the library. This database is an SQLite3 database, a very popular open source database that has plenty of tools to query the data held within. The only tricky part is figuring out how the data is structured.

In this post, I'm showing a few picked highlights from my Apple Photos library. This is not an exhaustive report, but given the dataset, it does show a good overview of the photographic equipment I've used over the years, and how my photographic style has changed to reflect this. There's quite a lot of data to make sense of, and this is a mostly un-edited dump of stats.

Canvas: Wave Function Collapse for terrain generation

Wave Function Collapse, it sounds like a complicated quantum mechanics process, partly because it is, but it's also an algorithm to generate 2D tiled layouts.

The Wave Function Collapse algorithm works by reducing the possibilities for each tile on the grid, and then collapses the tile with the lowest entropy (i.e., the tile that has the least number of possibilities). Once collapsed, the new constrain is propagated to all neighbour tiles, and then the next tile is selected for collapsing.

With terrain generation, we have 5 types of tiles: Sea, Sand, Land, Forrest, and Mountains. Each tile then defines its possible neighbours:

  • Sea tiles can be boarded by Sea and Sand tiles
  • Sand tiles can be boarded by Sea, Sand, and Land tiles
  • Land tiles can be boarded by Sand, Land, Forrest, and Mountain tiles
  • Forrest tiles can be boarded by Forrest and Land tiles
  • Mountain tiles can be boarded by Land and Mountain tiles

With these simple constraints, the algorithm can loop over each tile, collapse, and then propagate the new constraints to each neighbour.

Check out how the algorithm propagates and collapses tile on the canvas playground


I've added a new section to that has been in the planning for a long time. Canvas is a playground for experimenting with procedurally generated artwork. Canvas artwork will work in the browser, and will built with HTML canvas elements are drawn with the standard 2d context javascript library.

As much as possible, I'm avoiding using any 3rd party libraries. The purpose of Canvas is to experiment, and learn the technical skills, as well as the user experience when interacting with the canvas.

There are no rules as to what will be included, it's a free space to try new experimental ideas.

rjq: Use Ruby to query JSON on the CLI

In my day-to-day work, I spend a lot of time working with JSON, and and one of my favourite tools for working with JSON is jq. Jq is an excellent tool for working with JSON on the command line … however, I can never remember what arcane syntax I need to use to accomplish the simplest of queries. So, as any mediocre programmer, I built my own jq in my favourite language, Ruby.

Doom II Map: Isle of Death

UAC scientists have discovered another portal to Hell. There's an isle of death on the other side. An infiltration team has been sent through to clear the area, but they haven't reported back … you're being sent in to discover what happened, and clear the area for further teams.

Doom II Map: The Halls of Æthelwulf

An ancient medieval citadel has been discovered under the Welsh Mountains, with help from documents obtained from the Mars Base during the first invasion of Hells forces. A team of archiologists has been sent in to learn more about the connections between the ancient martian civilisation, and medieval Britain.

But contact with the archaeologist team has been lost … you’ve been sent in to clear the citadel.

Favourite photos of 2020

At the beginning of 2020 I had planned to focus on my landscape photography a lot more, This was going to include dedicated days off work just for photography around where I live, some nice holidays abroad, and maybe some new kit. Well … holidays, remember them?

So, lockdown happened, and that kind of put an end to all my plans for the year. However, even during global pandemics, and the extreme restrictions required to beat the virus, there have been a few opportunities for some photography.

Doom II Map: The Gun Turret

A UAC Gun Turret has fallen under the control of Hells forces. Although the base was mostly staffed by Humans, the base was also testing some of the latest UAC battlefield weapons.

Using mind mapping software for project development

One of the plans for this year, a part from staying at home reminiscing of what travel used to like, was to focus on building this site and expanding the features that it provides. First, a little background. This site is 100% custom, it's not an 'off the shelf' template. everything you see here has been built, and designed by me. Over the years, I've tried a many different approaches to keeping track of things that need to be done, or ideas to implement, and bugs that need to be squashed.

Now, there are many project management tools available, that would fit this purpose, from simple task lists, to full blown tools providing reporting, gantt charts, agile stories, and kanban boards. For many projects, these tools can be very helpful, but for just me and this site, every one of them has always been overkill. I've tried to use these tools, but the complexity has just got in the way. I always kept finding myself going back to using a plain text file (well, actually an Apple Notes file for easy syncing between devices).

The problem of using text files

Text files are great for many things. They are simple, they can have their own structure. You can mix bullet points with text. They work everywhere. But, they have their downsides too, it's very hard to provide context within the document. Ideas that might be connected, can be separated into different sections, and loose context of how they relate to the wider subject.

Using mind mapping to keep track of things

I've always been intrigued by the idea of mind mapping. Connecting thoughts with links and hierarchies, and using colours to disguise intent behind each idea. But unfortunately, I've never had a good subject to play with them properly. It's very hard to just pickup and use a new piece technology without a good reason to need to use it.

When I first saw Mindmeister being demoed at a Ruby conference in Vienna, I suddenly had the thought that this could be a really good way to finally have a process to keep track of my plans for

Infrared Photography

Bright sunny summers days are not typically great for landscape photographers. Harsh shadows, and bright direct light don't typically make for good photographic conditions. Sunrises and sunsets offer the best light, but here in the UK, at midsummer, that means very early starts or late finishes. However, Infrared photography is a great approach to making the most of these challenging bright conditions without sacrificing too much sleep.

Use a short domain

Choosing a name for your website, your online identity, the thing you'll need to say to people all the time is very important. Ideally, you should choose a name that is short, unique, easy to remember and easy to spell. A good domain should be unambiguous, for example, and sound the same when spoken, but have very different meanings when written. It also helps to avoid ambiguity with numbers and characters that look or sound similar.

Favourite photos of 2019

2019 has been a great year for my photography. I started the year by upgrading from my EOS-M, which has served me very well, to an EOS-M5. Apart from the improvement in image quality and resolution, 18 megapixels to 24 megapixels, the extra manual controls have made using the camera much more natural, and the boost in image quality was so big, that I quite quickly decided to add some new lenses to make the most of all those new megapixels. I'm quite a frugal buyer, so I wanted to maximise performance for the best possible cost. Up until now, I've been using wide-angle zooms and standard primes, so I went all in and got a 70-200 F4 L, the base 'L' lens in the 70-200 range, but the image quality on a tripod is simply excellent. In addition to this, I also purchased a second hand 24-105 F4 L IS, the 'kit' lens from Canons pro camera bodies. For the price, this is also an excellent lens, sharp and versatile, but on the negative side, heavy and prone to chromatic aberration, but nothing that can't be fixed in post-processing.

New kit aside, this year also marked a return to simply going out with a tripod and taking my time to compose landscapes. Recently, most of my photography has been from walking and holidays. It's been quite satisfying to just take my time without any pressures or time contraints.

Results from promoting an Instagram post

How do some seemingly bland Instagram posts get so many likes, and why to all 'repost' accounts have so many many followers?

The answer is likely to be many and varied, involving gaming the Instagram algorithms, and upping your search engine optimisation, but the primary tool in Instagrams armoury is promoting posts. Unsurprisingly, they make it very easy for you to promote your own posts, so I thought I'd give it a go.

Bucket List

A shortlist of hopes and dreams, things to achieve, and memories to make.

  • Visit Svalbard
  • Learn to draw
  • Visit Iceland
  • Return to Japan
  • Visit Australia
  • See the Northern Lights
  • See The Milky Way from a dark sky site
  • Get my Photography published

Write a Weekly ToDo list

Keeping on top of all the tasks of modern life can be tricky. How many times have you got to the end of another weekend and ever wondered what you achieved in the week? Well, this happened to me all the time, until I started to keep a weekly todo list. The idea is simple:

  1. Get an A4 notepad.
  2. At the start of each week, on a new page, note the week number, and write down all of your tasks you want to get done.
  3. Keep referring to the list during the week, and tick off tasks as you complete them.

So, pretty obvious right? However, I’ve found this method really helps me because of a really simple thing: dedicating a whole, new, A4 notepad page to each week. Now, I generally only have a 5 or 6 tasks jotted down for each week, which means there’s a lot space on the page left over, perfect for making notes throughout the week, and it’s this act of making further notes throughout the week, that keeps you coming back to your task list.

Vancouver Island

A recent trip to Canada provided an excellent opportunity to photograph the beautiful landscapes around Vancouver Island. With outlying islands, dense old growth rainforests, rocky shorelines, and long sandy beaches; Vancouver Island has a treasure trove of photogenic scenes.

Starting from Vancouver city, just getting to the island is a fantastic experience, either take the 15 minute flight, or the 2 hour ferry, both offer great views.

New: Calculators!

I’ve been busy building a new section of the site dedicated to Calculators!.

Calculators are interesting things, especially when you can quickly change variables and see the result set update.

Calculators will become an important section for growth going forward. The first calculator to be released is a Compound Interest Calculator, illustrating the amazing effects of compounding interest in savings accounts. The calculator gives you access to all the data as the interest rolls up each year, as well as graphing the accumulation curve.

Making calculators as interactive as possible is one of the goals. In addition, all calculators will have a full API for programmatically accessing the result sets, or for creating direct links with starting parameters for the calculator to pre-populate the calculator. For example, Here’s a link to illustrate how £10,000 can become £34,582.51 over 10 years, and if you want to access the data directly, you can use a command line tool like cURL:


Simply appending .json to the path will automatically give you a JSON result set, which you can then use with other programs.

Can you make money completing online surveys?

At the beginning of December 2018, I’ve signed up to, to see if it’s possible to use online surveys as a reliable additional income source.

Prolific specialise in providing a platform for academic research, with typical surveys taking around 10 minutes, and an aim to pay around £8 per hour. Surveys are reserved on a first-come-first-served approach, meaning you need to have the survey's webpage open, or you'll miss out. Most of the time, there won’t be any surveys, with a handful of surveys appearing per day. I wasn’t continuously checking as I have my main job with Salesforce during the day, so I was very much checking Prolific during breaks and evenings. This would have reduced my potential to pick up all available surveys.

So, how much did I make? Over 1 month, I was successfully paid for completing 28 surveys, 2 surveys are pending payment, and 2 surveys failed to complete. Below are the successfully completed surveys that have paid out:

Reward Bonus Time
£1.00 £0.00 00:10:59
£0.42 £0.00 00:07:09
£0.95 £0.00 00:14:13
£0.20 £0.00 00:02:37
£0.42 £0.80 00:04:11
£0.60 £0.00 00:02:06
£0.13 £0.00 00:01:43
£0.52 £0.00 00:05:46
£1.20 £0.00 00:15:36
£2.00 £0.00 00:06:45
£0.40 £0.00 00:01:43
£0.20 £0.00 00:02:40
£2.10 £0.00 00:26:53
£1.50 £0.00 00:14:59
£1.30 £0.00 00:14:50
£0.70 £0.00 00:13:47
£1.25 £0.00 00:11:05
£1.09 £0.00 00:13:45
£1.00 £0.00 00:06:19
£0.37 £0.00 00:07:53
£1.20 £0.00 00:04:03
£1.10 £0.00 00:12:19
£1.00 £0.00 00:05:44
£0.75 £0.08 00:11:43
£0.50 £0.00 00:05:52
£0.61 £0.00 00:03:20
£0.20 £0.00 00:03:52
£2.10 £0.00 00:15:08

Together, over a month, this is a total of 4 hours and 7 minutes of work and paid a total income of £25.69, which works out to just over £6 per hour … not great. However, one thing that surprised me about this experiment was how engaging some of the surveys were. Although there were some pretty boring questions, there were some genuinely interesting questions, likely due to the academic nature of the surveys, but this was a small positive that I was not expecting.

Could I recommend this is a main income source? No, unfortunately from my brief time, I just cannot see how this would make a decent income. From what I can tell, surveys are a numbers game, the only way to make more money is to complete more surveys, which at £6 per hour is too little for the effort. Assuming you could complete surveys all day, a 10 hour day would only pay £60, with costs still to factor in.

Could I recommend this as an additional income source? Although it's only a small amount, Yes. However, you might need to consider any tax implications. Technically you should be paying tax on these earnings, which could decimate your potential for making any income, although the UK government have recently announced that you do not need to declare the first £1000 of non-employment income. Which means you’re unlikely to need to worry about this unless you have multiple non-employment income streams.

As a future experiment, I Might try running multiple survey sites in tandem, to see if better payouts are available.

The active income equation

Hourly Wage x Hours Worked = Active Income

This simple equation can be used to demonstrate the importance of understanding the value of your own time. As you can see, Active Income is directly affected by either how long you work, or by how much you're paid; increasing each of these will increase your total Active Income.

The first way to increase your Active Income is to increase the number of hours worked. This is probably the easiest to achieve, as your job might allow you to work additional hours, work overtime, or have a second job. However, there is only so many additional hours you can work, firstly, everyone needs time away from work to relax and enjoy, and secondly, it's impossible to work more than 24 hours in a day. because of these 2 constraints, increasing hours worked will only ever yield small improvements in your Active Income.

The second, and better approach is to increase your hourly wage. Unfortunately, many people greatly underestimate the value of their time. The sky is the limit when increasing your hourly wage. However, achieving a higher hourly wage is obviously harder to achieve, as this will require you to learn new skills and be willing to progress your career, or even change your career entirely. A quick method of increasing your hourly wage is to simply change companies. This can be hard, as you may have loyalty to companies, but in this game, you have to look after yourself, and if you feel there are better opportunities at another company you can often negotiate a higher salary and expectations of promotion.

Active Income will always be constrained by these 2 factors. If you're really interested in boosting your total income, you'll need to start making your money work for you. And this is called Passive Income.

© 2011–2024 Philip Balchin | About | sitemap | Colophon | RSS | π