Splitting More Movie Formats

Plants on my desk.

I wrote Movie Splitter for us, my wife and I. We both have point and shoot Canon cameras that capture video in MPEG-4 format. The cameras have a nice feature called Auto-Hybrid. This feature captures a little video before each photograph we take and combines those little bits into a longer video. Over the course of a day or two taking photos, the compilation of little bits grows into a few minutes of treasured memories.

Some bits of video are better than others. We wanted to keep the better bits and remove the others. I wrote Movie Splitter to help us do that.

I published Movie Splitter on the Mac App Store at an unsustainably low price. Like most products on the store, it can never justify its costs.

Since then I have updated Movie Splitter when we wanted specific improvements. Rarely do I added functionality solely because of requests; I can not justify the time.

Recently I was contacted by a customer who had family footage they wanted to split. Their Canon PowerShot G15 camera, it turned out, saved Auto-Hybrid movies in a slightly different format. The request struck a cord with me for a few reasons: my assumption about Canon camera footage was wrong, the request was kindly written, and family footage is valuable.

More by luck than anything else, I have recently been messing around with video encoding for a side project. So my head was in the right place to tackle this problem.

We e-mailed back and forth figuring out what was wrong and what might make Movie Splitter work. We encountered the normal problems with video: tools silently altered the raw sample footage, sharing large files was a problem, and video file formats are inscrutable.

It took a couple of hours of work but I got Movie Splitter working for them. Their Auto-Hybrid family footage is now split into usable bits and will no doubt bring them joy.

New Formats

For everyone else, Movie Splitter now supports reading and exporting to more formats. I do not know which formats because that is not how this tool works. All I can say is that Movie Splitter definitely works with MPEG-4 but should now work with at least qt and mov video.

Movie Splitter will read any Apple AVFoundation supported video format. The only export formats allowed are those that will not re-encode the original content. The list of supported formats will change as Apple change AVFoundation.

A nice side effect of this “let AVFoundation decide” approach is that Movie Splitter can now export audio only versions of the movie being split. Is this useful? Probably not, but the feature came for free.

Nice Reviews

Despite an appalling average Mac App Store rating for Movie Splitter, I take comfort in most of the written reviews being overwhelmingly positive. Thank you to everyone who has taken the time to comment or leave a positive message. I am delighted to know Movie Splitter has helped you.

New in Movie Splitter v1.4.0

  • Added support all AVFoundation formats.
  • Added export to multiple pass-through formats.


Detail of a cherry blossom

Our long established cherry trees have burst into flower this week. The warmer weather has arrived and the garden is returning to life.

Cherry blossom
Cherry blossom
Detail of a cherry blossom
Detail of a cherry blossom
Detail of a cherry blossom
Detail of a cherry blossom

My work is keeping me trapped inside for the bulk of the day but, when I can in the late evening, I am outside.

Detail of plum blossom
Detail of plum blossom

Snake in the Grass

Snake in the grass
Snake in the grass

The texture of the snake gave it away. The light reflecting off the skin seemed out of place, somehow unnatural and unnerving. It took a moment to figure out what had caught me off guard. Once found, my only thought was getting the camera.

Easter Baking and Brambles

Hot cross bun split apart.

After too many years without, this is our first Easter with a proper oven. What better time than to bake some hot cross buns?

Ring of hot cross buns cooling on a rack.
Ring of hot cross buns cooling on a rack.
Hot cross buns cooling.
Hot cross buns cooling.
Hot cross bun split apart.
Hot cross bun split apart.

Spring and Brambles

Spring has officially arrived but the weather has yet to take note. I have never been so keen to see the greenery return to the landscape. The freezing cold has mostly finished, and now wind and rain is easing us into better weather. But not soon enough.

When time allows, I have been busy in the garden. We have decades of overgrowth to tame. The brambles are being particularly challenging. I have cut back the bulk and we have a compost pile four metres long by one and half metres tall. Sadly, this compost is unusable and will have to be removed or destroyed. The brambles will not be wiped out through the composting process and could return if I used the compost later.

A section cleared of brambles
A section cleared of brambles

The garden will take many years to resemble anything approaching our ambitions. The task of getting to that point will be more than half the fun.

Metal Studs and TV Mounts

Range of mounting bolts.

Mounting our television onto our internal wall took more time and effort than expected. Our internal walls have metal studs and thus defy traditional advice aimed at wood studs or brick walls.

We had long planned to mount our television onto the wall. The height of the television sitting on a low cabinet was not enough. When I reclined, my feet blocked part of the screen. The screen needed to be higher.

The house was designed to provide a small cozy area for our sofa and television. A comfy area to sit and relax in. To make the most of the space and to get enough distance from the sofa to the screen, the television needed to be mounted on the wall.

When the house was constructed we took careful note of where the metal studs were in the wall. Now the walls have been covered with plasterboard and painted, these measurements came into their own. We were able to quickly locate and confirm the centre of a metal stud. A cheap stud finder bought for the purpose reassured us long before the first hole was drilled.

I picked a nice articulating television mount. The mount is an arm that allows us to adjust the television’s position and turn it ninety degrees left or right. We could, if we wanted, view the television from the main part of the room.

Being on an arm means much more stress will be applied to the wall. A statically mounted television only has to worry about the television’s weight. A moveable arm might have to deal with clumsy manipulation, pulling, and pushing that makes the static weight seem trivial.

The mounting arm came with three huge bolts, rawl plugs, and a claim to include everything needed. This claim was quickly proved wrong.

The bolts were a shade shorter than our internal walls are thick. Drilling the right depth hole would have meant putting the bolt, not only into our wall, but through our wall and out of the other side.

Supplied bolt compared to our internal walls.
Supplied bolt compared to our internal walls.

Our first unexpected purchase was for suitable bolts. Slightly shorter but no less thick.

I drilled the three required holes. Each one hit metal as expected before escaping into an insulation packed cavity.

Throughout the process we told ourselves we could repair any damage we did. Small holes such as these would be nothing compared to the gaping gouges we repaired before painting the house.

We told ourselves patching and repainting one wall was doable. Not welcome, but doable. We had painted everything else, so one more wall was doable.

Insulation exploded out from the top hole.
Three holes drilled. Insulation exploded out from the top hole.

With three permanent holes drilled into the metal studs, we inserted the supplied expanding rawl plugs. These are the type that, when the screw thread grips, compress the plastic and it balls up on the other side of the stud. Once balled up the plastic can not be pulled back through the smaller channel ensuring a strong hold.

The three fancy rawl plugs were thumped into the wall and we were ready.

Megan held the mount while I screwed in the appropriately sized bolts for our walls. Three loose bolts we had bought from our local hardware store, with now very familiar staff.

Two bolts went in firmly. The third kept turning. However much I tightened the bolt there was always another turn possible. The rawl plug eventually turned with the bolt. Maybe the plastic had expanded and the bolt was now safe.

Megan slowly let the mount take its own weight. It held. For a few seconds. Then the mount tipped forward away from the wall a millimetre and then another. It stopped there. Leaning forward, with too much play in the mount to be trusted.

Megan took the weight of the mount again. I undid the bolts one at a time, hoping each would come back out. They did. The third rawl plug now jutted out from the wall, so no flush finish would be possible with the metal plate of the mount.

Three expanding rawl plugs failed to take hold.
Three expanding rawl plugs failed to take hold.

I used pilers and surprised myself by easily pulling out the turning rawl plug. The other two seemed firmly in place.

We took a moment and chatted nervously about our options. We had expanding metal bolts in the basement. Known as Molly bolts in the USA.

We would try those next. A metal bolt is going to be stronger and better than a plastic rawl plug. A little more serious in approach but better.

The problem of the two remaining rawl plugs worried me. We were boring away an increasingly large hole of plasterboard around the drilled holes. Once broken, plasterboard crumbles easily and every touch makes it worse.

I tried again with the pliers and, using enough force to slightly wobble the entire wall, yanked the rawl plugs out. Disappointingly neither had expanded. The bolt had not triggered the mechanism. Worse, the metal stud had stripped the outer plastic protrusions from the rawl plug. They had been stripped smooth by the sharp metal. Useless.

Had we trusted those two firmer plugs, our television would not have lasted long on the wall.

We now had three larger than planned holes in our once beautiful new wall.

We committed to trying the Molly plugs. We could always fix a damaged wall. I hammered the metal plugs in. The small teeth around the head gripped into the plasterboard.

Three molly style plugs ready to tighten.
Three molly style plugs ready to tighten.

As before, Megan once again took the weight of the television mount and I started tightening the bolts. As I turned the metal plug’s teeth took and then the head snapped. A circle of metal uselessly dangling against the painted side and a chunk of metal plug now permanently stuck in my wall.

The head is designed to come off but not during installation. Not now.

We could fix this one plug.

But it did not take long to face complete defeat. We tried tightening the other two Molly bolts. With each turn the teeth held for a moment and then carved away the plasterboard. Without grip the metal plug and bolt rotated together eating away our wall. No grip, no expansion, and no compression to make the mechanism work.

I pulled firmly on the bolts and each ensemble slid right out of the wall. Two useless bolts and metal plugs in hand, and one forever entombed in our wall. The entombed metal plug I pushed into the wall cavity and down out of the path of the hole.

A moment of defeat.

We knew we were defeated for the day. After tiding up, we returned the television to the low cabinet. For the next week, each time we watched television three holes stared back at us.

Our chatter at night turned to accepting the television might actually be OK on a nice higher piece of furniture. Fix up the wall and forget it happened.

I did more research. Molly plugs continued to be suggested as a solution. They would have been, had we used a specialised tool to help tighten them up. We know that now but at the time such a tool seemed optional. A lesson learnt.

Molly tools to avoid damaging the plasterboard.
Molly tools to avoid damaging the plasterboard.

With the plasterboard around the holes damaged, we needed a different approach. I found and ordered a box of toggle bolts. Toggler is the brand we stumbled upon first. A clever bar of metal with a plastic widget attached. The plastic widget helps manoeuvre the bar into place within the wall. After that everything is metal bolted to metal.

Box of Toggler bolts and the complimentary wood stud drill bit.
Box of Toggler bolts and a complimentary wood stud drill bit.

When the toggle bolts arrived I was keen to get them fitted and complete the job. Getting them into place was tricky. They wanted a larger hole through the metal stud than I had drilled.

My latest drill bit was not large enough and a sawing action was my only option to widen the hole. The approach worked but felt awful. The toggle bolt needs to go through the hole sideways and then be twisted into place within the wall. The hole thus has to accommodate not just the metal bar but also part of the plastic widget.

After fifteen minutes of fiddling, pushing, and jamming the toggle bolts were in place. They felt secure and I could see they were in place before needing to the screw in the bolts.

I had done this last part with the toggle bolts alone. Megan was out teaching and I was too impatient to wait. Now I had to wait for Megan to come home. Fitting the mount itself was a two person job.

Megan was met by the sight of three protruding plastic strips and a husband keen to explain his achievements.

Three toggle bolts. Top two plastic tightened. Bottom bolt remaining to tighten.
Three toggle bolts. Top two plastic tightened. Bottom bolt remaining to tighten.
Three toggle bolts with plastic trimmed off.
Three toggle bolts with plastic trimmed off.

For the third time, Megan took the weight of the mount. This time, when she let go the mount held. It stayed in place with no trace of movement or wobble. We had gotten away without needing to repair or repaint the wall. The mount was secure.

Television mount secure and ready to use.
Television mount secure and ready to use.

We carefully completed the task of fitting the television to the arm. It took a while before we were comfortable fully extending the arm and placing the greatest strain on the mount and the wall fitting. It all held.

Fully extending the arm was nervous racking.
Fully extending the arm was nervous racking.

Since then we have altered the position of the television only a little. The new height of the screen is excellent and our cozy area is working well.

I am not rushing to drill any more holes in our walls just yet.


Looking out from a central square in the village

We visited Charroux with visiting family. The small hilltop village had been recommended to us. Certainly pretty but maybe better in the summer months, than the winter. The small village was quiet with the few other tourists rugged up.

Charroux shield carved in stone
Charroux shield carved in stone
Gatehouse in Charroux
Gatehouse in Charroux
Church tower in Charroux
Church tower in Charroux
Wall mounted sundial in Charroux
Wall mounted sundial in Charroux
Autumnal leaves.
Autumnal leaves.
Hearts carved into window shutters.
Hearts carved into window shutters.

We will no doubt return in the future, when the weather is better.

Medieval Moulins

Above the shops in Moulins

Moulins is the administrative centre of our region. The city is home to the Préfecture de l’Allier and thus a city we have had to visit a few times.

It is a pretty city, with plenty of history on show. An easy place to take beautiful photographs.

Moulins Cathedral
Moulins Cathedral
Rooftops in Moulins
Rooftops in Moulins
Colourful enduit in Moulins
Colourful enduit in Moulins
Medieval street in Moulins
Medieval street in Moulins

Creating the Signpost Application and Subscriptions

Miln Signpost - macOS application icon

Miln Signpost is the strangest macOS application I have written. Strange because it provides something I find magical and because it seems unlikely to find a waiting audience.

I explain what Signpost does on miln.eu/signpost but the short answer is:

Signpost provides local domain names without a DNS server

For many, probably most, this description is cryptic and too technical to be useful. Explaining what Signpost does is a problem I have not found a good solution to. I can not justify making the time to market this oddball product; for now it will sit quietly waiting to delight those who stumble upon it.

Miln Signpost – mDNS for macOS
Miln Signpost – mDNS for macOS

Signpost was written as an experiment. I wanted to know what writing a modern Mac application would entail. How much legacy code could I avoid? What new techniques or frameworks have appeared since I last started a brand new Mac application.

Typically I develop Mac applications with a view to supporting as many versions of macOS as possible. The larger the number of supported versions, the larger the audience.

Signpost supports only the latest version of the Mac operating system, macOS 10.13.

I discovered there have been very few major changes I needed to care about. The recent macOS versions have been reasonably stable for core application frameworks. I could add support for older versions of macOS without too much additional work but the true cost will be in testing and maintaining that test environment.

There have been improvements that I have appreciated: the shift away from paths and file specs to using URLs almost everywhere, a better table view model, and code blocks in-place of callback function pointers were all welcome.

Not every change is an improvement. I morn for CoreFoundation’s hundreds of deprecated functions. Many other Core* frameworks are also littered with deprecated pragmas. Pragmas too often without hint of a replacement. In these situations a knowledge of the underpinning unix layer continues to be valuable. Over the years, I have often had to drop down a layer of abstraction. It seems Apple is lessening its desire to hide those lower layers.


Signpost was also an experiment in in-app purchases and subscriptions.

For this application, I wanted to offer a subscription for payment. One time purchases of software do not provide enough stable income to cover the costs of niche products. Subscriptions, even inexpensive annual ones, might be more sustainable. I wanted to use Signpost to see what would be involved in a new payment model.

For Signpost to support subscriptions, I needed to create a surprising amount of subscription specific functionality. Functionality like an in-app store, legal confirmation dialogs, and a server side receipt handling system.

Miln Signpost - supported by subscriptions
Miln Signpost – supported by subscriptions

I had presumed Apple, who accept and manage the subscriptions, would handle most of this but they do not. Every application needs to replicate the same functionality over and over. Remember Apple own the customer and the transaction. If you pay for Signpost, you are not paying me. You are paying Apple.

So now, thanks to Signpost, I have a good chunk of the infrastructure to handle subscriptions with – or without – the Mac App Store.

Will subscriptions help? It is difficult to believe they will for Signpost. But maybe for future products. After all, I have been through the process once and I have learnt what is entailed.

You can get Signpost now from the miln.eu.

Change in Domain Registrars

A skateboarder caught mid-air at London's South Bank.

I manage a handful of domain names. Regrettably I had to move them to a new domain registrar. My former registrar had succumbed to temptation and had begun messing around.

A domain registrar is a company that manages the record of your domain names. Customers pay for annual renews of the domain. In return, the registrar is responsible for maintaining and pointing the domain record to a set of domain name servers. Once set up, there is little need to interact with or think about your domain registrar.

Like web hosting, domain registrars are subject to a cut throat market and little incentive to remain lean and transparent. Over time adds-on, up-sells, and eventually snake oil side offerings start making their way into these business’ practices.


I chose Hover because the company supports podcasts I enjoy, such as Hello Internet and Accidental Tech Podcast.

The move to Hover is ongoing and has not been smooth. Below are a few grumbles of my experience.

Better International Domain Support

Among the domains I transfered were .uk and .eu domains. These required interacting with a member of Hover staff to transfer. I am not sure why; the process can clearly be automated from the customer’s side.

I want to avoid having to contact you during your working hours. Our time zones do not align well.

Please Hover, let me transfer .eu and .uk domains via a web form.

Hide the Expiry Date

While the .com domains were being transfered, they appeared as pending in my account. This is reassuring. Less reassuring was the incorrect expiry date shown. The date was one year from the date of requested transfer. I understand why this date was shown but it is always incorrect from the customer’s perspective.

Please Hover, hide the expiry dates of pending domains until known.

null in Billing Address

Within my Hover account, the card billing address shown contains the word null. It appears either the optional Address 2 or State/Province field is being incorrectly handled. These small errors undermine confidence in your systems.

Please Hover, fix the card billing address.

Fix .eu Domain Privacy

Hover’s policy on .eu domain privacy is incorrect. The policy currently reads:

Note: WHOIS Privacy is available for more TLDs, but there are some exceptions. For instance, .CA and *.UK allow WHOIS Privacy for individuals, but not for companies. Some do not allow WHOIS Privacy at all, for example, .SEXY, .DE, .EU, and .US. And then there are others, such as .AT, that allow WHOIS Privacy only in very specific instances.

Page 4 of .eu WHOIS policy reads:

When the Registrant is a natural person (private individual) the Registrant contact information published is restricted to the e-mail address, unless they request otherwise.

According to the same .eu document, privacy is available so long as the Organisation field is left blank.

Sadly Hover’s web site enforces a non-blank Organisation field. This is a serious but hopefully easy to fix bug.

Please Hover, allow blank or empty Organisation fields!

Hover requires an organisation field; it must be optional.
Hover requires an organisation field; it must be optional.

Share Information

Stop sending public forum responses by private e-mail. Too often when researching Hover’s support forums, I found company replies that said “An email is on it’s way to you, keep an eye out for that.”

Often these threads continued with other customers also asking for the same reply. This behaviour quickly reduces the value of the thread to near zero; clearly an answer exists but Hover will not make it public.

Hover support forum.
Hover support forum.

Please Hover, answer as much as possible publicly.

Stop Sharing Information

I run ad-blocking software on my browser. It was annoying to have to turn this off to use the Hover web site.

Hover, why are relying on so many third party injected scripts and widgets? Treat paying customers’ activity and information with care and privacy. Allowing numerous third parties insight into my actions on my account is, at best, unsettling.

Once I login to a pay-for service, I want to see a serious reduction in advertising beacons and injected third party scripts.

As of February, 2018, the following domains are connected to, in addition to hover.com, when loading my Hover dashboard page:

  • a.quora.com
  • analytics.twitter.com
  • cdn.ravenjs.com
  • connect.facebook.net
  • de12.zopim.com
  • fonts.googleapis.com
  • googleads.g.doubleclick.net
  • p1.answerdash.com
  • q.quora.com
  • rs.fullstory.com
  • static.ads-twitter.com
  • stats.g.doubleclick.net
  • t.co
  • v2.zopim.com
  • www.facebook.com
  • www.fullstory.com
  • www.google-analytics.com
  • www.google.com
  • www.google.fr
  • www.googleadservices.com
  • www.googletagmanager.com

Every company operating a domain in the list above can track my activity. This is after logging into a pay for service.

Please Hover, reduce your web site dependencies on third party scripts, beacons, tags, and widgets.


One of the addresses associated with my Hover account contains the accented character, è. This character does not render correctly on the dashboard page. The character instead appears as è. I am running the latest Safari on macOS.

Please Hover, ensure your web site handles and serves unicode encoded content.


I am sure there will be more grumbles later. If so, I will add them here, and if Hover fix any of these – and let me know – I will also update this page.


  • Added 3rd party domains.
  • Noted internationalisation bug.