Thoughts and observations

22 April 2017

Week 16, 2017

When I was studying I spent a lot of money on textbooks that I barely used. Here is a textbook trying to change that. A stats textbook is also coming later this year.


This week I learned that the ‘Fearless Girl’ statue installed in front of ‘Charging Bull’ on Wall Street was part of a marketing campaign for NASDAQ listed SHE. I wasn’t aware of the history of ‘Charging Bull’ either. I’m less excited by ‘Fearless Girl’ knowing that the original guerilla art is being subverted by faux-guerilla art. On balance though, I do like it and hope it sticks around. Read more here.


This week The Guardian ceased publisher articles on Facebook’s Instant Articles and Apple News. Particularly when Instant Articles launched there was a lot of bluster about saving journalism, but this was wishful thinking from the start. Publisher’s absolutely need to provide great reading experiences that load quickly, but farming the content out to platforms you don’t control won’t magically create a loyal and profitable audience. The Verge has a good piece breaking it down.

Incidentally, I was linked to an interesting article on Variety from Twitter, which I tried to read on my phone earlier this week. The page was so clogged with interruptive scrolling units that I gave up. I had intended to try again on my laptop but can’t remember what the article was. You can be sure I won’t be clicking through to that property again any time soon. I can’t tell if publishers don’t care or just don’t realize how awful the reading experience on their mobile sites is.

15 April 2017

Week 15-17: Luck

In an attempt to start writing again, I am trying a new format collecting interesting things from the past week.


I read Investing Is More Luck Than Talent on the statistics of wealth distribution. Levy argues “the distribution of wealth at the highest end of the scale is quite consistent with pure luck.” It’s an interesting read.

Also related, Corporations In The Age Of Inequality describes how firm inequality is a significant contributing factor to individual inequality. Bloom writes:

In an increasingly winner-take-all or at least winner-take-most economy, the best-educated and most-skilled employees cluster inside the most successful companies, their incomes rising dramatically compared with those of outsiders.

We need to work out how to move beyond simply talking about income inequality, and start practically fixing the problem. The tax system seems a good place to start, along with investing more in education and health.


Compile clac if you need a postfix (Reverse Polish Notation) Terminal calculator. I’ve used a HP RPN calculator for many years and much prefer it to infix notation.

19 October 2016

Stop reading the news

One week ago I stopped reading the news. As a child I devoured books. On holidays I would read an entire Tolkien book in a single day. And at university, I spent hours each day reading books and papers. I like to think I still spend as much time reading, but mostly it is industry specific or world news rather than longer reflective analysis or books: noise.

Six months ago my reading habits were better but still not ideal. My Sunday morning practice was to read The Economist supplemented with occasional articles through the week and a quick scan of a few technology blogs most mornings. I can’t recall what brought about the idea but I decided to try Apple News. It was also about this time that my Twitter usage began increasing.

Since my habits changed I have may have had a greater awareness of reported events, yet I haven’t felt better informed. Instead, a growing sense of unease has bothered me. At times I became anxious when I realised I hadn’t checked the news or noticed growing number of unread tweets. Worse still I knew that much of what I was reading was the intellectual equivalent of junk food. None of it mattered.

I am not the only one experiencing these feelings. Last month Andrew Sullivan writing New York Magazine:

And yet I wonder. The ubiquitous temptations of virtual living create a mental climate that is still maddeningly hard to manage. In the days, then weeks, then months after my retreat, my daily meditation sessions began to falter a little. There was an election campaign of such brooding menace it demanded attention, headlined by a walking human Snapchat app of incoherence. For a while, I had limited my news exposure to the New York Times’ daily briefings; then, slowly, I found myself scanning the click-bait headlines from countless sources that crowded the screen; after a while, I was back in my old rut, absorbing every nugget of campaign news, even as I understood each to be as ephemeral as the last, and even though I no longer needed to absorb them all for work.

This resonated with my fears of slowly losing control and endlessly being drawn back into the glow of my stupid phone. But, as is common with many of these articles, it’s conclusion amounted to little more than ‘although it’s hard we need to unplug else it’ll cost us dearly.’ I agree but this was challenging to apply.

Last Friday I came across Rolf Dobelli’s article Avoid News. Rolf puts forward a number of concerns about the format and consumption of modern news. I was particularly struck by Rolf’s arguments that news is both costly and mostly irrelevant. Time spent reading the news quickly accumulates even if one’s consumption is limited to only a single session per day. The irrelevance of news was less obvious to me. Rolf’s argument is this: apart from its possible entertainment value, the news does not substantially increase the quality of your life.

Assume that, against all odds, you found one piece of news that substantially increased the quality of your life – compared to how your life would have unfolded if you hadn’t read or seen it. How much trivia did your brain have to digest to get to that one relevant nugget? Even that question is a hindsight analysis. Looking forward, we can’t possibly identify the value of a piece of news before we see it, so we are forced to digest everything on the news buffet line. Is that worthwhile? Probably not.

Thus I am choosing to spend more time reading long form articles and analysis rather than reading the news. When important news does occur I’ll simply read it a few days later and get the complete picture. To help me in this, I’m looking forward to subscribing to more periodicals and perhaps a Saturday newspaper.

For the time being, I’ve deleted Apple News and buried Twitter on my phone. I’ll likely remove Twitter from my phone in preference for accessing it occasionally from my computer. Goodbye, news.

13 June 2016

Improving performance of Jekyll with Cloudflare and Google App Engine

The thoughts and links I share here are brief. Similarly, I like to keep page load time brief. No one likes to wait for pages to load.

In an experiment to learn more about HTTP/2 Server Push and Google App Engine I moved my blog generated using Jekyll from Github Pages to Google App Engine with Cloudflare in front. A feature of Github Pages is that it ‘just works’ at the cost of customisation. Google App Engine is a cloud computing platform for web applications and offers complete customisation at the cost of greater complexity, and Cloudflare supports HTTP/2 Server Push via the Link header which is easily specified for static assets served by Google App Engine.

If you’re using Chrome 53 or later, the resource inspector shows resources which have been pushed.

Inspector: blog.jramsay.com.au

While setting up Google App Engine I encountered some challenges using regex url handlers and preferred generating the url handlers as part of the Jekyll build step. After all, Jekyll knows the URL of every page it generates. To do this I wrote a simple Jekyll plugin: jekyll-app-engine.

Interestingly while writing the plugin, I discovered Ruby’s YAML implementation automatically uses anchors and aliases when writing objects to a YAML string. I quickly discovered this was problematic for my purposes because support for anchors and aliases is not implemented in the Google App Engine SDK. This quickly turned my simple adventures in Ruby into a more complex exploration of both the SDK and Ruby’s YAML library Psych. In the end I settled for sub-classing Psych’s YAMLTree and setting the alias lookup object to a new empty object. If any Rubyists have ideas for a better solution, please let me know.

27 April 2016

Marketing Malpractice: The Cause and the Cure

From the HBR archives, this is one of the classic papers behind Jobs To Be Done (JTBD):

In other words, the job, not the customer, is the fundamental unit of analysis for a marketer who hopes to develop products that customers will buy.

I’ve recently been reading the The Clayton M. Christensen Reader and am enjoying the time spent thinking through the ideas behind the processes and tools of JTBD.

If you’ve never read any of Clayton Christensen’s papers but find JTBD interesting, reading this paper would be time well spent.

5 March 2016

Widespread XSS Vulnerabilities in Ad Network Code Affecting Top Tier Publishers, Retailers

Randy Westergren writes:

Any time we allow 3rd party scripts to run on our sites, we effectively relinquish control of the code that executes on the client. This is particularly important when integrating ad network scripts since they are inherently more dynamic than most other types of integrations, the cause of which is the ad industry’s general fragmented nature.

Randy details the vulnerability and lists high profile vulnerable sites including The Telegraph, NYPost, CBS News, NBC News, NYTimes, MSN, Washington Post and the BBC.

It’s always surprised me that publishers are so willing for third-party scripts to be served to their customers over the RTB exchanges without any real quality control tools. Even guaranteed advertising presents quality control challenges for publishers who are limited to sampling the responses of agency ad tags, rather than being able to examine the underlying creative or tracking scripts directly or be notified of changes being made by the buyer.

Given vast coverage of advertising across the web and their vulnerability to XSS attacks, it is surprising so few have attacks have been documented. Yet another reason to run an ad blocker, despite the financial hurt they cause to publishers.

Archive