ongoing by Tim Bray https://www.tbray.org/ongoing/ rsslogo.jpg /favicon.ico 2018-01-01T17:27:17-08:00 Tim Bray ongoing fragmented essay by Tim Bray All content written by Tim Bray and photos by Tim Bray Copyright Tim Bray, some rights reserved, see /ongoing/misc/Copyright Generated from XML source code using Perl, Expat, Emacs, Mysql, Ruby, Java, and ImageMagick. Industrial-strength technology, baby. Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…

Happy New Year! https://www.tbray.org/ongoing/When/201x/2018/01/01/Happy-New-Year-Bug 2018-01-01T12:00:00-08:00 2018-01-01T15:29:53-08:00
Best of 2018 to you. But this isn’t a re­al blog post, it’s a place­hold­er to de­bug a sub­tle Uni­code bug in my com­ment sys­tem that doesn’t ap­pear on my stag­ing en­vi­ron­men­t. *sigh*

Best of 2018 to you. But this isn’t a real blog post, it’s a placeholder to debug a subtle Unicode bug in my comment system that doesn’t appear on my staging environment. *sigh*

Aaaaand, that does it. The bug was introduced when I switched over to Ruby 2.x, approximately five years after I should have. Ruby 2 is known to have differences in UTF-8 handling. That turned out to be OK, the bug was in the fifteen-year-old Perl substrate. I have to say I’m a different kind of person than I was when I bashed out that Perl in 2002. And while I don’t want to diss Perl, I would never do anything like that again.

Oh well, pardon the interruption.

Songs of the Day https://www.tbray.org/ongoing/When/201x/2017/12/31/Songs-of-the-Day 2017-12-31T12:00:00-08:00 2018-01-01T12:18:36-08:00
Here’s my New Year’s Res­o­lu­tion: I’ll try to try to pub­lish a short piece ev­ery day rec­om­mend­ing a song that I think is ex­cel­len­t, and apt to please at least some read­er­s. Let’s see how far in­to 2018 I get; a quick run through the col­lec­tion turned up around 240 can­di­dates, so a whole year’s worth of songs would be a stretch goal. Read on for mo­ti­va­tion, lo­gis­tic­s, and me­chan­ic­s. Or just read the song notes, start­ing to­mor­row. Or don’t.

Here’s my New Year’s Resolution: I’ll try to try to publish a short piece every day recommending a song that I think is excellent, and apt to please at least some readers. Let’s see how far into 2018 I get; a quick run through the collection turned up around 240 candidates, so a whole year’s worth of songs would be a stretch goal. Read on for motivation, logistics, and mechanics. Or just read the song notes, starting tomorrow. Or don’t.

Why?

2018 will be this blog’s fifteenth year, and the fragments don’t flow as fast as they used to; I have to reach back pretty far sometimes to achieve even three or four microessays a month. Which is weird, because ongoing centers on computing, and I’m intensely engaged at the white-hot core of Cloud, which as interesting a technology segment as there is. Especially if money is your measure.

But… there’s this term “insider” and I’m one of those, de jure and for real, and I could write any number of authoritative and amusing pieces on Hybrid Cloud or Serverless Economics or competing with Azure vs Google or, well, you get the idea, but I couldn’t convincingly claim they were uninfluenced by my work at AWS or didn’t reflect views held by at least some senior people. And that wouldn’t do at all. Might even be illegal.

I still find space to technologize here now and again when I think it can’t go wrong, but there’s writing energy curdling in the back of my brain. And I used to have fun here with the 5★♫ series, and music’s been a primary recreation for way more than 38 years. So welcome to “SotD”, a tiny song-discovery service.

Rules

  1. “Song” doesn’t strictly imply a singer. I should strictly say “track of the day” but “song” is a better word.

  2. It does imply some virtues of brevity and coherency; I won’t be recommending abrasive free-jazz jams or 70-minute minimalist drones or gamelan explosions.

  3. A lot of it is going to be kind of old, because I am, but let’s see if we can have regular visits to this century. And I’m determined to find something in 2018 to feature in 2018.

  4. I’ll work on diversity, but Canadians, males, and electric guitars are going to be over-represented.

  5. I’ll restrict myself to things you can actually get, which sadly means I’ll have to skip that dub compilation on a skeevy-looking CD I got in a skeevier-looking part of Sydney in 1991.

  6. You’re probably gonna hate some of the SotDs.

  7. I reserve the right to re-use some previous 5★♫ tunes.

  8. Other things being equal, I’ll lean to great songs from the lesser-known, and lesser-known songs from the great. Which means, expect a few one-hit wonders. But big hits get to be big hits for a reason, and anything that was a big hit before say 1990 comes from another planet anyhow.

Logistics

This is the World Wide Web, y’know? So I would very much like to link to every song. There are a lot of ways to access music these days and in principle they should have links. At a minimum, I think I ought to be providing iTunes, Google Play, Spotify, and Amazon links, and would gratefully consider suggestions for other channels.

Of those, Google Play is the only one I use (here’s why) but so far I haven’t figured out how to extract song URLs from its JavaScript maelstrom.

I believe firmly that Live Music Is Better, so wherever possible I’m going to link to live video. Things being what they are, this means a lot of YouTubes; oh well.

SotD: New Year’s Day https://www.tbray.org/ongoing/When/201x/2018/01/01/SotD-New-Years-Day 2018-01-01T12:00:00-08:00 2018-01-01T12:18:25-08:00
Back in the late Eight­ies, for a few months I went to aer­o­bics class, and once ev­ery ses­sion the in­struc­tor put this U2 chest­nut on and ev­ery time my beats-per-minute cranked right up. Not in the slight­est ob­scure, but worth re­vis­it­ing at least once a year, ide­al­ly on this day.

Back in the late Eighties, for a few months I went to aerobics class, and once every session the instructor put this U2 chestnut on and every time my beats-per-minute cranked right up. Not in the slightest obscure, but worth revisiting at least once a year, ideally on this day.

U2 are pretty well dinosaurs now, but then I am too. And when they stomped the earth in the late Eighties, it shook. They brought a whole lot of musical intensity to the stage, and the best live bass sound I’ve ever heard. And passion: I recall a hot summer night back, then an outdoor show; Bono’s arm was in bandages and a sling because he’d fallen off the stage a few nights earlier. But then they were swinging into People Get Ready and he said “Gotta have two guitars for this one” and ripped the bandages off to play rhythm. That’s rock&roll.

Anyhow, New Year’s Day is a fine song; note what’s maybe Edge’s best ever guitar break, and the clever way he switches between guitar and piano. Also the, foundational guitar isn’t guitar at all, it’s bass, one of Adam Clayton’s nicest outings.

Links

Spotify, Amazon, iTunes, live video (wow, a lot).

Moving Mobile Windows https://www.tbray.org/ongoing/When/201x/2017/12/27/Columnar-Navigation 2017-12-27T12:00:00-08:00 2017-12-27T21:42:21-08:00
A large pro­por­tion of the in­for­ma­tion I con­sume on my mo­bile comes from two app­s: The Economist (iOS, An­droid), and a whole lot of feeds via Feed­ly (iOS, An­droid). They both present text in nar­row columns and share a love­ly, sim­ple nav­i­ga­tion metaphor which un­for­tu­nate­ly has re­cent­ly bro­ken (on An­droid at least­).

A large proportion of the information I consume on my mobile comes from two apps: The Economist (iOS, Android), and a whole lot of feeds via Feedly (iOS, Android). They both present text in narrow columns and share a lovely, simple navigation metaphor which unfortunately has recently broken (on Android at least).

In both cases, each story is presented in a single column that fills the screen from left to right and extends arbitrarily far down, as long as need be for the piece’s body. The stories are side by side. There are only two ways to navigate: Up or down the columns, and right or left between stories. Here’s a picture.

Columnar navigation

I’m sure other newspaper and information-dense apps must have adopted this metaphor because it’s just so intuitive. It works great on mobile because no matter how fat-fingered you are, the app only has to distinguish between vaguely-North/South and vaguely-East/West and the right thing almost always happens.

Now, there’s a subtlety: If you swipe left to go to the next story, you want to bounce up to its top. But if you swipe back, you almost certainly don’t want to bounce to the top of the previous story, because you already read that, and you probably are going back because you accidentally swiped while reaching for a drink, or realized a microsecond after you swiped that that paragraph was more interesting than it’d seemed when you launched your finger.

And if you’ve read a ways down story B and swipe back to A, then forward again to B, once again you don’t want to pop to the top of B. Which is to say, it should remember your scroll position, at least for the immediate predecessor and successor of whatever it is you’re reading.

And, both apps used to. But sometime in 2017 they stopped, snapping remorselessly to the top of whatever column you swipe to, forward or back. It’s annoying as hell; maybe because I often change my mind about leaving an article and decide to go back. And the fact that it happened in both the Economist and Feedly makes me wonder if something in the Android app framework broke.

So I’m not sure who I’m mad at; the developers of two of my favorite apps separately, or just someone in the Android group.

If you’re reading this and you think it’s you I might be mad at, well hey, no biggie, but please fix?

How To Sell Bitcoins https://www.tbray.org/ongoing/When/201x/2017/12/19/How-To-Sell-Bitcoin-in-Canada 2017-12-19T12:00:00-08:00 2017-12-20T13:09:11-08:00
In 2013, I bought a few Bit­coins from a dude in a cof­fee shop, pay­ing with hundred-dollar bill­s. Later that year I sold enough to get my mon­ey back. Then I for­got about them, Bitcoin’s price gy­ra­tions oc­ca­sion­al­ly reg­is­ter­ing in a cor­ner of my mind. But ear­li­er this month I de­cid­ed to find out if the re­main­der could be turned in­to re­al ac­tu­al mon­ey, and it turned out they could. Here’s how.

In 2013, I bought a few Bitcoins from a dude in a coffee shop, paying with hundred-dollar bills. Later that year I sold enough to get my money back. Then I forgot about them, Bitcoin’s price gyrations occasionally registering in a corner of my mind. But earlier this month I decided to find out if the remainder could be turned into real actual money, and it turned out they could. Here’s how.

Important note: This narrative applies specifically to exchanging BTC for Canadian dollars, in Canada. Some lessons may apply in other jurisdictions.

How I did it

There are a lot of people out there on the Net who are eager to sell you Bitcoins, but when you want to sell them back for hard cold cash, the offerings seem to thin out. If you’re in the States and go poking around, Coinbase often seems to come up top of the list. And in fact, when I publicized the fact that I was looking to sell, a few people pointed me at Coinbase.

Having said that, a lot of the names that would have turned up if you’d done the same research three years ago have left the stage, some in colorful circumstances, often leaving stakeholders’ digital wallets empty. So you want to be careful.

When I originally bought my digital cash, the Bitcoin-community dude who took my hundred-dollar bills recommended Blockchain.info as an online wallet provider, and I second the recommendation. They never surprised nor disappointed me, and I was pretty impressed with the quality of their clients and the seriousness of their security posture. In the unlikely event that I decide to go back into cryptocurrency, I’d use them again.

I quickly discovered that the most visible US buy/sell services don’t really extend across the 49th parallel. I was casting about, looking at Canadian operators, and getting kind of depressed because the whole territory is more than a bit on the sketchy side, and objective evidence that This Will Work For You is hard to come by. Then, one day at work, I overheard a conversation involving Jonathan, a colleague who’s buying a house, and he said “Yeah, I cashed in my Bitcoins to help with the down payment.” Which got my attention right away; I asked him how and who exactly, and he said he’d used Coinsquare.

Tl;dr: It worked. And here’s what I think is an important lesson: Whatever your cryptocurrency circumstances may be, if they involve real money, the best thing you can do is find someone you know personally who has done whatever you’re trying to do, and follow a well-blazed trail. And, I’d add, follow it quickly; because while it might work today, in the world of Bitcoin, who can say whether it’ll work tomorrow?

Details

When I want to try something new, I appreciate a step-by-step guide, so here you go:

  1. I set up a Coinsquare account. Other operators I’d investigated had elaborate and painful setup requirements, including FAXes and notaries and so on. Coinsquare offered “instant approval” and when I gave them a bunch of salient facts about myself, they came back after a couple seconds’ latency and said “OK, you’re approved.”

  2. I initially funded the Coinsquare account with a $100 bank transfer. I just wanted to verify to my satisfaction that my bank and Coinsquare could talk to each other. A repeating pattern first became obvious here: My $100 showed up in Coinsquare as $95. On this and every subsequent transaction, the intermediaries leaned in and took a cut.

  3. I transferred 0.1BTC from Blockchain.info over to Coinsquare; the BTC-ecosystem charge for this was tiny and felt appropriate, and they showed up in my account at Coinsquare way faster than I expected.

  4. I converted almost all the BTC to Canadian Dollars (CAD). I was a little troubled when Coinsquare rejected my 0.09BTC transaction as “too large”, but it accepted an 0.05BTC sale immediately followed by another of 0.04BTC.

  5. I requested a transfer of most of the output (roughly C$2,000) to my bank account, to establish that channel worked. Anyone who has transferred money between financial institutions knows the drill: The funds vanish from your account within microseconds of you pressing “Confirm”, then the sending institution sits on them for as long as they’re legally allowed to, then they do the actual transfer which takes another microsecond or two, then the receiving institution sits on them for as long as they’re legally allowed to, and then, some days later, the money lands in your account, often smaller than when you sent it, because “Service Charges”. In this case, my C$2K turned into C$1980. Damn, have I mentioned how much I love the finance industry?

  6. I poked around on Coinsquare and discovered their “wealth management” service, apparently aimed at high rollers, which had an attached email address, so I sent them a note saying “I want to sell quite a bit more than 0.1BTC for CAD, can you actually do this?” Almost immediately, the “concierge service” got back to me, saying “Transfer in the Bitcoin and we’ll give you a quote that’s good for ten minutes.” So I did, and they did (at several percentage points off the then-advertised price of Bitcoin), and I took it, and almost instantly, Coinsquare informed me that my account there contained a pleasing number of Canadian dollars.

  7. I fired off another wire-transfer request, and after the usual multi-day delay, and with the usual slight diminution in value, I had substantially left behind the role of “cryptocurrency investor”.

Elapsed time: About ten days.

Obviously, I was somewhat annoyed by the succession of grasping digital hands that reached into my digital wallet to extract their digital percentage every time I asked them to update a couple of fields in a database somewhere. But on the other hand, since I was selling the BTC for roughly sixty-four times my acquisition price, and I really wanted to get out of the market, I decided to go with the flow, as in the flow of dollars out of my crypto-pocket.

But I have to say, buying and selling cryptocurrencies is a good business to be in; I haven’t added up the numbers, but Coinsquare and my bank both got paid pretty well for doing some routine database updates.

Why I did it

I love Bitcoin. It is one of the most intellectually elegant constructs I have encountered in my decades in the computing profession. The system has multiple moving parts that work together, doing multiple different difficult things, to accomplish an effect that looks like it ought to be very useful. Whoever Satoshi is or was, I hope he she or they are still alive, sitting on a beach somewhere and enjoying their craftily-gotten gains.

But Bitcoin has descended into bad craziness. You can’t actually use it as money, because money needs to have a somewhat stable and predictable value. Also, its current global blockchain can only do a few transactions per second, so it obviously can’t underlie more than a tiny sliver of any commercial ecosystem.

Those who currently buy it are making the classic “Greater Fool” bet, i.e. that it’ll keep going up because it’s been going up, and some greater fool will come along and take it off their hands. This kind of bet can run much longer than anyone thinks is reasonable, but then someday the music stops and most players won’t find a chair to sit on.

Also, the concentration of Bitcoin ownership is worrying: Check out this story, and accompanying graph, over at ZeroHedge. You can bet that if (I mean when) Bitcoin deflates, the loss is going to be mostly soaked up by the people who’ve bought in recently, the 95%-plus of holders who collectively own less than 5% of BTC. What the graph doesn’t illustrate is the proportion of real non-crypto money that the 95% have injected into the market, and stands to be lost. I bet the answer is “most of it”.

To go all nerdy, I think that cryptocurrencies have a bright future, when transactions are based on something more scalable than proof-of-work, and when they are driven by a killer app that does something useful out of the box. One example might be Ripple.

Closing thoughts

I’m going to have to pay tax on this. Fortunately, since it’s a capital gain, the Canadian tax treatment should be favorable. But there may be bureaucratic difficulties, I have no idea how comfy the Canadian taxman is with this sort of thing.

If you’re in Bitcoin, now’s a good time to take money off the table. Yeah, who knows, it might go up a whole lot more, but then again it might not, and it would be totally unsurprising if there were a catastrophic deflation next Tuesday. And I’ve rarely met anyone who really regretted selling financial assets at a substantial profit.

Here’s the second important lesson: You can probably sell your Bitcoins, but you probably can’t sell them fast. So now might be a good time to start.

The Last JSON Spec https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90 2017-12-14T12:00:00-08:00 2017-12-17T10:22:38-08:00
The IETF just pub­lished RFC 8259 (al­so known as “STD 90”). Edi­tor, yr hum­ble ser­van­t. The legacy-ASCII full text is here and there’s a nice-looking HTML ve­ri­on here. I think this is the last spec­i­fi­ca­tion of JSON that any­one will ev­er pub­lish.

The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use?

If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next?

I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies

To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.

Dark Vegas https://www.tbray.org/ongoing/When/201x/2017/12/01/Dark-Vegas 2017-12-01T12:00:00-08:00 2017-12-01T17:21:14-08:00
I spent four nights in Las Ve­gas while at re:In­ven­t. The city’s day­time as­pect is kind of flat and low-contrast be­cause who cares what it looks like then? Pho­tog­ra­phers there come out like vam­pires af­ter dark. I took along the lu­di­crous “Achromat” lens for the spark­lies, so got ’em if ya want ’em. Al­so hotel, mu­sic, and venue rec­om­men­da­tions you won’t want to mis­s.

I spent four nights in Las Vegas while at re:Invent. The city’s daytime aspect is kind of flat and low-contrast because who cares what it looks like then? Photographers there come out like vampires after dark. I took along the ludicrous “Achromat” lens for the sparklies, so got ’em if ya want ’em. Also hotel, music, and venue recommendations you won’t want to miss.

Let’s start with the sparklies.

Vegas streetlights, sparklified South Las Vegas Boulevard, sparklified Vegas, The Flamingo, sparklified

That lens sure is fun. Not to mention the effect when you tell your table-mates you brought along your Las Vegas Lens and pull a whole lot of tubular gleaming brass out of your bag.

The Bellagio & its fountain

Veterans of the strip may wonder how this picture came to be. Reflections in a window were involved.

Bellagio and its neighbors

The first time I’ve stayed there, and I think I’ll go back. The rooms are nowhere near as glam as in recent-Strip joints like the Wynn or Aria, but things pretty well just work, the casino is less sprawly, and it’s kind of in the middle of things, and then there’s that view if you pay up for a Fountains room.

Bellagio fountain

That picture is an outtake from a two-minute video shot from my 20th-floor room, with faint tinny sound. Taken with the Pixel 2 and really not bad; note how the vibration control squashes the effect of my chronically shaky hands. Warning: It’s 124 MB! The full-size 4K version, which looks glorious on my 15" retina screen, is 710 MB; yow.

That picture doesn’t really capture the scale of the thing; here we are down on the street watching the watchers.

People watching the Bellagio fountain

Sitting at the desk in my room working on my speech, I was amused by the fountain-maintenance process. They could do better, because every time I’ve watched the fountain, there’ve been annoying imperfections: jets that don’t jet, lights that stay dark.

Fixing the Bellagio fountain

I’d like to see someone get ambitious with the fountain music, maybe something by Phil Glass or *gasp* a rock & roll piece. That wouldn’t be very Vegas I guess.

Doubling Down with the Bastards

That would be Thee Swank Bastards, a surf-guitar band, playing at the Double Down Saloon, located not that close to the Strip. They offered a couple hours of pure pleasure.

Thee Swank Bastards at the Double Down Saloon Thee Swank Bastards at the Double Down Saloon

The woman playing bass in the first picture spent most of the night in showgirl mode; her costume, especially the gloves, was fabulous, and she threw in some tasteful striptease. She and the band were having nearly-infinite fun and the standard of surf-guitar playing was impeccable. You can loathe America’s politics and many of its cultural tropes, but no other nation comes close at the pure joyful ecstatic madness of low-rent rock&roll; a tip of my hat across the border.

The Bastards leavened their set with appalling, filthy, dumb jokes whenever they stopped playing. The only one I remember is “What’s the difference between Jesus and a picture of Jesus?” “You only need one nail for the picture.”

As for the Double Down, it’s uh, sincere. A whole lot of tattoos and beards and ripped tights. The big sign on the wall says “Shut Up And Drink”, the one on the bar with embedded poker machines says “Shut Up And Gamble”. We thought about ordering the bacon martini, but nobody did. The Bastards play the Double Down the last Wednesday of every month, and if you’re in Vegas I recommend dropping by.

People, watching

(The people are more interesting after dark, too.)

Guy in a bar in a casino

Watching his phone In a swanky casino bar.

In the Double Down Saloon audience

Watching the band at the Double Down.

Watching the numbers

Watching the numbers.

I actually still don’t like Vegas very much. My camera does though, but it only comes out at night.

Unapocalyptic Software https://www.tbray.org/ongoing/When/201x/2017/11/27/Software-Reality 2017-11-27T12:00:00-08:00 2017-12-01T00:40:32-08:00
The At­lantic pub­lished The Com­ing Soft­ware Apoca­lypse by James Somers, which is full of dire warn­ings and strong claim­s. Here’s one: Since the 1980s, the way pro­gram­mers work and the tools they use have changed re­mark­ably lit­tle. My first pro­gram­ming job was in 1979, I still con­struct soft­ware, and I can tes­ti­fy that that as­ser­tion is deeply wrong, as is much else in the piece.

The Atlantic published The Coming Software Apocalypse by James Somers, which is full of dire warnings and strong claims. Here’s one: Since the 1980s, the way programmers work and the tools they use have changed remarkably little. My first programming job was in 1979, I still construct software, and I can testify that that assertion is deeply wrong, as is much else in the piece.

I would very much like to place an alternative view of my profession before the people who have consumed Mr Somers’, but I wouldn’t know how, so I’ll just post it here; maybe an Atlantic reader or two will stumble across it.

Oops

When I read this piece I tweeted “Reading non-coders’ words about coding is… weird.” That was wrong because there’s plentiful evidence that he’s a well-accomplished developer. So, apologies. But he’s still wrong.

Wrong, you say?

First of all, the people Somers describes, who write the matter-of-life-and-death logic at the center of the systems that dispatch 911 calls and drive cars and fly planes, are a tiny minority — it’s like a dog-care piece focused on wilderness search-and-rescue dogs. There’s nothing wrong with that kind of dog, nor with the people who program safety-critical systems, but I’ve never met one, and I’ve been doing this for almost four decades.

There’s another problem with Somers’ piece: its claim that writing code is passé, that we’ll be moving away from that into a world of models and diagrams and better specifications and direct visual feedback. This is not exactly a novel idea; the first time I encountered it was in a computing magazine sometime around 1980.

Yes, the notion that you build complex interactions between computing devices and the real world by editing lines of code feels unnatural and twisted, and in fact is slow and expensive in practice. We’ve been looking for a better way since I got into this game; but mostly, we still edit lines of code.

And as for the sensible-sounding proposal that we just write down our requirements, not in code, but in something much higher level, in such a way that a computer can understand them as written and execute them? That’s another old and mostly-failed idea.

So, Somers is wrong twice. First, in asserting that software is moving away from being built on lines of code (it isn’t), and second, that the craft of constructing software isn’t changing and getting better (it is).

So, what do you actually do, then?

Glad you asked. All sorts of things! We developers are now some millions strong worldwide — almost certainly more than ten million and I suspect less than fifty; but it’s hard to measure.

As in most professions, most of the work is strikingly pedestrian; discovering what our co-workers need their computers to do, and also what their managers want, and trying to arrange to keep these tribes happy and at peace with their computers and each other.

To a huge extent, that involves acquiring, deploying, and configuring software that was created by others. Thus, a lot of time in meetings, and then even more figuring out how to make the travel or scheduling or amortization app do what people need done.

On the other hand, some of us write software for rockets, for music synthesizers, for Pixar movies; all these things have an obvious cool factor. And others (surprisingly, among the most-admired) write “low-level” software, useful only to programmers, which underlies all the software that is useful to actual humans. There are many kinds of this stuff: for example “Operating Systems”, “Database kernels”, “Filesystems”, “Web frameworks”, and “Message brokers”.

Software is getting better

Let me be more specific: Compared to back when I was getting started, we build it faster and when we’re done, it’s more reliable.

The reasons are unsubtle: We build it faster because we have better tools, and it’s more reliable because we’re more careful, and because we test it better.

Reviewing

The big software builders (for example Amazon Web Services, where I work) have learned to follow simple practices with big payoffs. First, those lines of code: They never get put to work until they’ve been reviewed by a colleague; in the vast majority of cases, the colleague finds problems and requests changes, arguments break out, and the new code goes through several revisions before being given the green light. For major pieces of infrastructure code, required approval from two more reviewers, and ten or more revision cycles, aren’t terribly uncommon.

Unit Testing!

Software is constructed of huge numbers of (mostly) very small components; we use names like “functions”, “routines”, and “methods”. They are the units that Unit Testing tests. The unit tests are other pieces of software that feed in many different pieces of data in and check that what comes out is as expected. There are commonly more lines of code in the unit tests than the software under test.

We have loads and loads of tools specifically set up to support Unit Testing; among other things, when you look at those lines of code, there’ll be a vertical bar in the margin that’s green beside lines of code that have been exercised by the unit tests, red beside the others.

These days, we don’t always demand 100% coverage (some code is just too routine and mundane) but we expect anything nontrivial to be covered well by the tests. I think the rise of unit testing, starting sometime not too long after 2000, has yielded the single biggest boost to software quality in my lifetime.

There are other kinds of testing (“Integration”, “Smoke”, “Fuzz”) and we use them all, along with tools that read your code and find potential problems, just like Microsoft highlights your spelling mistakes.

Night and day

It doesn’t sound like much. But seriously, it’s like night and day. Does it sound a little tedious? In truth, it is. But also, our tools have been getting better year over year; programming in 2017 is really a lot more pleasant than it was 2007, 1997, or 1987.

It’s like this: You sit down to improve a piece of software, make a couple of changes, and suddenly a lot of unit tests are failing, leaving ugly red trails on your screen. (In fact, if you made changes and didn’t break unit tests, you worry that something’s wrong.) But then you dig into them one by one, and after not too long, it’s all back to green; which is really a good feeling.

I’m not going to argue that the advanced methods Somers enumerates (being model-driven, state machines, things like TLA+) are useless, or that they’re not being used; I personally have made regular use of state-machine technology. But by and large they’re side-shows. We build software better than we ever have, and it’s just a matter of reviewing and testing, and testing and testing, and then testing some more.

We’re not perfect. But we’re really a lot more grown-up than we used to be. And, relax: There’s no apocalypse on the horizon.

Do You Love Any Dead People? https://www.tbray.org/ongoing/When/201x/2017/11/19/All-Souls 2017-11-19T12:00:00-08:00 2017-11-21T20:23:30-08:00
I think most of us do, so if you’re in Van­cou­ver around Hallowe’en, you should go vis­it A Night For All Souls. Even if ev­ery­one you love is still alive, you should go any­how be­cause it’s full of ex­treme ethe­re­al dark-hued beau­ty.

I think most of us do, so if you’re in Vancouver around Hallowe’en, you should go visit A Night For All Souls. Even if everyone you love is still alive, you should go anyhow because it’s full of extreme ethereal dark-hued beauty.

All Souls is in Vancouver’s Mountain View Cemetary, where I’ve often taken pictures and played Ingress before; it’s central and, yes, has a terrific view of the mountains. The project is city-funded and I hope they go on funding it.

The concept is simple: After dark there are soft lights everywhere, many of them in little shrines you can visit and write a message or light a candle.

Night For All Souls

There is music of some sort; this year, the performers were scattered round the graveyard, synchronized somehow electronically, and the music was dreamy, full of sweet slow shifting shapes

Musician at the Night For All Souls Musician at the Night For All Souls

Some shrines are themed: I recall those dedicated to overdose, and to suicide.

Suicide-themed shrine at the Night For All Souls

There is a certain amount of spirituality but little overt religion.

Shrine at the Night For All Souls

I’m not spiritual in the slightest, but it’s not possible to be unmoved.

The Night For All Souls The Night For All Souls

It’s just lights in the dark for a while at the end of the day, but at the end of the day that’s all we can really hope to be.

Dueling Camera Apps https://www.tbray.org/ongoing/When/201x/2017/11/18/Phone-Cam-Comparison 2017-11-18T12:00:00-08:00 2017-11-19T10:07:38-08:00
I got a Pix­el 2, large­ly be­cause it’s said to have a re­al­ly great cam­er­a, with software-driven mag­ic  —  machine learn­ing at work. Here are two shot com­par­isons be­tween the Google and Light­room An­droid cam­era apps to see what that means in prac­tice.

I got a Pixel 2, largely because it’s said to have a really great camera, with software-driven magic — machine learning at work. Here are two shot comparisons between the Google and Lightroom Android camera apps to see what that means in practice.

Why Lightroom?

Given a choice, I prefer the Lightroom app to Android’s. It has better, more intuitive ergonomics, including a level; makes the phone feel more like a camera. Also, you can edit in the Android version of Lightroom, which has basically the same controls as the desktop version I live in. Also, it shoots and edits DNG “RAW” files. Finally, anything you don’t erase is synced through the Adobe cloud and is auto-magically there in my Mac Lightroom’s “All synced photos” collection. (Yes, even in the Lightroom CC Classic version.) Not only that, but when I edit it on the Mac, the edits are synced back to the phone, so I can show people the improved versions while we’re having lunch. A pretty sweet package, all things considered.

There is a fly in the ointment. The Lightroom app’s pix’s names may end with “.dng” but if you’re used to the massive depth of the files like the ones I get from my Fujifilm XT-1, where you can pull lost beauty out of darkness or dazzle, you’ll be disappointed. Sure, you can pull the “Highlights” slider down or the “Shadows” slider up, and it sort of works, but not like with real camera files.

When it doesn’t matter

These days all cameras are great, given enough light and an appropriate subject. I’ve pretty well totally stopped using the 10-24mm wide-angle with the big camera because my phone is basically Good Enough.

So if we’re going to compare these apps meaningfully, we need to work with hard-to-take pictures that stress out the sensor; the most obvious examples are low light and high contrast.

Well, in November in the Pacific Northwest there really isn’t that much high contrast, but we got plenty of low light. I tried for a different kind of high contrast anyhow like so.

Vancouver night street scene Vancouver night street scene

I’m going to call this one pretty well a wash. The Android-camera version achieved slightly sharper focus, but that’s not really the point in an impressionistic piece like this. What’s significant is that I had to put in a couple minutes photo-editing on the Lightroom DNG to get it to look as good; the sky had a bit of grey luminance noise and the whole scene leaned yellow. Having said that, I like photo-editing.

Oh, I didn’t say, did I? It’s Lightroom above, Android below.

So what the Android camera is doing here is taking whatever comes off the sensor, putting it through a little photo-editing session right there on the camera, giving me a JPEG, and saying, in effect, “don’t bother your pretty little head about how I got this.”

Finally, I’m usually really happy with Lightroom’s photo-export software, but in this case both pix lost some life, in particular in the trolley-wire sparkles and taillight reds. I’m going to have to try some new tricks.

Also worth noting: These are not terribly difficult or challenging for the sensor: The objects in the picture are pretty well self-illuminating.

When it matters

Here’s a hard one, our new calico cat, asleep on the sofa after a hard night of watching Star Trek Discovery with Mom & Dad. This is a softly-lit book-lined room with black furniture and a dark floor. And, in this case, Android pretty well wiped the floor with Lightroom.

Cat, by Lightroom Cat, by Android Camera

Once again, Lightroom above/Android below. That Lightroom version has been heavily edited, and it’s still not close. The Android version has truer colors, better focus, and less noise. I’m seriously impressed with whatever is going on inside that app.

You know, when you look at the two of these side by side in Lightroom on my 15" Retina Mac screen, it’s like night and day. But as I look at the 720-wide presentation here in the blog draft, I wonder if the differences really matter.

More on the Android app

It’s nice, but trying too hard. No, I don’t want a little slab of video prepended to my photos so they shimmer into place (and can’t be edited). No, I don’t want color-balance modes, since the ML seems to get that right.

Also, since everything is apparently auto-magically cloudified, there ought to be an easy/automatic way to get the full-rez versions of the pix out of the cloud and into Lightroom, but I haven’t found it yet. For the moment, I share from the phone to Dropbox, and Lightroom is happy pulling from there.

Also it’s dumb that I have to switch apps to edit the photo I just took, and then the editing controls are all presets and oversimplification. Having said that, the app has a Chromecast button, which is super nice.

What next?

For shots that don’t challenge the camera, I’ll go on using Lightroom; it’s a better shooting experience and better integrated with my workflow. When it gets tricky, I’ll bring that Android ML to bear.

Vintage Nauticals https://www.tbray.org/ongoing/When/201x/2017/11/04/Vintage-Nauticals 2017-11-04T12:00:00-07:00 2017-11-05T09:34:30-08:00
We keep our boat at Horse­shoe Bay, a pret­ty lit­tle place when ap­proached by land. Boaters in­bound by ocean come face-to-face with a huge an­tique float/pier/break­wa­ter kind of thing, whose ug­li­ness I’ve long found mag­nif­i­cent and which to­day I took the time to tour and pho­tograph.

We keep our boat at Horseshoe Bay, a pretty little place when approached by land. Boaters inbound by ocean come face-to-face with a huge antique float/pier/breakwater kind of thing, whose ugliness I’ve long found magnificent and which today I took the time to tour and photograph.

Vintage Nautical

Turns out this huge steel thing is afloat, actually; here’s how it’s fastened to the land. Those are big chains and huge truck tires.

What happened was, I was out winterizing the boat. Vancouver missed autumn this year, snapped over from 18°C Indian-summer to basically zero more or less overnight. Today a few snowflakes drifted down and I was wearing a nontraditional Canadian boating toque. You can see snowflakes in all but one of today’s photos, if you look closely.

I’d neglected my camera and was thus shooting with the Pixel, really not much of a handicap for daylight photos when they’re close-ups and big landscapes. Here are one of each.

Vintage Nautical

Wow, this thing is, well, “going back to nature” doesn’t feel like the right phrase. But there’s definitely an entropy gradient.

Boat approaching Horseshoe Bay

I’ve been using the Lightroom camera app, which is a little on the slow side but has nice controls and pulls the raw bits off the sensor, and I like the app’s editing primitives. But in recent weeks it’s become unusably crashy — I’ve already cleared its data once to no effect — so my fallback is the well-regarded native Android Camera app. It’s quick and the pix look good, I have to say. And while Lightroom claims to be shooting RAW and indeed emits DNG’s, they don’t contain anything like the amount of hidden potential a good RAW file from a real camera exhibits. So the native Android JPEGs are not making me unhappy.

I have to shuffle them through DropBox to get them on the Mac so I can prettify them with Lightroom; I miss Adobe’s nice smooth mobile/PC sync. Anyhow, I thought Lightroom did a nice job on this monochrome.

Vintage Nautical

This float is quite a structure. It’s not solid, it’s sort of a frame so you can look down at the ocean in the middle. Well, you could, except for that piece of water is stacked up with old styrofoam, the kind that’s used to make floating docks float.

Vintage Nautical

This picture isn’t beautiful or anything, but
there’s a lot happening, top to bottom, left to right.

As for the boat, I installed its low-level winter heating apparatus, ran the engine for a bit, set up support poles to protect the canvas cover from heavy snow, and adjusted the lines against winter storms; then went for a burger and beer at the waterfront alehouse.

That’s a satisfying early-winter half-day.

Working at Amazon https://www.tbray.org/ongoing/When/201x/2017/10/26/Working-at-Amazon 2017-10-26T12:00:00-07:00 2017-10-26T23:17:24-07:00
Some­times when we’re try­ing to hire a se­nior em­ploy­ee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m com­ing up on three years and haven’t quit, I guess the sup­po­si­tion is that I’ll be pos­i­tive. Since these can­di­dates are out­siders and some of them don’t come to work for us, noth­ing I can say can be a se­cret. So why don’t I tell ev­ery­one?

Sometimes when we’re trying to hire a senior employee, I get asked to do a “sell call”, tell them what it’s like to work here. Since I’m coming up on three years and haven’t quit, I guess the supposition is that I’ll be positive. Since these candidates are outsiders and some of them don’t come to work for us, nothing I can say can be a secret. So why don’t I tell everyone?

Before I dive in any further, everything here relates to AWS, not Amazon as a whole. It might be true of the retail side too, but I don’t know because I don’t work there.

So, what is it like to work here?

Customers

That’s the big deal. AWS has over a million and you get to meet them all the time, and while there are lots of geek introverts who might not like that, I do. Anyhow, lots of the customers are geek introverts too.

When you ship low-level horizontal general-purpose technology, there’s no way to predict what people are going to do with it. Which in practice means that you’re going to be shocked by the way it gets used. For an old guy like me it’s hilarious to hear the kid engineers looking at a bug report or feature request and saying “WTF, why would anybody want to do that?”

Me, I like computers, and I like hearing about interesting things people do with them, and it makes me happy when the things they do work out well, especially when I helped build what they’re using. I could tell you stories that’d curl your hair (or straighten your wavy locks) but they’re not mine to tell.

Anyhow, if you like talking to customers you’ll like working here, and if not, probably not.

Uptime

It matters more than anything. Some of our services are cooler than others, but what I think customers care about most is confidence that the services, cool or boring, will be there 24/7/365. What that means is that everything has to be automated, and much of the most brilliant engineering at AWS, done by some of the smartest people, does its work behind the scenes where nobody will ever see it.

So if you’re the kind of person who, for example, thinks figuring out a better way to automate detecting hot-spots in back-end clusters and re-routing traffic to cool things down is interesting work, then you’ll like working here. If not, maybe not.

Only maybe not, because we have lots of people who wrangle JavaScript frameworks and mobile SDKs and build tools and database kernels all day. But operational automation, that’s the heart of the matter.

Being document-driven

Go ahead and Google “Amazon six-pager” if you haven’t already.

If you’re the kind of person who’s OK with spending a lot of time constructing carefully-written narratives, and being in meetings that start with 20+ quiet minutes while everyone reads the narrative, you’ll like working here, and if not, definitely not. Disclosure: I’ve written over a million words on this blog so I’m seriously predisposed to like this part.

There is one downside: Suppose you’re an author of the document being read. It can be simultaneously crushingly boring and twitchingly nervous while AWS’s senior leadership plows their way through your words in stony silence.

The actual software

I don’t think anyone would be surprised. The services are usually conventional RESTful services, usually composed of multiple microservices, usually in mainstream programming languages using mainstream programming frameworks, We use conventional compilers and debuggers and IDEs and frameworks for HTTP and unit testing and integration testing and dependency injection and so on.

Yes, there’s some secret sauce voodoo down in the infrastructure that’s pretty magical. But most of us don’t work on that most of the time.

What’s unusual is the proportion of the code focused on availability and data durability. But you already knew that. We also care a lot about doing better than O(N), because N is typically so freaking huge at Amazon. I personally seem to end up working mostly on message processing of one kind or another which is sort of stuck on O(N) in the number of messages, so we’re often left with micro-optimizations.

You know what makes me happy? One little library I wrote is currently being used by several different teams to efficiently do a useful thing on a million-ish messages per second in aggregate. There aren’t that many places where your code gets that kind of opportunity.

Organization and culture

The teams at AWS have a huge amount of independence. If you’re on a team that’s trying to ship something or operate something or improve something, that’s generally great; nobody will get in your way. On the other hand, if you’re trying to build something that works across multiple service teams, it can give you grey hairs. But I already had those; and it’s mostly a feature not a bug.

Corporate “culture” is a thing I find it hard to be articulate about. I find the asshole density nonzero but lower than average. We are trying to do very difficult things and we fail a lot; Mature technology companies try make those teachable moments, and we do a pretty good job of that. There is [*gasp*] politics. I’m going to argue that the proportion of really bad managers is unusually low; but that’s just an anecdote, wouldn’t know how to measure it.

My time rarely feels wasted.

Money?

If you work in a tech job at any large high-tech company, you’ll be well-paid by any reasonable standard. Want more than just “well-paid”? The brutal truth is that the way high-tech compensation is structured, you’re making a bet on your employer’s share price. If it goes up really a lot while you’re working there, you’re gonna make out like a bandit, and if not, not. All these things are as true at Amazon as anywhere else. Welcome to twenty-first century capitalism.

What sucks?

After I’ve talked through all this stuff, the person who might come to work for us wants to hear about the downside. Fair enough.

I guess the biggest one is that we’re not perfect at operational automation, so everything we fail to automate, every combination of compute and network and storage failure we weren’t smart enough to auto-remediate in advance, has to be dealt with manually. Which means people have to be on-call and yeah, sometime the phone goes off after midnight.

The good news is, we’re getting better, learning how to build automation in at the core. Which means that the fresh new AWS services are better at self-maintaining and self-healing, so on-call sucks less. On the other hand, the older services tend to have bigger teams and thus less on-call time per person, so it evens out.

But there are some people who sufficiently dislike the prospect of that occasional wee-hours page that they just don’t want to stick around with us. Fair enough.

I dislike our office-automation setup, but then I’m the kind of person who really likes Google Docs and Calendar and Gmail, so maybe I’m an outlier.

One more thing: Most jobs at AWS, you’ll never be able to explain to civilians what it is you do for a living. I generally say “I help keep the Internet running” and you know what? That’s not a total lie.

On balance

I could go on about diversity and work environments and benefits and process and promotion and so on, but at the end of the day it’s just another high-tech company, nothing surprising.

I don’t really need the money, but I haven’t quit.

Live Metal is Better https://www.tbray.org/ongoing/When/201x/2017/10/13/Live-Metal 2017-10-13T12:00:00-07:00 2017-10-14T14:58:56-07:00
Re­cent­ly I went out for a live met­al triple-bill, with En­don and SUMAC open­ing for Boris, whom I’ve cov­ered here be­fore (with groovy pix). More pix to­day, with words on the his­to­ry and mean­ing of met­al, and how to pho­to­graph it.

Recently I went out for a live metal triple-bill, with Endon and SUMAC opening for Boris, whom I’ve covered here before (with groovy pix). More pix today, with words on the history and meaning of metal, and how to photograph it.

Endon, the openers, are described as catastrophic noise metal and yeah, they were pretty catastrophic. A little too abstract for me, but sincere and really trying to bring it. Didn’t get any pix.

Here’s my problem: I wholeheartedly love this music, in particular live, and yet I have to acknowledge that it’s sort of, well, ridiculous. The volume is much louder than can be sanely necessary. The choreography is all moves invented around 1970 by Robert Plant or Jon Anderson or someone like that. The musical content is built monomaniacally around a single sound, that of an overdriven guitar amp.

SUMAC (on Bandcamp) are very traditional metallistas; the poses, the riffs, the look, the barked vocals.

SUMAC guitarist

Metal is harder to photograph than many other genres, because they like to keep the stage dark, and bathed in subdued reds and blues that stress out the poor sensor. Sometimes you get an incredibly dramatic color treatment, but often the best bet is just to switch to high-contrast B&W.

Wikipedia says the guitarist is Aaron Turner and the bassist Brian Cook, but their picture doesn’t look like this guy.

SUMAC bass player

Analytics

Metal’s not just one thing, there are many linked strands in its fabric. Check out Heavy metal genres over at Wikipedia (part of WikiProject Metal). For more fun, consider the heavy-metal documentaries by Canadian sociologist Sam Dunn. I haven’t seen them all, but I can heartily recommend Metal — A Headbanger’s Journey, his first, which dives deep, deep, deep, on the subject and is also full of heavy guitar riffs. Best played loud.

Dunn points out that while you can argue all you want about the birth of metal, Black Sabbath usually gets the most votes. I’d go further: It helps that I’m old and was thus there at the time. It was in 1970; I was fifteen and we were visiting my cousin who was a couple years older and infinitely cooler. “Come listen to this record” he said, and put on Sabbath’s eponymous Black Sabbath. Go listen (not to the flavorless sample on the Wikipedia page, the real thing’s all over the Internet). It’s all there, and I mean all there in the first 1:08. Portentous thunderstorm noise, church bell, then four repetitions of a beautifully-heavy three-note riff. No vocals, no nothing, just that awesome guitar tone. I hadn’t imagined that such a sound could exist in this world and my life was never the same after.

There’s more to the song, some pretty good singing from Ozzy and of course the explicitly Satanic lyrics. But Heavy Metal is basically about taking those sixty-eight seconds and building a hundred subgenres and a rabid following around them. I don’t think the occult angle was initially necessary; but it was a clever move by Ozzy and Geezer, and got dragged along with that guitar sound in later years.

Enough history and sociology.

Boris

Like I said, the good pictures of Boris are here. On this outing, the lights were darker and the fake-fog flow almost continuous. This time around, they obviously and by design wanted to play behind a curtain of bright red/blue/violet smoke; which as an artistic choice, is nicely harmonious with their music, which itself is nicely harmonious albeit crushingly loud.

For this outing, I rented the Fujinon 23mm f/1.4 from Beau Photo, and the wide-open/wide-angle combination was helpful. But it was still tough; here’s what I got.

Boris in 2017 Boris in 2017 Boris in 2017 Boris in 2017

Pro tip: When the last opener quits playing, you can almost always snag a great photographers’ spot up near the front of the stage. And then, after the first few songs, it’s polite to turn it over to a fellow fan. On this occasion I was dead center and had the rare experience of live metal in stereo, with Wata’s amps to my left and Atsuo’s to my right. Cool!

Yes, Wata picked up an accordion for a couple tunes. The general sound is remarkably like her guitar, but doesn’t allow for her rare-but-wonderful excursions up the neck into screaming-treble territory.

Altar

Damn, I love their music. Wata’s guitar tone is up there with the greats, and the beauty of their crushing melodious drone is not equalled by anyone except maybe Sunn O))); and it’s worth mentioning that the Boris/Sunn O))) collaboration Altar is a very beautiful piece of music.

Other Boris outings that I strongly recommend are Pink (from 2005) and the much more recent Attention Please.

Why it’s OK to love Metal

I mean, I’m old and completely out of fucks to give about what others think of my tastes. But still…

First of all, Metal is serious music. Given the size of the crowds at this point in the 21st century (small), it’s no road to riches. And the players are completely oblivious to issues of packaging and pandering. And if you actually listen closely past the surface of the roar, the music is constructed with care, and then obviously the result of endless practice and dedication to the craft. It may lack a backbeat and a catchy chorus, but there’s beauty aplenty in there.

I’ve quoted Sasha Frere-Jones, erstwhile New Yorker rock critic, before on this subject, but he said two things that are worth repeating. First, “Get past the novelty, though, and you find a level of passion and an attention to detail that make a number of mere rock bands look lazy.” And “You may eventually find a TV that is sufficiently large that it makes going to a movie theatre pointless, but you are never going to replicate anything like a black-metal show at home, no matter how fancy your stereo is.”.

Metal people

There are very few gatherings in the world at which I feel totally at home. Examples are O’Reilly’s OSCON and an Amazon principal-engineers’ gathering. But a metal concert is another. Here’s the cute end of metal style.

Metal fans

Aren’t they adorable?

When I was young, I aspired to hair like that, but mine was always too thin and stringy, and now I don’t have much. But the crowd included grizzled hardasses with facial tattoos, a couple of subgroups of Japanese extreme-music culture that I don’t begin to understand, and then a lot of ordinary people off the street who just share the love of this extreme, crazy, deadly-serious art form.

It’s OK to crowd up to the front and stand there like a post. It’s OK to head-bang when the beat picks up. It’s OK to sit motionless in the back row, eyes closed. It’s a perfectly fine thing, in 2017, to be a greybearded metal-head.

Macro Trends https://www.tbray.org/ongoing/When/201x/2017/10/07/Macroeconomics 2017-10-07T12:00:00-07:00 2017-10-07T12:23:04-07:00
In The bub­ble with­out any fizz, The Economist ad­dress­es the fact that financial-asset prices (s­tock­s, bond­s, and the like) keep drift­ing up and up in a world where in­fla­tion doesn’t; are we in a mega-bubble? What’s re­al­ly go­ing on? Looks ob­vi­ous to me, but then I’m a left-winger. I think it’s all a straight­for­ward con­se­quence of eco­nom­ic ef­fi­cien­cy and class war­fare.

In The bubble without any fizz, The Economist addresses the fact that financial-asset prices (stocks, bonds, and the like) keep drifting up and up in a world where inflation doesn’t; are we in a mega-bubble? What’s really going on? Looks obvious to me, but then I’m a left-winger. I think it’s all a straightforward consequence of economic efficiency and class warfare.

Inflation?

It stays low because our globalized economy is hyperefficient at making the things we want, extracting the fuels we burn, and growing the food we eat. And also flexible enough that it can scale up and down to meet demand without apparently kicking off waves of inflation or bankruptcy.

All of which is true, but I think the effect of class war is even bigger. Let’s start with a picture.

Labor is losing out

From Drivers of Declining Labor Share of Income, published by those commies at the International Monetary Fund.

Unions are in retreat and conservatives rule in the great economies of the developed world. Generation Z is being forced into the gig economy, into low-agency, low-paying, no-commitment jobs where being a shift lead at Starbucks is an aspirational goal.

When you don’t have to pay people much, well yeah, you get low inflation.

Financial Boom?

When it’s the prices of household goods, they call it “inflation”. When it’s financial assets, they call it “a bull market”. But the cause is the same: Too much money chasing too few targets.

It’s like this: There’s a surplus of accumulated wealth (see Piketty), and the people who hold it can’t possibly spend it on goods and services — how many yachts can you waterski behind? So they throw it at financial products, which then inflate.

I think this is bleedingly obvious, but that’s possibly because I’m a citizen of the technology scene, and of Vancouver. In the venture-capital business, there’s just way too much money chasing way too few unicorns. Go to a startup showcase sometime and hear the pitches, see who’s getting funded. If you’re like most people, you’ll leave shaking your head.

I also sit in Vancouver, which is experiencing severe inflation, in our housing sector. Since Vancouver is a relatively low-paying city, not just on a world scale but compared to its Canadian peers, it’s obvious that global capital is part of the problem. Our real-estate frenzy has become an international news story (it appears in the Economist piece linked above), but I un-humbly think my own 2015 Game of Homes captures the essentials pretty well.

So, what do Vancouver real estate and financial instruments have in common? Limited supply, that’s what. Check out A Dearth of I.P.O.s, but It’s Not the Fault of Red Tape ; not only has the IPO rate plunged (from 706 in 1996 to 105 in 2016), so has the number of public companies (from 7,322 to 3,671). Declining supply, increasing demand, d’oh.

Other financial assets, e.g. bonds, may not be as supply-starved (I couldn’t turn up good numbers) but it stands to reason that when companies all over the world are reporting robust profits (class war, remember?) they probably don’t need to borrow as much. And (as The Economist notes) when investors are driven to buying 100-year bonds from Argentina, a nation that has defaulted on its bonds six times in the last 100 years, you know they’re getting desperate.

More evidence, were any needed, of the global capital surplus? How about the $21 trillion being hidden from the tax-man here and there around the world?

What next?

Beats me. The sad thing is, I don’t see any reason why things can’t go on the way they are for the foreseeable future. Objectively, it would probably be good for the world if a lot of the accumulated wealth was just vaporized. Unfortunately, the only way that seems to happen historically is in major wars, as Piketty’s graphs illustrate. Which nobody wants.

Then there’s the leftist world-view, for example On the Left from last year. Tl;dr: Tax wealth, force radical transparency on asset ownership, jail business criminals, offer universal basic income. Works for me; but I’m still looking for the right political party.

There’s just too much money out there not doing anything particularly useful.

Refresh Is Sacred https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button 2017-09-27T12:00:00-07:00 2017-09-28T08:24:49-07:00
There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.

There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.

Refresh

Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.

You Might Be Evil https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil 2017-09-20T12:00:00-07:00 2017-09-20T22:34:54-07:00
Or at least, your em­ploy­er might be. Over the years we in the tech sec­tor have got­ten used to be­ing well-regarded. After al­l, we make people’s lives bet­ter, on bal­ance. That’s chang­ing. At the mo­ment it’s rum­blings from thought lead­er­s, not per­va­sive pop­u­lar anger. The oth­er thing that’s new is that they’re thought lead­ers who are pro­gres­sives and lib­er­al­s; just like most of us in the tech pro­fes­sion­s. It no­tably in­volves the M-word and those of us on the in­side need to be think­ing about it.

Or at least, your employer might be. Over the years we in the tech sector have gotten used to being well-regarded. After all, we make people’s lives better, on balance. That’s changing. At the moment it’s rumblings from thought leaders, not pervasive popular anger. The other thing that’s new is that they’re thought leaders who are progressives and liberals; just like most of us in the tech professions. It notably involves the M-word and those of us on the inside need to be thinking about it.

The general public, by and large, love reading the news of their friends and the world on Facebook, buying stuff cheap on Amazon, using Google maps and mail for free, and using recent Windows releases at work.

But these days, it seems like every other day I read a chilling anti-tech rant, usually written by someone smart, articulate, and (like me) leftist. Here are a few recent offerings:

  • A Serf on Google’s Farm: About how the advertising end of the business fails to combine customer support and scalability, and what it feels like to be a minor customer: “It’s a bit like being assimilated by the Borg. You get cool new powers. But having been assimilated, if your implants were ever removed, you’d certainly die.” “Google is so big and so powerful that even when it’s trying to do something good, it can be dangerous and frightening.”

  • You can’t quit Facebook, a Twitter rant by Matt Stoller: “Your data and identity is trapped inside a machine that spends huge $$$ to addict and manipulate you, your friends, and your culture.” “We cannot as individual consumers resist the tens of billions spent to manipulate us. But we as citizens can do so through politics.”

  • Margrethe Vestager’s growing American fan club, on the savvy Eurocrat who’s been tormenting Google, Apple, and Facebook: “There is growing concern … about bigness and size, and power because power corrupts absolutely.”

  • There’s Blood In The Water In Silicon Valley: “This sort of political change happens slowly until it happens fast. Uber provided a new model for a transformative tech giant to crash through with a dark, negative brand.”

  • Facebook’s Heading Toward a Bruising Run-In With the Russia Probe, interesting not so much for the Russian angle but for the visceral contempt for Facebook: “Facebook’s ‘internal policies’ amount to a kind of Stepford Wives version of civic liberalism and speech and privacy rights, the outward form of the things preserved while the innards have been gutted and replaced by something entirely different, an aggressive and totalizing business model which in many ways turns these norms and values on their heads.”

Disclosures

I’m not going to claim my curation is unbiased. I left out Microsoft because, weirdly, nobody seems to hate Microsoft that much any more. I certainly don’t. I left out Twitter because it’s not actually a company, it’s a dysfunctional non-profit that accidentally provides a valuable service. I left out Amazon (although it appears in a few of those pieces) because I’d have no chance of coming anywhere near balance.

The M-Word

It’s “Monopoly” of course. If you follow the links above and read, the authors come at the tech giants from every which direction, but always ending up banging out the monopoly melody. Sometimes they say “corporate concentration” or another euphemism, because being anti-monopoly sounds kind of old-fashioned; and anyhow, shouldn’t you be talking about Comcast or United?

Not any more. A lot of smart people think it’s good economics, good policy, and good politics to aim the anti-trust gun at the tech sector. I’m not saying they’re wrong. I’m also not predicting that they’ll get any traction, particularly in the America where the short-term focus has to be on combating Nazis and pussy-grabbers.

But this is a trend that nobody in technology leadership should ignore.

Photos of the Sky https://www.tbray.org/ongoing/When/201x/2017/09/17/No-Mans-Sky-Photos 2017-09-17T12:00:00-07:00 2017-09-17T20:47:22-07:00
I mean No Man’s Sky the game, which I’ve been play­ing again late­ly. It’s been ac­cused of be­ing most­ly a plat­form for gen­er­at­ing cheesy sci-fi book cov­er­s, but that’s not true, and al­so I love cheesy sci-fi book cov­er­s, so this is most­ly to show you some. With a few words on the game.

I mean No Man’s Sky the game, which I’ve been playing again lately. It’s been accused of being mostly a platform for generating cheesy sci-fi book covers, but that’s not true, and also I love cheesy sci-fi book covers, so this is mostly to show you some. With a few words on the game.

Starship flying in No Man’s Sky

Oh, just flying my starship over the landscape of
a planet I recently discovered and named. As one does.

Updates

No Man’s Sky launched just over a year ago, preceded by a massive hype wave and followed by howls of disappointment when it fell short of expectations. There’ve been three major updates, each with massive additions. and it’s becoming increasingly like a “normal” game, with missions and NPC’s and economies and so on.

Its biggest charm probably remains that it’s an easy game, occasional flashes of excitement, but mostly just cruising along from star to star, enjoying the views.

Nice view in No Man’s Sky Desert-scape, No Man’s Sky Nice view in No Man’s Sky

The game is starting to add inklings of multi-player, and multiple players are self-organizing, most notably to create The Galactic Hub, which I hope to reach some day.

Aliens!

In NMS they’re, more than anything, fun. The planets have their own procedurally-generated menageries, but there are three main species you can actually have relationships with, and learn the languages of. There’s lots of back-story that you soak up as you move through the game. Here’s a Gek.

a Gek in No Man’ Sky

Aren’t they cute?

The beasts in NMS are chatty and come in all sizes, shapes, and colors. They’re more playful than scary. And like I said, it’s an easy game, any creature that attacks you is pretty well toast. But, here’s Jabba the Flowerpott.

No Man’s Sky with fat alien

My experience

In the picture just above, that’s my current starship, parked on the left. Nice ride, eh? For the cognoscenti: A decent little Samamoga 27-slot B-class fighter, modest stats but a reliable pirate-killer. Which sort of sums up my playing style. I’m busy, with a job and family; thus not a serious gamer. One of the really nice things about NMS is you can do it for an hour here and an hour there and keep progressing and never really get stuck.

Ship parked on peak, No Man’s Sky

Good parking spot!

I restarted after the 1.3 update (like a lot of others) and I’m going to keep playing till I get a freighter.

Gender

The three primary alien races you deal with do not participate in the human notion of gender. Thus, when individuals are mentioned in text (and there’s a lot of text in NMS) it’s always in a scrupulous third-person: They, them, their. It’s amazing how quickly you get used to it.

On the other hand, the beasts that populate the planets are gendered, and while male and female do appear, one also finds Asymptotic, Asymmetric, Orthogonal, Prime, Radical, Indeterminate,and Vectorised.

So the authors of NMS are having some real postmodern twenty-first century fun; which on balance is a fair description of the whole game. I’m still on board.

Canadian Tax Wrangling https://www.tbray.org/ongoing/When/201x/2017/09/09/Canadian-Tax-Flavors 2017-09-09T12:00:00-07:00 2017-09-09T17:16:52-07:00
Our me­di­a, pro and so­cial, echo with blasts of self-righteous anger over pro­posed leg­is­la­tion which would elim­i­nate a few pop­u­lar tax dodges. Weird­ly, I see no-one ar­gu­ing the oth­er side; that the tax pro­pos­als are rea­son­able. I think I’m qual­i­fied to make that ar­gu­men­t, so I will. [If you’re not Cana­di­an, you can prob­a­bly stop read­ing here.]

Our media, pro and social, echo with blasts of self-righteous anger over proposed legislation which would eliminate a few popular tax dodges. Weirdly, I see no-one arguing the other side; that the tax proposals are reasonable. I think I’m qualified to make that argument, so I will. [If you’re not Canadian, you can probably stop reading here.]

The proposed tax changes

They’re summarized pretty well here. Basically, if you have a business and it’s incorporated — say you’re a doctor, lawyer, contractor, accountant, that kind of thing — you can use your corporation for tax tricks, the effect being that you pay less tax on the same income.

The tricks have been well-known for years; every competent financial advisor and wealth manager in the country tells every client about them.

Disclosures

(And I wish a few more people publishing op-eds on this subject would offer theirs.)

  1. I have a good income and pay a lot of tax.

  2. I’ve had capital gains over the years, from a successful startup and a couple of lucky investments.

  3. My wife and I have a corporation, which is useful in supporting the consulting businesses both of us have run from time to time. But we’ve hardly ever been able to use any tricks; one time by accident and acqui-hire the corporation ended up with pre-IPO Twitter shares, and we did save some tax bucks when we sold them.

  4. I was a co-founder of a company that currently has just over 14,000 employees.

  5. I didn’t vote for the government that’s making the proposals.

My feelings on tax generally? My bills are shocking, but on the other hand I’m a heavy direct user of government services: roads, bridges, public transit, bikeways, libraries, athletic facilities, public broadcasting, health care, emergency first responders. Plus, having grown up in a third-world country, I have a hearty appreciation for the rule of law and the social safety net. So yeah, I’d like a lower tax bill and I might vote for a party that had specific proposals on paying for one with cutbacks on the parts of government I don’t like.

But I generally do think that people who make about as much money as me should pay about as much tax as me.

The complaints

It amounts to a bunch of well-off people who are going to start paying the same tax rate I do explaining why they shouldn’t have to, because they work hard, create jobs, and are just all-around nice people.

Here’s an anesthesiologist who’s so upset that, he says, he and the other doctors are going to go mini-John Galt and start working less.

Here’s a guy who pays $225K in tax and says he’s “already contributing FAR more than his fair share”.

The complainers complain that they don’t get a pension. Neither do I; in fact nobody does any more, except civil servants.

They also bitch about not getting paid vacation or “any other benefits”. Oddly enough, when we’re on vacation in sunny destinations, we tend to encounter lots of doctors and lawyers and contractors and so on, so somehow they manage to get away. And now that we’re older and know a few retirees, I gotta say that the small-biz-owner contingent seems well-represented among those in their “golden years” where by “golden” I mean “rolling in dough”.

Also, do the math: Anyone who’s paying $225K in tax is a very well-off individual, with lots of room to save for retirement, and enough cash-flow to visit Maui or Cabo every winter.

But they do have a point; It wouldn’t seem completely insane to me if there were tax deductions for those whose employment situation is low on benefits. But that should be done explicitly, rather than nudge-nudge-wink-winking at small-biz corporate fiddles.

That aside, I’m sorry but I just don’t see any reason why someone who makes my kind of money shouldn’t have to pay my kind of taxes, just because they’re a small business. And in the testimonies I read, they come across as hypocrisy-drenched greedheads.

If you want lower taxes, I think there are two good courses of action: Move to a jurisdiction that has them, or do the political work to elect a party that will cut them (and correspondingly, services). Spare me, please, the “supply-side” fantasy in which tax cuts generate increased revenue. It’s been tried.

So, tax all income equally?

Maybe. In Canada, the tax on capital gains is half that on salary. The idea is to encourage people to start businesses and invest in other businesses. I’ve created businesses and invested in them too, so it’d be easy for me to say “Look, it works” and maybe I’d be right. But maybe not; I probably would have gone ahead and done those things anyhow. It’s amazing how many tax policies officially aimed at one good end or another seem mostly to result in rich people paying less.

Also I’ve started to hear progressive economists arguing against this kind of thing. And a hard-line policy of “income is income” has the advantage that people don’t pay tax consultants to fool around and try to make one kind of income look like another. So it’s not a slam-dunk.

What’s going to happen?

The politics is interesting. The people lined up against the tax proposals have loud, well-funded voices, and donate lots to political parties, so their concerns are going to get careful attention from legislators. And it’s easy to convince the public that any government tax tactic is a grubby revenue grab.

But at the end of the day the noise is coming from a bunch of fat cats trying to pay less tax than other fat cats, based on what feel like really flimsy arguments. They exude entitlement. I think the politics on this one could go either way.

Murder at Adolf’s Cottage https://www.tbray.org/ongoing/When/201x/2017/09/03/Murder-chez-Hitler 2017-09-03T12:00:00-07:00 2017-09-04T00:33:17-07:00
I re­cent­ly read Prus­sian Blue by Philip Kerr. It’s good  —  a Fifties-Iron-Curtain spy thriller grace­ful­ly mashed up with a pre-war mur­der mys­tery set in Hitler’s Bavar­i­an coun­try get­away, Berghof. It’s a re­peat ap­pear­ance for Kerr’s Bernie Gun­ther, an ap­peal­ing­ly hard-boiled vet­er­an so­cial­ist cop who finds him­self work­ing for Na­tion­al So­cial­ist man­age­men­t.

I recently read Prussian Blue by Philip Kerr. It’s good — a Fifties-Iron-Curtain spy thriller gracefully mashed up with a pre-war murder mystery set in Hitler’s Bavarian country getaway, Berghof. It’s a repeat appearance for Kerr’s Bernie Gunther, an appealingly hard-boiled veteran socialist cop who finds himself working for National Socialist management.

Prussian Blue by Philip Kerr

And yep, there are Nazis in this story; the real not tiki-torch flavor. A couple of mega-Nazis, Bormann and Heydrich, and some relatively minor odd fish like Karl Brandt and Gerdy Troost.

Nazis are convenient for a novelist, because they are reliably evil and twisted, so he can economize on characterization and leave room for plot and atmospherics. Having said that, he cuts Troost a little slack; you’d have to be a better historian than me to know whether that’s a travesty or not.

Did I mention atmospherics? You’ve come to the right place. While substantial parts of the novel aren’t at der Führer’s country digs, the ones that are bask in deep you-are-there weirdness, and (I thought) a pretty deep take on what it’d be like for the yokels in a pretty backwater when the Fascist architects come to put up palaces. Some, predictably, react a lot better than others. But Kerr doesn’t pretend the presence of any serious resistance.

Hey, and here’s a fascinating little sidelight: The lead contractor for the Berghof construction was a company called Polensky & Zöllner; some part of which apparently still exists, albeit in Abu Dhabi. Their motto: “All knowledge comes from experience”. And yeah, they’ll still build you a villa.

Oops, I got distracted. This is a fine piece of writing, intense and atmospheric and instructive and just really good fun. Recommended.

Large Companies Considered Harmful https://www.tbray.org/ongoing/When/201x/2017/08/30/Smaller-Companies 2017-08-30T12:00:00-07:00 2017-08-30T22:45:46-07:00
There’s a plau­si­ble case that cap­i­tal­ism per se isn’t the prob­lem. Con­cen­tra­tion is: Vari­a­tions range from “too big to fail” to good old-fashioned monopoly. It’s painful­ly ob­vi­ous that the ac­qui­si­tion of one mon­ster tele­com or bank or air­line by an­oth­er does nei­ther their cus­tomers nor the econ­o­my as a whole any good. It’s tough to write anti-monopoly law, be­cause how do you quan­ti­fy mar­ket pow­er? How­ev­er, you can quan­ti­fy size. So let’s use that as a club to bash away at the prob­lem.

There’s a plausible case that capitalism per se isn’t the problem. Concentration is: Variations range from “too big to fail” to good old-fashioned monopoly. It’s painfully obvious that the acquisition of one monster telecom or bank or airline by another does neither their customers nor the economy as a whole any good. It’s tough to write anti-monopoly law, because how do you quantify market power? However, you can quantify size. So let’s use that as a club to bash away at the problem.

Specifically: Pick a number X, and pass legislation decreeing that no company can have more than X full-time-equivalent employees.

How big is X?

Let’s look at some data:

Employees (K)
Accenture410
Alphabet70
British Airways40
Cemex40
Comcast150
Facebook17
GE290
GM200
Goldman Sachs30
Lenovo60
Microsoft110
Netflix3.5
Qualcomm30
RBC80
Samsung300
Siemens340
Sony120
Tesla30
United80

The numbers aren’t perfect, mostly sourced from Wikipedia, rounded down to the nearest 10K above around 30K. Some people say Samsung has over 500K. The Tesla number is after acquiring Grohmann and SolarCity in late 2016.

I’m going to say X is maybe around twenty thousand. Every single one of those companies that’s 20K+ could, I think, be broken up into saner, sounder, smaller chunks that would be decent, profitable, high-quality businesses.

I guess maybe you couldn’t have a telecom that owned a national network and also had kiosks in every mall. Or an Internet giant that did email and operating systems and cloud. Or a bank that operated branches in every town of a vast nation. Or an automotive company that sold a full line of personal, recreational, and business vehicles on seven continents. All these things seem OK to me.

The picture would be weirdly different: A successful young company approaching size X would have to make painful choices about which business it really wanted to be in, and walk away from the rest. This doesn’t sound terrible.

You could still grow financially if you could figure out a force multiplier for the abilities and energies of your employees. This doesn’t sound terrible.

Companies could still be extremely powerful; look at Facebook. But I still think that, broadly, smaller companies are less so. And further, it’s very likely that this marketplace has a lot more competition than we see currently.

Enforcement

We fortunate citizens of the developed world live under the rule of laws not men, but an unfortunate corollary is that businesses will game the rules right up to the edge and beyond. So the rules would have to be pretty well cinched down.

  1. There’s no distinction between employees and contractors; the number of workday hours you pay people to work can’t exceed 8 times X.

  2. It’s not distinct employees, it’s how many are working on any given day.

  3. (Anti-keiretsu):

    1. If any company owns more than 5% of the equity of another, directly or indirectly, they are considered a single company for the purposes of this legislation.

    2. If any company derives more than 25% of its revenue from another company, likewise.

    3. If any legal entity owns more than 5% of the equity of more than one company, likewise.

Punishment

Laws are always violated, and it’s crystal-clear that certain sectors of the business community see fines and other forms of financial penalty as just another cost of doing business.

So I propose a system where there is only one penalty. Should a corporation be convicted of exceeding size X, its chief executive and Board of Directors at the time the violation started to occur, and any successors, would be subject to imprisonment until the illegal condition is corrected. So simple!

This idea is completely crazy and could never happen!

Overton Window. First they laugh at you. Etc…