The online journal of Jeremy Keith, an author and web developer living and working in Brighton, England.
Years ago, the world of web standards was split. Two groups—the W3C and the WHATWG—were working on the next iteration of HTML. They had different ideas about the nature of standardisation.
Broadly speaking, the W3C followed a specification-first approach. Figure out what should be implemented first and foremost. From this perspective, specs can be seen as blueprints for browsers to work from.
The WHATWG, by contrast, were implementation led. The way they saw it, there was no point specifying something if browsers weren’t going to implement it. Instead, specs are there to document existing behaviour in browsers.
I’m over-generalising somewhat in my descriptions there, but the point is that there was an ideological difference of opinion around what standards bodies should do.
This always reminded me of a similar ideological conflict when it comes to language usage.
Language prescriptivists attempt to define rules about what’s right or right or wrong in a language. Rules like “never end a sentence with a preposition.” Prescriptivists are generally fighting a losing battle and spend most of their time bemoaning the decline of their language because people aren’t following the rules.
Language descriptivists work the exact opposite way. They see their job as documenting existing language usage instead of defining it. Lexicographers—like Merriam-Webster or the Oxford English Dictionary—receive complaints from angry prescriptivists when dictionaries document usage like “literally” meaning “figuratively”.
Dictionaries are descriptive, not prescriptive.
I’ve seen the prescriptive/descriptive divide somewhere else too. I’ve seen it in the world of design systems.
Jordan Moore talks about intentional and emergent design systems:
There appears to be two competing approaches in designing design systems.
An intentional design system. The flavour and framework may vary, but the approach generally consists of: design system first → design/build solutions.
An emergent design system. This approach is much closer to the user needs end of the scale by beginning with creative solutions before deriving patterns and systems (i.e the system emerges from real, coded scenarios).
An intentional design system is prescriptive. An emergent design system is descriptive.
I think we can learn from the worlds of web standards and dictionaries here. A prescriptive approach might give you a beautiful design system, but if it doesn’t reflect the actual product, it’s fiction. A descriptive approach might give a design system with imperfections and annoying flaws, but at least it will be accurate.
I think it’s more important for a design system to be accurate than beautiful.
As Matthew Ström says, you should start with the design system you already have:
Instead of drawing a whole new set of components, start with the components you already have in production. Document them meticulously. Create a single source of truth for design, warts and all.
Thu, 23 Jan 2020 19:45:56 GMT
It’s official. Microsoft’s Edge browser is running on the Blink rendering engine and it’s available now.
Just over a year ago, I wrote about my feelings on this decision:
I’m sure the decision makes sound business sense for Microsoft, but it’s not good for the health of the web.
The importance of browser engine diversity is beautifully illustrated (literally) in Rachel’s The Ecological Impact of Browser Diversity.
But I was chatting to Amber the other day, and I mentioned how I can see the theoretical justification for Microsoft’s decision …even if I don’t quite buy it myself.
Picture, if you will, something I’ll call the bar of unity. It’s a measurement of how much collaboration is happening between browser makers.
In the early days of the web, the bar of unity was very low indeed. The two main browser vendors—Microsoft and Netscape—not only weren’t collaborating, they were actively splintering the languages of the web. One of them would invent a new HTML element, and the other would invent a completely different element to do the same thing (remember
There wasn’t enough collaboration. Our collective anger at this situation led directly to the creation of The Web Standards Project.
Eventually, those companies did start collaborating on standards at the W3C. The bar of unity was raised.
This has been the situation for most of the web’s history. Different browser makers agreed on standards, but went their own separate ways on implementation. That’s where they drew the line.
Now that line is being redrawn. The bar of unity is being raised. Now, a number of separate browser makers—Google, Samsung, Microsoft—not only collaborate on standards but also on implementation, sharing a codebase.
The bar of unity isn’t right at the top. Browsers can still differentiate in their user interfaces. Edge, for example, can—and does—offer very sensible defaults for blocking trackers. That’s much harder for Chrome to do, given that Google are amongst the worst offenders.
So these browsers are still competing, but the competition is no longer happening at the level of the rendering engine.
I can see how this looks like a positive development. In fact, from this point of view, Mozilla are getting in the way of progress by having a separate codebase (yes, this is a genuinely-held opinion by some people).
On the face of it, more unity sounds good. It sounds like more collaboration. More cooperation.
But then I think of situations where complete unity isn’t necessarily a good thing. Take political systems, for example. If you have hundreds of different political parties, that’s not ideal. But if you only have one political party, that’s very bad indeed!
There’s a sweet spot somewhere in between where there’s a base of level of agreement and cooperation, but there’s also plenty of room for disagreement and opposition. Right now, the browser landscape is just about still in that sweet spot. It’s like a two-party system where one party has a crushing majority. Checks and balances exist, but they’re in peril.
Firefox is one of the last remaining representatives offering an alternative. The least we can do is support it.
Mon, 20 Jan 2020 16:54:59 GMT
Do you have plans for the weekend of March 14th and 15th?
If you live anywhere near London, might I suggest that you sign up for Indie Web Camp.
Cheuk and Ana are putting it together with assistance from Calum. As always, there will be one day of Barcamp-style discussions, followed by a fun hands-on day of making.
If you’re wondering whether this is for you, ask yourself if any of this situations apply:
If you recognise yourself in any one of those scenarios, then you should definitely come along to Indie Web Camp London 2020!
Thu, 16 Jan 2020 18:41:55 GMT
There’s an interesting thread on Github about the tongue-twistingly named
Let me back up…
Progressive web apps. You know what they are, right? They’re websites that have taken their vitamins. Specifically, they’re responsive websites that:
The web app manifest—a JSON file of metadata—is particularly useful for describing how your site should behave if someone adds it to their home screen. You can specify what icon should be used. You can specify whether the site should launch in a browser or as a standalone app (practically indistinguishable from a native app). You can specify which URL on the site should be used as the starting point when the site is launched from the home screen.
So progressive web apps work just fine when you visit them in a browser, but they really shine when you add them to your home screen. It seems like pretty much everyone is in agreement that adding a progressive web app to your home screen shouldn’t be an onerous task. But how does the browser let the user know that it might be a good idea to “install” the web site they’re looking at?
The Samsung Internet browser does ambient badging—a
+ symbol shows up to indicate that a website can be installed. This is a great approach!
I hope that Chrome on Android will also use ambient badging at some point. To start with though, Chrome notified users that a site was installable by popping up a notification at the bottom of the screen. I think these might be called “toasts”.
Needless to say, the toast notification wasn’t very effective. That’s because we web designers and developers have spent years teaching people to immediately dismiss those notifications without even reading them. Accept our cookies! Sign up to our newsletter! Install our native app! Just about anything that’s user-hostile gets put in a notification (either a toast or an overlay) and shoved straight in the user’s face before they’ve even had time to start reading the content they came for in the first place. Users will then either:
Xin the corner of the notification.
A tiny fraction of users might actually click on the call to action, possibly by mistake.
beforeinstallprompt can be used.
It’s a bit weird though. You have to “capture” the event that fires when the prompt would have normally been shown, subdue it, hold on to that event, and then re-release it when you think it should be shown (like when the user has completed a transaction, for example, and having your site on the home screen would genuinely be useful). That’s a lot of hoops. Here’s the code I use on The Session to only show the installation prompt to users who are logged in.
The end result is that the user is still shown a toast notification, but at least this time it’s the site owner who has decided when it will be shown. The Chrome team call this notification “the mini-info bar”, and Pete acknowledges that it’s not ideal:
The mini-infobar is an interim experience for Chrome on Android as we work towards creating a consistent experience across all platforms that includes an install button into the omnibox.
I think “an install button in the omnibox” means ambient badging in the browser interface, which would be great!
Anyway, back to that thread on Github. Basically, neither Apple nor Mozilla are going to implement the
beforeinstallprompt event (well, technically Mozilla have implemented it but they’re not going to ship it). That’s fair enough. It’s an interim solution that’s not ideal for all reasons I’ve already covered.
But there’s a lot of pushback. Even if the details of
beforeinstallprompt are troublesome, surely there should be some way for site owners to let users know that can—or should—install a progressive web app? As a site owner, I have a lot of sympathy for that viewpoint. But I also understand the security and usability issues that can arise from bad actors abusing this mechanism.
Still, I have to hand it to Chrome: even if we put the
beforeinstallprompt event to one side, the browser still has a mechanism for letting users know that a progressive web app can be installed—the mini info bar. It’s not a great mechanism, but it’s better than nothing. Nothing is precisely what Firefox and Safari currently offer (though Firefox is experimenting with something).
In the case of Safari, not only do they not provide a mechanism for letting the user know that a site can be installed, but since the last iOS update, they’ve buried the “add to home screen” option even deeper in the “sharing sheet” (the list of options that comes up when you press the incomprehensible rectangle-with-arrow-emerging-from-it icon). You now have to scroll below the fold just to find the “add to home screen” option.
So while I totally get the misgivings about
beforeinstallprompt, I feel that a constructive alternative wouldn’t go amiss.
And that’s all I have to say about that.
Except… there’s another interesting angle to that Github thread. There’s talk of allowing sites that are launched from the home screen to have access to more features than a site inside a web browser. Usually permissions on the web are explicitly granted or denied on a case-by-case basis: geolocation; notifications; camera access, etc. I think this is the first time I’ve heard of one action—adding to the home screen—being used as a proxy for implicitly granting more access. Very interesting. Although that idea seems to be roundly rejected here:
A key argument for using installation in this manner is that some APIs are simply so powerful that the drive-by web should not be able to ask for them. However, this document takes the position that installation alone as a restriction is undesirable.
I understand that Chromium or Google may hold such a position but Apple’s WebKit team may not necessarily agree with such a position.
Fri, 10 Jan 2020 16:21:00 GMT
I’ve been thinking about some of the default behaviours that are built into web browsers.
First off, there’s the decision that a browser makes if you enter a web address without a protocol. Let’s say you type in
example.com without specifying whether you’re looking for
Browsers default to HTTP rather than HTTPS. Given that HTTP is older than HTTPS that makes sense. But given that there’s been such a push for TLS on the web, and the huge increase in sites served over HTTPS, I wonder if it’s time to reconsider that default?
Most websites that are served over HTTPS have an automatic redirect from HTTP to HTTPS (enforced with HSTS). There’s an ever so slight performance hit from that, at least for the very first visit. If, when no protocol is specified, browsers were to attempt to reach the HTTPS port first, we’d get a little bit of a speed improvement.
But would that break any existing behaviour? I don’t know. I guess there would be a bit of a performance hit in the other direction. That is, the browser would try HTTPS first, and when that doesn’t exist, go for HTTP. Sites served only over HTTP would suffer that little bit of lag.
Whatever the default behaviour, some sites are going to pay that performance penalty. Right now it’s being paid by sites that are served over HTTPS.
Here’s another browser default that Rob mentioned recently: the
I thought I might be able to get away with omitting
meta name="viewport". Apparently not! Maybe someday.
This all goes back to the default behaviour of Mobile Safari when the iPhone was first released. Most sites wouldn’t display correctly if one pixel were treated as one pixel. That’s because most sites were built with the assumption that they would be viewed on monitors rather than phones. Only weirdos like me were building sites without that assumption.
So the default behaviour in Mobile Safari is assume a page width of 1024 pixels, and then shrink that down to fit on the screen …unless the developer over-rides that behaviour with a
meta tag. That default behaviour was adopted by other mobile browsers. I think it’s a universal default.
But the web has changed since the iPhone was released in 2007. Responsive design has swept the web. What would happen if mobile browsers were to assume
meta element always felt like a (proprietary) band-aid rather than a long-term solution—for one thing, it’s the kind of presentational information that belongs in CSS rather than HTML. It would be nice if we could bid it farewell.
Mon, 06 Jan 2020 17:11:16 GMT
If you haven’t seen The Rise Of Skywalker, avert your gaze for I shall be revealing spoilers here…
I wrote about what I thought of The Force Awakens. I wrote about what I thought of The Last Jedi. It was inevitable that I was also going to write about what I think of The Rise Of Skywalker. If nothing else, I really enjoy going back and reading those older posts and reminding myself of my feelings at the time.
I went to a midnight screening with Jessica after we had both spent the evening playing Irish music at our local session. I was asking a lot of my bladder.
I have to admit that my first reaction was …ambivalent. I didn’t hate it but I didn’t love it either.
Now, if that sounds familiar, it’s because that’s pretty much what I said about Rogue One and The Last Jedi:
Maybe I just find it hard to really get into the flow when I’m seeing a new Star Wars film for the very first time.
This time there were very specific things that I could point to and say “I don’t like it!” For a start, there’s the return of Palpatine.
I think the Emperor has always been one of the dullest characters in Star Wars. Even in Return Of The Jedi, he just comes across as a paper-thin one-dimensional villain who’s evil just because he’s evil. That works great when he’s behind the scenes manipulating events, but it makes for dull on-screen shenanigans, in my opinion. The pantomime nature of Emperor Palpatine seems more Harry Potter than Star Wars to me.
When I heard the Emperor was returning, my expectations sank. To be fair though, I think it was a very good move not to make the return of Palpatine a surprise. I had months—ever since the release of the first teaser trailer—to come to terms with it. Putting it in the opening crawl and the first scene says, “Look, he’s back. Don’t ask how, just live with it.” That’s fair enough.
So in the end, the thing that I thought would bug me—the return of Palpatine—didn’t trouble me much. But what really bugged me was the unravelling of one of my favourite innovations in The Last Jedi regarding Rey’s provenance. I wrote at the time:
I had resigned myself to the inevitable reveal that would tie her heritage into an existing lineage. What an absolute joy, then, that The Force is finally returned into everyone’s hands!
What bothered me wasn’t so much that The Rise Of Skywalker undoes this, but that the undoing is so uneccessary. The plot would have worked just as well without the revelation that Rey is a Palpatine. If that revelation were crucial to the story, I would go with it, but it just felt like making A Big Reveal for the sake of making A Big Reveal. It felt …cheap.
I have to say, that’s how I responded to a lot of the kitchen sink elements in this film when I first saw it. It was trying really, really hard to please, and yet many of the decisions felt somewhat lazy to me. There were times when it felt like a checklist.
In a way, there was a checklist, or at least a brief. JJ Abrams has spoken about how this film needed to not just wrap up one trilogy, but all nine films. But did it though? I think I would’ve been happier if it had kept its scope within the bounds of these new sequels.
That’s been a recurring theme for me with all three of these films. I think they work best when they’re about the new characters. I’m totally invested in them. Leaning on nostalgia and the cultural memory of the previous films and their characters just isn’t needed. I would’ve been fine if Luke, Han, and Leia never showed up on screen in this trilogy—that’s how much I’m sold on Rey, Finn, and Poe.
But I get it. The brief here is to tie everything together. And as JJ Abrams has said, there was no way he was going to please everyone. But it’s strange that he would attempt to please the most toxic people clamouring for change. I’m talking about the racists and misogynists that were upset by The Last Jedi. The sidelining of Rose Tico in The Rise Of Skywalker sure reads a lot like a victory for them. Frankly, that’s the one aspect of this film that I’m always going to find disappointing.
Because it turns out that a lot of the other things that I was initially disappointed by evaporated upon second viewing.
Now, I totally get that a film needs to work for a first viewing. But if any category of film needs to stand up to repeat viewing, it’s a Star Wars film. In the case of The Rise Of Skywalker, I think that repeat viewing might have been prioritised. And I’m okay with that.
Take the ridiculously frenetic pace of the multiple maguffin-led plotlines. On first viewing, it felt rushed and messy. I got the feeling that the double-time pacing was there to brush over any inconsistencies that would reveal themselves if the film were to pause even for a minute to catch its breath.
But that wasn’t the case. On second viewing, things clicked together much more tightly. It felt much more like a well-oiled—if somewhat frenetic—machine rather than a cobbled-together Heath Robinson contraption that might collapse at any moment.
My personal experience of viewing the film for the second time was a lot of fun. I was with my friend Sammy, who is not yet a teenager. His enjoyment was infectious.
At the end, after we see Rey choose her new family name, Sammy said “I knew she was going to say Skywalker!”
“I guess that explains the title”, I said. “The Rise Of Skywalker.”
“Or”, said Sammy, “it could be talking about Ben Solo.”
I hadn’t thought of that.
When I first saw The Rise Of Skywalker, I was disappointed by all the ways it was walking back the audacious decisions made in The Last Jedi, particularly Rey’s parentage and the genetic component to The Force. But on second viewing, I noticed the ways that this film built on the previous one. Finn’s blossoming sensitivity keeps the democratisation of The Force on the table. And the mind-melding connection between Rey and Kylo Ren that started in The Last Jedi is crucial for the plot of The Rise Of Skywalker.
Once I was able to get over the decisions I didn’t agree with, I was able to judge the film on its own merits. And you know what? It’s really good!
On the technical level, it was always bound to be good, but I mean on an emotional level too. If I go with it, then I’m rewarded with a rollercoaster ride of emotions. There were moments when I welled up (they mostly involved Chewbacca: Chewie’s reaction to Leia’s death; Chewie getting the medal …the only moment that might have topped those was Han Solo’s “I know”).
So just in case there’s any doubt—given all the criticisms I’ve enumerated—let me clear: I like this film. I very much look forward to seeing it again (and again).
But I do think there’s some truth to what Eric says here:
A friend’s review of “The Rise of Skywalker”, which also serves as a perfect summary of JJ Abrams’ career: “A very well-executed lack of creativity.”
I think I might substitute the word “personality” for “creativity”. However you feel about The Last Jedi, there’s no denying that it embodies the vision of one person:
I think the reason why The Last Jedi works so well is that Rian Johnson makes no concessions to my childhood, or anyone else’s. This is his film. Of all the millions of us who were transported by this universe as children, only he gets to put his story onto the screen and into the saga. There are two ways to react to this. You can quite correctly exclaim “That’s not how I would do it!”, or you can go with it …even if that means letting go of some deeply-held feelings about what could’ve, should’ve, would’ve happened if it were our story.
JJ Abrams, on the other hand, has done his utmost to please us. I admire that, but I feel it comes at a price. The storytelling isn’t safe exactly, but it’s far from personal.
The result is that The Rise Of Skywalker is supremely entertaining—especially on repeat viewing—and it has a big heart. I just wish it had more guts.
Thu, 02 Jan 2020 19:20:40 GMT
So that was 2019. Quite a year.
Looking back, there were some real highlights for me…
Then there were the usual benefits that come with speaking at international conferences like An Event Apart and Beyond Tellerrand. I got to visit interesting places, eat excellent food, and meet good people.
Not everything was rosy. There were some sad life events for friends and family. And of course the whole political situation here in the UK has been just awful in 2019.
So onwards to 2020. I need to remind myself that many things are going well in the world but it can be hard to keep that in mind. At a local—nay, parochial—level, there’s a good chance that 2020 will deliver a hard Brexit. I have no faith in the competence or motivations of the current government to do otherwise (I keep reminding myself that I don’t have to stay in this country if it falls apart). And at the global scale, our attempts to mitigate the climate crisis are proceeding too slowly.
That’s something I need to take more personal responsibility for in 2020: fewer plane journeys, more trains, and more carbon offsetting.
Ultimately, it’s a fairly arbitrary moment in time but I do like to pause for a moment and look back at the year that’s just been. For all its faults, I have happy memories. I’m healthy. I played lots of music. I ate well. I spent time with friends and family.
I look forward to more of that in the third decade of the 21st century.
Wed, 01 Jan 2020 14:34:40 GMT
I posted to adactio.com 1,600 times in 2019:
In amongst those notes were:
If you like, you can watch all that activity plotted on a map.
Away from this website in 2019:
Tue, 31 Dec 2019 18:56:35 GMT
I read 26 books in 2019. That’s not as many as I’d like, but it is an increase on 2018.
Once again, I tried to maintain a balance between fiction and non-fiction. It kinda worked.
Here, in order of reading, are the books I read in 2019. For calibration, anything with three stars or more means I enjoyed (and recommend) the book. I can be pretty stingy with my stars. That said…
Kindred is a truly remarkable work. Technically it’s science fiction—time travel, specifically—but that’s really just the surface detail. This is a study of what makes us human, and an investigation into the uncomfortable reach of circumstance and culture. Superbly written and deeply empathic.
This is a well-regarded book amongst people whose opinion I value. It’s also a Pulitzer prize winner. Strange, then, that I found it so unengaging. The prose is certainly written with gusto, but it all seems so very superficial to me. No matter how you dress it up, it’s a chronicle of a bunch of guys—and oh, boy, are they guys—making a commercial computer. Testosterone and solder—not my cup of tea.
A thoroughly entertaining space adventure, although my favourite parts are the descriptions of the inner magic of mathematics. This is a short read too, so go ahead and give it a whirl. Recommended.
The writing is entertaining, sometimes arresting, though it definitely spills over into purple prose at times. As a meditation on the nature of time, it’s a thought-provoking read, but I think I prefer the gentler musings of James Gleick’s Time Travel: A History.
Another highly-regarded book that I just couldn’t get into. That’s probably more down to me than the book. I can see how the writing is imaginative and immersive, but the end result—for me, at least—was no more than perfectly fine.
Reading this kind of reminded me of reading David Mitchell’s Cloud Atlas. They’re both perfectly fine books that were lavished with heaps of praise for their levels of imagination …which makes me think that people need to read more sci-fi and fantasy.
A terrific biography! Admittedly you’ll probably want to be interested in information theory in the first place, but how could you not?
This book could probably have been a little shorter without losing too much, but I thoroughly enjoyed reading it. It’s a great companion to James Gleick’s The Information.
This is like the love child of Craig Mod and Umberto Eco …and I mean that in the nicest possible way. A thoroughly entertaining genre-crossing jaunt that isn’t going to stress you out. Fun!
Superbly researched and deftly crafted. This is an eye-opening journey into the cultural influences on experimental science.
I’m getting kind of cross with Lara now. First she writes the definitive book on web performance. Then she writes the definitive book on public speaking (I’ve loaned it out so many times, I’ve lost track of it). Now she’s gone and written the definitive book on being a manager. It hardly seems fair!
Seriously, this book is remarkably practical, right from the get-go. And the one complaint I have about most management books—that they’re longer than they need to be—definitely doesn’t apply here. If your job involves managing humans in any way, read this book!
There’s nothing wrong with this book, per se. But I think it’s situated too much in the shadow of Margaret Atwood’s The Handmaid’s Tale to stand on its own merits.
The second novella in the Binti series. Just as much fun as the first. I’m looking forward to reading the third and final book in the series.
I really enjoyed this evolutionary tale. It’s equal parts biology and philosophy. I will never look at cephalopods quite the same way again.
Just as entertaining as Robin’s first book, this has a fun vibe to it.
By pure coincidence, I followed Sourdough with…
There’s a lovely resonance in reading @RobinSloan’s Sourdough back to back with @EdYong209’s I Contain Multitudes. One’s fiction, one’s non-fiction, but they’re both microbepunk.
To which Robin responded:
OMG I’m so glad these books presented themselves to you together—I think it’s a great pairing, too. And certainly, some of Ed’s writing about microbes was in my head as I was writing the novel!
I Contain Multitudes is a thoroughly engaging and entertaining work. You might not think you want to read a book all about microbes, but trust me, you do.
I stand by this appraisal:
They’re both such wonderful books—apart from the obvious microbial connection, there’s a refreshingly uncynical joy infusing the writing of each of them!
An first-contact novel with a difference. The setting, the characters, the writing—everything is vivid and immersive. I’m looking forward to reading more in this series.
The sheer joy of the writing is infectious. If you’ve got some long-haul flights ahead of you, this is the perfect reading material.
This has stayed with me. This is Ann Leckie’s first foray into more of a fantasy realm, and it’s just as great as her superb science fiction.
Internal consistency is key to world-building in works of fantasy, and this book has a deeply satisfying and believable system that is only gradually and partially revealed. Encore!
This book has an unusual structure. At times, it’s like a masterclass in writing. At other times, it’s deeply personal. I don’t know quite how to classify it, but I like it!
Brilliant, as expected. Some of the stories in here have stayed with me long after I finished reading them. If you haven’t already read this or Stories of Your Life and Others, you’re in for a real treat.
Is Exhalation quite as brilliant as Ted Chiang’s debut book of short stories? Maybe not. But that bar is so high as to be astronomical.
Now we just have to wait a few more decades for his third collection.
I don’t know if this will be of any interest if you don’t already understand some Irish, but I found this to be good fun. There were times when an aside was repeated more than once, which made me wonder if the source material was originally scattered in other publications.
An alternative history novel with a thought-provoking premise. The result is like a cross between Mercury 13 and Seveneves. There’s a dollop of wish fulfillment in here that feels like a guilty pleasure, but that’s no bad thing.
This is how you bring history to life! The style of writing feels much more like a historical novel than a dry academic work, but all of the events are relayed from contempary source material. The plague is suitably grim and disgusting; the sea battles are appropriately thrilling and frightening; the fire is unrelentingly devestating. I know that doesn’t sound like there’s much enjoyment to be had, but this is the best history book I’ve read in a while.
I know I joke about seeing pace layers everywhere but seriously, Brian Aldiss’s Heliconia series is all about pace layers. Each book deals with one point in time, where we’re concerned with the dynastic concerns of years and decades, but the really important story is happening on the scale of centuries and millennia as the seasons slowly change.
This one was just as good as Helliconia Spring and I’m looking forward to rounding out the series with Helliconia Winter.
I decided to stay on a Brian Aldiss kick, and grabbed this pulpy collection of short stories. It’s not his best work, and there’s an unnecessary attempt to tie all the stories together into one narrative, but even a so-so Brian Aldiss book has got a weird and slightly haunting edge to it.
The sequel to The Calculating Stars and the last in the Lady Astronaut series. Good space-race entertainment.
I’ve just picked up this sequel to Ninefox Gambit. So far it’s not as bewildering as the first book—where the bewilderment was part of its charm. I’m into it. But I won’t rate it till I’ve finished it.
Alright, time to pick my favourite fiction and non-fiction books of the year.
Certainly the best fiction book published this year was Ted Chiang’s Exhalation. But when it comes to the best book I’ve read this year, it’s got to be Octavia Butler’s Kindred. Hard to believe it’s forty years old—it’s shockingly relevant today.
As for the best non-fiction …this is really hard this year. So many great books: A Mind At Play, Inferior, 1666, Other Minds; I loved them all. But I think I’m going to have to give it to Ed Yong’s I Contain Multitudes.
Only 10 of the 26 books I read this year were by women. I need to work on redressing the balance in 2020.
Tue, 31 Dec 2019 17:41:17 GMT
I wrote just over one hundred blog posts in 2019. That’s even more than I wrote in 2018, which I’m very happy with.
Here are eight posts from during the year that I think are a good representative sample. I like how these turned out.
I hope that I’ll write as many blog posts in 2020.
I’m pretty sure that I will also continue to refer to them as blog posts, not blogs. I may be the last holdout of this nomenclature in 2020. I never planned to die on this hill, but here we are.
Actually, seeing as this is technically my journal rather than my blog, I’ll just call them journal entries.
Here’s to another year of journal entries.
Mon, 30 Dec 2019 22:35:46 GMT
Page created: Sun, Jan 26, 2020 - 09:05 AM GMT