<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Brian Willis</title>
    <link href="http://brianwillis.com/atom.xml" rel="self"/>
    <link href="http://brianwillis.com/"/>
    <updated>2025-11-22T07:41:43+00:00</updated>
    <id>http://brianwillis.com/</id>
    <author>
        <name>Brian Willis</name>
        <email>brian@brianwillis.com</email>
    </author>

    <entry>
        <title>Hacker Laws</title>
        <link href="https://hacker-laws.com/"/>
        <updated>2025-10-11T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2025/10/11/hacker-laws</id>
        <content type="html">&lt;p&gt;While attaching the word “hacker” to everything even remotely technical is getting a bit tired, there’s plenty of gems in this guide from &lt;a href=&quot;https://dwmkerr.com/&quot;&gt;Dave Kerr&lt;/a&gt;. I haven’t seen &lt;a href=&quot;https://hacker-laws.com/#brooks-law&quot;&gt;Brook’s Law&lt;/a&gt; since I was at university:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Adding human resources to a late software development project makes it later.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;…but experience has shown me that it’s true in practice.&lt;/p&gt;

&lt;p&gt;While we’re at it, every new developer needs to know &lt;a href=&quot;https://hacker-laws.com/#kernighans-law&quot;&gt;Kernighan’s Law&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With each passing year, I get a little bit less impressed with clever code. Your first priority in writing code that will outlast you isn’t making it performant, “elegant” (whatever that means), or necessarially even correct. Your first priority has to be maintainability, because if it’s not, your code will be replaced or abandoned before those other things start to matter.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Frank Lloyd Wright’s Last Home Has Been Completed</title>
        <link href="https://www.dezeen.com/2025/03/20/final-usonian-home-riverrock-frank-lloyd-wright-ohio-completed/"/>
        <updated>2025-04-27T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2025/04/27/frank-lloyd-wrights-last-home-has-been-completed</id>
        <content type="html">&lt;p&gt;I can’t begin to tell you how happy this makes me. Even well maintained mid-century modern homes usually look tired after decades of use. To see one that’s fresh, and mostly true to the original design (with a few modifications here and there to comply with modern building codes) is indeed a sight to see. All the Wright trademarks are included—compression and release, natural materials left uncovered by carpet or wallpaper, and of course cement floors in Cherokee Red.&lt;/p&gt;

&lt;p&gt;Frank Lloyd Wright died in 1959 and the American landscape is dotted with his homes and high-rises. Usonian homes like this one harken back to Herbert and Katherine Jacobs, who in the 1930’s challenged Wright to come up with more modestly priced homes for regular people. There’s a &lt;a href=&quot;https://99percentinvisible.org/episode/usonia-1/&quot;&gt;great episode of 99% Invisible&lt;/a&gt; about Usonian homes if you’re interested in learning all the history.&lt;/p&gt;

&lt;p&gt;Now that it’s open for use, the River Rock House has &lt;a href=&quot;https://www.riverrockhouse.com/&quot;&gt;its own website&lt;/a&gt; and is available for rent at the completely absurd price of US$1,341 a night. Being so close to the bright lights of Cleveland surely raises the price a bit.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Deadlock Empire</title>
        <link href="https://deadlockempire.github.io/"/>
        <updated>2024-12-15T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2024/12/15/deadlock-empire</id>
        <content type="html">&lt;p&gt;This one has been kicking around on my to-do list for a while now, but I’m glad I finally got to it as part of my end-of-year purge.&lt;/p&gt;

&lt;p&gt;Deadlock Empire is a game you can play to learn about locking and parallelisation in C#. If you’re a C# developer it’s worth your time to give it a shot. I’ve not worked with the &lt;a href=&quot;https://learn.microsoft.com/en-us/dotnet/api/system.threading.barrier&quot;&gt;Barrier Class&lt;/a&gt; before, so that was fun to learn about.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Addiction Culture</title>
        <link href="https://www.honest-broker.com/p/the-state-of-the-culture-2024"/>
        <updated>2024-03-10T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2024/03/10/addiction-culture</id>
        <content type="html">&lt;p&gt;Ted Gioia writing at &lt;a href=&quot;https://www.honest-broker.com/&quot;&gt;The Honest Broker&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The tech platforms aren’t like the Medici in Florence, or those other rich patrons of the arts. They don’t want to find the next Michelangelo or Mozart. They want to create a world of junkies—because they will be the dealers.&lt;/p&gt;

  &lt;p&gt;Addiction is the goal.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I don’t have a lot to add to this great post, except to say that this worries me too. I used to read considerably more than I do now, but I find that long-form writing is hard to stick with these days.&lt;/p&gt;

&lt;p&gt;Last year, I did a month where each day I’d set a timer for a half hour and force myself to read without distractions. I was surprised by how much I grew to resent this exercise. As the month wore on I started to dread doing it. I did make it over the finish line, but didn’t create a new daily habit as I had hoped I would.&lt;/p&gt;

&lt;p&gt;There’s a re-wiring of our brains that’s happening here, and it’s not good for us.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>The Most Scathing Book Reviews of 2023</title>
        <link href="https://lithub.com/the-most-scathing-book-reviews-of-2023"/>
        <updated>2023-12-31T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2023/12/31/the-most-scathing-book-reviews-of-2023</id>
        <content type="html">&lt;p&gt;Before we get into this, I’m reminded of &lt;a href=&quot;https://www.youtube.com/watch?v=FjhyXam1Je0&quot;&gt;Anton Ego’s monologue&lt;/a&gt; in the movie Ratatouille in which he says:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;We thrive on negative criticism, which is fun to write and to read. But the bitter truth we critics must face is that, in the grand scheme of things, the average piece of junk is probably more meaningful than our criticism designating it so.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now with that hand-wringing out of the way, let’s move on the the review of Paris Hilton’s memoir:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Now, in her early 40s, she has published a memoir, which for ephemeral, unreflective celebrities like her is usually a way of fending off imminent obsolescence. The book—ventriloquized by Joni Rodgers, who describes herself as a ‘story whisperer’—is as vapid and vaporous as the fragrances Hilton sells; all the same, archaeologists may one day consult it in the hope of understanding how and why our species underwent a final mutation into something glossily post-human.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;“Ventriloquized” made me laugh out loud. It’s no surprise that most of these books were ghost-written.&lt;/p&gt;

&lt;p&gt;On Prince Harry’s book &lt;em&gt;Spare&lt;/em&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;But for a title written explicitly in the cause of securing sympathy and understanding for its so-called author, boy, does it misfire. It’s not only that Harry is so petulant: a man who thinks nothing, even now, of complaining about the bedroom he was allotted for his summer hols in Granny’s castle. With every page, his California makeover grows less convincing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It goes on and on like this, and shows you how much of the literary world has been hijacked by celebrities looking to advance an agenda or make a quick buck.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Cicero</title>
        <link href="http://brianwillis.com/2023/11/25/cicero.html"/>
        <updated>2023-11-25T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2023/11/25/cicero</id>
        <content type="html">&lt;p&gt;The AI team at Meta has announced the introduction of &lt;a href=&quot;https://ai.meta.com/research/cicero/&quot;&gt;Cicero&lt;/a&gt;—an intelligent agent that plays (and usually wins) at the game of Diplomacy. For those unfamiliar, Diplomacy works like the board game Risk with an added step of negotiating in natural language at the start of each turn. Players have to coordinate and build trust with one another, which is where this development shifts from impressive to concerning.&lt;/p&gt;

&lt;p&gt;Meta is not a particularly trustworthy company, and spending their R&amp;amp;D dollars on building more manipulative agents does not bode well for the rest of us. They already A/B test the life out of their products to maximise engagement, but can you imagine an AI designed to build trust with you? This would be too easy to abuse.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>What Comes After Instagram</title>
        <link href="http://brianwillis.com/2022/09/26/what-comes-after-instagram.html"/>
        <updated>2022-09-26T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2022/09/26/what-comes-after-instagram</id>
        <content type="html">&lt;p&gt;Pro photographer Peter McKinnon posted a great video &lt;a href=&quot;https://www.youtube.com/watch?v=-NoxCtW5MBE&quot;&gt;on his YouTube channel&lt;/a&gt; about how photographers like him aren’t being served well by Instagram any longer. I won’t rehash the outrage brought on by the Instagram team’s incremental changes to the app over the years, but starting with the algorithmic timeline in 2016 it’s been clear that their priorities are out of whack with their longest-serving community members.&lt;/p&gt;

&lt;p&gt;McKinnon talks about how back in the day he’d post to a self-run blog, but that was cumbersome and hard to get eyeballs on, so he started posting to Instagram instead. All was good for a while, with a steadily increasing follower count and hundreds of thousands of likes on each post, and then Instagram’s priorities shifted and the attention he received dropped off sharply. He then goes on to say that he’s shifting his attention to &lt;a href=&quot;https://vero.co/&quot;&gt;Vero&lt;/a&gt;, one of the smaller upstarts in the social media space.&lt;/p&gt;

&lt;p&gt;I’ll give it to you straight—Vero isn’t coming to save you. If you’re a creator who cares about building an audience, social media sites shouldn’t be treated as any more than the first step of the sales funnel. You have to meet your customer where they are, and right now they’re all on Instagram and TikTok, so by all means have accounts there; but as we’ve been saying in the tech industry for year’s now, you have to own your bits. Start that blog, maintain a mailing list, write your own app, do something that can’t be controlled by someone who isn’t you. Otherwise, you’ll always be beholden to the whims of platform owners.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>The 512KB Club</title>
        <link href="https://512kb.club/"/>
        <updated>2022-09-12T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2022/09/12/the-512kb-club</id>
        <content type="html">&lt;p&gt;This project reminds me of the web back in the mid-90’s when Yahoo was all the rage. A lot of people remember Yahoo as a search engine, but it began life as an index—literally a human-compiled list of sites organised by hand. You’d type in your search terms, and each link that you got back would include a one or two sentence description that a Yahoo employee had written.&lt;/p&gt;

&lt;p&gt;The 512KB Club is a similarly compiled list, requiring each site to have an uncompressed payload of less than 512KB. The web’s become a slow and bloated place, and this sort of thing should be encouraged.&lt;/p&gt;

&lt;p&gt;I go back-and-forth on whether this site should keep using Adobe TypeKit and Google Analytics. Is the performance cost really worth it? As time has gone on and more people have started using ad-blockers, including Google Analytics has become increasingly pointless.&lt;/p&gt;
</content>
    </entry>

    <entry>
        <title>The Allbirds IPO</title>
        <link href="http://brianwillis.com/2021/11/06/the-allbirds-ipo.html"/>
        <updated>2021-11-06T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2021/11/06/the-allbirds-ipo</id>
        <content type="html">&lt;p&gt;I’ll start this by saying that I’ve bought the shoes, and they’re decent. If you’re looking for comfortable shoes and can stomach the price tag, Allbirds are worth trying.&lt;/p&gt;

&lt;p&gt;Now with that out of the way…&lt;/p&gt;

&lt;p&gt;From the &lt;a href=&quot;https://www.sec.gov/Archives/edgar/data/1653909/000162828021017824/allbirdss-1.htm&quot;&gt;Allbirds S-1&lt;/a&gt; filing:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;We have incurred significant net losses since inception and anticipate that we will continue to incur losses for the foreseeable future.&lt;/p&gt;

  &lt;p&gt;We incurred net losses of $14.5 million and $25.9 million in 2019 and 2020, respectively, and we had an accumulated deficit of $113.1 million as of June 30, 2021. We expect to continue to incur significant losses in the future. We will need to generate and sustain increased revenue levels in future periods to achieve profitability, and even if we achieve profitability, we may not be able to maintain or increase our level of profitability.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It takes a special kind of psychopathy to say “we have never made a profit, we have no plans to make a profit, now give us two billion dollars please”.&lt;/p&gt;

&lt;p&gt;It’s an even more damning indictment of the current state of the market that they got their two billion dollars and then some.&lt;/p&gt;

&lt;p&gt;The asset price bubble that we’re living through right now will pop eventually—presumably when printing money starts causing more problems than it solves. When that happens, we’ll find the public markets full of these dud companies, and the venture capitalists that pumped-and-dumped them will have taken their profits and left retail investors to absorb the losses.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Investing in Happiness</title>
        <link href="https://www.youtube.com/watch?v=iNZk-N6uDcg"/>
        <updated>2021-08-31T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2021/08/31/investing-in-happiness</id>
        <content type="html">&lt;p&gt;If you’ve not yet been acquainted with Ben Felix’s brand of information-dense videos then you’re in for a treat with this one. This is what you get when you take an unusually focused person and have them try and solve happiness. He talks quickly—make liberal use of the pause button and take notes as you go.&lt;/p&gt;
</content>
    </entry>

    <entry>
        <title>The University of Minnesota Got Themselves Banned From Contributing to the Linux Kernel</title>
        <link href="http://brianwillis.com/2021/05/07/the-university-of-minnesota-got-themselves-banned-from-contributing-to-the-linux-kernel.html"/>
        <updated>2021-05-07T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2021/05/07/the-university-of-minnesota-got-themselves-banned-from-contributing-to-the-linux-kernel</id>
        <content type="html">&lt;p&gt;The short version of this story is that two researchers at the University of Minnesota thought it would be a fun idea to contribute “hypocrite commits” (i.e. bug fixes that deliberately include security holes) to the Linux kernel to see if the kernel maintainers would spot what they had done and reject the commits. They did this without the consent of the university’s Institutional Review Board (which they have since gone on to obtain retroatively), and without permission from anyone on the kernel team.&lt;/p&gt;

&lt;p&gt;Needless to say, the kernel maintaners didn’t appreciate being treated like lab rats, and responded by banning the entire university from making contributions to the kernel, and—because why just burn the crops when you can salt the earth too—they then began the process of reverting all previous commits made by anyone with an @umn.edu email address.&lt;/p&gt;

&lt;p&gt;It’s worth noting that the researchers in question did prevent these hypocrite commits from making it into the production kernel, and at the core of their research is a concerning idea about the nature of security in Free and Open Source software projects. They have also appologised, though the sincerity seems questionable given the University of Minnesota’s general unwillingness to take preventative actions to stop this happening again.&lt;/p&gt;

&lt;p&gt;I’ve written before about the ambivalence toward ethics that exists in the software industry. It’s frustrating to see this sort of thing keep happening. Progress is not being made here, and it desperately needs to be. I’m with the kernel maintainers on this one. There’s a time and a place for deception in scientific research, and this wasn’t one of those times.&lt;/p&gt;

&lt;p&gt;For a more complete overview of the whole mess, this &lt;a href=&quot;https://www.theverge.com/2021/4/30/22410164/linux-kernel-university-of-minnesota-banned-open-source&quot; title=&quot;How a university got itself banned from the Linux kernel&quot;&gt;article at The Verge by Monica Chin&lt;/a&gt; provides a good run-down, and &lt;a href=&quot;https://news.ycombinator.com/item?id=26887670&quot;&gt;this comment thread at Hacker News&lt;/a&gt; makes for interesting reading.&lt;/p&gt;
</content>
    </entry>

    <entry>
        <title>How t0st Cut GTA Online Loading Times by 70%</title>
        <link href="https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/"/>
        <updated>2021-03-02T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2021/03/02/how-t0st-cut-gta-online-loading-times-by-70-percent</id>
        <content type="html">&lt;p&gt;The pseudonymous hacker t0st took it upon themselves to investigate what was taking so damn long during GTA’s famously lengthy loading times, and the results are not good:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;It’s parsing something. Parsing what? Untangling the disassembly would take forever so I decided to dump some samples from the running process using x64dbg. Some debug-stepping later it turns out it’s… JSON! They’re parsing JSON. A whopping 10 megabytes worth of JSON with some 63k item entries.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It’s fascinating to see the whole investigation laid out like this so plainly. I’ve never been involved in a disassembly project like this, so it’s a lot of fun to look behind the curtain and see how the professionals do it. It’s also remarkable that this whole thing was pulled off with no access to the original source code, but instead by using the obfusticated assembly that’s shipped to customers.&lt;/p&gt;
</content>
    </entry>

    <entry>
        <title>We're in an Asset Price Bubble Again Aren't We?</title>
        <link href="https://twitter.com/TikTokInvestors/status/1350854473598558213"/>
        <updated>2021-01-18T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2021/01/18/were-in-an-asset-price-bubble-again-arent-we</id>
        <content type="html">&lt;p&gt;“I see a stock going up, and I buy it, and I just watch it until it stops going up, and then I sell it”.&lt;/p&gt;

&lt;p&gt;Genius. I wonder why no one else tried that.&lt;/p&gt;
</content>
    </entry>

    <entry>
        <title>Filecoin</title>
        <link href="http://brianwillis.com/2020/12/12/filecoin.html"/>
        <updated>2020-12-12T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2020/12/12/filecoin</id>
        <content type="html">&lt;p&gt;I’ve subscribed to &lt;a href=&quot;https://www.coinbase.com/earn&quot;&gt;Coinbase Earn&lt;/a&gt; for a while now. The deal is straightforward: you watch videos about up-and-coming cryptocurrencies and you’re rewarded for your time with units of the currency that you’re learning about. It’s a neat way to distribute coins to a wide variety of people and to spread some love in the crypto community.&lt;/p&gt;

&lt;p&gt;I’ve watched a fair number of videos after this many months, and the thing that strikes me about so many of these alt-coins is how undifferentiated they are. Compare Coinbase’s description of &lt;a href=&quot;https://www.coinbase.com/price/stellar&quot;&gt;Stellar Lumens&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Stellar’s cryptocurrency, the Stellar Lumen (XLM), powers the Stellar payment network. Stellar aims to connect banks, payment systems, and individuals quickly and reliably.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;…to their description of &lt;a href=&quot;https://www.coinbase.com/price/xrp&quot;&gt;Ripple&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Built for enterprise use, Ripple (XRP) aims to be a fast, cost-efficient cryptocurrency for cross-border payments.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or was that Tezos? Or Algorand? who can keep track any more? The differences between some of these projects are so small that they barely register.&lt;/p&gt;

&lt;p&gt;Which is why &lt;a href=&quot;https://filecoin.io&quot;&gt;Filecoin&lt;/a&gt; is such a surprise. First, it solves a genuine problem—people want low-cost cloud storage—but the way it solves this fits cryptocurrency remarkably well. Providers of cloud storage offer up their available storage space, and you can purchase this using Filecoin tokens. Proof-of-spacetime checks happen every 24 hours to ensure that the storage provider is actually holding the data and keeping it available, and as this happens the network distributes Filecoins to the provider.&lt;/p&gt;

&lt;p&gt;This use case fits cryptocurrency really well, far more so that any other that I’ve seen. Storage providers and customers can be somewhat anonymous from one another, a large pool of providers will ensure that competition keeps prices fair, and the distributed nature of cryptocurrency means that you’ll have providers from all over the world.&lt;/p&gt;

&lt;p&gt;The crypto community has always had a lot of high falutin’ talk about redefining money and it’s role as a store of value and medium of exchange, but the recent run-up of cryptocurrency prices—in particular Bitcoin—shows us that a big chunk of the market is prioritising get-rich-quick scheming, but with Filecoin there’s a return to genuine honest-to-goodness capitalism with buyers and sellers and value creation and a marketplace.&lt;/p&gt;

&lt;p&gt;Technical requirements are fairly high at this point. You’ll need at least 32Gb of memory and 1Tb of fast NVMe storage to participate as a miner, but it’s easy to see where this is headed. Imagine a world where you could slice off 50% of the free space on your hard disk, and have the network manage that space for you. Consumers use the storage you’ve made available to provide redundancy for their data, and you get compensated in crypto tokens for your trouble.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Aussielent</title>
        <link href="http://brianwillis.com/2019/04/30/aussielent.html"/>
        <updated>2019-04-30T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2019/04/30/aussielent</id>
        <content type="html">&lt;p&gt;When &lt;a href=&quot;https://soylent.com&quot;&gt;Soylent&lt;/a&gt; shakes were first announced I thought they were a really neat idea. Shopping for groceries and doing a bunch of meal prep once a week was becoming a bit of a chore, and eating out regularly gets absurdly expensive in my part of the world. Drinking your meals seemed like a way to save time and money.&lt;/p&gt;

&lt;p&gt;International shipping being what it is, I never got to try Soylent. Shipping the powder halfway around the world nearly doubled the price, and I wasn’t prepared to wear that cost for meals that could very well end up tasting like wallpaper paste.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2019-04-30-aussielent.jpg&quot; srcset=&quot;/images/2019-04-30-aussielent@2x.jpg 2x&quot; alt=&quot;Aussielent packaging.&quot; title=&quot;Aussielent packaging.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Last year I learnt about &lt;a href=&quot;https://aussielent.com.au&quot;&gt;Aussielent&lt;/a&gt;—a company based in Australia trying to make a similar product. So I purchased a week’s worth and resolved to give it a try.&lt;/p&gt;

&lt;p&gt;Each bag contains a day’s worth of food in powdered form. The instructions encourage you to break each bag into four servings, spacing them evenly throughout the day. You mix each serving with water in a shaker bottle, but otherwise don’t need to add anything.&lt;/p&gt;

&lt;p&gt;My first impression was surprisingly good. The flavour was neutral and inoffensive. Imagine the taste of leftover milk at the bottom of a bowl of cereal. A mild oaty flavour that’s slightly sweet. I remember thinking while rinsing out the shaker bottle that I could eat this way all the time.&lt;/p&gt;

&lt;p&gt;Then, while walking to work, it hit me. I was wide awake. Staggeringly awake. I hadn’t had any coffee yet, but the sun was shining, the birds were singing, and I was hyper-aware of all of it. Turns out liquids digest very easily, and this thing hit my bloodstream all at once. Of course, it all wore off very quickly, and I was hungry again by mid-morning.&lt;/p&gt;

&lt;p&gt;The next few days continued like this. Without spending time to break down food in my stomach, the nutritional value of each meal hit me all at once and then disappeared just as quickly. I went through peaks and troughs of energy all day.&lt;/p&gt;

&lt;p&gt;Eating four times a day is an inconvenience too. While your coworkers are taking lunch, you’re at your desk. When you’re hungry and need to mix up a meal, you’ll find yourself stuck in an 11 a.m. meeting. The rest of the world doesn’t operate on this schedule, and I struggled to as well.&lt;/p&gt;

&lt;p&gt;On the third day, I was starting to get light-headed and dizzy before meals, which is never a good sign. So on day four I gave up and went back to regular food.&lt;/p&gt;

&lt;p&gt;For a month, the remaining packets sat in their box on the kitchen counter, mocking me for my hubris.&lt;/p&gt;

&lt;p&gt;I wasn’t willing to throw the remainder away, so I started having a shake each morning for breakfast instead, and I have to say this is where the product shines. If you treat these shakes as a once-in-a-while replacement for the occasional meal when you’re too busy to eat properly, they’re a lifesaver. I spent the next couple of week’s showing up to work full of energy, bright-eyed and bushy-tailed, with no time wasted in the mornings.&lt;/p&gt;

&lt;p&gt;Be warned that the mix can clump together if you don’t shake it aggressively enough. Through some experimentation, I figured out that you can produce a more even consistency if you make each shake the night before and leave it in the refrigerator overnight to incorporate.&lt;/p&gt;

&lt;p&gt;What surprised me most about this experiment was that unlike many supplement companies, Aussielent doesn’t hedge their bets by calling their product “part of a balanced diet” or “nutritional insurance“. They really do double-down on calling Aussielent a complete replacement for every meal. Given &lt;a href=&quot;https://www.vox.com/2016/1/14/10760622/nutrition-science-complicated&quot;&gt;the complexities of nutrition&lt;/a&gt;, this probably isn’t true. In saying that, you could do worse. If you’re short on time and eating a lot of fast food I’d speculate that these meal replacement products are better for you, if only because their nutritional value receives so much thought from their creators and so much scrutiny from their critics.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>The First Reckoning of Computer Science</title>
        <link href="http://brianwillis.com/2018/04/17/the-first-reckoning-of-computer-science.html"/>
        <updated>2018-04-17T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2018/04/17/the-first-reckoning-of-computer-science</id>
        <content type="html">&lt;p&gt;Selected pieces of &lt;a href=&quot;https://twitter.com/yonatanzunger/status/975545004205654016&quot;&gt;a twitter thread by Yonatan Zunger&lt;/a&gt;, posted verbatim here because Twitter is awful for long-form text:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I didn’t come up in computer science; I used to be a physicist. That transition gives me a rather specific perspective on this situation: that computer science is a field which hasn’t yet encountered consequences.&lt;/p&gt;

  &lt;p&gt;Chemistry had two reckonings, in the late 19th and early 20th centuries: first with dynamite, and then with chemical weapons. Physics had its reckoning with the Bomb. These events completely changed the fields, and the way people come up in them.&lt;/p&gt;

  &lt;p&gt;Before then, both fields were dominated by hope: the ways that science could be used to make the world a fundamentally better place. New dyes, new materials, new sources of energy, new modes of transport; everyone could see the beauty.&lt;/p&gt;

  &lt;p&gt;Afterwards, everyone became painfully, continuously aware of how things could be turned against everything they ever dreamed of.&lt;/p&gt;

  &lt;p&gt;I don’t know the stories from chemistry as well. In physics, I can tell you that everyone, from their first days as an undergrad (or often before), encounters this and wrestles with it. They talk about it in the halls or late at night, they worry about it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;For a long time, it frightened me that biology hadn’t yet had this moment of reckoning — that there hadn’t yet been an incident which seared the importance of ethics and consequences into the hearts of every young scientist. Today, it frightens me more about computer scientists.&lt;/p&gt;

  &lt;p&gt;Young engineers treat ethics as a speciality, something you don’t really need to worry about; you just need to learn to code, change the world, disrupt something. They’re like kids in a toy shop full of loaded AK-47’s.&lt;/p&gt;

  &lt;p&gt;The hard lesson which other fields had to learn was this: you can never ignore that for a minute. You can never stop thinking about the uses your work might be put to, the consequences which might follow, because the worst case is so much worse than you can imagine.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Short postscript: As several people have pointed out, many fields of biology &lt;em&gt;have&lt;/em&gt; had these reckonings (thanks to eugenics and the like), and civil engineering did as well, with things like bridge collapses in the late 19th century.&lt;/p&gt;

  &lt;p&gt;Civil engineering responded to this by developing codes of ethics and systems of professional licensure which shape it to this day. I’ve been wondering about this a lot, recently: whether we should be doing the same in CS.&lt;/p&gt;

  &lt;p&gt;That is, ethical codes with teeth, and licensing boards with the real ability to throw someone out of the profession, the way boards can in engineering, medicine, or law.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The university I attended didn’t teach an ethics course as a part of the Computer Science program. I’ve heard others describe such classes as an easy way for people to bump up their GPAs while they should be off learning how to build compilers, or network infrastructure, or some other Hard Thing. I don’t know why we programmers are such suckers for technical self-flagellation, especially when there’s so much moral self-flagellation to be had.&lt;/p&gt;

&lt;p&gt;Zunger is right—software developers are writing the script that the future will run on, and we’re doing so while asleep at the wheel. Between Equifax, Cambridge Analytica, and whatever major breach happens next&lt;sup id=&quot;fnref:1&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;, we’ve set the world up to be taken advantage of by whichever player is willing to be the most malicious.&lt;/p&gt;

&lt;p&gt;We can’t expect legislators to fix this, because they’ve shown that they don’t understand the technical side. We can’t rely on the market to fix this, because we’ve taught the world that software should be free, and so we desperately need advertising dollars (and all the associated tracking that comes along with that) to keep the industry afloat. We can’t rely on a professional standards body to fix this, because there’s no way to keep a motivated kid from learning to code—and let’s be honest here, most of us were that kid at some point.&lt;/p&gt;

&lt;p&gt;So that leaves us. We’re going to have to fix this mess on our own.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;Notice that it isn’t controversial when someone suggests there are more serious breaches coming? &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</content>
    </entry>

    <entry>
        <title>CSS Grid Changes Everything</title>
        <link href="http://brianwillis.com/2017/08/01/css-grid-changes-everything.html"/>
        <updated>2017-08-01T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2017/08/01/css-grid-changes-everything</id>
        <content type="html">&lt;p&gt;Here’s a great talk by Morten Rand-Hendriksen from this year’s WordCamp in Paris, entitled &lt;a href=&quot;https://www.youtube.com/watch?v=txZq7Laz7_4&quot;&gt;CSS Grid Changes Everything&lt;/a&gt;. The jokes are bit much, but stick with it because what he has to say is worth listening to.&lt;/p&gt;

&lt;p&gt;I’ve lived through a few “generations” of CSS tech, from gif-spacers to tables to divs to flexbox. Every time we make one of these leaps forward, I feel like we’re rearranging our prejudices, enforcing new tradeoffs in an attempt to reinvent the wheel. I’ve been concerned about this lately, especially since &lt;a href=&quot;https://blogs.adobe.com/conversations/2017/07/adobe-flash-update.html&quot;&gt;last week’s announcement by Adobe that Flash will be end-of-lifed&lt;/a&gt;. I know Flash is a dumpster fire, but it enabled so much creativity back in the early days of the web, and a small part of me is sorry to see it go. More so than any other tool, Flash made me feel like I could turn my ideas into pixels. CSS has never felt like that, especially during the days of divs and floats. Instead CSS feels like one part rigid authoritarian and one part abusive spouse. I’m always one misstep away from having my defenceless HTML get scrambled for reasons that seem downright arbitrary.&lt;/p&gt;

&lt;p&gt;My first impression of CSS grid is that it makes layout approximately as intuitive as flexbox, but in a more elegant way. There’s nothing inherently wrong with that, but I can tell you without even using it that there are some things it does badly. Want to stack one div atop another on the z-axis, creating a three dimensional effect with a sense of depth? Not going to happen. Want to have divs that change dimensions in response to mouse over events? Not without breaking your layout.&lt;/p&gt;

&lt;p&gt;There’s definitely a particular set of use cases being optimised for here. Namely, static pages with little interactivity, little depth, and a rigid structure&lt;sup id=&quot;fnref:7&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:7&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;. This, more than anything, is what makes CSS grid feel like the anti-Flash.&lt;/p&gt;

&lt;p&gt;It might just be time to concede that there’s no way to create a general purpose layout model that covers the whole scope of what we do on the web. I’m disappointed that’s where we’ve ended up, but I guess it’s better than gif-spacers.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:7&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;You know, like this one. &lt;a href=&quot;#fnref:7&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</content>
    </entry>

    <entry>
        <title>The AP Begins Allowing “They” as a Singular Pronoun</title>
        <link href="http://brianwillis.com/2017/03/26/the-ap-begins-allowing-they-as-a-singular-pronoun.html"/>
        <updated>2017-03-26T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2017/03/26/the-ap-begins-allowing-they-as-a-singular-pronoun</id>
        <content type="html">&lt;p&gt;Lauren Easton, Director of Media Relations for the Associated Press, &lt;a href=&quot;https://blog.ap.org/products-and-services/making-a-case-for-a-singular-they&quot;&gt;quoting the next edition of the AP Stylebook on their blog&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;They, them, their&lt;/strong&gt; — In most cases, a plural pronoun should agree in number with the antecedent: The children love the books their uncle gave them. They/them/their is acceptable in limited cases as a singular and-or gender-neutral pronoun, when alternative wording is overly awkward or clumsy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Well it’s about time. English desperately needs a singular gender-neutral pronoun to fill the biggest functional gap in our language. Calling people “it” is offensive and crude; while “he or she” is unwieldy, and disregards the existence of people who don’t identify as either.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Predictions for 2017</title>
        <link href="http://brianwillis.com/2017/01/03/predictions-for-2017.html"/>
        <updated>2017-01-03T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2017/01/03/predictions-for-2017</id>
        <content type="html">&lt;p&gt;A short one this year, as we live in uncertain times.&lt;/p&gt;

&lt;p&gt;Once again, despite my repeated insistence, one of you went and launched &lt;a href=&quot;https://mastodon.social&quot;&gt;another social service&lt;/a&gt;. I warned you all not to do this, but I suppose it was inevitable that eventually someone would try and open source Twitter. We’ve had &lt;a href=&quot;https://app.net&quot;&gt;paid twitter&lt;/a&gt;, &lt;a href=&quot;https://ello.co&quot;&gt;charity twitter&lt;/a&gt;, and &lt;a href=&quot;https://tent.io&quot;&gt;gnu twitter&lt;/a&gt;, so this really is the next logical step. This one is doomed to failure for the same reason as all the others—social services aren’t about features, they’re about people, and the people are all using Twitter.&lt;/p&gt;

&lt;p&gt;I’m calling it now: the digital crown is coming to the iPhone. It’s such a natural interaction on the Apple Watch, would fit perfectly with where you already place your fingers, and could replace the volume up/down buttons in an obvious way.&lt;/p&gt;

&lt;p&gt;In other news: Yahoo goes out of business; Google’s next Pixel phone becomes a meaningful threat to the iPhone; Apple demonstrates that they still care about the Mac by releasing exemplary Kaby Lake desktops; Microsoft flails in all directions, doing a better job of pleasing developers than paying customers; and you still won’t be able to edit a Tweet.&lt;/p&gt;

&lt;p&gt;It’s traditional for me to wrap this up by predicting that Half Life 3 will come out this year. While I may have started this post calling these “uncertain times”, now that we’re ten years following the previous chapter’s release I think we can say with certainty that the Half Life franchise is well and truly dead.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Observations After a Week With an Apple Watch</title>
        <link href="http://brianwillis.com/2016/10/29/observations-after-a-week-with-an-apple-watch.html"/>
        <updated>2016-10-29T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2016/10/29/observations-after-a-week-with-an-apple-watch</id>
        <content type="html">&lt;p&gt;I’d forgotten what a giant pain in the ass it is to have a chunk of metal strapped to your body all day. Your wrist’s centre of gravity shifts. Typing is harder. The watch catches door frames as you walk through them. I knew there was a reason that I gave up wearing a watch 10 years ago, and I’ve had to rediscover it the hard way.&lt;/p&gt;

&lt;p&gt;Apple Pay is like something out of science fiction. It doesn’t feel like it should work. They let me leave the supermarket with my groceries, but I half expected them to chase me out the door.&lt;/p&gt;

&lt;p&gt;The fitness tracking stuff is as compelling as promised. I find myself walking more to close the activity rings. It remains to be seen how long this will stick, but I think it’s more than a gimmick. In particular, heart rate tracking is way more frequent than I’d anticipated. I’m seeing readings every 5-10 minutes, with no meaningful hit to battery life.&lt;/p&gt;

&lt;p&gt;Speaking of battery life, I took the watch off the charger this morning at 6:30, I’m typing this at noon, and I’m at 94%. Battery life like this is practically unheard of in the Apple ecosystem.&lt;/p&gt;

&lt;p&gt;The wrist detection is unbelievably accurate. Taking the watch off immediately locks it, and raising my wrist to check the time has only failed once.&lt;/p&gt;

&lt;p&gt;Third party apps are mostly useless. There’s nothing here that I’d use every day. This is a real concern for the future of the product. To succeed, the watch needs to be useful and necessary, and at the moment it’s just a fun toy for early adopters.&lt;/p&gt;
</content>
    </entry>

    <entry>
        <title>On Humanity</title>
        <link href="http://brianwillis.com/2016/08/12/on-humanity.html"/>
        <updated>2016-08-12T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2016/08/12/on-humanity</id>
        <content type="html">&lt;p&gt;Seth Godin, writing at &lt;a href=&quot;http://sethgodin.typepad.com/seths_blog/2016/08/three-things-about-good-jobs-in-a-new-economy.html&quot;&gt;his blog&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If the boss can write it down, she can find someone cheaper than you to do the work. Probably a robot. The best jobs are jobs where we don’t await instructions, where using good judgment and taking initiative are far more important than obedience.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;…but what happens when judgement and initiative become something we can automate too?&lt;/p&gt;

&lt;p&gt;I’ve been mulling this over since C.G.P. Grey published his video &lt;a href=&quot;https://www.youtube.com/watch?v=7Pq-S557XQU&quot;&gt;Humans Need Not Apply&lt;/a&gt;. I’m glossing over some of the finer points, but his central argument is that the future of work looks pretty grim, with software and robotics taking over jobs that we’ve traditionally thought only people were capable of.&lt;/p&gt;

&lt;p&gt;He’s absolutely right by the way. I’m a Software Developer, which means I unemploy people for a living. If a pice of work can be automated it eventually will be, and when that happens yet another person ends up out of work. There’s no limit to this either—people aren’t as special as they think they are. Right now, almost all of us have a job that can either in whole or in part be replaced by a machine. This is going to be a problem when we get to the point that jobs are being automated away at a faster pace than new jobs are being created.&lt;/p&gt;

&lt;p&gt;So what does a person do to maximise the chance that they’ll stay employable?&lt;/p&gt;

&lt;p&gt;A person’s biggest asset in the face of automation is their humanity. It’s the one thing robotics can’t compete on. Any line of work that’s humanised remains valuable work when done by a person.&lt;/p&gt;

&lt;p&gt;Consider a stay in hospital. I can see patients accepting a robot surgeon. Fewer mistakes, fewer side effects, faster surgeries, all positive things. But what happens in the recovery ward? It’s one thing to be operated on by a machine when you’re unconscious and unaware of the experience, but can we really expect people to accept care from robot nurses? Nursing is a line of work where humanity counts, and between the uncanny valley, and our general desire for authenticity, I don’t see patients reacting well to being taken care of by Alice from &lt;em&gt;The Jetsons&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;We can see inklings of this effect in other industries too. High end watches are truly terrible at timekeeping, with even the best models on the market drifting seconds each day. By comparison, a quartz watch will drift around a second a day, and smart watches sync regularly with time servers, effectively eliminating drift. So why would someone buy a mechanical watch? Because its value comes from being hand made by a person, following traditions that are in some cases centuries old. The value in a &lt;a href=&quot;http://www.iwc.com/en/collection/portugieser/IW5035/&quot;&gt;Portugieser&lt;/a&gt; comes from the fact that it didn’t roll off an assembly line, slapped together mechanically.&lt;/p&gt;

&lt;p&gt;It’s not just humanity that gives us an edge over automation—it’s authenticity. It’s easy to write off hispter culture as some sort of quirky longing for a world that never really existed, but at its core hipsterdom rose from a lack of authenticity in the world. It was a whole social movement that said the plastic and formica and corporate sterility of the world was getting too much, and that we needed reclaim some of what we’d lost in our pursuit of efficiency. People care deeply about the substance of the things they buy, and how those things make them feel. Authenticity is why barista made coffee can be sold for more than coffee out of a machine, why parents consider their children’s artwork priceless, and why &lt;a href=&quot;https://en.wikipedia.org/wiki/Emily_Howell&quot;&gt;Emily Howell&lt;/a&gt; doesn’t have many fans.&lt;/p&gt;

&lt;p&gt;I know these are transient and superficial reasons to value one kind of work over another, and after writing this I’m having difficulty reconciling my desire to remain employable with the fact that no one describes the software I make as artisanal or hand crafted. I’m not trying to say that we’ll solve the problem of automation and find work for billions of people by creating goods that are meaningfully worse. Instead, I’m suggesting that the economy oftentimes values things in counterintuitive ways, and I think because of that there’s hope for us.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Predictions for 2016</title>
        <link href="http://brianwillis.com/2016/01/01/predictions-for-2016.html"/>
        <updated>2016-01-01T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2016/01/01/predictions-for-2016</id>
        <content type="html">&lt;p&gt;Alright team, this is the fourth time that I’ve done this, so you all know the drill. Go and read &lt;a href=&quot;http://brianwillis.com/2015/01/04/predictions-for-2015.html&quot;&gt;last year’s predictions&lt;/a&gt; to see how I did (hint: not well), and then let’s dive into what’s going to happen in 2016.&lt;/p&gt;

&lt;p&gt;Last year I told you we’ll soon see a fatal accident involving a self driving car. When I wrote that, I was thinking it’d be a Google car but thanks to Tesla’s batshit crazy autopilot mode, we now know that it’ll be them who’s the first to kill someone. I understand that self driving cars are going to be a big part of our future whether we like it or not, but in the race to market, corners are getting cut, testing isn’t as thorough as it needs to be, and drivers need to be retrained for a generation of technology that they don’t really understand. I write software for a living, and I’m telling you that software development is still in the “pouring raw sewage into our drinking water and wondering why everyone has cholera” stage of human progress&lt;sup id=&quot;fnref:5&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:5&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;. We have no idea if this stuff is going to work, and I’m willing to bet that there are edge cases (rain, hail, snow, fog, collisions, roadworks, unsealed roads, startups trying to make roads out of glass&lt;sup id=&quot;fnref:6&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:6&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;, etc.) that are hard to test thoroughly and that all drivers are expected to handle. Don’t get me wrong—when this tech gets good it’ll be a great day. Human drivers are incredibly unreliable and kill each other in the thousands every year. Putting an end to that will be a net win for humanity, but there are going to be casualties along the way.&lt;/p&gt;

&lt;p&gt;In consumer tech it’s going to be same old, same old. Skylake Macs, another round of Chromebooks, a refreshed Surface whatever. Meh. At this point the computer, tablet, and smartphone are mostly solved problems. What’s left is iterating and refining, which is great because Apple’s software quality has been all over the place (photos—excellent; music—train wreck), Microsoft’s UI design has been all over the place (why does Windows have &lt;a href=&quot;http://www.askvg.com/too-much-inconsistency-in-windows-10-context-menus/&quot;&gt;eight types of context menu?&lt;/a&gt;), and Google’s whole product strategy has been all over the place (seriously, why do they make two competing operating systems? and why do they make &lt;a href=&quot;https://golang.org&quot;&gt;a programming language&lt;/a&gt; that can’t build stuff for either one?). I know it’s not glamorous, but everybody needs to slow down, take a chill pill, and spend some time cleaning up their respective messes.&lt;/p&gt;

&lt;p&gt;As for wearables, this year is all about the quantified self with as many new sensors as possible being crammed into devices. Blood oxygen, blood pressure, stress level, sweat gland production, ambient carbon dioxide level, ambient temperature, you name it—if it can be measured your watch will start recording it. This was a surprising thing to learn from the Apple Watch, that when you start tracking and measuring these things people will pay attention to them even if they didn’t care before. &lt;a href=&quot;https://marco.org/2015/05/24/filling-the-green-circle&quot;&gt;Filling in those circles&lt;/a&gt; becomes a daily habit.&lt;/p&gt;

&lt;p&gt;There’s been a rumour floating around that the next iPhone will drop the 3.5mm headphone jack and do everything through the lightning port. I think that given a long enough timeline we’ll see smartphones without any ports at all, and this is just a natural extension of that. So will iPhone headphones go wireless, or will they plug in to the lightning port? My money is on lightning. Wireless bluetooth headphones have never been great; they need to have batteries (adding cost), and they need to have ports so they can be charged (adding size and weight).&lt;/p&gt;

&lt;p&gt;Lastly, let’s talk about software development. I don’t know how many times I have to say this, but making another social network is a dumb idea (I’m looking at you &lt;a href=&quot;https://beme.com&quot;&gt;beme&lt;/a&gt;). Nevertheless, people keep trying to make them. Mobile app development looks to be a very crowded market too. There are still opportunities there, but if you strike gold you’ll very quickly be surrounded by impersonators (case in point: Flappy Bird). So where’s the future of software development? I see it as a mix of the web on one side, and cutting edge hardware like VR and 3D printers on the other. The web hasn’t gone anywhere, and viable businesses keep springing up to fill niches I wasn’t aware existed. All that regular recurring revenue makes for a nice and sustainable business model. Business building themselves around cutting edge hardware are of course more risky, but the successful companies in that sector will push humanity forward, and make quite a bit of money in the process.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:5&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;Speaking of which, you should really go watch &lt;a href=&quot;https://www.youtube.com/watch?v=JEYh5WACqEk&quot;&gt;CGP Grey’s video on plagues&lt;/a&gt;. &lt;a href=&quot;#fnref:5&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li id=&quot;fn:6&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;No really, that’s a thing. &lt;a href=&quot;#fnref:6&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</content>
    </entry>

    <entry>
        <title>Why You Can’t Make the Single Responsibility Principle Work</title>
        <link href="http://brianwillis.com/2015/06/27/why-you-cant-make-the-single-responsibility-principle-work.html"/>
        <updated>2015-06-27T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2015/06/27/why-you-cant-make-the-single-responsibility-principle-work</id>
        <content type="html">&lt;p&gt;Saying a class should “only have one reason to change” is a pretty terrible explanation for what the single responsibility principle is trying to achieve. I’ve encountered one-line single-variable classes that could be caused to change for a dozen different reasons. What counts as a reason? How granular do you go? I don’t have good answers to these questions.&lt;/p&gt;

&lt;p&gt;What I do know is that despite having a definition that I’ve never really been comfortable with, the way I was writing software before the SRP sucked. Huge monolithic classes that went on for hundreds of lines and required savant-like intelligence to understand were a regular part of my work day. Now I get to glide across the surface of a project, diving deep only when I need to. It’s great, and frees up a lot of cognitive space.&lt;/p&gt;

&lt;p&gt;There are still times where I can’t make it work though, and I think I’ve managed to distill these failures down to three big reasons.&lt;/p&gt;

&lt;h3 id=&quot;1-your-process-doesnt-support-it&quot;&gt;1. Your process doesn’t support it.&lt;/h3&gt;

&lt;p&gt;It’s Friday afternoon. You’re working your way through building something that’s taken up the bulk of your week. It has to be finished by the close of business. You’ve produced a finely-polished piece of code. No rough edges, solves the problem elegantly, something that’ll impress your peer reviewer and give you a feeling of smug satisfaction as the first beer of Friday night begins to take effect.&lt;/p&gt;

&lt;p&gt;…and then you spot it.&lt;/p&gt;

&lt;p&gt;There’s an edge case that you’ve missed. Dumbass. Haven’t you ever heard of an off-by-one error? Didn’t you figure this stuff out in first year comp sci? Obviously not, because your hoity-toity “finely-polished” holier-than-thou solution doesn’t work, you talentless hack.&lt;/p&gt;

&lt;p&gt;Pause. Breathe. Repress the voice in the back of your head.&lt;/p&gt;

&lt;p&gt;OK. We can fix this.&lt;/p&gt;

&lt;p&gt;There are two options:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Change the architecture. Instead of using one class use two, both implementing the same interface.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Change the implementation. Slap another method on the bottom of the original class, and call it a day.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ostensibly, yes, the first solution is the correct one. You’d be separating out responsibilities properly there, and had you anticipated this you’d have used this design in your original plans.&lt;/p&gt;

&lt;p&gt;But there’s a problem. Introducing new classes and changing your design like this will require sign off from the architecture team, and that will require a two-day turnaround. You don’t have that kind of time. So now we’re talking about missing a deadline (i.e. being bad at your job in a way that others will notice), or delivering a sloppy solution (i.e. also being bad at your job, but in a way that you’ll probably get away with).&lt;/p&gt;

&lt;p&gt;What happens next is left as an exercise for the reader.&lt;/p&gt;

&lt;h3 id=&quot;2-your-tools-dont-support-it&quot;&gt;2. Your tools don’t support it.&lt;/h3&gt;

&lt;p&gt;Back in the dim dark ages before the enlightenment, &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot;&gt;Joel Spolsky told us all to use the best tools money can buy&lt;/a&gt;, which for most of us meant comically enormous displays attached to the early 21&lt;sup&gt;st&lt;/sup&gt; century version of a supercomputer. This was an awful lot of fun to do on the company credit card.&lt;/p&gt;

&lt;p&gt;The thing is though, the software we use hasn’t really caught up. Take a look at this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2015-06-27-visual-studio-screenshot.png&quot; alt=&quot;Visual Studio displaying Hello World in C#.&quot; title=&quot;Screenshot of Visual Studio displaying Hello World in C#.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That’s Hello World in C#, on a (tiny by today’s standards) 1280×1024 display. Notice the insane amount of white space? We should be doing something better with that.&lt;/p&gt;

&lt;p&gt;A byproduct of the SRP is that you end up creating considerably more files, each with significantly less in them. Working with multiple files displayed full screen ends up &lt;em&gt;increasing&lt;/em&gt; your cognitive load, forcing you to store more in your short term memory every time you switch between them, which defeats the purpose of having a big display in the first place. Yes, you could split panes and shuffle things around manually, but that approach is slow and assumes you’re prepared to pay a high setup cost to view a class that you might only spend a few seconds reading through.&lt;/p&gt;

&lt;p&gt;What we really need is an IDE that capitalises on all that white space automatically. I’m picturing classes printed on a deck of cards here, where drilling into a class causes the previous one to slide down into any available white space, instead of vanishing into the background the way they do now. You’d be able to see more of your work at once, it would be harder to lose context, and you could travel back through the call stack just by glancing your eyes downward.&lt;/p&gt;

&lt;p&gt;While we’re on the subject, when did we all decide that one class = one file? Are files even a sensible way of segregating classes any more? Many languages do support writing code with more than one class to a file, but few developers actually embrace that idea. When comparing versions of code where responsibilities have been moved around, it’s often difficult to understand how a change works when a piece of functionality has crossed the barrier from one file to another. Traditional deltas don’t really work well in these situations. I’m not really sure what the fix is here, but I’ve got this feeling stuck in the back of my head that we need tools which don’t force you to bind your architecture quite so closely to the filesystem.&lt;/p&gt;

&lt;h3 id=&quot;3-youve-taken-it-way-too-far&quot;&gt;3. You’ve taken it way too far.&lt;/h3&gt;

&lt;p&gt;It should not take an interface, three classes, two DLL’s, and (so help me) &lt;em&gt;reflection&lt;/em&gt; to load a record from a database.&lt;/p&gt;

&lt;p&gt;Yes, I have encountered this. I had to sit quietly and think about my career choices after doing so.&lt;/p&gt;

&lt;p&gt;It’s natural when falling in love with a new tool to embrace it in all its ways. My high school computer studies teacher called this the “Microsoft Publisher Effect”, where a friend of yours figures out how to work their desktop publishing software and you start receiving party invitations that use seven different borders and twelve different typefaces. People have a tendency to go a little nutty when they come across a tool that’s new and empowering, and I’ve definitely seen that happen with the SRP.&lt;/p&gt;

&lt;p&gt;Interestingly, this seems to affect the experienced coders more that the newbies. Almost as if after years of monolithic classes the pendulum swings back too far, or maybe it’s just that the whippersnappers haven’t had the opportunity to build bad habits yet.&lt;/p&gt;

&lt;p&gt;Whichever camp you find yourself in, it’s important to remember that the SRP is all about managing and minimising complexity. If your work becomes harder to understand, then you’re doing a disservice to the next person who has to work with it.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Predictions for 2015</title>
        <link href="http://brianwillis.com/2015/01/04/predictions-for-2015.html"/>
        <updated>2015-01-04T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2015/01/04/predictions-for-2015</id>
        <content type="html">&lt;p&gt;This glimpse into the future is an annual tradition. It usually consists of a list of things that I actually think will happen in the upcoming year, followed by a prediction that Half Life 3 will be released. So far Gabe Newell has been dragging down my batting average, but one of these years I’ll be right. Looking at my previous attempts, I have a less than 50% success rate of accurately predicting things, which still strikes me as better than random chance, though maybe that’s just my ego talking. If you’re feeling really enthusiastic, go read &lt;a href=&quot;http://brianwillis.com/2013/12/29/predictions-for-2014.html&quot;&gt;last year’s predictions&lt;/a&gt; and see how I did, otherwise let’s get started with the crystal ball gazing.&lt;/p&gt;

&lt;p&gt;The Apple Watch will not sell particularly well. Even the small model is too big, and without native apps its functionality will be pretty limited. Don’t take this to mean that I think the watch will flop—it won’t, it’s just going to take a few years and a few iterations before it’s a must-have product for a big chunk of the population in the same way that the smartphone is. People forget that it took the iPod three or four years to become a household name, and its time at the top of the pile before being cannibalised by smartphones was about half that long. Apple’s done so much right with the watch, this is an excellent first cut, but the commentary that I’ve seen online misses the fact that there’s so much more to do.&lt;/p&gt;

&lt;p&gt;Google’s dorky looking self driving cars will become a part of everyday life. We won’t see a fatal crash occur in 2015, but rest assured that day is coming. Public acceptance will grow slowly. I don’t think consumers will line up to buy a car that looks like an obese panda bear, but they’ll grow accustomed to driving along side them. It’ll be interesting to see how Detroit responds to self-driving cars. We’ve seen very little from them on this subject, but they do seem &lt;a href=&quot;http://www.theverge.com/2014/10/22/7038407/michigan-tesla-ban-signed-into-law&quot;&gt;resistant to new ideas and new ways of doing business&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Last year I predicted that Microsoft would put a guy in the CEO’s chair who had an MBA and didn’t have an engineering background. Instead they appointed a guy who has an MBA &lt;em&gt;and&lt;/em&gt; an engineering background. Well played Microsoft. In all seriousness I think Satya Nadella was an astute choice, but I have yet to see a compelling vision of Microsoft’s future from him. So far we can say he’s not Steve Ballmer, but that’s not enough. While open sourcing big chunks of .net and launching Office on iOS was nice and all, neither action made the company a meaningful amount of money. Outside of Azure, Microsoft is still coasting along on its cash cows and this needs to change before Nadella will be seen as a success.&lt;/p&gt;

&lt;p&gt;In the tech startup scene, it’s going to be a cynical year. Competition between Uber and Lyft will get even more ruthless, with more ethical lines getting crossed&lt;sup id=&quot;fnref:3&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:3&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;. Facebook and Twitter will continue to be more hostile towards third party developers, users, and each other. Like I said—cynical.&lt;/p&gt;

&lt;p&gt;Social apps like &lt;a href=&quot;http://www.tiiny.com&quot;&gt;Tiiny&lt;/a&gt; aren’t really finding an audience anymore. We’ve seen a land grab in the last half-decade with products like Facebook and Twitter whose solutions exist entirely in software. Most of the problems in that space are solved&lt;sup id=&quot;fnref:4&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:4&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; so the kind of startups we’ll now see will have a presence that stretches out into the real world. I’m talking about companies like &lt;a href=&quot;http://firstmile.com&quot;&gt;FirstMile&lt;/a&gt; and &lt;a href=&quot;https://www.taskrabbit.com&quot;&gt;TaskRabbit&lt;/a&gt; who have actual human employees who’ll show up at your bricks-and-mortar home to perform real services that exist on more than just a hard drive.&lt;/p&gt;

&lt;p&gt;Finally, a personal prediction: I will write more. Seriously, last year I published three posts. That’s just abysmal. It’s difficult to identify the root cause, but part of it has been my inability to make time to write, and part has been a desire to keep the quality bar high and not publish stuff that I’ll regret later. Either way, expect more of my rambling in your feed reader.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:3&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;I’m waiting for the day when surge pricing is met with a DDoS attack. &lt;a href=&quot;#fnref:3&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li id=&quot;fn:4&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;Perhaps “claimed” would be a better word than “solved”. &lt;a href=&quot;#fnref:4&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</content>
    </entry>

    <entry>
        <title>You Don’t Get to Set the Terms</title>
        <link href="http://brianwillis.com/2014/08/28/you-dont-get-to-set-the-terms.html"/>
        <updated>2014-08-28T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2014/08/28/you-dont-get-to-set-the-terms</id>
        <content type="html">&lt;p&gt;A few months ago, someone I used to work for died. We’d fallen out of touch, as people tend to do given enough inertia and time. She had motor neurone disease, and over the course of a few months it took her ability to talk, and then her ability to function, and then it took her life.&lt;/p&gt;

&lt;p&gt;I had no idea she was even sick.&lt;/p&gt;

&lt;p&gt;However, thanks to regular status updates on Facebook, many people at her well-attended funeral did.&lt;/p&gt;

&lt;p&gt;That, amongst other things, was the straw that broke the camel’s back and brought me back to Facebook. I created an account a few days ago.&lt;/p&gt;

&lt;p&gt;This is actually my second time on Facebook. I signed up years ago, but deleted my account after a couple of weeks. I left because the site struck me as a place that turned procrastination into a group activity, and it didn’t make my life better in any meaningful way. It also became another inbox to check, with all the sense of social obligation that goes along with that.&lt;/p&gt;

&lt;p&gt;Over the years since, when I read about Facebook’s creepy social experiments and questionable business practices, I’d roll my eyes and feel good about myself for being above all that. I became like one of &lt;a href=&quot;http://www.theonion.com/articles/area-man-constantly-mentioning-he-doesnt-own-a-tel,429/&quot;&gt;those smug people who don’t own a television&lt;/a&gt;, confident in my own correct choices, and oblivious to how irritating I was to everyone else.&lt;/p&gt;

&lt;p&gt;I’m starting to learn that I don’t really get to set the terms on which my relationships operate. If a friend wants to invite fifty people to a party using Facebook invites, it’s a generous and forgiving person that goes out of their way to invite me over email—and it demonstrates a sense of entitlement on my part to demand they go out of their way to do that. It’s gotten to the point where opting out of Facebook is much like &lt;a href=&quot;http://www.vice.com/read/confessions-of-the-last-human-being-without-a-cell-phone&quot;&gt;refusing to own a phone&lt;/a&gt;. There are some people who might be able to pull it off, but I no longer can.&lt;/p&gt;

&lt;p&gt;So far the whole Facebook experience hasn’t been great, but I’m not hating it. It seems like once you’ve signed up the default pattern of events is to have a few moments of nostalgia with everyone you lost touch with from high school, then curate your profile to pick the music and movies that best identify you as a person (i.e. provide targeting information for the Facebook advertising team), and then finally rifle through every snapshot you’ve ever posed for to find the very best one to use as your profile picture. Seriously, looking at some of these profile pictures you’d think my friends and family were the most photogenic people on earth.&lt;/p&gt;

&lt;p&gt;So convince me it was worth the trouble and go &lt;a href=&quot;https://www.facebook.com/profile.php?id=100006737536536&quot;&gt;follow me on Facebook&lt;/a&gt;.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>The World’s Slowest Live Blogger Reviews the Google I/O 2014 Keynote</title>
        <link href="http://brianwillis.com/2014/06/29/the-worlds-slowest-live-blogger-reviews-the-google-io-2014-keynote.html"/>
        <updated>2014-06-29T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2014/06/29/the-worlds-slowest-live-blogger-reviews-the-google-io-2014-keynote</id>
        <content type="html">&lt;p&gt;So I watched the &lt;a href=&quot;https://www.youtube.com/watch?v=wtLJPvx7-ys#t=0&quot;&gt;video of Google’s I/O keynote&lt;/a&gt;, which has been sanitised to exclude protestors and failing demos.&lt;/p&gt;

&lt;p&gt;It opens with some sort of &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Incredible_Machine_(series)&quot;&gt;incredible machine&lt;/a&gt; inspired contraption that had very little to do with Google, developers, or the keynote itself. I’m kind of baffled as to why they thought this would be a good idea. While I’m at it, I’ll also throw the techno-backed intro video into the cute-but-pointless pile. When you make a video that’s supposed to highlight how awesome Android is, it’s probably not a good idea to give significant screen time to &lt;a href=&quot;http://www.monumentvalleygame.com&quot;&gt;Monument Valley&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Flappy_Bird&quot;&gt;Flappy Bird&lt;/a&gt;, two games that got their start as iOS exclusives.&lt;/p&gt;

&lt;p&gt;Thankfully, the presentation gets a lot better from there.&lt;/p&gt;

&lt;p&gt;It’s cool to see Google highlighting the number of women in attendance. After last week’s publication of Yahoo’s diversity stats, I’m sure we’ll see more tech companies showing off these kind of numbers.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.google.com/design/&quot;&gt;Material design&lt;/a&gt; looks beautiful, and I’m glad to see Google actually settle on a single set of design standards. The demos look clear and futuristic, if a little Windows Phone like. Animated touch feedback on standard UI controls really does look awesome. You’d think it’d be gimicky, but having buttons ripple and checkboxes light up when tapped really does look good. iOS’s super-flat borderless buttons look sterile and joyless by comparison.&lt;/p&gt;

&lt;p&gt;I enjoyed the demo of personal unlocking, where a phone can automatically unlock without a passcode when it detects the presence of a paired bluetooth watch nearby. My big concern here: how does the device determine if it’s in a trusted environment? and will users understand the difference between the times their phones ask for passcodes, and the times that they don’t? The presenters made reference to detection using locations, bluetooth devices, and voice prints. I’m curious to see how that’ll work in practice.&lt;/p&gt;

&lt;p&gt;The demo of Chrome tabs displayed in the recents view as if they were individual apps looks great. This is yet another example of Google embracing the web while Apple begrudgingly puts up with it. On iOS the web gets it’s own little sandboxed corner, whereas on Android (at least from a UI perspective) web apps look to be first class citizens.&lt;/p&gt;

&lt;p&gt;There’s a demo of the Unreal engine running on Android, but they made no reference to what hardware the demo was running on - it could have been an x86-based supercomputer for all we know. In comparison to Apple’s demo of Metal at WWDC, this all seemed a bit suspicious. Having advanced gaming engines run on your platform is great, but it’s all for nothing if the hardware support isn’t there.&lt;/p&gt;

&lt;p&gt;There were a few shots across the bow at Apple, aimed squarely at Tim Cook’s remarks about Android at WWDC. “Custom keyboards and widgets—those things happened in Android four to five years ago!”, cue rapturous applause from the crowd. Though “we take security very seriously”, followed by “less than a half a percent of users ever run into any malware issues” seemed a bit defensive.&lt;/p&gt;

&lt;p&gt;They announced an SDK for Android Wear, and a few watches to go with it. Twenty bucks says that Apple has no third party developer support for the first year of the iWatch (assuming that they announce one, which many people seem to be treating as fact). The LG G and the Samsung Gear Live watches are a mixture of banal and ugly. The Moto 360 doesn’t look terrible, but it doesn’t look great either.&lt;/p&gt;

&lt;p&gt;From here it was demos of Android Auto and Android TV. While all of this looks lovely and vaguely useful, I want to highlight one thing here that represents the biggest difference between developing for Android and developing for Apple platforms. When you’re developing for Apple devices, you make a Mac app, an iPhone app, and an iPad app; and there’s an expectation that you’ll charge for all three (or at least charge separately for Mac/iOS versions). On Android, Google is asking developers to make a single app that works on watches, phones, tablets, chromebook laptops, cars, and TVs. All for one price. That’s a big ask, and I’d argue that it’s the central reason why the third party app ecosystem on Android tablets is so lacklustre. If developers don’t have a financial incentive to make great apps for every form-factor, you’ll find that the only apps that do get made are ones by companies that have alternative financial incentives (Facebook, Yelp, et al.). In order for Android to have a worthwhile app ecosystem, Android users will have to start accepting higher prices for apps that run in all places (not likely), or Google has got to start providing tools to dramatically reduce the cost and complexity of targeting different form factors. Material design goes a small way toward this, but it’s not enough.&lt;/p&gt;

&lt;p&gt;Congratulations on making it this far. The presentation wraps up with some new tools available for Google’s cloud infrastructure, and some incredibly uninteresting stuff about big data. The last half hour of the video can be comfortably skipped.&lt;/p&gt;

&lt;p&gt;So will I be switching to Android? Probably not, but for the first time Android is a platform that looks like something I could use and love, rather than use and tolerate. In particular when it comes to TVs and phones, Google is really giving Apple a run for their money.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Predictions for 2014</title>
        <link href="http://brianwillis.com/2013/12/29/predictions-for-2014.html"/>
        <updated>2013-12-29T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2013/12/29/predictions-for-2014</id>
        <content type="html">&lt;p&gt;I didn’t do too badly with &lt;a href=&quot;http://brianwillis.com/2012/12/30/predictions-for-2013.html&quot;&gt;last year’s set of predictions&lt;/a&gt;. Tesla really can’t make the Model S fast enough, and Yahoo really did get it together (go Team Marissa!). While I did guess that the Microsoft Surface would do badly, I never in a million years imagined it would fail in a show-Steve-Ballmer-the-door kind of way. That Kit-Kat name for Android also came out of nowhere.&lt;/p&gt;

&lt;p&gt;So, here’s what we have to look forward to in 2014:&lt;/p&gt;

&lt;p&gt;Firefox OS hits 1.0, gets some attention amongst the Slashdot crowd, and dies fairly quickly. Android has already gained a lot of traction in the developing world, and Google has a mature operating system and a thriving third-party developer community. Sorry Mozilla, but Google wants this more than you do.&lt;/p&gt;

&lt;p&gt;A new CEO takes over at Microsoft. I really have no idea who. I’ll tell you this though - they won’t have an engineering background, they’ll probably have an MBA, and they’ll put the shareholder’s short term interests first. Take that for what you will.&lt;/p&gt;

&lt;p&gt;Google Glass goes the way of the Zune. It just isn’t cool to wear a product that’s the target of late night comedy punch lines. Don’t worry though - the underlying technology will stick around, making its way into cars and Android devices.&lt;/p&gt;

&lt;p&gt;For some inexplicable reason, Google will continue to push Google Plus. I think at this point we’re really just observing the sunk cost fallacy at work. In many ways it would hurt morale too much to give up on. It’s easier to just keep hoping that it’ll turn into something relevant eventually. Remember how we all thought social services were the next big wave of innovation on the web? Coupled with Facebook’s declining relevance with teenagers, the whole social space seems to be becoming less and less important.&lt;/p&gt;

&lt;p&gt;It’s a big year for Apple. They’ll announce something wearable (I don’t want to call it a watch, because telling time will be pretty low on the list of priorities). The Mac will focus on getting smaller with new MacBook Pro models that are thinner and lighter. Conversely iOS devices will get bigger, with a 12 inch iPad Pro and a five inch iPhone.&lt;/p&gt;

&lt;p&gt;I finished last year’s post (and the year’s before that) with a prayer that the folks at Valve would get Half Life 3 out the door. The Steam Box is great and all, but what’s it worth without great games? I’m keeping the dream alive, but it’s hard to say for how much longer. Any time now, Mr Newell.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>One Man’s Quest to Have His Dates Print Properly in Jekyll</title>
        <link href="http://brianwillis.com/2013/10/04/one-mans-quest-to-have-his-dates-print-properly-in-jekyll.html"/>
        <updated>2013-10-04T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2013/10/04/one-mans-quest-to-have-his-dates-print-properly-in-jekyll</id>
        <content type="html">&lt;p&gt;I’m loving &lt;a href=&quot;http://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt; as a blogging engine. I do not however, love how it formats dates. Outside of a database table, a date should not look like this:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;2013-10-04T06:15:00Z
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;That’s an ISO 8601 date in full Zulu form, in case you were interested.&lt;/p&gt;

&lt;p&gt;While we’re at it, dates had better not look like this:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;04/10/2013
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;…because that’s simultaneously ugly and hard to use (quick! tell me which number is the day and which is the month).&lt;/p&gt;

&lt;p&gt;This is almost right:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;04 October 2013
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;…because it has an unambiguous month, but that leading zero on the day reminds me of ledgers printed with dot matrix printers, and most irritating of all it’s missing the suffix. Today isn’t “the zero four” of October, it’s “the 4th” and our dates should be written that way.&lt;/p&gt;

&lt;p&gt;So we’ve established that we want this:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;4th October 2013
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The more hasty readers amongst you will have leapt to the conclusion that you can pick the appropriate filters and have all that perfectly formatted goodness just spill out. But no! It’s not that simple! Because Jekyll uses Liquid for filters, which uses strftime for formatting dates, and strftime doesn’t have support for suffixes on dates. I know all this because I raised an issue with the nice people on the Liquid team asking them to add support for suffixes on dates, and they (very politely) said no.&lt;/p&gt;

&lt;p&gt;So I was torn. I wasn’t about to go spelunking through the code to strftime to figure out a way to do this. For one thing, it’s written in C and languages without garbage collection are for braver men than me. Also after this many decades of active development I’m sure it’s an incredibly complex and sophisticated beast. I’ve written a small amount of code to handle time zones and it made my brain hurt. I can’t imagine working full time on a project where all you do is wrangle dates.&lt;/p&gt;

&lt;p&gt;So I thought about it some more and came up with this:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;{% assign day = page.date | date: &apos;%d&apos; %}
{% case day %}
  {% when &apos;01&apos;, &apos;21&apos;, &apos;31&apos; %}
    {% assign suffix = &apos;st&apos; %}
  {% when &apos;02&apos;, &apos;22&apos; %}
    {% assign suffix = &apos;nd&apos; %}
  {% when &apos;03&apos;, &apos;23&apos; %}
    {% assign suffix = &apos;rd&apos; %}
  {% else %}
    {% assign suffix = &apos;th&apos; %}
{% endcase %}
{{ page.date | date: &apos;%e&apos; }}{{ suffix }}{{ page.date | date: &apos; %B %Y&apos; }}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Update 26th October 2013: &lt;a href=&quot;https://bro.doktorbro.net/&quot;&gt;Anatol Broder&lt;/a&gt; was kind enough to send me a pull request with a much simpler solution, which you can see above.&lt;/p&gt;

&lt;p&gt;Yes, I know. This solution is not elegant. It’s a monstrous piece of code which aims to achieve something very simple. It works at the wrong level of abstraction, using Liquid filters when it should be using C. It’s probably hopelessly inefficient.&lt;/p&gt;

&lt;p&gt;It does however, have the benefit of actually working.&lt;/p&gt;

&lt;p&gt;So if you want pretty dates in your Jekyll blog, copy and paste that into the appropriate place in your templates and you’ll be good to go.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Reeder 2</title>
        <link href="http://brianwillis.com/2013/09/28/reeder-2.html"/>
        <updated>2013-09-28T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2013/09/28/reeder-2</id>
        <content type="html">&lt;p&gt;I’ve been using &lt;a href=&quot;http://reederapp.com/&quot;&gt;Reeder&lt;/a&gt; for a few years now, but when Google Reader was shut down the the iPad and Mac versions were left out of commission as Silvio Rizzi built support for other back end syncing services. It’s been a great product though, and I’m not really upset about the time it’s taken to get this 2.0 release done. I’d much rather see a polished app done right than a clumsy app done quickly.&lt;/p&gt;

&lt;p&gt;Reeder 2 looks very much like an iOS 7 app. If you’re still on iOS 6 the icon looks out of place nestled in amongst gloss, gradients, and drop shadows; but once you’re in the app it feels pretty nice. While using it I couldn’t help being reminded of &lt;a href=&quot;http://vesperapp.co/&quot;&gt;Vesper&lt;/a&gt;. Animations and transitions are smooth and well thought out, even on the dated hardware of my iPhone 4&lt;sup id=&quot;fnref:1&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;. I’m particularly fond of the little labels that pop up underneath toolbar buttons as you press them. This is a great piece of interaction design that gives you an uncluttered UI without requiring you to you play guess-the-icon.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2013-09-28-reeder-instructions.png&quot; srcset=&quot;/images/2013-09-28-reeder-instructions@2x.png 2x&quot; alt=&quot;Reeder&apos;s instructions screen on the iPad.&quot; title=&quot;Reeder&apos;s instructions screen on the iPad.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;On the first launch of the app you’re presented with a gargantuan list of gestures to learn. For anyone who used the previous version this won’t be a big deal, but for new users I think this will be a major source of pain. Gestures are essential to getting things done in Reeder. Much of the value of the app comes from its ability to get you through your feeds quickly, which you can’t really do effectively without understanding how the gesture system works. You can’t go back to the list that explains all the gestures after you’ve dismissed it - this is your one and only chance to learn how to use Reeder properly. If you miss something, or don’t fully understand what the text is trying to say, then I guess you’re on your own. There are better ways to teach people how to use an app, and presenting a list of stuff that we’re expected to memorize does no one any favours.&lt;/p&gt;

&lt;p&gt;Once you get past that hurdle, you’ll find that this version really is easier to use than the one it replaces. Text is bigger and clearer, you can swipe from left-to-right to go back to the previous menu&lt;sup id=&quot;fnref:2&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:2&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;, you can even grab the title bar and invoke a pull-to-refresh without scrolling back to the top of a list.&lt;/p&gt;

&lt;p&gt;Unlike the previous version, Reeder 2 is a universal binary that works on both the iPad and iPhone. The iPad version is a complete rethink of the app, ditching the grid of icons for a multi-column layout similar to how Twitter’s iPad app used to work back when Twitter was run by people who knew what they were doing. You can push columns around with playful springiness and fly through your unread list pretty quickly. Photos take up the full width of the display now, which on a retina display really does look neat.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2013-09-28-reeder-full-width-images.png&quot; srcset=&quot;/images/2013-09-28-reeder-full-width-images@2x.png 2x&quot; alt=&quot;Reeder displaying an image on the iPad.&quot; title=&quot;Reeder displaying an image on the iPad.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;My only gripe about the iPad version is the buttons to flick back and forth between posts are now at the bottom of the display rather than the side. When they were on the side you could hold your iPad in both hands, and have the buttons within swinging distance of your thumb. Now you’ve got to grip the device awkwardly every time you want to quickly skip a post.&lt;/p&gt;

&lt;p&gt;I know I’ve listed a few complaints here, but Reeder 2 really is a great piece of software, and for five bucks it’s a no-brainer. &lt;a href=&quot;https://itunes.apple.com/us/app/reeder-2/id697846300&quot;&gt;Go buy it&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;I know. I know. I’m upgrading this year, but can’t decide between the Galaxy S4 and the iPhone 5S. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li id=&quot;fn:2&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;I’m not sure who first came up with the idea to do this. I first saw it in &lt;a href=&quot;http://sparrowmailapp.com/&quot;&gt;Sparrow&lt;/a&gt;, but since then I’ve learnt the iOS music app has it too (even in iOS 6 you can swipe left-to-right on the album art while a song is playing and you’ll go back to the songs list). Either way, it’s a very good idea that’s become a system-wide part of iOS 7. &lt;a href=&quot;#fnref:2&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</content>
    </entry>

    <entry>
        <title>Why Does This Product Exist?</title>
        <link href="http://brianwillis.com/2013/09/11/why-does-this-product-exist.html"/>
        <updated>2013-09-11T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2013/09/11/why-does-this-product-exist</id>
        <content type="html">&lt;p&gt;Had Apple followed the trend that they’ve established in the last few years, this morning they would have released the iPhone 5S and kept last year’s iPhone 5 around as their lower cost $99 model.&lt;/p&gt;

&lt;p&gt;Instead, they decided to release the iPhone 5C - a pointless product which I can’t understand the existence of.&lt;/p&gt;

&lt;p&gt;If you gave me a choice between the metal-backed, durable, good looking iPhone 5, and the functionally equivalent but plastic iPhone 5C, I’d stick with the older model.&lt;/p&gt;

&lt;p&gt;What purpose does the 5C serve? Sure, it’s a cheaper iPhone, but we’ve had those for years. It comes in a bunch of colours, but people who care about that sort of thing often use cases to achieve the same effect. I know some people like to scoff at cases for uglying things up, but Apple hasn’t been shy about getting into the business of making them alongside their devices, which looks like an endorsement for using them.&lt;/p&gt;

&lt;p&gt;I imagine that plastic back is cheaper to produce though, even if it is less nice. Remember all that hoopla about 725 unique glass inlays that were indistinguishable to the naked eye? Yeah, that’ll cost you $100 more now.&lt;/p&gt;
</content>
    </entry>

    <entry>
        <title>In Defence of April Fool’s Day</title>
        <link href="http://brianwillis.com/2013/04/01/in-defence-of-april-fools-day.html"/>
        <updated>2013-04-01T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2013/04/01/in-defence-of-april-fools-day</id>
        <content type="html">&lt;p&gt;There’s a culture that has developed on the web. Like any large group of people thrown together in loose association, societal norms have sprung up that dictate what’s considered acceptable behaviour. Over the last few years, April Fool’s Day has evolved into a collective excuse to let our hair down and do something a little silly for a few hours. It’s a pleasant tradition that I get a chuckle out of each year, and I’m sure many of you reading this feel the same way.&lt;/p&gt;

&lt;p&gt;This year though, things seem a little different. There’s a cynical attitude being circulated around that April Fool’s is unprofessional or childish or somehow beneath us all.&lt;/p&gt;

&lt;p&gt;In my opinion, that way of thinking is a little sad. We shouldn’t allow ourselves to be sucked in by cynicism. We need these cultural touchstones. Depending on where you live in the world Christmas, Hanukkah, or Easter might be a part of your community’s cultural makeup. These events become landmarks in our personal histories that bind us to the people around us and become a part of our identities.&lt;/p&gt;

&lt;p&gt;On the web there’s very little that binds us as a community, but April Fool’s Day has become a mostly harmless part of our way of life that we all get to be a part of, and I think that’s a good thing.&lt;/p&gt;

&lt;p&gt;Alright, now with that out of the way, go laugh at &lt;a href=&quot;http://www.google.com/landing/nose/&quot;&gt;Google Nose&lt;/a&gt;.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Predictions for 2013</title>
        <link href="http://brianwillis.com/2012/12/30/predictions-for-2013.html"/>
        <updated>2012-12-30T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2012/12/30/predictions-for-2013</id>
        <content type="html">&lt;p&gt;I’ve decided to make this an annual tradition around here. Remember folks - this rampant speculation about the upcoming year is for entertainment only. I have no inside knowledge. Thankfully.&lt;/p&gt;

&lt;p&gt;But first, a retrospective on &lt;a href=&quot;/2011/12/14/predictions-for-2012.html&quot;&gt;last year’s predictions&lt;/a&gt;. In short, I didn’t do all that well. I’d never get a job reading tarot cards. RIM is still in business, but it’s hard to say for how long. WebOS didn’t really go anywhere significant. Windows 8 had an OK-but-not-great launch. We didn’t see a 15” MacBook Air (though the new Retina MacBook Pro fills the slot where I expected a 15” Air to land). I was more or less right about Android on tablets and smartphones though (I even got the &lt;em&gt;Jelly Bean&lt;/em&gt; code name right), so that’s something.&lt;/p&gt;

&lt;p&gt;So what happens next year?&lt;/p&gt;

&lt;p&gt;Tesla starts shipping the &lt;a href=&quot;http://www.teslamotors.com/models&quot;&gt;Model S&lt;/a&gt;, and everyone wants one. Their biggest problem will be that they can’t make them fast enough. The only people unhappy about the success of Tesla are oil companies. This doesn’t bother anyone.&lt;/p&gt;

&lt;p&gt;Under the leadership of Marissa Meyer, Yahoo finally gets it together. The long-floundering tech company stops trying to be all things to all people, and focuses its time and energy on a few key products where it actually stands a chance of winning. Yahoo Answers focuses on becoming a decent source of real-time information. Flickr becomes cool again as the joy gets sucked out of Instagram.&lt;/p&gt;

&lt;p&gt;Microsoft has its worst year ever. Surface tablets won’t sell. Touch screen laptops are derided as a joke (seriously, the whole device wobbles every time you touch the display). Office becomes increasingly irrelevant to small businesses and to consumers. The Enterprise Services division is as important as ever though, and that props up the company. It might be fun to hate on Microsoft (I’m certainly enjoying it), but it’s important to remember that this is a company with a truckload of money. They can afford to run at a loss for quite some time. While their immediate future looks rough, the company isn’t going anywhere.&lt;/p&gt;

&lt;p&gt;Google (and in particular Android) has a great year. I have no idea what the next version of Android will be code named (Klondike bar? Krispy Kreme?), but it’ll have a user interface that’s coherent and consistent in a way that no other version of Android has ever been. Google will stop scratching the surface of what’s possible, stop playing catch-up with Apple, and show us a genuine vision for the future of mobile devices. App developers start embracing the platform in a way that was previously reserved for iOS. Android apps start showing up on &lt;a href=&quot;http://beautifulpixels.com&quot;&gt;Beautiful Pixels&lt;/a&gt; in significant numbers.&lt;/p&gt;

&lt;p&gt;Apple plods along making money hand over fist, but we don’t see an Apple branded television set, wrist watch, pocket knife, or scuba diving kit. They stick to what they know, making better versions of last year’s stuff, and making their customers pretty happy. The Mac Pro gets a major overhaul, &lt;a href=&quot;http://www.marco.org/2012/06/11/half-assed-mac-pro&quot;&gt;making Marco Arment happy&lt;/a&gt;. It comes with a Retina Thunderbolt display, which reviewers run out of hyperbole to describe. After 2012’s unremarkable iOS 6, I don’t really have high hopes for the immediate future of the iPhone, though I’m sure it’ll involve fewer bits of torn paper in the calendar app now that Jony Ive is calling the shots.&lt;/p&gt;

&lt;p&gt;Last year I ended with a prediction (more of a prayer really) that Half Life 3 gets released. With the news that &lt;a href=&quot;http://au.ign.com/articles/2012/11/12/valve-working-on-new-game-engine&quot;&gt;Valve is working on a new game engine&lt;/a&gt; I’ll make the same gamble again this year, and I sincerely hope that this time I’m proven right.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Help Yourself</title>
        <link href="http://brianwillis.com/2012/10/30/help-yourself.html"/>
        <updated>2012-10-30T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2012/10/30/help-yourself</id>
        <content type="html">&lt;p&gt;The self-help genre tends to be pretty hopeless. You never see authors promoting their self-help books with follow up studies or anything that looks like evidence. Instead you see anecdotes dressed up as science, dubious before-and-after shots, and the kind of hand wavy nonsense that gives marketers in general a bad name. Despite having a few family members that are into it, and despite drinking that particular flavour of Kool-Aid myself as a teenager, these days I do everything I can to avoid self-help.&lt;/p&gt;

&lt;p&gt;A while back &lt;a href=&quot;http://www.codinghorror.com/blog/2011/07/nobodys-going-to-help-you-and-thats-awesome.html&quot;&gt;Jeff Atwood wrote a post&lt;/a&gt; about a self-help book that I’ll talk about here, and he had some positive things to say. Jeff’s a pretty bright guy, so this surprised me and made me think I should perhaps reconsider my position. I’ve been shifting gears in the last couple of months, thinking about what it is that I really want for my life, and so, looking for guidance, I let down my guard and read a few well recommended books in the self-help genre. I’m going to talk about three of them here, in order from worst to best.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2012-10-30-the-element-book-cover.jpg&quot; srcset=&quot;/images/2012-10-30-the-element-book-cover@2x.jpg 2x&quot; alt=&quot;Cover of The Element by Ken Robinson.&quot; title=&quot;Cover of The Element by Ken Robinson.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Riding on the coat tails of his widely watched and &lt;a href=&quot;http://www.ted.com/talks/sir_ken_robinson_bring_on_the_revolution.html&quot;&gt;fairly entertaining TED talk&lt;/a&gt;, Ken Robinson’s book &lt;em&gt;The Element&lt;/em&gt; aims to flesh out the argument he made at TED more fully, and, I don’t know, make some money? I honestly have no idea what the purpose of this book is.&lt;/p&gt;

&lt;p&gt;It starts strong, with convincing arguments about how the school system fails our children, how we keep kids drugged up to the eyeballs, and parades a seemingly endless cast of characters before us to demonstrate that traditional methods of teaching aren’t working for everyone. Robinson succeeded in convincing me that in order to live self-actualised lives we have to find our passions and discover the place where we are in our element.&lt;/p&gt;

&lt;p&gt;Then the book ends.&lt;/p&gt;

&lt;p&gt;Seriously, that’s it. No how-to guide. No directions on how we might get from where we are to where we want to be. That’s it. You’re on your own now. Good luck.&lt;/p&gt;

&lt;p&gt;It felt like the book was half finished, with considerable discussion of the problem, and very little attention to the solution. I felt like I’d been had.&lt;/p&gt;

&lt;p&gt;I could rant about this for a while, and in an early draft of this post I did exactly that, but it’s pointless to drag this out. Suffice it to say, I was pretty upset.&lt;/p&gt;

&lt;p&gt;Moving on…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2012-10-30-59-seconds-book-cover.jpg&quot; srcset=&quot;/images/2012-10-30-59-seconds-book-cover@2x.jpg 2x&quot; alt=&quot;Cover of 59 Seconds by Richard Wiseman.&quot; title=&quot;Cover of 59 Seconds by Richard Wiseman.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The post Jeff Atwood wrote that started this whole thing off, was about &lt;em&gt;59 Seconds&lt;/em&gt; by Richard Wiseman. It’s a remarkable and unique book that takes the evidence collected by psychology researchers, strips it from the dry academic tomes where it’s being held hostage, and presents it to us mere mortals in a readable and accessible way.&lt;/p&gt;

&lt;p&gt;There’s a lot of great stuff to learn about in psychology that’ll change the way you perceive the world and perceive other people. What makes it interesting is that it’s so counterintuitive. Psychology has a habit of pointing out the bugs in our mental software that most of us go through life completely oblivious to, and through having these problems pointed out to us we can learn to work around them.&lt;/p&gt;

&lt;p&gt;For example: Does talking about traumatic events from your past helps you recover from them? The evidence suggests it doesn’t (writing about them is more effective, supposedly because it forces your brain to form a coherent narrative). Yet for many victims of trauma, talk therapy is sometimes the first thing they seek out.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;59 Seconds&lt;/em&gt; is also surprising, in that it offers up evidence that many self-help books are full of crap.&lt;/p&gt;

&lt;p&gt;Does spending some time visualising having already achieved your goals make it more likely that you’ll follow through? Nope. Sorry. Apologies to all the “law of attraction” fans out there, but there’s no evidence of that. In fact there’s some evidence that it might reduce your motivation to get whatever it is you’re aiming for.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2012-10-30-switch-book-cover.jpg&quot; srcset=&quot;/images/2012-10-30-switch-book-cover@2x.jpg 2x&quot; alt=&quot;Cover of Switch by Chip and Dan Heath.&quot; title=&quot;Cover of Switch by Chip and Dan Heath.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The last book I want to talk about is &lt;em&gt;Switch&lt;/em&gt; by Chip and Dan Heath. This book deals specifically with change, which is what self improvement is really all about. &lt;em&gt;Switch&lt;/em&gt; takes a broader focus, teaching us how to create change not just in ourselves but in groups and organisations that we lead.&lt;/p&gt;

&lt;p&gt;The book revolves around a central analogy of an elephant being guided down a path by a rider. The elephant in this analogy is our subconscious. Big, powerful, irrational, and kind of reckless. The elephant has enormous power over the direction it travels in, but it can’t make plans or deliberately make sacrifices for the greater good. The rider in this analogy represents our conscious mind. The rider can think long-term, make plans and goals, and exerts some influence over the elephant, but is comparatively weak. Finally we’ve got the path, representing our environment and the people and conditions that we work with.&lt;/p&gt;

&lt;p&gt;Now the rider can (for a while at least) wrestle the elephant, and force it to go where it doesn’t want to. We call that self discipline. But how long does that last? Eventually the rider gets tired, wears out, and the elephant gets its way.&lt;/p&gt;

&lt;p&gt;The point the authors are trying to make here is that when we try and fail to change something with willpower alone, it’s often not a symptom of laziness, it’s exhaustion. Reading that point was revelatory for me.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Switch&lt;/em&gt; is broken into sections on how to direct the rider, guide the elephant, and shape the path. In doing so, the authors argue that we’ll increase our chances of success by creating an environment where following through on the goals we set is more natural than ignoring them or putting them off for another day. I know achievement without willpower sounds like something that’s too good to be true, but &lt;em&gt;Switch&lt;/em&gt; is a compelling and convincing book that is grounded in reality.&lt;/p&gt;

&lt;p&gt;I’ll wind up this very disjointed post by saying that while I probably won’t be signing up for the next feel-good positive-self-talk seminar that comes to town, my opinion on self-help has softened a little from reading these three books (well, the last two anyway). There is some honest to goodness value here if you’re prepared to spend your time on writers who focus on stuff that actually works.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Initial Impressions of Today’s iPhone 5 Announcement</title>
        <link href="http://brianwillis.com/2012/09/13/initial-impressions-of-todays-iphone-5-announcement.html"/>
        <updated>2012-09-13T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2012/09/13/initial-impressions-of-todays-iphone-5-announcement</id>
        <content type="html">&lt;p&gt;Apple will sell a lot of these. Any criticism that you hear today will be shut down with the counter-argument that Apple is going to sell millions of iPhone 5s and we all know it.&lt;/p&gt;

&lt;p&gt;While the (reversible!) lightning connector is a good idea, the name is a bad choice. I can see people getting “lightning” and “thunderbolt” mixed up.&lt;/p&gt;

&lt;p&gt;The four inch display is very nice to look at, but stretching the device vertically to accommodate it does make the iPhone look a little odd. Maybe it’s just one of those things that will take me some time to get used to.&lt;/p&gt;

&lt;p&gt;iOS 6 is lovely. I’m particularly looking forward to the new Do Not Disturb setting that silences alerts while you sleep. I’m concerned about the shift away from Google Maps, but with a company that needs to be in control of everything like Apple does, it was inevitable that this would happen eventually. It’s possible that Google will introduce their own mapping app for the iPhone in similar fashion to this week’s new &lt;a href=&quot;http://itunes.apple.com/us/app/youtube/id544007664&quot;&gt;YouTube app&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Much of the criticism I’m reading on the &lt;a href=&quot;http://www.reddit.com/r/apple/comments/zruk0/keynote_reaction_thread/&quot;&gt;Reddit keynote reaction thread&lt;/a&gt; and its &lt;a href=&quot;http://news.ycombinator.com/item?id=4512316&quot;&gt;equivalent on Hacker News&lt;/a&gt; seems to boil down to people being upset about a lack of genuine innovation. Many of us were hoping Apple would knock our socks off with something so absurdly impressive that we would all feel the way we did when the first iPhone was announced. Unfortunately I don’t think we’ll ever feel that way again, about any product, from any company.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>What I Learnt in Asia</title>
        <link href="http://brianwillis.com/2012/06/08/what-i-learnt-in-asia.html"/>
        <updated>2012-06-08T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2012/06/08/what-i-learnt-in-asia</id>
        <content type="html">&lt;p&gt;For the past month I’ve been trekking around Southeast Asia. There’s a million blog posts out there by a million authors talking about their experiences travelling through the region, and I don’t think there’s much to add to that discussion. So instead, here’s a list of stuff I learnt while on the road.&lt;/p&gt;

&lt;h3 id=&quot;plan-your-stay-around-local-transport&quot;&gt;Plan your stay around local transport.&lt;/h3&gt;
&lt;p&gt;If you’re going to Bangkok, find a hotel near the sky train. Your other options for transport are pretty miserable. Tuk-tuk drivers want to take you to their cousin’s store where you’ll be pressured into buying crap so that the driver can make a commission, and taxi drivers never want to use the meter (in Thailand the government regulates meter prices for taxis so drivers would rather haggle you into an inflated price). Take the sky train whenever possible and you’ll avoid all this crap. I know that out of the way budget hotel has rates that are hard to ignore, but every dollar you save on the room you’ll end up spending on transport.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2012-06-08-wat-phra-singh.jpg&quot; srcset=&quot;/images/2012-06-08-wat-phra-singh@2x.jpg 2x&quot; alt=&quot;Wat Phra Singh in Chiang Mai, Thailand.&quot; title=&quot;Wat Phra Singh in Chiang Mai, Thailand.&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-ipad-has-become-the-worlds-default-computing-device&quot;&gt;The iPad has become the world’s default computing device.&lt;/h3&gt;
&lt;p&gt;In my completely anecdotal experience, iPads outnumber laptops by around three to one. On my flight between Sydney and Bangkok every single row in economy class had at least one person using one. Both travellers and locals seem pretty enamoured with them.&lt;/p&gt;

&lt;h3 id=&quot;cambodians-dont-use-their-own-currency&quot;&gt;Cambodians don’t use their own currency.&lt;/h3&gt;
&lt;p&gt;Well, not much anyway. The Cambodian Rial has seen such dramatic inflation over the years that it’s now practically worthless. American Dollars are used everywhere for pretty much everything. When you get off the plane in Phnom Penh, you’ll be directed to a counter to apply for your entry visa. This costs 20 US Dollars. You can not pay in Rial. Hold this idea in your head for a second: the Cambodian government, in its official capacity as the authorising agent of Cambodian visas, does not accept its own currency.&lt;/p&gt;

&lt;p&gt;I didn’t really understand why until I’d spent a few days in Cambodia. When you make a purchase, any change you receive that’s less than one US Dollar is paid out in Rial. This means that you’re not carrying a bunch of coins, which I was grateful for, but it also means that after a few days your wallet will start to resemble a drug dealer’s. My bifold was so thick with notes that I couldn’t fold it in half. As I went to leave Cambodia, I changed out my two inch stack of Rials and walked away with six bucks.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2012-06-08-angkor-wat.jpg&quot; srcset=&quot;/images/2012-06-08-angkor-wat@2x.jpg 2x&quot; alt=&quot;Angkor Wat in Cambodia.&quot; title=&quot;Angkor Wat in Cambodia.&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;smaller-cities-are-a-great-place-to-chill-out&quot;&gt;Smaller cities are a great place to chill out.&lt;/h3&gt;
&lt;p&gt;I loved Chiang Mai in the north of Thailand, and Siem Reap in the north of Cambodia. Both of them easily beat out their respective capital cities on a bunch of metrics. Hotels are cheaper, people selling things are less pushy, drivers are less reckless, tourist attractions are less crowded, people seem happier. The lower population density makes for a calmer environment, and being further north drops the temperature a few degrees.&lt;/p&gt;

&lt;h3 id=&quot;local-food-can-be-surprisingly-difficult-to-find-especially-around-hotels&quot;&gt;Local food can be surprisingly difficult to find, especially around hotels.&lt;/h3&gt;
&lt;p&gt;Italian food seems to have become the world’s de facto comfort food. Pizza, ice cream, pasta, burritos, french fries, and burgers are all incredibly easy to find. I can appreciate that in a restaurant that mainly caters to tourists you’d have some western offerings, but I didn’t expect I’d have to wade through six pages of fast food to find Pad Thai hidden begrudgingly at the back of the menu.&lt;/p&gt;

&lt;h3 id=&quot;free-wifi-is-abundant-though-sometimes-slow&quot;&gt;Free wifi is abundant, though sometimes slow.&lt;/h3&gt;
&lt;p&gt;If life were like this back home I’d be a happy man. I sincerely hope that the days of hotels in the developed world charging $30 a night for wifi are coming to an end. I paid less than that for my entire room in most places, and wifi was always included free. The same goes for cafes and restaurants - it’s an expectation that they’ll have internet access.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2012-06-08-dot-mac.jpg&quot; srcset=&quot;/images/2012-06-08-dot-mac@2x.jpg 2x&quot; alt=&quot;Retail boxes for .mac subscriptions.&quot; title=&quot;Retail boxes for .mac subscriptions.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can still buy a &lt;a href=&quot;http://en.wikipedia.org/wiki/MobileMe#.Mac&quot;&gt;.mac subscription&lt;/a&gt; in Bangkok (though why you’d want to is beyond me).&lt;/p&gt;

&lt;h3 id=&quot;the-smartphone-is-the-greatest-invention-for-travellers-since-lonely-planet-guidebooks&quot;&gt;The smartphone is the greatest invention for travellers since Lonely Planet guidebooks.&lt;/h3&gt;
&lt;p&gt;You should absolutely bring yours with you. I knew I’d find myself using the camera and currency converter often, but I’ve also been surprised by how much easier it is to read a paper map while using your phone’s built in compass, and Google Maps with GPS (which is pretty easy to access with the aforementioned wifi) saved me from being seriously lost on more than one occasion.&lt;/p&gt;

&lt;h3 id=&quot;do-not-get-sunburnt&quot;&gt;Do not get sunburnt.&lt;/h3&gt;
&lt;p&gt;It hurts like hell, and kills the fun for the time that you spend healing. While we’re on the subject, do not get malaria. I don’t have first-hand experience with this particular joy of travel, but the doctor back home made it sound unpleasant enough.&lt;/p&gt;

</content>
    </entry>

    <entry>
        <title>Design for Hackers</title>
        <link href="http://brianwillis.com/2012/03/03/design-for-hackers.html"/>
        <updated>2012-03-03T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2012/03/03/design-for-hackers</id>
        <content type="html">&lt;p&gt;I first heard about David Kadavy’s book &lt;em&gt;Design for Hackers&lt;/em&gt; on &lt;a href=&quot;http://kickstarter.com&quot;&gt;Kickstarter&lt;/a&gt;, where he was raising funds to go on a book tour. The irrational part of my brain that thinks autographed copies of books are somehow better than the regular ones disregarded the fact that international shipping would make this one of the most expensive book purchases I’ve made in years, and hit the “donate” button. To be fair, the $75 that I ended up spending turned out to be worth it.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2012-03-03-kadavy-autograph.jpg&quot; srcset=&quot;/images/2012-03-03-kadavy-autograph@2x.jpg 2x&quot; alt=&quot;David Kadavy&apos;s autograph on the first page of Design for Hackers.&quot; title=&quot;David Kadavy&apos;s autograph on the first page of Design for Hackers.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Look! An autograph!&lt;/p&gt;

&lt;p&gt;I’m sure many of you reading this started out creating user interfaces in the same way I did. We can appreciate good design and pleasant aesthetics. We’ve got this idea in our heads that because we can recognise good design and see it in the work of others, that we should be able to create it ourselves. I mean, how hard could it be?&lt;/p&gt;

&lt;p&gt;So one day you sit down in front of your favourite text editor and whip up a web site that you’re sure will get you a prime slot on &lt;a href=&quot;http://www.cssmania.com/&quot;&gt;CSSMania&lt;/a&gt; so that finally your genius may be recognised. You’re feeling good about the project, until the moment comes when you open up a fresh browser window and see the crime-against-nature that you’ve created glaring back at you.&lt;/p&gt;

&lt;p&gt;The problem isn’t that you’ve created an abomination and can’t recognise it — you know you’ve just spent a couple hours churning out crap. The problem is that you can’t articulate why your stuff is bad, and more importantly how you could make it suck less.&lt;/p&gt;

&lt;p&gt;Enter David Kadavy…&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Design for Hackers&lt;/em&gt; is a great way to skim the surface of many areas of design. You get a beginner’s guide to just about everything any half decent programmer needs to know about colour, typography, composition, and proportion.&lt;/p&gt;

&lt;p&gt;In particular when it comes to typography I’ve found it difficult to find a decent guide using fonts with computer displays. Most of the classics focus on print and how ink appears on a page. Anyone who’s spent five minutes with a Kindle knows that the medium you’re reading on dramatically affects the way you experience text, and choosing a font for use on a display requires an entirely different kind of thinking to choosing fonts for print. &lt;em&gt;Design for Hackers&lt;/em&gt; really shines in this department. I’ve found myself referring to the book’s appendices a few times since my first read through, and it’s really helped clarify my thinking about typography.&lt;/p&gt;

&lt;p&gt;The book itself is well designed (it would be pretty ironic if it wasn’t). There’s plenty of eye candy, with full colour diagrams scattered throughout. It’s a real pleasure to casually flick through. You’ll often find yourself coming across things that grab your attention and spike your curiosity.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2012-03-03-full-colour-diagrams.jpg&quot; srcset=&quot;/images/2012-03-03-full-colour-diagrams@2x.jpg 2x&quot; alt=&quot;Full colour diagram from Design for Hackers.&quot; title=&quot;Full colour diagram from Design for Hackers.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Kadavy spends some time in the early chapters talking about why design matters, reflecting on his time in Europe. There’s one particularly good anecdote where he describes the reaction tourists first have to the Pantheon in Rome, and he uses this to illustrate how good design is built up in layers that play off one another to achieve a harmonious whole. There’s really no arguing that these chapters that draw on Kadavy’s personal experience are just downright better than the rest of the book. Later chapters on colour and typography are densely packed with information, and this makes them a great reference guide. However, as a book designed to be read from start to end, it’s often difficult to see how you’d apply what you’re reading about. I’d like to see future editions include walkthroughs of a design project, or anecdotes about how the author solved problems he encountered in the past using the ideas each chapter discusses.&lt;/p&gt;

&lt;p&gt;On the whole, it’s an excellent first edition of a book that could very well become a classic of software writing. If you’d like to understand what the designers on your team are talking about, and not embarrass yourself in front of them with your creations, this is the book to start with.&lt;/p&gt;
</content>
    </entry>

    <entry>
        <title>Predictions for 2012</title>
        <link href="http://brianwillis.com/2011/12/14/predictions-for-2012.html"/>
        <updated>2011-12-14T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2011/12/14/predictions-for-2012</id>
        <content type="html">&lt;p&gt;Just for fun, here’s some baseless speculation about the upcoming year.&lt;/p&gt;

&lt;p&gt;Research in Motion dies with a whimper. They get bought out by another company who wants their patent portfolio. I’m guessing Microsoft, but Google and Samsung are equally good candidates. In the press release announcing the purchase of RIM, Mike Lazaridis makes absolutely no sense.&lt;/p&gt;

&lt;p&gt;Under its new GPL-compatible license, WebOS gets a new hardware vendor. A real one, who is getting sick of the Android licensing and patent situation. Unlike HP, this company actually gives a damn about the future of the project, and devotes considerable resources to filing down its rough edges. Citing WebOS’s respect for freedom, Stallman throws his weight behind the project. This results in approximately zero people buying a WebOS tablet. Citing pleasant hardware and polished software, Walt Mossberg throws his weight behind the project. This results in a couple million people buying a WebOS tablet.&lt;/p&gt;

&lt;p&gt;Microsoft releases Windows 8. It’s actually good. This surprises people. From day one, there’s a gold rush in the Windows App store. Many independent developers become millionaires. Microsoft makes sure we all know about them. While Windows does well, Microsoft Office becomes increasingly irrelevant for home users whose use of cheap/free alternatives climbs. Corporate IT departments start taking Google Docs more seriously as we start to hear about household-name companies making the switch.&lt;/p&gt;

&lt;p&gt;Apple has an uninspiring year, with no announcements that are particularly surprising. This disappoints people for no sensible reason. The company remains loaded with cash. The Mac and iPhone continue to sell well, and the iPad continues to own &amp;gt;85% of the tablet market. The retina display iPad, 15” MacBook Air, and iPhone 5 are all released with much fanfare (though some argue “it should be called the iPhone 6, because the iPhone 3G was actually the second model, and…” OK guys, we get it). Honestly, even John Gruber can’t bring himself to give a damn about the great iPhone numbering saga of 2012.&lt;/p&gt;

&lt;p&gt;From a market share standpoint, Android on smartphones has a good year. New user registrations continue to pour in. Ice Cream Sandwich makes a lot of people happy. At Google I/O Matias Duarte announces Android Jelly Bean (Jello-shot? Jersey-caramel? Jawbreaker? There are a lot of junk food names starting with J). Internally at Google, questions about the bottomless pit they’ve been pouring money into for Android become harder to ignore.&lt;/p&gt;

&lt;p&gt;From any standpoint, Android on tablets does badly. The majority of consumers still hear “tablet” and think “iPad”, and those that know better are frankly more interested in WebOS. This does no favours for the people defending the continued pouring of money into the bottomless pit.&lt;/p&gt;

&lt;p&gt;Gabe Newell announces Half Life 3 at E3. It uses an all-new graphics engine developed by Valve to eventually replace Source. In the game, all our questions are answered, and fans get a satisfying ending to a franchise they’ve loved for more than a decade.&lt;/p&gt;

&lt;p&gt;OK, maybe that last paragraph is more wishful thinking than a sensible prediction, but a guy can dream.&lt;/p&gt;
</content>
    </entry>

    <entry>
        <title>Cringe</title>
        <link href="http://brianwillis.com/2011/12/05/cringe.html"/>
        <updated>2011-12-05T00:00:00+00:00</updated>
        <id>http://brianwillis.com/2011/12/05/cringe</id>
        <content type="html">&lt;p&gt;The problem with any kind of creative work is that the only way to get better at it is with repeated practice. I want to become a better writer (among other things) so that means I’ve got to write, but that raises a problem for my future self.&lt;/p&gt;

&lt;p&gt;I’ve been reading through some of the stuff I wrote a decade ago for various classes at school, and the thing that sticks out most is how totally oblivious I was about how bad I was at writing. Some of those essays are just god-awful. They’re riddled with quirky uses of grammar, badly constructed sentences, and half-baked ideas.&lt;/p&gt;

&lt;p&gt;All of this has got me worrying. Some day, I’m going to look back at this early stuff and I’m going to react in the same way that I do now to my high school essays. I’ll roll my eyes at the thoughtless mistakes that seem obvious with hindsight. I’ll wonder what on Earth I was thinking when I wrote up that personal anecdote that really shouldn’t have been shared with the world. I’ll cringe at the mistakes I’m making right now without even noticing.&lt;/p&gt;

&lt;p&gt;So to future me, I apologise.&lt;/p&gt;
</content>
    </entry>
</feed>
