Having mentioned the Toggler bolt in my last post, below is a better photo.
The bottom photo is misleading. The bolt goes into the metal bar from the opposite direction, between the plastic strands.
Having mentioned the Toggler bolt in my last post, below is a better photo.
The bottom photo is misleading. The bolt goes into the metal bar from the opposite direction, between the plastic strands.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
We will no doubt return in the future, when the weather is better.
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.
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.
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.
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.
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.
Among the domains I transfered were
.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
.uk domains via a web form.
.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.
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.
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!
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.
Please Hover, answer as much as possible publicly.
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:
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.
This will be our first year celebrating Christmas in our new home. The transition from city to country continues to be the most dramatic lifestyle shift I have known.
Having successfully banished our need for a physical phone from upstairs, everything changed. My Raspberry Pi is being repurposed for a family member and I now have a Synology DiskStation.
Thus I needed to find a way to run Asterisk on my Network Array Storage (NAS) device. Asterisk provides Voice Over IP (VoIP) and it needs an always on computer to work. Previously my Raspberry Pi performed that role, now my DiskStation must take its place.
I knew that Docker would be part of the eventual solution but I was surprised by how long it has taken to find workable images and settings.
What follows are my notes for getting this working.
Synology provide a Docker package through the Package Center. Using this edition of Docker, I settled upon the following image by Andrius Kairiukstis:
Launch this image with the following settings:
The setting Use the same network as Docker Host is important. This allows Asterisk to open ports and communicate without restriction. Ideally it would not be required but Synology’s Docker web interface is limited. The required port range options are not yet exposed.
By applying Use the same network as Docker Host there is no need to specify port mapping or exposing ranges. The container is free to open ports and chatter away. This does go against the contained nature of Docker but for this situation it bypasses many problems.
Next set up Asterisk. Create a terminal session to the running Docker container. Do this by Secure Shell (
ssh) into the Synology and connect to the Asterisk container using:
sudo docker exec -it asterisk-alpine sh
The container is named
asterisk-alpine in this example and
sh is the command to execute.
Issue these commands to add any desired extras to Asterisk:
apk update apk search -v 'asterisk*' apk add asterisk-sounds-en
I did not immediately need any extra files but any use of the talking clock or answer machines will.
Repeat the configuration of the Raspberry Pi to set up lines and connect to the GrandStream HT-503 box.
Once set up, the
asterisk-alpine container consumed 24 MB of RAM and less than 1% CPU, and requires 33 MB of storage.
For the first time in years, we watched snow falling while feeling warm.
The snow arrived a few days ago. A welcome flurry of flakes just in time before our guests had to head home. When our guests arrived, Autumnal leaves were still on the trees; as they left, we drove through a stunning snow covered landscape.
Being able to stand inside and look out across a snowy landscape is a treat. Being warm while doing so, is a delight and a relief.
We enjoyed having our first visitors to stay. It was an opportunity to see if the house design worked with guests, it did, and to take numerous photos, I did.
Our house is not luxurious but it is warm and designed to make use of every square metre. We do not have a dedicated guest room. When guests come to stay, we transform what has become Megan’s office into the guest room. The transformation gives our guests their own bathroom, privacy, and a little space to themselves at night.
We experienced how well this arrangement worked when we visited friends in London. This was something more than a simple en-suite. Having your own bathroom and space as a guest is wonderful. We later saw this approach reappear in house plans suggested by various builders. In those plans, the separated area was marketed as being for the parents or master bedroom.
We took that experience on board. In our design we adapted the idea and instead ensured guests would benefit, rather than the master bedroom. At this stage of our lives, we like the idea of a family section of the house and a shared family bathroom.
Our house design confused the builders. They assumed uses of the spaces that were never intended. At times that caused quizzical exchanges.
What we have built is particularly attuned to our needs. This then was our chance to see if the design worked for guests. I think it did.
With guests in tow, I have been out and about taking more photos than usual. Below are a few photos that particularly stand out.