There is only one way to avoid criticism:
do nothing, say nothing, and be nothing.
— Aristotle (via forbes)

(Source:, via forbes)

518 notes


So this was pretty cool.

0 notes

Using JavaScript to Identify Whether a Server Exists

Recently, for reasons I’m sure I’ll write about in the future, I needed to find a way to use JavaScript to test if either of two web-locations are accessible – my home intranet (which would mean the user is on my network), or the corporate intranet of the company for which I work (which would mean the user is on my organization’s network). The page doing this test is on the public web.

My solution for doing this test was simple. Since neither resource is accessible publicly I put a small JavaScript file on each, then I use AJAX and jQuery to try and fetch it. If that’s successful, I know the user has access to whichever intranet site served the request and my page can react accordingly.

If neither request is successful I don’t have to do anything, but the user doesn’t see any errors unless they choose to take a look in the browser console.

This all worked wonderfully until I enabled SSL on the page that needs to run these tests, then it immediately fell apart.

Read More →
0 notes


There is nothing quite so useless as doing with great efficiency something that should not be done at all. — Peter Drucker, Educator and Author (via forbes)

(Source:, via forbes)

148 notes

Being Smarter by Not Thinking

There’s a popular myth that says we only use 10% of our brains.

It’s simply not true. Studies (including the source of all scientific truth: an episode of MythBusters) have proven that all areas of the brain have a function, and while the percentage that we’re “using” at any given time varies by task it can certainly exceed 10%.


One thing that seems very obvious to me without needing to cite a study about it, however, is that I certainly have unused brain capacity, and it can do amazing things when you leave it to its own devices.

As an example of what I’m talking about, I refer you to a link I posted on this very blog some time ago: Why Great Ideas Always Come in the Shower (and How to Harness Them).

In the brief commentary I added, I mentioned that never in my life have I had a good idea in a meeting. Great ideas come to me while I’m doing other things. Specifically, other things that do not take much in the way of thought and offer little in the way of distraction: things where my brain gets left to it’s own devices and has an opportunity to wander – showering, certainly, but also commuting, trying to get to sleep at the very end of the day (infuriatingly), and when I’m at the gym.

Talking of the latter one, I haven’t been to the gym for quite some time.

Read More →
0 notes


Six phases of a project

Six phases of a project

7 notes


The journey of a thousand miles starts with a single step, in the opposite direction— Me, reflecting on some meetings I’ve had recently

Sometimes you need to take a step back and learn to walk before you try and run.

1 note

New Code Projects: Backblaze B2 Version Cleaner & VBA SharePoint List Library

It’s been a while since I’ve posted code of any description, but I’ve been working on a couple of things recently that I’m going to make publicly available on my GitLab page (and my mirror repository at

Backblaze B2 Version Cleaner

I wrote last week about transitioning my cloud backup to Backblaze’s B2 service, and I also mentioned a feature of it that’s nice but also slightly problematic to me: it keeps an unlimited version history of all files.

That’s good, because it gives me the ability to go back in time should I ever need to, but over time the size of this version history will add up - and I’m paying for that storage.

So, I’ve written a script that will remove old versions once a newer version of the same file has reached a certain (configurable) “safe age.”

For my purposes I use 30 days, so a month after I’ve overwritten or deleted a file the old version is discarded. If I haven’t seen fit to roll back the clock before then my chance is gone.

Get the code here!

VBA SharePoint List Library

This one I created for work. Getting data from a SharePoint list into Excel is easy, but I needed to write Excel data to a list. I assumed there’d be a VBA function that did this for me, but as it turns out I was mistaken - so I wrote one!

At the time of writing this is in “proof of concept” stage. It works, but it’s too limited for primetime (it can only create new list items, not update existing ones, and each new item can only have a single field).

Out of necessity I’ll be developing this one pretty quickly though, so check back regularly! Once it’s more complete I’ll be opening it up to community contributions.

I have no plans to add functions that read from SharePoint to this library, but once I have the basic framework down that wouldn’t be too hard to add if you’re so inclined. Just make sure you contribute back!

Get the code here!

0 notes

Raspberry Pi Whole Home Audio: The Death of a Dream?

If you’ve been following my blog for a while, you’ll know that I’ve written a whole series of posts on my efforts to take a few Raspberry Pis and turn them into a DIY whole home audio solution.

If you’ve ever looked at the product offering within the whole home audio space, you’ll know that setting such a thing up is either cripplingly expensive, involves tearing the walls apart to run cables, or both.

Where we left off I’d put together a solution that was glorious when it worked, but that was rare. Typically the audio was either out of sync between the devices right from the get go, or quickly got that way.

Read More →
0 notes

Cloud Backup, Episode III

I’ve written a couple of times before about what I do to backup all my important data.

My last post on the topic was more than a year ago though, so I’ll forgive you if you’ve forgotten. Here’s a recap: originally I was using a fairly traditional consumer backup service, ADrive. This worked well because they’re one of the few services that provides access by Rsync, which made it easy to run scripted backup jobs on my linux server. Their account structure didn’t really meet my needs, however: you pay for the storage you have available to you, not what you use. When I hit the upper limit of my account the next tier up didn’t make financial sense, so I switched.

About 15 months ago I moved my backups over to Google’s Cloud Platform. This gives me an unlimited amount of storage space, and I just pay for what I use at a rate of $0.02/GB/Month. This has been working well for me.

In December I found Backblaze B2. They offer a service very similar to Google’s (or Amazon S3, or Microsoft Azure, or any of the other players in this space that you may have heard of), except they cost a quarter of the price at $0.005/GB/Month. There’s even a free tier, so you don’t pay anything for the first 10GB. When I first looked at them their toolset for interacting with their storage buckets really wasn’t where I needed it to be to make them viable, but they’ve been iterating quickly. I checked again this week, and I’ve already started moving some of my backups over.

Read More →
0 notes