Blip Blip…New Content Coming Soon

After a number of messages — from a fantastic readership — asking for updates, one more update to say that new content will come soon.

I’ve just been completely swamped with a wonderful project, which hopefully I will talk about soon as it finishes up phase 1.

I hope everyone is having a fantastic holiday season! Thank you very much to everyone who has hung around. I’ll swap over to the new engine early in the new year to force the issue.

dennis 😃

Okay just one more post (before the content switch-over)

Things have been…hectic. In a good way. The long promised switch-over will happen soon-ish.

In any case, several people have contacted me and detailed difficulty in getting in touch. I can be reached at

As a disclaimer on the post about office space (and this is true regarding virtually any post on subjective things): I’m not presenting my current criteria as better, superior, etc. There was a time in my life where my favorite office was on a major highway on the edge of the city in an industrial park. The neighborhood was dreary. There was absolutely nothing to do, and the single food option was the office complex food court. It was right for that time in my life when I wanted to get in, do the work, and get out. I’m in a situation now where my criteria is a bit different — not better or worse, just different — and I look for different things. Detailing that was just casual conversation patter and not a judgment on workplaces. The world is an endless number of shades and needs.


Last Post Before the Switchover

A few final updates before I switch over the content of this site (a topic that I’ll detail later in this piece).

Life has kept me very busy so it has been delayed a bit.

The Office

Recently I’ve been spending some time looking for office space in the limited time between project work. Not only do some engagements and situations benefit from it, I’m seeking more frequent changes of scenery and dynamics, and an ability to handle growth.

Office space is a fascinating, deeply subjective area where the things that should be prioritized vary dramatically for the person. In this case I’m able to decide based upon my own priorities, while considering future peers.

Commute and accessibility. Dynamics of the area. View. Neighbours. Coffee shops. Restaurants. A bakery and maybe some grocery options to grab a couple of things before heading home.

Commute matters a lot to me. I once spent a few years commuting over an hour each way and it was a trying experience. This varies dramatically by the person, with some enjoying that part of their day. I do enjoy the peace and quiet of a drive or a trip on the GO, listening to select music or podcasts, etc. It can be a nice daily time out.

An hour each way is just way too much, however, leaving too little of the day remaining.

imageaday 2018 08 17 by Dennis Forbes on

Dynamics…for a few years I worked in the core of Toronto, in the heart of Bay street. I spent lunches eating street food (miserable choices in Toronto) at Nathan Phillips Square, trying out restaurants, walking down to the waterfront, etc. I enjoyed it, but it quickly grew less novel. I learned that there’s a bandwidth beyond which additional options have a declining value. The same working in NYC. I love both cities, and if my life had me living there of course I’d love to work down there, but when it necessitates a grueling commute the payoff isn’t as worthwhile.

Given a giant plate of options and we winnow down to a tiny set of food options. A tiny set of coffee options. A tiny set of relaxation options.

For that reason I’m fine being in an exurb town. It has future growth potential problems given that it would require commuting from the broader area (though I am a big believer in telecommuting, with the office being an occasional converging point or option for others — the exception and not the norm), but that just isn’t as limiting as it once was.

But I want to be in a dynamic area, and am limiting my choices to those options. Where there are a number of lunch and coffee options. There are areas to run, or bike, or just sit at a park, and there are libraries and other public gathering places within walking distance (whether for hosting or participating in a workshop, volunteering, etc). Where there are layers of access options including buses.

I’m also limiting to an area with a view of something. Not a gray highway. Not an industrial wasteland. Some sort of interesting view.

There are a good number of options across the area, in the various nearby cores. It has made the choices more difficult than I imagined.

On How This Site Will Be Rebuilt

While the revised blog engine is still built in Go (with autocert, utilizing HTTP push, and a panoply of “cool shiny things”), I am going to abandon the blog format and its trappings.

No RSS. No feigned promise of regular updates.

No easy thought or opinion pieces that I too often resort to.

Instead just technical, “long form” pieces, each of which I’ve spent considerable time on.

I already have a number in various states of completion, each of which it felt like a waste intermixing with various facile passing pieces, or in the blog format where there is an implied time-sensitivity to the pieces.

Image A Day - 2018-08-14 by Dennis Forbes on

I have a piece on height mapping a property precisely with smartphones. Another related one on 3D representation of OpenStreetMap data with public elevation data. Another on a greenfield deep learning implementation. Another is just an interpretive, and arguably artistic, expression on technology.

And I’m just going to wash away every prior entry. It is a new slate. An about, a page of opinions, and then an index of long-form technical pieces that I’m proud of.

That transition is coming soon.

I absolute adore the people who I have as readers, and hope you enjoy some of the new pieces.


The Go-based Web Server

Every now and then I begin a project with little practical reason: There are existing, better alternatives; it doesn’t have a rational return for the time spent; etc. But I do it just as a diversion from other projects, particularly if I’ve been drawn away from a realm for a bit.

In this case I’m switching the presentation server of this blog (among other web properties) to a Go-hosted, protocol-buffer-persisting, in-memory SQLite-using minimalist server. Still edited and published from WordPress, but wholly detached from WordPress on the authoring side (on a hidden private server, pushing to the minimalist server side). I’ve gone through a number of blog engines over the years, including several custom built, and in this case it is a fun diversion to play around with HTTP Push and a few other techniques I’ve been curious to build around. I’ve delayed a couple of technical pieces until I publish it through that, with the first iteration hitting in the next couple of days.

My technical life otherwise lately has been primarily in deep learning, having been pulled into it for professional reasons. It has been amazingly rewarding — my favorite tasks are those that expose me to a lot of things that I don’t know — but I do like to expand out on occasion. My first iOS app release (e.g. wholly my own work, and not a contribution to another project) is imminent as well, so that should be fun.

So that’s a lot of coming soons. Coming soon!

The Mysterious Redirected Web Request

I was sitting at the kitchen table working on a project a while back when a commercial came on advertising “quick-cook weekday eggs“.

It’s an ad campaign from the egg farmers of Canada (this country uses supply management for the primary staple type items — cheese, chicken, dairy, etc — which means each has fairly robust advocacy groups and has a healthy state without enormous agricultural subsidies like you see in the US), presumably to remind people that eggs are a speedy cook even when time is limited.

I was curious if they really sold egg cartons with this weekday branding on it, so I pulled up Google and typed in “weekday eggs”. It suggested the autocomplete of “weekday eggs real” and to satisfy my curiosity if people really wondered, I chose that.

The top link was to “Introducing the new Weekday Eggs – Cossette“, a non-TLS http result on the responsible ad agency’s website. I clicked it.

I was greeted with a “YOUR FIREFOX BROWSER IS EXPLOITED” etc page. The classic scam page with blinking text, bold colours, and alerts on navigation exhorting you to pay for a solution.


I kill the tab and go through the process again but this time I get the ad agency site. In many recreations of this process I’ve never gotten the scam page again.

Paranoia rises. What was the source of this misdirection? Was the call coming from inside the house?

I immediately began an audit every piece of software on the laptop (Firefox itself being the latest, with a very minimal set of add-ons including uBlock Origin), then evaluating anything that could possibly be intercepting HTTP traffic. I am very cautious with the software that comes into my life so it’s a fairly achievable audit.

The laptop is a Lenovo Yoga 720, from a company notorious for their Superfish debacle. Could some of the laptop software be responsible for periodically intercepting legitimate connections? A thorough analysis, including with targeted debug sessions to see the entire call stack from Firefox through the operating system, seemed to exclude this possibility.

Then I had to look at my Asus Router (VPNFilter is making the rounds and while my router is behind a router is behind a router, there is always a possibility), and then to the cable company provided router. Did either of those interfere with normal traffic? I set up web tests to load a variety of HTTP resources around the net, verifying it for adulteration, logging every redirection.


I have no answers. This mystery pervades.

And in the end it could be malicious software on the other side. The site seems to be hosted on a bank of IPs that feature a number of other basic static sites, and it could be a shady revenue scheme to redirect a low enough percentage of requests that it could always be attributed to other things and waved away. At this point that seems the most likely scenario. Either that or my internet provider, or someone in between, is interfering with traffic.

So this post has no payoff in the end. I just had to document a mystery that still bothers me, returning to my mind-space more often than it should. It reminds me why TLS everywhere is so critical.