We Interrupt This Broadcast to Bring You an Especially Cursed House

Hello everyone. Originally, this post was supposed to be devoted to the year 1978, however something came up, and by something, I mean this 2.2 million-dollar, 5,420 sq ft 4 bed/4.5 bath house in Colt’s Neck, NJ. 

You see, usually, when a listing goes viral, I’m content to simply retweet it with a pithy comment, but this house genuinely shook something in me, genuinely made me say “what the (expletive)” out loud. It is only fair to inflict this same suffering onto all of you, hence, without further ado: 

Looks normal, right? Looks like the same low-brow New Jersey McMansion we’re all expecting, right? Oh, oh dear, you couldn’t be more wrong

Guess who’s making a list and checking it twice? 

Guess who’s gonna find out who’s naughty or nice?

Guess who’s coming to town? 

Guess who’s coming to town to drag your ass into hell?

A gentle reminder that it is not yet Thanksgiving. 

But oh. Oh. It continues:

If you’re wondering what’s happening here, you’re not alone, and sadly there is no convenient way to find out via a kind of haunted house hotline or something. 

I can’t even label these rooms because frankly I’m not even sure what they are. All I am sure of is that I want out of them as soon as humanly possible. 

r̸̘̆e̴̝̻̽m̵̡̼̚ȩ̵͑̎ͅm̷͍̮̉b̸̥̈e̶̯̺̽͗r̸̝͊͠ ̸̡͎̅̀t̴̯̲̓ȯ̷̮̫ ̷̜̅̀ŵ̶̟̱ā̴̭̘s̸̥͋h̴͉̿ ̵̡̑y̸̩͈͑o̷̹̭͛͝ů̷̩̮̔r̶̜̃ ̴̠̗͋ẖ̴̈́͛a̸̢̟̐͒n̶̩̟̆ḍ̵̍̀s̴̨̈́

How is it that a room can simultaneously threaten, frighten, and haunt me? Me, of all people!

My eyes do not know where to go here. They go to the window, they go to the fireplace, they go to the massive mound of fake plant and statuary currently gorging on the leftmost corner of the room, they go to my hands, which are shaking. 

“Hello, I would like to get in touch with the Ministry of Vibes? Yes, I’ll hold.” 

I haven’t been this afraid of a shower since I went to Girl Scout camp in the fifth grade and there was a brown recluse spider in the camp shower and I screamed until the counselor came in and told me it was only a wolf spider but it turns out those still bite you and it hurts

I love watching Still Images on my Television Set :)

Nobody make a sound. He’s watching you. 

i spy with my evil eye:


Their souls are trapped in these photographs forever :)

Okay, phew, we made it out alive. Here’s the back of the house I guess. 

Well, I hope you’re as thoroughly disturbed as I am. Seriously, I’m going to have trouble sleeping. I mean, I already have trouble sleeping, but this is just making that existing problem so much worse. 

If you like this post, and want to see more like it, consider supporting me on Patreon!

There is a whole new slate of Patreon rewards, including: good house of the month, an exclusive Discord server, weekly drawings, monthly livestreams, a reading group, free merch at certain tiers and more!

Not into recurring donations but still want to show support? Consider the tip jar! (Tips are much appreciated since I am making a cross country move in two weeks!!!)

Or, Check out the McMansion Hell Store! Proceeds from the store help protect great buildings from the wrecking ball.

The McMansion Hell Yearbook: 1977

Howdy, folks, and happy October! (It’s snowing here in Chicago lol) 

Before I get down to business on today’s post, I want to let you know of two big events coming up this week: 

First, I’ll be in conversation with Susan Chin and Vinson Cunningham tomorrow evening (10/28) to talk about urbanism during the pandemic (virtually) at the Museum of the City of New York. More info and tickets here

 I am giving this year’s Brendan Gill Lecture in Architectural Criticism at Yale via Zoom on Thursday the 29th of October at 6:30 Eastern Time. Admission is free. Here’s a link to the talk which includes info on how to register. 

Alright, now back to the main event. We’re back in Cook County, Illinois because of course we are, and this house falls into the rare McMansion Hell category of “this house is terrible but also kind of cute somehow????” 

It’s a shame you can’t really see the turret because it adds so much. Anyways, this house is peak 70s McMansion: longer than it is tall, involves a mansard, big picture windows, not too adventurous roof-wise. Still, it’s 6900 square feet boasting 5 bedrooms and 6.5 baths all at a whopping $1.5 million dollars. Just some pocket change, you know…

Let’s see inside, shall we?

Lawyer Foyer

All I want is some Looney Tunes action where some’s coming up from the basement and someone’s coming in the front door and WHAM!!!! 

Sitting Room

I kind of stan the dog pots though… 

Dining Room

I think the wallpaper might be crabs???? (????)


Pros of tile countertops: v twee and cute
Cons of tile countertops: grout 

Also we NEED to bring back the kitschy farmhouse aesthetic from 40 years ago. No more quartz countertops. It’s time for tiles with chickens on them!!!


Is this room supposed to be like weirdly tropical?? or Parisian??? or Martha Stewart??? or???

Vibe check: [please calibrate vibe checker and try again]


After all, inside every middle manager is a languishing Hemingway…

Main Bedroom

“Struggled hard for these views (six arm flexing emojis)”

Also, disclosure: McMansion Hell will no longer use the term “master bedroom” because it’s antiquated and never made much sense after the (American) Civil War if you really think about it for more than three seconds. 

Main Bathroom

where to purchase malachite wallpaper asking for a friend (the friend is my office)

Spare Bedroom

Nothing says “I am a fun-loving carefree and slightly cRaZy girl” like this font:

Alright, that’s it for the inside. Instead of the rear exterior though, I’m going to end this post with a fun aerial shot instead just to show that my suspicions about this house have been confirmed. 

Secret Aerial Footage (helicopter sounds)

See, this house is actually very weird!!!! It is not as cute when all of its wily tricks have been revealed!!!!

Okay, that’s it for 1977. Stay tuned for 1978! 

If you like this post, and want to see more like it, consider supporting me on Patreon!

There is a whole new slate of Patreon rewards, including: good house of the month, an exclusive Discord server, weekly drawings, monthly livestreams, a reading group, free merch at certain tiers and more!

Not into recurring donations but still want to show support? Consider the tip jar! (Tips are much appreciated since I am making a cross country move in two weeks!!!)

Or, Check out the McMansion Hell Store! Proceeds from the store help protect great buildings from the wrecking ball.

Public opinion has softened its views on Brutalism. That isn’t enough to stay the wrecking ball.

Public opinion has softened its views on Brutalism. That isn’t enough to stay the wrecking ball.:

I’m back in The Architect’s Newspaper, where I’m talking about my favorite subject (Brutalism) and my least favorite subject (capitalism).

The McMansion Hell Yearbook: 1976

Howdy, folks! Today’s house comes to us from my newly adopted county of Cook County, Illinois, and boy can this baby fit so many 70s house stereotypes in it. 

It’s got everything: weird spanish colonial revivalism, an external layout that can only be described as post-split-level, a 3 car garage, and it’s brown! This lovely 5 bedroom, 5 bath 5200 square foot estate is relatively affordable by McMansion Hell standards, coming in at around $600,000. There’s a lot of house to cover, so let’s get the ball rolling! 

Lawyer Foyer

This foyer has all the elements of a contemporary lawyer foyer (large chandelier, grand staircase, two stories) except for the oversized transom window over the front door. The fact that the house looks like a split-level on the outside is interesting because it’s a regular two-story house on the inside, furthering the hypothesis that the Lawyer Foyer itself is an offshoot of the 1.5 and two-story entrances present in split levels. In many ways this house is a transitional example nestled between two eras: the split-level/ranch of the 70s and the two-story neo-eclectic houses that would become popular in the 1980s. 

Sitting Room

Fun fact: a look at recent IKEA catalogs demonstrates that the grandma couch is slowly wedging its way back into America’s living rooms. 

Dining Room

I am weeping with envy at those chairs. (Instagram story vagueposting voice) Some people just don’t know what they have. 

Living Room

The overstuffed leather sofas might not be pretty but they are authentic.


Why I hate the kitchen island/peninsula stovetop recapped:
- can’t use the island for seating bc cooking stuff is hot and steamy
- one casual lean and you’re burned
- no backsplash to catch like overboiling pasta sauce
- wastes valuable counter space

I can go on.

Master Bedroom

Personally if I had all that extra space in my bedroom I’d put something cool like a pool table or a hot tub in there bc why not???

Speaking of tubs…

Master Bath

One must wonder why brown bathroom fixtures exist in the first place because frankly it’s not a very flattering color considering the functions. Let’s just say it was a different time. 

Bedroom 2

As someone who grew up in the era of Toyota Corolla hegemony, 70s cars are extremely funny to me - like they take up half a block and get 4 miles to the gallon??? No wonder there was an oil crisis!!! 

Bedroom 3

The virgin midcentury modern collector vs the chad grandma using a 1967 teak Dunbar sideboard as a display case for their doily collection 


This whole post is a ploy to get the zoomers to watch Cheers

Alright folks, our little house tour has come to a close - it’s time for our favorite part:

Rear Exterior

(looking enviously at other countries with functioning governments beginning to open back up): yeah ok you do you, i’m just gonna watch the tour de france in a bathrobe and rank the teams based on how cancelled their sponsors are.

Well that does it for 1976! Join us soon for another installment of the Brutalism Post and keep your eyes peeled for whatever wretched house the year 1977 has bestowed upon this cursed land. 

I know that these are economically uncertain times, but many creators including myself depend on Patreon for most of their income, so if you have a minimum of $12/year to spare and are into bonus content, then do I have some good news for you:

If you like this post, and want to see more like it, consider supporting me on Patreon!

There is a whole new slate of Patreon rewards, including: good house of the month, an exclusive Discord server, weekly drawings, monthly livestreams, a reading group, free merch at certain tiers and more!

Not into recurring donations but still want to show support? Consider the tip jar! (Tips are much appreciated since I am making a cross country move in two weeks!!!)

Or, Check out the McMansion Hell Store! Proceeds from the store help protect great buildings from the wrecking ball.

The McMansion Hell Yearbook: 1975

Howdy, folks! We’re halfway through the 70s, and I thought I’d celebrate with a time capsule house stuck weirdly enough, in the 80s. Our house this time comes to us from Fairfield County, Connecticut, and while it may not be an obvious contender on the exterior, I promise you won’t be disappointed once we head through that door. 

This house, despite its modest exterior, boasts 4 bedrooms, 4.5 bathrooms, and just over 5300 square feet. It can be yours for just over $2.2 million USD.  I know you’re dying to see what’s inside, so I won’t keep you any longer.

Lawyer Foyer

As you can see, painting the walls white did not take the 70s out of this house. The disappointing part is that this is the room with the most vestiges of its 70s past - that wrought iron railing, pink linoleum, and pseudo-gothic chandelier definitely affirm that originally this house was much, much groovier before its 80s redux. 

Great Room

The realtor described this house as “transitional” which in some cases is a polite way of saying “trapped between stylistic movements and terrified to death of choosing one.” 

Sitting Room

Alright, alright, here’s one for the 80s aesthetic blogs. You’re welcome. 

Dining Room

As a form of economic stimulus, I am willing to accept giant cabinets and twee bird knickknacks. Speaking of giant cabinets, that one is, like, hearse-sized. How many candelabras and cloth napkins could one family possibly possess? 

Also, for some reason, the listing did not include any pictures of the kitchen, so we’ll have to go right into the master bedroom. 

Master Bedroom

Even in the 80s, was there ever a time where this aesthetic didn’t look, well, grandmotherly?

Bedroom 2

I’m moving in a few weeks and my back hurts just thinking about trying to lift that furniture!!!!

Bonus Room

I have to give credit where credit is due: this room is cool, and I would absolutely chill in it. Which goes to prove how deeply uncool these rich people are for not using it for chilling or any other activities. 

Rec Room

The drop-ceiling/can light combo is somewhat rare in terms of McMansion bonus rooms, as is that diagonal wood paneling which I unironically stan. Forget shiplap!!!

Alright, that’s it for our interior. Now to check out the rear exterior which proves once and for all that this house is, in fact, a McMansion. 

Rear Exterior

Honestly, I don’t know what kind of house this is - my guess is that it’s, like, a post-split-level, whatever that means. Either way, it’s super tacky and I’m glad I found it so I could share it with all of you. Check back here soon for another 70s house, as well as a much-needed update to the Brutalism Post. 

I know that these are economically uncertain times, but many creators including myself depend on Patreon for most of their income, so if you have a minimum of $12/year to spare and are into bonus content, then do I have some good news for you:

If you like this post, and want to see more like it, consider supporting me on Patreon!

There is a whole new slate of Patreon rewards, including: good house of the month, an exclusive Discord server, weekly drawings, monthly livestreams, a reading group, free merch at certain tiers and more!

Not into recurring donations but still want to show support? Consider the tip jar! (Tips are much appreciated since I am making a cross country move in two weeks!!!)

Or, Check out the McMansion Hell Store! Proceeds from the store help protect great buildings from the wrecking ball.

#HousingLIVE Join The New Republic’s Kate Wagner for a special after-hours live action version of her satirical McMansion Hell blog. July 14, 2020 at 5.30pm EDT.

#HousingLIVE Join The New Republic’s Kate Wagner for a special after-hours live action version of her satirical McMansion Hell blog. July 14, 2020 at 5.30pm EDT.:

Howdy! Join me at the NewCities New Housing Solutions conference (along with much more important people like Ilhan Omar) where I’ll be roasting buildings and raising money for Moms4Housing! Link to submission and registration above. 

Design in Dialogue - Exhibitions - Friedman Benda

Design in Dialogue - Exhibitions - Friedman Benda:

Howdy folks! Join me on Design in Dialogue tomorrow (Monday, June 15th) at 11AM EDT for a (Zoom) talk on the best and worst impulses in contemporary architecture. More info and RSVP in link. 

How Normie Minimalism and Farmhouse Chic Took Over Contemporary Design

How Normie Minimalism and Farmhouse Chic Took Over Contemporary Design:

Hello! I wrote for Hyperallergic about how minimalism went from high design to normie chic. 

Coronagrifting: A Design Phenomenon

We now interrupt our regularly scheduled content to bring you a critical essay on the design world. I promise you that this will also be funny. 

This morning, the design website Dezeen tweeted a link to one of its articles, depicting a plexiglass coronavirus shield that could be suspended above dining areas, with the caption “Reader comment: ‘Dezeen, please stop promoting this stupidity.’”


This, of course, filled many design people, including myself, with a kind of malicious glee. The tweet seemed to show that the website’s editorial (or at least social media) staff retained within themselves a scintilla of self-awareness regarding the spread a new kind of virus in its own right: cheap mockups of COVID-related design “solutions” filling the endlessly scrollable feeds of PR-beholden design websites such as Dezeen, ArchDaily, and designboom. I call this phenomenon: Coronagrifting. 

I’ll go into detail about what I mean by this, but first, I would like to presenet some (highly condensed) history. 

From Paper Architecture to PR-chitecture

Back in the headier days of architecture in the 1960s and 70s, a number of architectural avant gardes (such as Superstudio and Archizoom in Italy and Archigram in the UK) ceased producing, well, buildings, in favor of what critics came to regard as “paper architecture. This “paper architecture” included everything from sprawling diagrams of megastructures, including cities that “walked” or “never stopped” - to playfully erotic collages involving Chicago’s Marina City. Occasionally, these theoretical and aesthetic explorations were accompanied by real-world productions of “anti-design” furniture that may or may not have involved foam fingers


Archigram’s Walking City (1964). Source.

Paper architecture, of course, still exists, but its original radical, critical, playful, (and, yes, even erotic) elements were shed when the last of the ultra-modernists were swallowed up by the emerging aesthetic hegemony of Postmodernism (which was much less invested in theoretical and aesthetic futurism) in the early 1980s. What remained were merely images, the production and consumption of which has only increased as the design world shifted away from print and towards the rapidly produced, easily digestible content of the internet and social media. 


Architect Bjarke Ingels’s “Oceanix” - a mockup of an ecomodernist, luxury city designed in response to rising sea levels from climate change. The city will never be built, and its critical interrogation amounts only to “city with solar panels that floats bc climate change is Serious”  - but it did get Ingels and his firm, BIG, a TED talk and circulation on all of the hottest blogs and websites. Meanwhile, Ingels has been in business talks with the right-wing climate change denialist president of Brazil, Jair Bolsonaro. (Image via designboom

Design websites are increasingly dominated by text and mockups from the desks of a firm’s public relations departments, facilitating a transition from the paper-architecture-imaginary to what I have begun calling “PR-chitecture.” In short, PR-chitecture is architecture and design content that has been dreamed up from scratch to look good on instagram feeds or, more simply, for clicks.  It is only within this substance-less, critically lapsed media landscape that Coronagrifting can prosper.

Coronagrifting: An Evolution

As of this writing, the two greatest offenders of Coronagrifting are Dezeen, which has devoted an entire section of its website to the virus (itself offering twelve pages of content since February alone) and designboom, whose coronavirus tag contains no fewer than 159 articles. 

Certainly, a small handful of these stories demonstrate useful solutions to COVID-related problems (such as this one from designboom about a student who created a mask prototype that would allow D/deaf and hard of hearing people to read lips) most of the prototypes and the articles about them are, for a lack of a better word, insipid. 

But where, you may ask, did it all start?

One of the easiest (and, therefore, one of the earliest) Coronagrifts involves “new innovative, health-centric designs tackling problems at the intersection of wearables and personal mobility,” which is PR-chitecture speak for “body shields and masks.” 

Wearables and Post-ables

The first example came from Chinese architect Sun Dayong, back at the end of February 2020, when the virus was still isolated in China. Dayong submitted to Dezeen a prototype of a full mask and body-shield that “would protect a wearer during a coronavirus outbreak by using UV light to sterilise itself.” The project was titled “Be a Bat Man.” No, I am not making this up. 


Screenshot of Dayong’s “Be a Batman” as seen on the Dezeen website. 

Soon after, every artist, architect, designer, and sharp-eyed PR rep at firms and companies only tangentially related to design realized that, with the small investment of a Photoshop mockup and some B-minus marketing text, they too could end up on the front page of these websites boasting a large social media following and an air of legitimacy in the field

By April, companies like Apple and Nike were promising the use of existing facilities for producing or supplying an arms race’s worth of slick-tech face coverings. Starchitecture’s perennial PR-churners like Foster + Partners and Bjarke Ingels were repping “3D-printed face shields”, while other, lesser firms promised wearable vaporware like “grapheme filters,” branded “skincare LED masks for encouraging self-development” and “solar powered bubble shields.” 

While the mask Coronagrift continues to this day, the Coronagrifting phenomenon had, by early March, moved to other domains of design. 

Consider the barrage of asinine PR fluff that is the “Public Service Announcement” and by Public Service Announcement, I mean “A Designer Has Done Something Cute to Capitalize on Information Meant to Save Lives.” 

Some of the earliest offenders include cutesy posters featuring flags in the shape of houses, ostensibly encouraging people to “stay home;” a designer building a pyramid out of pillows ostensibly encouraging people to “stay home”; and Banksy making “lockdown artwork” that involved covering his bathroom in images of rats ostensibly encouraging people to “stay home.” 


Lol. Screenshot from Dezeen. 

You may be asking, “What’s the harm in all this, really, if it projects a good message?” And the answer is that people are plenty well encouraged to stay home due to the rampant spread of a deadly virus at the urging of the world’s health authorities, and that these tone-deaf art world creeps are using such a crisis for shameless self promotion and the generation of clicks and income, while providing little to no material benefit to those at risk and on the frontlines.

Of course, like the mask coronagrift, the Public Service Announcement coronagrift continues to this very day

The final iteration of Post-able and Wearable Coronagrifting genres are what I call “Passive Aggressive Social Distancing Initiatives” or PASDIs. Many of the first PASDIs were themselves PSAs and art grifts, my favorite of which being the designboom post titled “social distancing applied to iconic album covers like the beatle’s abbey road.” As you can see, we’re dealing with extremely deep stuff here. 

However, an even earlier and, in many ways more prescient and lucrative grift involves “social distancing wearables.” This can easily be summarized by the first example of this phenomenon, published March 19th, 2020 on designboom


Never wasting a single moment to capitalize on collective despair, all manner of brands have seized on the social distancing wearable trend, which, again, can best be seen in the last example of the phenomenon, published May 22nd, 2020 on designboom:


We truly, truly live in Hell. 

Which brings us, of course, to living. 

“Architectural Interventions” for a “Post-COVID World”

As soon as it became clear around late March and early April that the coronavirus (and its implications) would be sticking around longer than a few months, the architectural solutions to the problem came pouring in. These, like the virus itself, started at the scale of the individual and have since grown to the scale of the city. (Whether or not they will soon encompass the entire world remains to be seen.) 

The architectural Coronagrift began with accessories (like the designboom article about 3D-printed door-openers that enable one to open a door with one’s elbow, and the Dezeen article about a different 3D-printed door-opener that enables one to open a door with one’s elbow) which, in turn, evolved into “work from home” furniture (”Stykka designs cardboard #StayTheF***Home Desk for people working from home during self-isolation”) which, in turn, evolved into pop-up vaporware architecture for first responders (”opposite office proposes to turn berlin’s brandenburg airport into COVID-19 ‘superhospital'”), which, in turn evolved into proposals for entire buildings (”studio prototype designs prefabricated 'vital house’ to combat COVID-19″); which, finally, in turn evolved into “urban solutions” aimed at changing the city itself (a great article summarizing and criticizing said urban solutions was recently written by Curbed’s Alissa Walker).


There is something truly chilling about an architecture firm, in order to profit from attention seized by a global pandemic, logging on to their computers, opening photoshop, and drafting up some lazy, ineffectual, unsanitary mockup featuring figures in hazmat suits carrying a dying patient (macabrely set in an unfinished airport construction site) as a real, tangible solution to the problem of overcrowded hospitals; submitting it to their PR desk for copy, and sending it out to blogs and websites for clicks, knowing full well that the sole purpose of doing so consists of the hope that maybe someone with lots of money looking to commission health-related interiors will remember that one time there was a glossy airport hospital rendering on designboom and hire them. 

Enough, already. 

Frankly, after an endless barrage of cyberpunk mask designs, social distancing burger king crowns, foot-triggered crosswalk beg buttons that completely ignore accessibility concerns such as those of wheelchair users, cutesy “stay home uwu” projects from well-to-do art celebrities (who are certainly not suffering too greatly from the economic ramifications of this pandemic), I, like the reader featured in the Dezeen Tweet at the beginning of this post, have simply had enough of this bullshit

What’s most astounding to me about all of this (but especially about #brand crap like the burger king crowns) is that it is taken completely seriously by design establishments that, despite being under the purview of PR firms, should frankly know better. I’m sure that Bjarke Ingels and Burger King aren’t nearly as affected by the pandemic as those who have lost money, jobs, stability, homes, and even their lives at the hands of COVID-19 and the criminally inept national and international response to it. On the other hand, I’m sure that architects and designers are hard up for cash at a time when nobody is building and buying anything, and, as a result, many see resulting to PR-chitecture as one of the only solutions to financial problems. 

However, I’m also extremely sure that there are interventions that can be made at the social, political, and organizational level, such as campaigning for paid sick leave, organizing against layoffs and for decent severance or an expansion of public assistance, or generally fighting the rapidly accelerating encroachment of work into all aspects of everyday life – that would bring much more good and, dare I say, progress into the world than a cardboard desk captioned with the hashtag #StaytheF***Home. 

Hence, I’ve spent most of my Saturday penning this article on my blog, McMansion Hell. I’ve chosen to run this here because I myself have lost work as a freelance writer, and the gutting of publications down to a handful of editors means that, were I to publish this story on another platform, it would have resulted in at least a few more weeks worth of inflatable, wearable, plexiglass-laden Coronagrifting, something my sanity simply can no longer withstand. 

So please, Dezeen, designboom, others – I love that you keep daily tabs on what architects and designers are up to, a resource myself and other critics and design writers find invaluable – however, I am begging, begging you to start having some discretion with regards to the proposals submitted to you as “news” or “solutions” by brands and firms, and the cynical, ulterior motives behind them. If you’re looking for a guide on how to screen such content, please scroll up to the beginning of this page. 


If you enjoyed this article, please consider subscribing to my Patreon, as I didn’t get paid to write it.  

i drew another thing!

i drew another thing!

The McMansion Hell Yearbook: 1974

Howdy, folks! It’s starting to heat up outside, though because this house is absolutely uncool, I doubt you’ll find it particularly refreshing. We return once again to the great state of New Jersey, where our 1974 house comes to us from Morris County: 

This uninspiring Colonial Revival boasts 5 bedrooms and 5.5 baths totaling just under 4,000 square feet. It can be yours for $1.2 million USD. (Recession? What recession?)

While you might not think this house is particularly bad or ugly, it does show some interesting signs of houses to come, especially a decade later. There is a clear break with the Colonial Revival aesthetics seen in earlier Bicentennial-era houses like our first yearbook house from 1970. This house consolidates its core features into one much larger, and proportionally awkward center mass which has been supplied with two wings. The saving grace is that the wings are not included in the same roofline as the center mass. If you look at the house as a single unit rather than as three separate units, you can begin to see how un-elegant (despite its symmetry) this long, squat, massing really is. This is something that will only become more pronounced as masses are further integrated into a single roofline in so-called Colonial Revival houses of the McMansion-era. 

Anyways, onto the house. 

Proto-Lawyer Foyer

I hate to disappoint you, but this house was redecorated sometime in the late 90s and is not a time capsule house. However, there are still elements that give away its true age. This foyer is still very much the squat, one-story foyer found in most proto-McMansions from the 1970s, despite being neutral-colored to death. 

Dining Room

Curating the most sterile dining experience imaginable in the age of Coronavirus is truly an accomplishment. Also what exactly do you call wall painting that is not a mural and is vaguely attempting to augment reality? Wall effects?? Also it’s not a fresco??? Fauxcore???


Theoretically, a kitchen ceiling fan doesn’t sound like a bad idea, but they’re not exactly common fixtures. Also my mom had those exact same barstools when we were growing up (in the 90s). 


I’m absolutely a conspiracy guy for furniture. The white kitchen is insider trading between HGTV, Home Depot and Clorox. Why else would the messiest room in the house be made entirely white if not for selling cleaning supplies? Wake up sheeple. 

Office (?)

Also I want to take the time to point out: 
> million dollar house
> baseboard heating
> wyd

Master Bedroom

Every decade since the 70s thinks they’ve reinvented shabby chic. You have not. 

Master Bathroom

I don’t know why I find the toilet position here to be so awkward. The toilet is like “don’t mind me i’m just chillin” 

Bedroom 2

I’m absolutely losing my mind at this curtain/blind/bottom curtain (?) combo!!! In what world!!!! 

Alright, that’s enough fun for today, it’s time to head back outside into the pre-summer heat. 

Rear Exterior

This is the rare McMansion where the rear exterior is less logical than the front exterior. This house is absolutely stacked in the back. Despite this, I cannot help but feel like every party thrown here has been extremely lame. 

Anyways, that does it for 1974! Check back later this month for the next installment of the Brutalism Post! Stay safe everyone!

I know that these are economically uncertain times, but many creators including myself depend on Patreon for most of their income, so if you have a minimum of $12/year to spare and are into bonus content, then do I have some good news for you:

If you like this post, and want to see more like it, consider supporting me on Patreon!

There is a whole new slate of Patreon rewards, including: good house of the month, an exclusive Discord server, weekly drawings, monthly livestreams, a reading group, free merch at certain tiers and more!

Not into recurring donations but still want to show support? Consider the tip jar!

Or, Check out the McMansion Hell Store! Proceeds from the store help protect great buildings from the wrecking ball.

please enjoy this picture i drew

please enjoy this picture i drew 

The McMansion Hell Yearbook: 1973

Howdy, folks! I come to you with a special salve to soothe the ache of social isolation and general societal turmoil: a particularly cursed house. Our 1973 house comes to us from Jackson County, Michigan, and, frankly, if you put the term “1973″ into an ugly house generator, this is most certainly what would come out: 

What we have here is a classic “Mansard” style house, named for exaggerated form of the type of roof (the mansard), a variation of hipped roof characterized by a steep slope punctured by dormer windows extending into or forming another story. This subgenre of house was popular in the 1960s and 70s, especially so in the Pacific Northwest and in vacation towns around the country.  This lovely estate is currently on the market for around $800,000, and boasts a remarkable 6 bedrooms and 5.5 baths. 

Lawyer Foyer

This house is what is colloquially referred to as a “time capsule” house in that it literally has not been touched since 1973, the year it was built. There are several interesting 70s motifs here, including the wallpaper and carpeting. We have an early example of a fully-formed “lawyer foyer” - a full two-story entryway featuring a curved or otherwise showy staircase and a chandelier that can be seen from the outside via a transom window larger than the door above which it sits. The furnishings are original; note the intricate, heavy front door featuring Orientalist motifs that were particularly popular in the 1970s. That being said, it’s ugly. 

Dining Room?

During the 1970s, Colonial Revival furnishings and architectural motifs were especially popular due to the influence of the American Bicentennial, which was apparently a huge deal. In general, there was a lot of brown furniture that was very heavy because people wanted to buy one piece of furniture that would last until they died. This was because Ikea was not yet a thing. (In all seriousness, there is a great Collector’s Weekly article about this.


Honestly, this is probably one of the better kitchens on this website, and it’s interesting to see such a modern-styled decor in a house that, despite its contemporary exterior is otherwise rife with traditionalist decor. 

Wet Bar

As far as McMansion wine bars go, at least this one somewhat approaches a weird architectural metaphor for, like, deconstructivist philosophy or something else people in graduate school study. 

Master Bedroom

One has to applaud the photographer for their artistic decision to make every room in this house look as cursed as possible. Also: apparently the sunroom later on in this post is what’s behind the bed, which is very, very strange. 

Master Bathroom

My question is: how is this room simultaneously grey, brown, and beige all at the same time. Scholars around the world are baffled. 

Sunroom (behind bed for some reason)

I don’t know what one does in a space like this? It’s behind the wall of the master bedroom, so it’s not a public-facing space. There are no plants or books or other activities. There is just brown furniture, weighing heavy on my isolation-addled brain. 

Basement Bar

Ok, so these folks really enjoyed drinking. We all used to laugh at people who had bars in their house but now that all the bars are closed, who is laughing now?? (It’s me, I’m still laughing.) 

That does it for the interior - now, our favorite part:

Rear Exterior

Personally, as ugly as elements of this house are, I definitely see it as one of the most fascinating to ever end up on this blog. I kind of have a soft spot for houses like this, simply because they are so strange. Anyways, speaking of strange architecture, stay tuned for another installment of the Brutalism Post coming soon! Stay safe and be well! 

I know that these are economically uncertain times, but many creators including myself depend on Patreon for most of their income, so if you have a minimum of $12/year to spare and are into bonus content, then do I have some good news for you:

If you like this post, and want to see more like it, consider supporting me on Patreon!

There is a whole new slate of Patreon rewards, including: good house of the month, an exclusive Discord server, monthly livestreams, a reading group, free merch at certain tiers and more!

Not into recurring donations but still want to show support? Consider the tip jar!

Or, Check out the McMansion Hell Store! Proceeds from the store help protect great buildings from the wrecking ball.

The McMansion Hell Yearbook: 1972

Howdy folks, and by howdy I mean howdy, because this time our McMansion Hell yearbook house is in the 9th circle of McMansion Hell itself, Denton County, Texas! Sitting at a cozy 4900 square feet, this 4 bedroom/4 bath abode could be all yours for a cool $1.13 million!

In case you’re wondering what’s going on architecturally here (i.e. everyone reading this), this house is a combination of a two-story Spanish Colonial Revival (right) with a 1970s shed-style house (left) all converging in a fully formed lawyer foyer (center). The result is, well, weird. Let’s continue. 

Lawya Fawya

Unlike our earlier 1970s houses, you can see that this one has had quite a bit of renovation, likely in the early 2000s. However, some classic things still come to mind, namely the spackled stucco walls and staircase, which are likely original to the 70s. My guess would be that a lot of that center wall has been taken out in the 2000s-2020s drive to Take Every Possible Interior Wall Out. 

Living Room

As you can see, this house is very large and mostly empty - this room probably had more of a den feel originally and was probably divided up in some way. The ceilings are their original 1970s height (low). 

Unidentified Gathering Space

My favorite part of this room is the fact that they couldn’t quite round out the window corners. Curves are hard. 


Frankly, even with the weird pot storage, this is probably the most sane kitchen in McMansion Hell history (a rare success; a glimmer of hope in a time of great darkness.)

Master Bedroom

That TV is an entire football field away from the bed which is a great metaphor for my attitude towards being on social media during the, you know, whole global pandemic and economic collapse thing that’s going on. 

Master Bathroom

Ok OK I’m done with the social distancing jokes!!!!!!

Bedroom 2

That bed in that room is how it feels living a tiny studio apartment with my husband and my dog during a time of great uncertainty!!

Rec Room

I would love to see some statistics on what percentage of home gym equipment ends up on craigslist. My guess is at least half - working out at home is awkward and hard (source: I don’t do it.) 

Ok Ok we’re now ready to enter the best (read: worst) room in this house, which I have duly saved for last. 

“Theatre Room”

Alternatively this is how a pizza feels when they put it in one of those brick ovens at those overpriced restaurants. 

That’s all for inside, let’s head back out. 

Rear Exterior

Yeah I don’t actually know how something like this happens, architecturally speaking. It’s like the house version of mismatched socks and also both the socks have a hole in the toe and smell bad. 

Anyways that does it for 1972 - join us soon for 1973, which is truly a doozy - thanks to the folks on the McMansion Hell Patreon stream who submitted it!

I know that these are economically uncertain times, but many creators including myself depend on Patreon for most of their income, so if you have a minimum of $12/year to spare and are into bonus content, then do I have some good news for you: 

If you like this post, and want to see more like it, consider supporting me on Patreon!

There is a whole new slate of Patreon rewards, including: good house of the month, an exclusive Discord server, monthly livestreams, a reading group, free merch at certain tiers and more!

Not into recurring donations but still want to show support? Consider the tip jar! 

Or, Check out the McMansion Hell Store! Proceeds from the store help protect great buildings from the wrecking ball.

The Brutalism Post Part 3: What is Brutalism? Act 1, Scene 1: The Young Smithsons

What is Brutalism? To put it concisely, Brutalism was a substyle of modernist architecture that originated in Europe during the 1950s and declined by the 1970s, known for its extensive use of reinforced concrete. Because this, of course, is an unsatisfying answer, I am going to instead tell you a story about two young people, sandwiched between two soon-to-be warring generations in architecture, who were simultaneously deeply precocious and unlucky. 

It seems that in 20th century architecture there was always a power couple. American mid-century modernism had Charles and Ray Eames. Postmodernism had Robert Venturi and Denise Scott Brown. Brutalism had Alison and Peter Smithson, henceforth referred to simply as the Smithsons. 

If you read any of the accounts of the Smithsons’ contemporaries (such as The New Brutalism by critic-historian Reyner Banham) one characteristic of the pair is constantly reiterated: at the time of their rise to fame in British and international architecture circles, the Smithsons were young. In fact, in the early 1950s, both had only recently completed architecture school at Durham University. Alison, who was five years younger, was graduating around the same time as Peter, whose studies were interrupted by the Second World War, during which he served as an engineer in India. 

Alison and Peter Smithson. Image via Open.edu

At the time of the Smithsons graduation, they were leaving architecture school at a time when the upheaval the war caused in British society could still be deeply felt. Air raids had destroyed hundreds of thousands of units of housing, cultural sites and had traumatized a generation of Britons. Faced with an end to wartime international trade pacts, Britain’s financial situation was dire, and austerity prevailed in the 1940s despite the expansion of the social safety net. It was an uncertain time to be coming up in the arts, pinned at the same time between a war-torn Europe and the prosperous horizon of the 1950s.   

Alison and Peter married in 1949, shortly after graduation, and, like many newly trained architects of the time, went to work for the British government, in the Smithsons’ case, the London City Council. The LCC was, in the wake of the social democratic reforms (such as the National Health Service) and Keynesian economic policies of a strong Labour government, enjoying an expanded range in power. Of particular interest to the Smithsons were the areas of city planning and council housing, two subjects that would become central to their careers.

Alison and Peter Smithson, elevations for their Soho House (described as “a house for a society that had nothing”, 1953). Image via socks-studio.

The State of British Architecture

 The Smithsons, architecturally, ideologically, and aesthetically, were at the mercy of a rift in modernist architecture, the development of which was significantly disrupted by the war. The war had displaced many of its great masters, including luminaries such as the founders of the Bauhaus: Walter Gropius, Ludwig Mies van der Rohe, and Marcel Breuer. Britain, which was one of the slowest to adopt modernism, did not benefit as much from this diaspora as the US. 

At the time of the Smithsons entry into the architectural bureaucracy, the country owed more of its architectural underpinnings to the British architects of the nineteenth century (notably the utopian socialist William Morris), precedent studies of the influences of classical architecture (especially Palladio) under the auspices of historians like Nikolaus Pevsner, as well as a preoccupation with both British and Scandinavian vernacular architecture, in a populist bent underpinned by a turn towards social democracy. This style of architecture was known as the New Humanism

Alton East Houses by the London County Council Department of Architecture (1953-6), an example of New Humanist architecture. Image taken from The New Brutalism by Reyner Banham. 

This was somewhat of a sticky situation, for the young Smithsons who, through their more recent schooling, were, unlike their elders, awed by the buildings and writing of the European modernists. The dramatic ideas for the transformation of cities as laid out by the manifestos of the CIAM (International Congresses for Modern Architecture) organized by Le Corbusier (whose book Towards a New Architecture was hugely influential at the time) and the historian-theorist Sigfried Giedion, offered visions of social transformation that allured many British architects, but especially the impassioned and idealistic Smithsons.

Of particular contribution to the legacy of the development of Brutalism was Le Corbusier, who, by the 1950s was entering the late period of his career which characterized by his use of raw concrete (in his words, béton brut), and sculptural architectural forms. The building du jour for young architects (such as Peter and Alison) was the Unité d’Habitation (1948-54), the sprawling massive housing project in Marseilles, France, that united Le Corbusier’s urban theories of dense, centralized living, his architectural dogma as laid out in Towards a New Architecture, and the embrace of the rawness and coarseness of concrete as a material, accentuated by the impression of the wooden board used to shape it into Corb’s looming, sweeping forms.

The Unité d’habitation by Le Corbusier. Image via Iantomferry (CC BY-SA 4.0)

Little did the Smithsons know that they, mere post-graduates, would have an immensely disruptive impact on the institutions they at this time so deeply admired. For now, the couple was on the eve of their first big break, their ticket out of the nation’s bureaucracy and into the limelight.

 The Hunstanton School

An important post-war program, the one that gave the Smithsons their international debut, was the expansion of the British school system in 1944, particularly the establishment of the tripartite school system, which split students older than 11 into grammar schools (high schools) and secondary modern schools (technical schools). This, inevitably, stimulated a swath of school building throughout the country. There were several national competitions for architects wanting to design the new schools, and the Smithsons, eager to get their hands on a first project, gleefully applied.

For their inspiration, the Smithsons turned to Mies van der Rohe, who had recently emigrated to the United States and release to the architectural press, details of his now-famous Crown Hall of the Illinois Institute of Technology (1950). Mies’ use of steel, once relegated to being hidden as an internal structural material, could, thanks to laxness in the fire code in the state of Illinois, be exposed, transforming into an articulated, external structural material. 

Crown Hall, Illinois Institute of Technology by Mies van der Rohe. Image via Arturo Duarte Jr. (CC BY-SA 3.0)

Of particular importance was the famous “Mies Corner, consisting of two joined exposed I-beams that elegantly elided inherent problems in how to join together the raw, skeletal framing of steel and the revealing translucence of curtain-wall glass. This building, seen only through photographs by our young architects, opened up within them the possibility of both the modernist expression of a structure’s inherent function, but also as testimony to the aesthetic power of raw building materials as surfaces as well as structure.

The Smithsons, in a rather bold move for such young architects, decided to enter into a particularly contested competition for a new secondary school in Norfolk. They designed a school based on a Miesian steel-framed design of which the structural elements would all be visible. Its plan was crafted to the utmost standards of rationalist economy; its form, unlike the horizontal endlessness of Mies’ IIT, is neatly packaged into separate volumes arranged in a symmetrical way. But what was most important was the use of materials, the rawness of which is captured in the words of Reyner Banham: 

“Wherever one stands within the school one sees its actual structural materials exposed, without plaster and frequently without paint. The electrical conduits, pipe-runs, and other services are exposed with equal frankness. This, indeed, is an attempt to make architecture out of the relationships of brute materials, but it is done with the very greatest self-denying restraint.”

 Much to the upset and shock of the more conservative and romanticist British architectural establishment, the Smithsons’ design won.

Hunstanton School by Alison and Peter Smithson (1949-54). Photos by Anna Armstrong. (CC BY NC-SA 3.0)

The Hunstanton School, had, as much was possible in those days, gone viral in the architectural press, and very quickly catapulted the Smithsons to international fame as the precocious children of post-war Britain. Soon after, the term the Smithsons would claim as their own, Brutalism, too entered the general architectural consciousness. (By the early 1950s, the term was already escaping from its national borders and being applied to similar projects and work that emphasized raw materials and structural expression.)

 The New Brutalism

So what was this New Brutalism? 

The Smithsons had, even before the construction of the Hunstanton School had been finished, begun to draft amongst themselves a concept called the New Brutalism. Like many terms in art, “Brutalism” began as a joke that soon became very serious.  The term New Brutalism, according to Banham, came from an in-joke amongst the Swedish architects Hans Asplund, Bengt Edman and Lennart Holm in 1950s, about drawings the latter two had drawn for a house. This had spread to England through the Swedes’ English friends, the architects Oliver Cox and Graeme Shankland, who leaked it to the Architectural Association and the Architect’s Department of the London County Council, at which Alison and Peter Smithson were still employed. According to Banham, the term had already acquired a colloquial meaning:

“Whatever Asplund meant by it, the Cox-Shankland connection seem to have used it almost exclusively to mean Modern Architecture of the more pure forms then current, especially the work of Mies van der Rohe. The most obstinate protagonists of that type of architecture at the time in London were Alison and Peter Smithson, designers of the Miesian school at Hunstanton, which is generally taken to be the first Brutalist building.”

 (This is supplicated by an anecdote of how the term stuck partially because Peter was called Brutus by his peers because he bore resemblance to Roman busts of the hero, and Brutalism was a joining of “Brutus plus Alison,” which is deeply cute.)

The Smithsons began to explore the art world for corollaries to their raw, material-driven architecture. They found kindred souls in the photographer Nigel Henderson and the sculptor Edouardo Paolozzi, with whom the couple curated an exhibition called “Parallel of Life and Art.” The Smithsons were beginning to find in their work a sort of populism, regarding the untamed, almost anthropological rough textures and assemblies of materials, which the historian Kenneth Frampton jokingly called ‘the peoples’ detailing.’ Frampton described the exhibit, of which few photographs remain, as thus:

“Drawn from news photos and arcane archaeological, anthropological, and zoological sources, many of these images [quoting Banham] ‘offered scenes of violence and distorted or anti-aesthetic views of the human figure, and all had a coarse grainy texture which was clearly regarded by the collaborators as one of their main virtues’. There was something decidedly existential about an exhibition that insisted on viewing the world as a landscape laid waste by war, decay, and disease – beneath whose ashen layers one could still find traces of life, albeing microscopic, pulsating within the ruins…the distant past and the immediate future fused into one. Thus the pavilion patio was furnished not only with an old wheel and a toy aeroplane but also with a television set. In brief, within a decayed and ravaged (i.e. bombed out) urban fabric, the ‘affluence’ of a mobile consumerism was already being envisaged, and moreover welcomed, as the life substance of a new industrial vernacular.”

Alison and Peter Smithson, Nigel Henderson, Eduoardo Paolozzi, Parallels in Life and Art. Image via the Tate Modern, 2011.

A Clash on the Horizon 

The Smithsons, it is important to remember, were part of a generation both haunted by war and tantalized by the car and consumer culture of the emerging 1950s. Ideologically they were sandwiched between the twilight years of British socialism and the allure of a consumerist populism informed by fast cars and good living, and this made their work and their ideology rife with contradiction and tension. 

The tension between proletarian, primitivist, anthropological elements as expressed in coarse, raw, materials and the allure of the technological utopia dreamed up by modernists a generation earlier, combined with the changing political climate of post-war Britain, resulted in a mix of idealism and post-socialist thought. This hybridized an new school appeal to a better life -  made possible by technology, the emerging financial accessibility of consumer culture, the promises of easily replicable, luxurious living promised by modernist architecture - with the old-school, quintessentially British populist consideration for the anthropological complexity of urban, working class life. This is what the Smithsons alluded to when they insisted early on that Brutalism was an “ethic, not an aesthetic.”

Model of the Plan Voisin for Paris by Le Corbusier displayed at the Nouveau Esprit Pavilion (1925) via Wikipedia (CC BY-SA 4.0)

By the time the Smithsons entered the international architectural scene, their modernist forefathers were already beginning to age, becoming more stylistically flexible, nuanced, and less reliant upon the strictness and ideology of their previous dogmas. The younger generation, including the Smithsons, were, in their rose-tinted idealism, beginning to feel like the old masters were abandoning their original ethos, or, in the case of other youngsters such as the Dutch architect Aldo van Eyck, were beginning to question the validity of such concepts as the Plan Voisin, Le Corbusier’s urbanist doctrine of dense housing development surrounded by green space and accessible by the alluring future of car culture. 

These youngsters were beginning to get to know each other, meeting amongst themselves at the CIAM – the International Congresses of Modern Architecture – the most important gathering of modernist architects in the world. Modern architecture as a movement was on a generational crash course that would cause an immense rift in architectural thought, practice, and history. But this is a tale for our next installment.

Like many works and ideas of young people, the nascent New Brutalism was ill-formed; still feeling for its niche beyond a mere aesthetic dominated by the honesty of building materials and a populism trying to reconcile consumerist technology and proletarian anthropology. This is where we leave our young Smithsons: riding the wave of success of their first project as a new firm, completely unaware of what is to come: the rift their New Brutalism would tear through the architectural discourse both then and now.

If you like this post, and want to see more like it, consider supporting me on Patreon!

There is a whole new slate of Patreon rewards, including: good house of the month, an exclusive Discord server, monthly livestreams, a reading group, free merch at certain tiers and more!

Not into recurring donations or bonus content? Consider the tip jar! Or, Check out the McMansion Hell Store! Proceeds from the store help protect great buildings from the wrecking ball.

Remote fitness instructor

By /u/behrkon

Remote fitness instructor submitted by /u/behrkon to r/WatchPeopleDieInside
[link] [comments]


By /u/Targaryenman

Surprise. submitted by /u/Targaryenman to r/freefolk
[link] [comments]

They have an entire routine together!

By /u/asianj1m

They have an entire routine together! submitted by /u/asianj1m to r/nextfuckinglevel
[link] [comments]

A teenage boy giving flowers to Princess Diana with the help of his friends.

By /u/Speakerbox_blast

A teenage boy giving flowers to Princess Diana with the help of his friends. submitted by /u/Speakerbox_blast to r/interestingasfuck
[link] [comments]

Remote fitness instructor

By /u/behrkon

Remote fitness instructor submitted by /u/behrkon to r/funny
[link] [comments]


By /u/SofiaggFrost

GIRL I APPRECIATE YOU submitted by /u/SofiaggFrost to r/WhitePeopleTwitter
[link] [comments]

First time Souls player. I didn’t realise that the PS5 records your microphone’s audio whenever you get a trophy. Whoops.

By /u/helloiamjack

First time Souls player. I didn’t realise that the PS5 records your microphone’s audio whenever you get a trophy. Whoops. submitted by /u/helloiamjack to r/PS5
[link] [comments]

The invention of the first aircraft and humans landing of the moon both happened in less than a lifetime

By /u/sploogetoob


submitted by /u/sploogetoob to r/Showerthoughts
[link] [comments]

There's always a bigger fish.

By /u/HattoriHanzo983

There's always a bigger fish. submitted by /u/HattoriHanzo983 to r/pics
[link] [comments]

People Can’t Vacuum Or Use Their Doorbell Because Amazon’s Cloud Servers Are Down

By /u/nanoubik

People Can’t Vacuum Or Use Their Doorbell Because Amazon’s Cloud Servers Are Down submitted by /u/nanoubik to r/nottheonion
[link] [comments]

Trump's inner circle is telling him that Giuliani and the rest of his legal team are making him look like an idiot, report says

By /u/Barack_Odrama00

Trump's inner circle is telling him that Giuliani and the rest of his legal team are making him look like an idiot, report says submitted by /u/Barack_Odrama00 to r/politics
[link] [comments]

Green was just working out

By /u/Sayanacha_

Green was just working out submitted by /u/Sayanacha_ to r/AmongUs
[link] [comments]

High mindset to have

By /u/SpectacularOtter

High mindset to have submitted by /u/SpectacularOtter to r/BlackPeopleTwitter
[link] [comments]

Dance off.

By /u/rajeshs33

Dance off. submitted by /u/rajeshs33 to r/Unexpected
[link] [comments]

Apparently, you can't have dreads if you're not black.

By /u/vQ_Q7

Apparently, you can't have dreads if you're not black. submitted by /u/vQ_Q7 to r/PublicFreakout
[link] [comments]

CodeSOD: Classic WTF: Functional Encryption

By Alex Papadimoulis

It's Thanksgiving Day in the US. Yesterday, we looked at a classic "encryption" story, and today, we should all be thankful that we don't have to support this encryption code. Original --Remy

Richard's company builds, hosts, and maintains a variety of small- and mid-sized web-based applications for their clients. Recently, one of their clients asked Richard to help audit a fraudulent transaction, which meant that Richard needed to dig through the code to see how to decrypt bank account numbers stored in the database. The search led him to H88493247329(), the method responsible for encrypting customer data. After spending a minute to add linebreaks and rename the variables, Richard asked his coworker why he obfuscated the code. His coworker scoffed, you should always encrypt your encryption functions -- it's completely insecure otherwise

function H88493247329($B89424235)
  //ED: Linkebreaks added
  global $a,$e,$m,$H;
  $X42342234 = $H . "." . $m . "-" . $a;
  $KJD234 = fopen($X42342234,"r");
  $MMNVUD884 = fread($KJD234,filesize($X42342234));

  $MQUFI3 = mcrypt_module_open('','',''');
  $MMNVUD884 = substr($MMNVUD884,0,mcrypt_enc_get_key_size($MQUFI3));
  $JF8_size = mcrypt_enc_get_iv_size($MQUFI3);
  $JF8 = mcrypt_create_iv($JF8_size, MCRYPT_RAND);

  if (mcrypt_generic_init($MQUFI3,$MMNVUD884,$JF8)!=-1)
    $KIDO83R4234FFS = mcrypt_generic($MQUFI3,$B89424235);
  return $KIDO83R4234FFS;
[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!

CodeSOD: Classic WTF: Top-grade, SHA1 Encryption

By Alex Papadimoulis

Is it that time of year already? Here in the US, we're prepping for the Thanksgiving holiday, so let's take a trip way back into the archives, and learn about the life of a moderately-paid-consultant. Original --Remy

Paul B always thought of himself as a moderately-paid consultant. With no real overhead, a policy against ties when meeting with prospective clients, and a general pickiness about the projects he'll take on, his rates tend to be pretty low. One company that looked right up his alley was a mid-sized manufacturing company that wanted a custom webshop. They went to the highly-paid consultants in town, but weren't too happy with the six-figure price tag. Paul's quote was in the five-figure range, which he felt was pretty moderate given that it was a several month project. Of course, the company wasn't too happy with his quote either, so they searched high and low for a three- or four-figure price. They eventually found one overseas.

Despite losing the bid, Paul never bothered unsubscribing from the company's mailing list - there was always something exciting about learning the latest in gimbal clamps and engine nozzle extensions. About a year and a half later, he received an exciting newsletter announcing that the webshop was finally live. Out of curiosity, he created an account to check things out. A few days later, he received an apology for lost orders - they didn't know who had ordered what, so they sent it to everyone who had signed up. And then came the "data breach" email — everyone's personal data (which, for Paul, was just his throw-away email) was now in the hands of some hackers. You get what you pay for never rang so true.

The day following the breach, the company contacted him to see if he was still available for consulting. Apparently, their overseas programmers couldn't figure out how anyone was getting in the system, since they had used "Top-grade, SHA1 Encryption." Curiosity won the day, so Paul asked for a copy of the source code. He couldn't find anything related to encryption, so he performed a search for "sha1". This was the only line that came up:

$result = mysql_query(
  "SELECT * FROM users " .
  " WHERE SHA1(username) = SHA1('" . $_REQUEST["username"] . "') " . 
  "   AND SHA1(password) = SHA1('" . $_REQUEST["password"] . "')");

Paul told the company he couldn't help them out, and suggested they go to the highly-paid consultants. A few days later, the company's newsletter reported that the webshop was closing down for some "upgrades" - a year later, it's still under construction.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!

CodeSOD: Production Comments

By Remy Porter

A fair bit of "bad code" requires at least a passing understanding of the language in question, or the domain involved. But bad comments transcend programming languages. Vilx sends us this one, which comes from code which is definitely running in production.

// WARNING!!! Special case for [external API] testing. // DO NOT LET THIS PIECE OF CODE FIND IT'S WAY TO PRODUCTION

Adding more commentary almost feels like gilding the lilly. Almost.

One of the main objections to putting loads of comments in your code is that over time the code changes, and if the comments don't change with them, confusion results. Which, not only is this not a comment you want to see in your production code, it's not an accurate comment. Vilx explains:

In all truth the particular code (or even the codebase) isn't all that bad; and the lines that followed are completely harmless in production…

[Advertisement] Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today!

CodeSOD: Pixel Perfect Design

By Remy Porter

Octavia (previously) didn't just inherit a C# application with dodgy approaches to string handling. It's also an application with questionable understandings of CSS.

CSS is far from perfect, and offers a lot of pitfalls and traps. There's a reason the "impossibility" of vertically centering text is a punchline. It's so flexibly declarative that, in many cases, there are many ways to achieve the same styling result, and it's difficult to pick out the correct one. But one would hope that developers could at least avoid the obviously terrible ones.

<div class="positioning"><span><div class="positioning"><span><div class="positioning"> <!-- repeats several hundred more times -->My Page Title<!-- then the matching closing tags--> </div></span></div></span></div>

This was not generated HTML, at least as it exists in the codebase. Someone checked this in. Whether they scripted it or copy-pasted remains a mystery. What's less mysterious is the purpose.

Octavia doesn't have the "positioning" class to share, but it sets a number of properties. Only one is relevant here: it adjusts the width of the div by one pixel. The gigantic pile of divs and spans above exists to center the text on the page. Horizontally.

There are a lot of wrong ways to do that in CSS, but this is arguably one of the most wrong.

[Advertisement] Keep the plebs out of prod. Restrict NuGet feed privileges with ProGet. Learn more.

Error'd: Reduced Complexity, Increased Errors

By Mark Bowytz

"I tried a more complex password and got the same error message, but after trying with a shorter password, it let me through!" wrote Sameer K.


Lucas T. writes, "Translation: 'Dear ladies and gentlemen, because of an internet failure (some identifying info here), the electronic signature and the owl are unavailable. The issue is being worked on. Kind regards, your application support.' Well, isn't this just great. How exactly am I supposed to work without the owl!?"


"I was looking into time issues regarding backing up my Mac with TimeMachine and saw that it REALLY MUST BE A TIME MACHINE AFTER ALL!!" Mike S. wrote.


Joel B. writes, "3D printing my desserts? Sign. Me. Up."


"Huh. Apparently someone hacked my Facebook account before I was born," wrote Rob.


[Advertisement] Continuously monitor your servers for configuration changes, and report when there's configuration drift. Get started with Otter today!

CodeSOD: Prepend Eternal

By Remy Porter

Octavia inherited a decade old pile of C#, and the code quality was pretty much what one would expect from a decade old pile that hadn't seen any real refactoring: nothing but spaghetti. Worse, it also had an "inner platform" problem, as everything they put in their API could conceivably be called by their customers' own "customizations".

One small block caught her eye, as suspicious:

public void SomeFunctionality { // Other functionality here int x = SomeIntMethod(); String y = PrependZeros(x.ToString()); // Do other things with y here }

That call to PrependZeros looked… suspicious. For starters, how many zeroes? It clearly was meant to padd to a certain length, but what?

public String PrependZeros(string n) { if (n.Length == 1) { return "00" + n; } else if (n.Length == 2) { return "0" + n; } else { return n; } }

We've reimplemented one of the built-in formatting methods, badly, which isn't particularly unusual to see. This method clearly doesn't care if it gets a number that's greater than 3 digits, which maybe that's the correct behavior? Inside the codebase, this would be trivial for Octavia to remove, as its only invoked that one time.

Except she can't do that. Because the original developer placed the code in the namespace accessible to customer customizations. Which means some unknown number of customers might have baked this method into their own code. Octavia can't rename it, can't remove it, and there's no real point in re-implementing it. Maybe someday, they'll ship a new version and release some breaking changes, but for now, PrependZeros must live on, just in case a customer is using it.

Every change breaks somebody's workflow.

[Advertisement] ProGet’s got you covered with security and access controls on your NuGet feeds. Learn more.

Big Iron

By Remy Porter

Skill which you don’t use regularly can get rusty. It might not take too much to get the rust off, and remind yourself of what you’re supposed to be doing, but the process of remembering what you’re supposed to do can get a little… damaging.

Lesli spent a big chunk of her career doing IT for an insurance company. They were a conservative company in a conservative industry, which meant they were still rolling out new mainframes in the early 2000s. “Big iron” was the future for insurance.

Until it wasn’t, of course. Lesli was one of the “x86 kids”, part of the team that started with desktop support and migrated into running important services on commodity hardware.

The “big iron” mainframe folks, led by Erwin, watched the process with bemusement. Erwin had joined the company back when they had installed their first S/370 mainframe, and had a low opinion of the direction the future was taking. Watching the “x86 kids” struggle with managing growing storage needs gave him a sense of vindication, as the mainframe never had that problem.

The early x86 rollouts started in 2003, and just used internal disks. At first, only the mail server had anything as fancy as a SCSI RAID array. But as time wore on, the storage needs got harder to manage, and eventually the “x86 kids” rolled out a SAN.

The company bought a second-hand disk array and an expensive support contract with the vendor. It was stuffed with 160GB disks, RAIDed together into about 3TB of storage- a generous amount for 2004. Gradually every service moved onto the SAN, starting with file servers and moving on to email and even experiments with virtualization.

Erwin just watched, and occasionally commented about how they’d solved that problem “on big iron” a generation ago.

Storage needs grew, and more disks got crammed into the array. More disks meant more chances for failures, and each time a disk died, the vendor needed to send out a support tech to replace it. That wasn’t so bad when it was once a quarter, but when disks needed to be replaced twice a month, the hassle of getting a tech on-site, through the multiple layers of security, and into the server room became a burden.

“Hey,” Lesli’s boss suggested, circa late 2005. “Why don’t we just do it ourselves? They can just courier over the new drives, and we can swap and initialize the disk ourselves.”

Everyone liked that idea. After a quick round of training and confirmation that it was safe, that became the process. The support contract was updated, and this became the process.

Until 2009. The world had changed, and Erwin’s beloved “big iron” was declining in relevance. Many of his peers had retired, but he planned to stick it out for a few more years. As the company retired the last mainframe, they needed to reorganize IT, and that meant all the mainframe operators were now going to be server admins. Erwin was put in charge of the storage array.

The good news was that everyone decided to be cautious. Management didn’t want to set Erwin up for failure. Erwin, who frequently wore both a belt and suspenders, didn’t want to take any risks. The support contract was being renegotiated, so the vendor wanted to make sure they looked good. Everyone was ready to make the transition successful.

The first time a disk failed under Erwin’s stewardship, the vendor sent a technician. While Erwin would do all the steps required, the technician was there to train and supervise.

It started well. “You’ll see a red light on the failed disk,” the technician said.

Erwin pointed at a red light. “Like this?”

“Yes, that exactly. Now you’ll need to replace that with the new one.”

Erwin didn’t move. “And I do that how? Let’s go step-by-step.”

The tech started to explain, but went too fast for Erwin’s tastes. Erwin stopped them, and forced them to slow it down. After each step, Erwin paused to confirm it was correct, and note down what, exactly, he had done.

This turned a normally quick process into a bit of a marathon. The marathon got longer, as the technician hadn’t done this for a few years, and was a bit fuzzy on a few of the steps for this specific array, and had to correct themselves- and Erwin had to update his notes. After what felt like too much time, they closed in on the last few steps.

“Okay,” the tech said, “so you pull up a web browser, go to the admin page. Now, login. Great, hit ‘re-initialize’.”

Erwin followed the steps. “It’s warning me about possible data loss, and wants me to confirm by typing in the word ‘yes’?”

“Yeah, sure, do that,” the tech said.

Erwin did.

The tech thought the work was done, but Erwin had more questions. Since the tech was here, Erwin was going to pick their brain. Which was good, because that meant the tech was still on site when every service failed. From the domain service to SharePoint, from the HR database to the actuarial modeling backend, everything which touched the SAN was dead.

“What happened,” Erwin demanded of the tech.

“I don’t know! Something else must have failed.”

Erwin grabbed the tech, Lesli, and the other admins into a conference room. The tech was certain it couldn’t be related to what they had done, so Erwin escalated to the vendor’s phone support. He bulled through the first tier, pointing out they already had a tech onsite, and got to one of the higher-up support reps.

Erwin pulled out his notes, and in detail, recounted every step he had performed. “Finally, I clicked re-initialize.”

“Oh no!” the support rep said. “You don’t want to do that. You want to initialize the disk, not re-initialize. That re-inits the whole array. That’s why there’s a confirmation step, where you have to type ‘yes’.”

“The on-site tech told me to do exactly that.”

The on-site tech experience what must have been the most uncomfortable silence of their career.

“Oh, well, I’m sorry to hear that,” the support rep said. “That deletes all the header information on the array. The data’s still technically on the disks, but there’s no way to get at it. You’ll need to finish formatting and then recover from backup. And ah… can you take me off speaker and put the on-site tech on the line?”

Erwin handed the phone over to the tech, then rounded up the admins. They were going to have a long day ahead getting the disaster fixed. No one was in the room to hear what the support rep said to the tech. When it was over, the tech scrambled out of the office like the building was on fire, never to be heard from again.

In their defense, however, it had been a few years since they’d done the process themselves. They were a bit rusty.

Speaking of rusty, while Erwin continued to praise his “big iron” as being in every way superior to this newfangled nonsense, he stuck around for a few more years. In that time, he proved that he might never be the fastest admin, but he was the most diligent, cautious, and responsible.

[Advertisement] Keep the plebs out of prod. Restrict NuGet feed privileges with ProGet. Learn more.

CodeSOD: Mod-El Code

By Remy Porter

Long-lived projects can have… interesting little corners. Choices made 13 years ago can stick around, either because they work well enough, or because, well, every change breaks somebody's workflow.

Today's anonymous submitter was poking around the code base of a large, long-lived JavaScript framework. In a file, not modified since 2007, but still included in the product, they found this function.

_getAdjustedDay: function(/*Date*/dateObj){ //FIXME: use mod instead? //summary: used to adjust date.getDay() values to the new values based on the current first day of the week value var days = [0,1,2,3,4,5,6]; if(this.weekStartsOn>0){ for(var i=0;i<this.weekStartsOn;i++){ days.unshift(days.pop()); } } return days[dateObj.getDay()]; // Number: 0..6 where 0=Sunday }

Look, this is old JavaScript, it's date handling code, and it's handling an unusual date case, so we already know it's going to be bad. That's not a surprise at all.

The core problem is, given a date, we want to find out the day of the week it falls on, but weeks don't have to start on Sunday, so we may need to do some arithmetic to adjust the dates. That arithmetic, as the FIXME comment helpfully points out, could easily be done with the % operator.

Someone knew the right answer here, but didn't get to implementing it. Instead, we have an array of valid values. To calculate the offset, we "roll" the array using a unshift(pop) combo- take the last element off the array and plop it onto the front. We also have a bonus unnecessary "if" statement- the "for" loop would have handled that.

This isn't the first time I've seen "populate an array with values and roll the array instead of using mod", and it probably won't be the last. But there's also a bonus WTF here. This function is invoked in _initFirstDay.

_initFirstDay: function(/*Date*/dateObj, /*Boolean*/adj){ //adj: false for first day of month, true for first day of week adjusted by startOfWeek var d = new Date(dateObj); if(!adj){d.setDate(1);} d.setDate(d.getDate()-this._getAdjustedDay(d,this.weekStartsOn)); d.setHours(0,0,0,0); return d; // Date }

So, first off, this function does two entirely different things, depending on what you pass in for adj. As the comment tells us, if adj is false, we find the first day of the month. If adj is true, we find the first day of the week relative to startOfWeek. Unfortunately, I'm not sure that comment is entirely correct, because whether or not adj is false, we do some arithmetic based on _getAdjustedDay. So, if you try this for a date in November 2020, with weeks starting on Sunday, you get the results you expect- because November 1st was a Sunday. But if you try it for October, the "first day" is September 27th, not October 1st.

Maybe that's by intent and design. Maybe it isn't. It's hard to tell from the comment. But the real bonus WTF is how they call this._getAdjustedDay here- passing in two parameters. To a function which only expects one. But that function does use the value passed in anyway, since it's a property of the class.

Even code that we can safely assume is bad just from knowing its origins can still find new ways to surprise us.

[Advertisement] Otter - Provision your servers automatically without ever needing to log-in to a command prompt. Get started today!

Announcements: What the Fun Holiday Activity?

By Scot Devera

Time just flies right past, and before you know it, the holidays will be here. Which is why you had better hurry up and try your hand at giving us the best WTF Christmas Story ever, to help us found a new holiday tradition. Or at least, give us one bright spot in the yawning abyss of 2020.

Can you teach us the true meaning of WTFMas?

What We Want

We want your best holiday story. Any holiday is valid, though given the time of year, we're expecting one of the many solstice-adjacent holidays. This story can be based on real experiences, or it can be entirely fictional, because what we really want is a new holiday tradition.

The best submissions will:

Are you going to write a traditional story? Or maybe a Dr. Seussian rhyme? A long letter to Santa? That's up to you.

How We Want It

Submissions are open from now until December 11th. Use our submission form. Check the "Story" box, and set the subject to WTF Holiday Special. Make sure to fill out the email address field, so we can contact you if you win!

What You Get

The best story will be a feature on our site, and also receive some of our new swag: a brand new TDWTF hoodie, a TDWTF mug, and a variety of stickers and other small swag.

The 2 runners up will also get a mug, stickers and other small swag.

Get writing, and let's create a new holiday tradition where opening the present may create more questions than it answers.

[Advertisement] Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today!

CodeSOD: Unset-tled

By Remy Porter

Alleen started by digging into a PHP method which was just annoying. _find_shipment_by_object_id would, when it couldn't find the ID, return false, instead of the more expected null. Not terrible, but annoying. Worse, it didn't return the shipment eihter, just a key which could be used to fetch a shipment from an array.

Again, all that's just annoying.

It was when looking at the delete_shipment method that Alleen had the facepalm moment.

public function delete_shipment($object_id) { $key = $this->_find_shipment_by_object_id($object_id); if ($key !== FALSE) { $obj = $this->_shipments[$key]; unset($obj, $this->_shipments[$key]); } return $this; }

The PHP unset method takes a list of variables, including potentially array elements, and deletes them. For whatever reason, the person who wrote this code decided to fetch the value stored in the array, then delete the variable holding the value and the array index holding the value, when the goal was simply to delete the element from the array.

They just enjoyed deleting so much, that they needed to delete it twice.

Alleen also wonders about the return $this. It seems like the intent was to build a fluent, chainable API, but the code is never used that way. We're left with a simple mystery, but at least they couldn't return twice.

[Advertisement] Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today!

Error'd: Hate the Error and Hate the Game

By Mark Bowytz

"Somehow, a busy day for Blizzard's servers is going to last for around 6 months," writes James G.


"So, is interpreting error messages a sport now?" Jay C. wrote.


Drew W. writes, "I'm not sure how, but Sparkpost thinks I've had over 130 emials opened for every one I've sent!"


"I...may have a problem staying off of my phone," Kevin V. writes.


Gordon wrote, "Kind of sums up the 2020 season, doesn't it?"


[Advertisement] Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today!

CodeSOD: The Default Value

By Remy Porter

Cicely (previously) returned to the codebase which was providing annoyances last time.

This time, the code is meant for constructing objects based on a URL pattern. Specifically, the URL might have a format like api/resource/{id}. Looking at one of the constructors, though, it didn’t want an ID, it wanted an array of them. Cicely wasn’t passing multiple IDs off the URL, and wasn’t clear, from the documentation, how it worked, how you supplied those IDs, or frankly, what they were used for. Digging into the C# code made it clear, but still raised some additional questions.

int[] ids = Request.FormOrQuerystring("ids").EnsureNotNull().Split(",").
Select(item => item.ToInt32()).Concat(new int[] { id }).ToArray();

Whitespace added for readability, the original was on one line.

This is one of those cases where the code isn’t precisely bad, or wrong. At worst, it’s inefficient with all the LINQs and new arrays. It’s just… why would you do this this way?

At its core, we check the request for an ids property. EnsureNotNull() guarantees that we’ll see a value, whether there is one or not, we Split it on commas, project the text into Int32 using Select… and then concatenate a one element array onto the end, containing our id off the URL.

Perhaps someone wanted to avoid branching logic (because it’s potentially hard to debug) or maybe wanted some “functional purity” in their programming. Maybe they were just trying to see how much they could cram into a single line of code? Regardless, Cicely considers it a “most imaginative way to set a default value”. It’s certainly clever, I’ll give it that.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!

CodeSOD: Testing Architectures

By Remy Porter

Marlyn’s employer ships software for a wide variety of CPU architectures. And depending on which branch of the product you were digging into, you might have code that builds for just i386, x86_64, PPC, and PPC64, while another branch might add s390, s390x, and aarch64.

As you might imagine, they have a huge automated test suite, meant to ensure that changes don’t break functionality or compatibility. So it’s a pity that their tests were failing.

The error messages implied that there were either missing or too many files, depending on the branch in question, but Marlyn could see that the correct build outputs were there, so nothing should be missing. It must be the test suite that had the error.

Marlyn dug into the Python script which drove their tests, and found the get_num_archs function, which theoretically would detect how many architectures this branch should output. Unfortunately, its implementation was straight out of XKCD.

def get_num_archs(self):
    return 7  # FIXME

At least they left a comment.

[Advertisement] Keep the plebs out of prod. Restrict NuGet feed privileges with ProGet. Learn more.

CodeSOD: Tranposing the Key

By Remy Porter

Russell F sends us this C# "fuction", and I have to be honest: I have no idea what it's supposed to do. I can trace through the logic, I can see what it does, but I don't understand why it does it.

private List<LaborService> Tranpose(List<LaborService> laborService) { int half = (int)Math.Ceiling((decimal)(laborService.Count)/2); for (int i = 0; i < laborService.Count; i++) { if (i < half) laborService[i].Order = 2 * i; else laborService[i].Order = (i - half) + 1; } return laborService.OrderBy(x => x.Order).ToList(); }

So this starts by finding the rough midpoint of our list. Then we iterate across each element, and if it's position is less than half, we place double its index into the Order field. If it's half or greater, we store its index minus half, plus one, into its order field. Finally, we sort by Order.

Now, based on the name, we can assume this was inspired by a matrix transposition- oh, I'm sorry, tranposition- based on the method name. It isn't one. It's almost an interleaving operation, but it also isn't one of those.

You can play with the code or just look at this table.

Ceiling of half of 10 is 5. Indexes: 0 1 2 3 4 5 6 7 8 9 Values: A B C D E F G H I J Order: 0 2 4 6 8 1 2 3 4 5 ----------------------------- New Sort: A F B G H C I J D E

What you can notice here is that as we re-number our Orders, the bottom half gets doubled, but the top half increases incrementally. This means that we end up with ties, and that means that we end up with sections where elements from the either half of the list end up next to each other- see G, H, I,J and D, E in my example.

What is this for? Why does this exist? Why does it matter? No idea.

But Russell has another detail to add:

The Order field is never used anywhere but in this one function -- it appears to have been added solely to allow this.

[Advertisement] Keep the plebs out of prod. Restrict NuGet feed privileges with ProGet. Learn more.

CodeSOD: Utility Functions

By Remy Porter

As a personal perspective, I don't tend to believe that mastery of a programming tool is nearly as important as mastery of the codebase and problem domain you're working on. But there are some developers who just don't want to learn the codebase or what other developers are doing.

Take Jessica's latest co-worker, which is similar to some previous co-workers. In this case, there was a project in flight that was starting to fall behind schedule. Management did what management does in this situation: they threw warm bodies at the project and ensured that it fell further behind.

Brant was one of those warm bodies, and Brant did not want to learn what was already in the code base. He was going to do part of the JavaScript front end, he was going to rush to get it done, and he was going to copy-paste his way through.

Which lead to this:

function setMailingsReceivedCountLabel(e) { // Implement sting prototye format so that we can use string token replacement if (!String.prototype.format) { String.prototype.format = function() { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] != 'undefined' ? args[number] : match ; }); }; } // Get values var recordCount = $("#mailingsGrid").data("kendoGrid").dataSource.total(); $("#Mailings_Count").text("(" + recordCount + ")"); }

Now, a format method for strings is a useful function. It's not wrong to implement your own- you can't rely on template literals being supported by every browser. In fact, it's such a useful function that Jessica and the team had already added one in a generic file of utility functions. A more robust one, coupled with some unit tests, and y'know, the one you should use.

Brant had no interest in learning that there was already a function which did what he needed, so instead he implemented this one. In fact, he copy-and-pasted this blob into any method he wrote that might potentially do any sort of string formatting. I stress "might potentially", because as you can see, this method doesn't actually use his format method.

[Advertisement] Continuously monitor your servers for configuration changes, and report when there's configuration drift. Get started with Otter today!

November blues

By [email protected] (Jon North)

As our already quiet lives are still more restricted, we fall back with some pleasure on reading, listening and watching tv and videos. Henry VII has figured largely since we’ve read, to ourselves and aloud, Thomas Penn’s Winter King. This is a masterpiece - we both found the research and detail astonishing without being boring. It raises a very pertinent theme just now, just what is government for?   Of course, the question has a different resonance in the 15th century, but there are interesting parallels to be drawn between Trump and the King, and between Empson and Dudley and Cummins. Not to be pursued too far. Vote counting did not figure too much then, capital punishment as a political tool not so much now. 

Following that, we have restarted our exploration of the CDs of the BBC series This Scepter'd Isle. The concept, 1000 years of well researched British history written by Christopher Lee, narrated by Anna Massey with readings by Paul Eddington from Churchill’s History of the English Speaking Peoples, is a real tour de force, accepting all the present-day caveats about old-fashioned attitudes. This one will run and run as we dip into the huge archive of recordings. I look forward to revisiting the second set, on Empire, as we mourn this weekend the death of Jan Morris whose Pax Britannica trilogy is one of my favourite books and very good history too. 

Alexander McCall Smith has long been a favourite author of ours.  His are among the sets of books I still try to collect in paperback, and although I like the  Ediburgh philosopher Isabel Dalhousie and of course Mma Ramotswe's whose Botswana Ladies Detective Agency began it all, Our favourites are still probably the 44 Scotland Street series (also Edinburgh) with young co-hero Bertie and his fearsome psychotherapy-obsessed mother Irene never fail to entertain and .  I am just finishing the Peppermint Tea Chronicles, whose plot continues to surprise and delight.

In the real world, we have tried to keep up to date with the awful and complex situation in Armenia and Nagorno Karabakh, the fall-out from the disintegration of the Soviet Union.  We'd planned to go back to visit Armenia this year, but the war has added to the difficulty of doing such a thing, but for our friends in this tiny country, hemmed round by larger and often unfriendly neighbours this has been a dreadful trauma.  I could find nothing better to explain the situation than this from the Guardian.Pashinyan, referred to at the beginning of the piece, is the recently elected Prime Minister who has found himself in a very difficult position.

Beside all this, the last few weeks here have continued beautiful and the photos here reflect this and the autumn colours we are enjoying.


Plus ça change, plus c’est la même chose

By [email protected] (Jon North)


The saying in the title  - the more things change, the more they stay the same - is attributed to the 19th century French writer, satirist and journalist Alphonse Karr, anti-vivsectionist and domino player who in his later years became an avid flower grower and is credited with having started the trade in cut flowers along the French Riviera.  He was created Chevalier of the Légion d'Honneur.  Such trivia help (slightly) to lighten the tedium in prospect with another month of limited movement and even more limited human contact.  In the middle of that, if we are not mistaken, Donald Trump will shortly no longer be US President and we rejoice at that, especially with our American friends and family, looking forward to the resumption of positive news on international agreements on climate, and more.  So maybe things will change visibly - at least we are going to be distanced from downright hypocrisy and unpleasantness.

So, for now, a few cartoons from recent days.  To begin with an image of a  divided America (and increasingly divided societies in Europe too)

Then, Macron struggling like leaders the world over to balance the consequences of the pandemic with the need to keep economies afloat

from which follows the catastrophic effect of lockdowns on small businesses (and large ones too)

Then a multilayered one - the teacher asks the class to open their books at the chapter on laïcity, the strong French principle of secularism.  This is much in people's minds following terrorist attacks, but so is the government's attempt to restrict people to 'essentials' in shopping so pupils reply that they hadn't brought that book because they thought it was not essential.  The heading, 'Rentrée délicate' also refers to the contested wisdom of sending children back to school in the first place.

And finally, Sean Connery's arrival at the Pearly Gates.

Autumn garden

Another Groundhog moment and a blank November

By [email protected] (Jon North)

I had not really expected to be writing this blog yet, but that is the uncertainty of the pandemic - nobody can really tell what will happen next.  We hear this morning that the UK is likely to be lockdown soon too - France began at least a month's clampdown on Friday evening.  And since the only certainty is that there is little scientific certainty, we don't know if it will work.  But politicians of whatever stripe have an unenviable job, trying to react in time or not too late, and at the same time crticised at every turn for wrecking the economy and countless people's livelihoods.  The rapidity of change was summed up in 3 emails from Mary's indefatigable Qi Gong teacher, first saying room closed, meet outside, the second outside space shut, have found another place and the third sorry it's all off.   Woe betide you if you don't keep up with the emails!

Mary and I repeat like a sad refrain that these things don't really affect our own lives too much, but we are only too well aware of their effect on our family and friends- people with children at school, students and their families, people running the daily risk of going to work and those who have lost or are losing work, and of course they also tell us people like us and older, and/or with underlying health problems.  What amazes me in our circle here, in the UK and elsewhere is the resilience and optimism that so many of you maintain.   We always lived relatively secluded lives except for musical outings now all sadly cancelled.  But we do feel lucky to have our dogs Elvire & Edmond to keep us on the straight and narrow and provide us with some exercise and air - luckily the weather is kind and the autumn colours and light are wonderful.  The music we follow through radio (hats off to the ever evolving BBC Radio 3), recordings and videos.  More of that anon on the music blog

We read a lot (paper and Kindle books and for me daily papers in French and English) and enjoy good food and of course wine.  Above all, and because of all that reading (so-called news on radio and tv is too drear, so it's music all the way except when French tv serves up some of its wonderful geographical and historical documentaries).  And no, it is not too early to think of Christmas, ordering in cards and having time to write them (please feel free to complain if you find in the new year that you did not get one but hoped for it!).  Mary's knitting comes on apace, and (thanks Katherine) it is always lovely to see another Fair Isle creation coming off the needles.  But above all we feel very fortunate to have the technology to enjoy all this, and to communicate with those we love near and far.  In doing that we realise our huge fortune in enjoying the life and health we do, and I know that the health is partly there because we have fewer reasons to mingle in crowds.  All we both have to be careful of is not to fall downstairs - I have never been more conscious of the value of banisters!

So, to finish for now, a few cartoons that have caught my eye

Forbidden to draw Erdogan?  He is decidedly not a prophet, unless of doom 

Quentin Blake, one of a series in le Monde
especially for our climbing friends!

Grey skies

By [email protected] (Jon North)


Well, now France has joined the UK in the ‘rule of 6’ – not an actual rule in private of course, but advised by M. the P.résident of the Republic, and certainly a rule for public get-togethers guidance for us all.  We ought to be getting used to this kind of sudden variation, but it makes a rather nervous backdrop to daily life.  More cancellations chez nous anyway – a wine tasting postponed for the second time, Tuesday French often impractical even for the smaller group of 8 we’d settled on.  But we’ll keep inviting our friends here in ones and twos.

On the outside, apart from lots of people in masks things seem normal – Lunel last weekend was very busy, we have had the usual beautiful sunshine until the clouds rolled in, and the seasonal tasks loom up – we have to arranged the pruning of trees soon before they shed all their leaves and make a whole lot more work clearing up.  But hovering behind it all is a mist of uncertainty, and a growing sense that the idea of ‘normal’ is receding.

We are quite enthusiastic about sports, and cycling has been a constant backdrop to our tv watching since the Tour de France since the summer. Living in France you can scarcely avoid the sport, with small groups out across local roads in the continuing fine spell here. There is special enthusiasm for French riders who so often come just behind the winners, but Julian Alaphilippe has won the World Road Race championship so national pride is a little assuaged.

But when other nationalities claim the glory there is inevitably a backlash in France, with experts claiming that nobody could ride so fast without illegal drugs. After Armstrong of course, there is bound to be suspicion, but on the whole I’m inclined to just sit back and admire the extraordinary young athletes who win the races or fight so hard to get to the podium, and after years of British domination it was exciting to see young Slovenian talent to the fore in the Tour. 

We were watching with interest to see if Froome could return to his best form in the Vuelta d’España after Geraint Thomas crashed out of the Italian Giro early, and just now after Covid delays the races across Europe are crowding in this Autumn.  So the Vuelta has started in a rush before the Giro finished, and Froome has turned out so far to be a bit off the pace

Mary checks on the larger tortoise, about to hibernate.  The smaller one (called Tonic) still lives indoors in a little cage

Meanwhile in English football, being champions is not straightforward. Luckily for Liverpool, being a ‘a top club’ in England is not that easy either. The only unbeaten Premiership club now is Aston Villa - who’d bet against them at the moment? But it is early days.

A report in the Guardian of growing mounds of recycling – a sign of the times for cash-strapped councils in the UK. I’ve no idea if things are as difficult in France, positive news that our Commune will accept all plastic packaging from next year.  But it seems obvious that one should celebrate increased recycling if, as it should, it goes with a reduction of general landfill or incinerated rubbish. Lunel has always been a bit ahead of the game with rubbish and recycling, and we are fortunate to have a well-organised déchèterie very nearby, so taking rubbish to the tip is never a problem especially now I have realised that arriving just before 8 am at the tail end of the business slot is ideal, you are welcomed in with no queue and nobody seems to mind you’ve jumped the gun. The problem, (as I discovered as an office manager trying to get rid of waste paper 40 years ago) is that it’s an economic activity, so if the price of waste drops or technology changes, recycling is suddenly much more difficult.

So, a bit of light relief:

For some weeks Quentin Blake has published a drawing in Le Monde of an unexpected encounter. This is from last weekend - gives a new twist to taking the dog for a walk!

Finally a quasi-musical thought - who was "Jean François" in the shanty "Boney Was a Warrior"?   The song goes: 

Boney was a warrior, Away, a- yah!  A warrior and a terrierJean François!

Boney fought the Russians, Away, a- yah!  [and so on]

Apparently, Jean François probably came from the French shanty Jean François de Nantes, which had a similar tune.  There are also similarities in the lyrics of the two songs: the French song has oué, oué, oué instead of away ah-yah, and at least one version of Jean François de Nantes uses the word terrien (landlubber) which mirrors the use of terrier.  We can't even sort our own sea shanties without French help!!

Resonant with me since I eat an avocado for breakfast nearly every day!




The screw tightens

By [email protected] (Jon North)

As I write, A 9 pm curfew has just been announced in Montpellier among 9 cities across France. These days the structure of an ordinary day - dog walking, meals, a bit of regular tv of an evening, even sorting out the rubbish and remembering to take the relevant pills - is a welcome kind of normality.

But being too far ahead of the news is dodgy because lots of detail takes days to work out so ‘curfew 2100-0600 in Montpellier for a month from Saturday’ leaves questions to which nobody has yet worked out the answers. As far as I can see it does not (yet) apply to Lunel, and we don’t go out much in the evenings anyway, but it leaves a sense of uncertainty.

What I do see is that France is starting to resemble the UK in at least 2 ways, both local protests over central diktats, first local leaders lamenting catastrophic effects of lockdowns on local businesses, and crowds of maskless people defying restrictions. Perhaps my reaction, wanting to stay in and bury myself under the duvet, is exactly what the politicians and epidemiologists want....

I keep looking for things to brighten the day and lighten the mood. The first this time is a piece of Purcell, arranged and sung by the Kings Singers. Do listen. Music for a while is something I need very day.

Regular readers know I have health problems which are really quite minor in the greater scheme of things. But An English friend has enhanced my knowledge. Since she used to take amitriptyline for jaw pain, I now know what TMJ - Temporomandibular joint dysfunction - is, and realise I’ve had a mild form for years, causing me not to be able to close my teeth correctly (well, it at least prevents grinding ) and very occasionally pain. But try explaining to a French dentist why it’s taking you a while to ‘open wide’ or indeed to close the mouth to check bite - difficult enough to speak clearly in your own language when in the dentist’s chair! Incidentally, in French this is syndrome algo-dysfonctionnel de l'appareil manducateur (SADAM), not of course to be confused with Iraqi dictators or similar.

Our Facebook photo group has 'orange' as the theme this week, and I could nor resist sharing this one posted by Richard Hall

I am constantly upset and shocked by the inhumanity of the UK Home Office. I have just discovered there is someone with the title “the Home Office’s clandestine channel threat commander”. This is about people, refugees, unwisely risking their lives to get to the UK. Provide them with safe routes and a fair, timely asylum system and they would not cross the Channel in, for God’s sake, rubber dinghies. There are bigger threats everywhere than them, including the people smugglers who profit at their expense.

Keeping the mood light, a joke I read recently:

"Two young boys walked into a pharmacy one day, picked out up box of tampons and proceeded to the checkout.

The pharmacist at the counter asked the older boy, 'Son, how old are you?' 'Eight', the boy replied.

‘Do you know what these are used for?' ‘Not exactly, but they aren't for me. They're for him. He's my brother. He's four.’

"Oh, really?" the pharmacist replied. "Yes." the boy said. "We saw on TV that if you use these, you would be able to swim, play tennis and ride a bike. Right now, he can't do any of those”.

Discovering French life and language never stops for us - we are keen followers of cycling on tv, and regret that the only coverage of the Giro d'Italia is on French tv, with poor commentary. Roll on the Spanish Vuelta next week when ITV4 returns with David Millar and co. Meanwhile we have learned a new French word twist, vélo-rution (French preference for revolution is well-known) for the rapid change toward bikes instead of cars for urban travel. Not everyone is happy with cycle tracks in towns, which of course slow down other traffic and sometimes lead from nowhere to nowhere.

And so to Mary's knitting. She is just starting a Fair Isle jumper for our niece, and the wool arrived this week


Meanwhile we read a lot.  I have just finished Mozart's Starling, a wonderful book by Lyanda Lynn Haupt.  She is a bird expert who tried to unravel the secret or Mozart's musical attachment to his pet starling.  A very good read.  And on top of that the latest two of Alexander McCall Smith's marvellous multiple series arrived

and the dogs go on as ever, keen on their food and a bit of attention   



A family visit

By [email protected] (Jon North)

 A different and very pleasant week has just flown by. We welcomed my niece Katherine to stay. She’s the daughter of my younger brother Tom, who died at the beginning of the year after a long and awful illness, a combination of ailments which made him, and those close to him, suffer a long time. Originally Katherine was to have visited with others in her family, but for various reasons neither her husband Ian nor parents in law could join her, and they were missed.

Our fairly low-key, scant week together was not a high octane tourist one in these virus-restrained times, but we did manage a few trips out. Notably we went to the Pont du Gard, photos from which illustrate today's post.  It's a favourite visit for us as for many others in the Languedoc, and the River Gardon which had flooded badly a week or two ago showed little sign of the recent storm - after the worst ever floods (in 2002 I think) the whole site around the aqueduct was rebuilt with good visitor facilities and better protection from the river.  Our early visit had a sprinkling of visitors, but it was quiet.  Happily the café on the right bank was open and we could sit and enjoy a coffee while enjoying the views - Uzès, just upstream, sits in good view on the hillside, though we did not visit it this time.

Later in the week Mary and Katherine took the dogs to the beach at La Grande Motte, where K bravely swam, and the dogs had what we learned afterwards was their first sight of the sea.  They were also let off the leads for the first time with us and behaved well, Elvire staying sedately by Mary while Edmond tested his running muscles but came back happily when called.

I'm often frustrated by technology which does not work as it should - on Sunday we and Judi in Kentucky could see each other just fine on Zoom, and she could hear us, but no way could we get the sound to work from us to her so we called it off and will try again when the planets are better aligned.  A pity - her city, Louisville has had a bad patch with the death of Breonna Taylor the latest example of civil unrest from unjust treatment of black people - racism is all too frequent a stain on the news these days on both sides of the Atlantic.

Today is the first when our regular weekly schedule starts again - Mary out most of today for cello things in Vauvert, our first French conversation group post-lockdown tomorrow, though only a small spaced out group, our first monthly wine-tasting group on Saturday, and after some hesitation I have decided to go back to choir and sing Bach, the first return rehearsal next Sunday, again with careful distancing.  And today October gets going properly with watery autumn sunshine - only 2 or 3 weeks till the clocks go back, maybe for the last time.

Flouting rules

By [email protected] (Jon North)


Before and after rain

I guess an increasing number of you will be affected as time goes on by the pandemic.  We have just emerged from a fortnight's self-imposed isolation because the parents of a close friend had become seriously ill - one has now died, so we are sharing the grief of our friend.  But it has also caused us to rethink our daily lives and the risks we take - I was going to say 'elderly parents'  before remembering that we are ourselves vulnerable because of age and underlying health issues.

So this week has been stranger than most as we cancelled some commitments (an orchestra for Mary, a choir for me) because we could not really believe that the rehearsals could be run safely (and in her casse because she was often the only cello, and the repertoire was too loud and popular!).  And we decided not to go to a wonderful cello recital.  In the end it was lucky we stayed away - the storm broke during the concert, the parking is in a muddy field with a long walk to the Cathedral at Maguelone, in the dark, and we have long experience that such events often start late.  I'd told the organisers that we were unhappy to attend in vies of press reports of lack of respect for distancing and masks by members of the audience at previous events this year, and in the end I had a good exchange with the man in charge, so I am satisfied at any rate that they are taking these things seriously, and we hope to go again next year.

The cellist we missed

Many of you know that we are keen followers of sport - the cricket this summer has been a delight, seeing so many players arriving in the UK for short intense series of all three formats, the top players on show including, I'm very pleased to say, Jimmy Anderson who has become the leading test fast bowler of all time.  So many events have been, and are being, played to empty stadiums, but the Tour de France did allow some spectators.  

The cycling was often thrilling and we watched avidly from beginning to end, but when spectators were allowed there were times when the behaviour was awful, unmasked people rushing out to yell in the faces of competitors.  I'm glad to say the UK tv commentators  were as horrified as we sere, but the 'tradition' of rushing about on the steep hills as cyclists toil past is longstanding and it is becoming clear that, in crowds, people forget all restraint.  If, as seems to be the case, we are going to live with Covid for a long time, there will need to be a fundamental change in people's gut reactions at times of excitement.

Meanwhile the storms are past for now - we in Lunel were once again in a drier patch (only 35mm in one night), but only a few km to the north the flooding of the Gardon and the Hérault in the hills has caused terrible damage.  The autumn equinox is past; now we walk dogs in the dark at the beginning and end of each day, and we look forward to October.

haul from current Intermarché wine fair

Birthday week

By [email protected] (Jon North)

Thanks Private Eye

Mary's was last weekend, and my birthday is today.  Now aged 74 and living at no.74, a random statistical coincidence!  The French numbering of houses is interesting - often in less urban areas houses are given the number of metres they are distant from the end of the road.  It works for us - we are 74 metres from the (other) end of the rue de la Brechette, our next-door neighbours 82.  It's why you so often find very large numbers in addresses where there are rather few houses in a street.  Useful though when you are not quite sure where someone lives in a long road with houses well set back, just check on your odometer as you drive up the road.  We ahve friends who live at no.600 at one street in Sommières, though they are well signed, but we pinpointed someone else in another road there with no visible numbers, simply by checking how far along the road we'd come.

view from the garden on one of our Tuesday meetings with friends, nearby in the Gard

I've had a whole clutch of lovely greetings on Facebook, including some from people I'd never expect to hear from in pre-Facebook times.  It's easy to rubbish social media, but at a time when people are more than ever isolated the simple exchange of messages like this is very comforting.  We do have a lot to be thankful for, wonderful sunny weather still continuing and good friends, neighbours and family, even though the political scene is deeply depressing.  There has been further upsetting news this week as the British government seems to be prepared to go back on properly negotiated agreements, and some people think this puts our situation as French residents at risk when we thought it had been settled.  People reassure me that the French government, for all its faults, is unlikely to overturn the understanding it reached with expats, and I feel this is likely to be OK, but you never know, and it is very distressing that British values should so easily be set aside by a government that historically has had a reputation for probity and high international standards. 

At Roussillon south of Lyon, during a recent visit to friends

Our thoughts now are with a friend whose father is very ill, the nearest this virus has come to affecting us closely.  We are staying isolated as a precaution, so seeing even fewer people just now even than usual.  But we live quiet lives anyway, and are reviewing some of our musical commitments when they do restart because the benefits are not really worth the extra risks.  But I am working out how to continue my singing, and Mary her cello, in different ways with smaller groups if we can.

Apart from a lot of reading, we are much enjoying the delayed programme of sports on tv.  The Tour de France is in full swing, and there are some breathtaking moments without most of the British interest we've seen over the past years - Colombian riders still pretty strong, but the surprise package has been the young Slovenian riders coming to the fore.  The French riders, as often, are wildly hyped here but don't really live up to the hope and faith  people place in them. As always the scenery on the tv transmissions is wonderful, and overhead photography whether from drones or helicopters is marvellous.  

The Rhône at Condrieu

But the exceptional sporting bonus for us this year has been the cricket, with the West Indies, Pakistan and Australia all turning up for Tests and various one-day series.  I'm not too worried about partisan national support, and it has been terrific to see the quality of the all the visiting teams  - England still puts out rather different teams for the Tests and one-day matches, but the restricted numbers visiting nations can send over in a pandemic means that we have an excellent view of the best of them in all forms of the game, And apart from the excellent achievements of Anderson and Broad as fast bowlers in the England team, the best of the bowlers in all the other teams have been really great to watch.  The Auustralian fielding just now is exceptional too, although I'm enough of an England fan to hope they won't be quite as successful over the next few days.

As with audiences for music, the lack of spectators in the sporting events has not been a great loss, and the lack of beer-soaked fans in the cricket has been especially easy to overcome.  Meanwhile the dogs, who behaved impeccably on their fist trip away with us, are still delightful companions and shape our days through walks and so on.  


By Jon North ([email protected])


We have travelled past the precipitous vineyards south of Lyon often, and once we even bought excellent Condrieu at the Cave Coopérative of St Désirat.  We have also often bought and enjoyed viognier wines across the south of France and it is a scented grape variety often used in Rhône white wines with other grapes, as well as on its own.  But last week was the moment to enjoy a few sunny days in a riverside hotel and to visit the village and the vineyard which is the original home of the viognier grape.

There is an even tinier and more prestigious Appellation, Château Grillet, tucked in the middle of this hillside area (it has its own railway station just south of Condrieu), but the 'larger' Appellation is still small enough.  Its equally prestigious neighbour the Côte Rotie is on the riverside hills just to the north, between Condrieu and Lyon.  The makers we visited have some vineyards there and we came back with a few bottles of that iconic wine, almost 100% syrah but with a splash of viognier of course to add an exotic touch.

But the white wine, Condrieu, was our main focus on this trip.  Of course (as in most high profile areas) the less exalted wines are pretty good too.  We went  with a recommendation to a maker whose IGP viognier was recommended by a friend of a friend ad over the course of our stay in the hotel Bellevue in Les Roches de Condrieu (on the left bank facing the village of Condrieu and the vineyard hills behind) we drank glasses of this and of a late-picked viognier which was dark yellow and delicious.  

So we visited the Mouton winery on the hilltop settlement of Rozay high above the Rhône valley late one afternoon, just after they ahd returned from picking grapes for the day.  Of course we needed to make an appointment at this busy time of year, but we were received with warmth and courtesy, and we could taste both their IGP viognier and the 2 complex Condrieus, together with 2 Côte Rotie cuvées.   

The hillside vineyards in the photos are named Châtillon for one of the cuvées, facing the river.  We could see the vines from which one of our wines was made as we looked out of our bedroom windows or sat in the restaurant each day.  It was a memorable trip, and the wines will be with us to remind us for some time to come.

Into Virgo territory

By [email protected] (Jon North)

Late evening and a tiny crescent moon

I've just returned from a checkup at St Eloi hospital in Montpellier, where there is a specialist pain clinic.  I am realising that the name ‘pain clinic’ describes its effect on people trying to find it. The building itself is in one of the nicest hospital approaches you can imagine, but once inside you are frequently lost!  Even the appointment letter says it cannot predict which floor you’ll be on, and the two possible venues are about 10 mins walk apart. The only sign I found actually mentioning douleur, nicely printed and encased in plastic, referred to the one I was NOT supposed to go to! And the consultant I saw last time was running 2 HOURS late. But the nurses - the people I normally need to see - do run on time, when you track them down. One of those appointments it is as well to be in good time for.

My TENS  treatment for sciatica has however been amazingly successful. Years of dud short sessions at physiotherapy centres have had their reputation redeemed for me by carefully designed use. I now have 3 one-hour sessions a day attached to electrodes carefully place around the nerve pathways leading to the site of pain. It overcame my scepticism as well as reducing the pain - quite an achievement! I still need some painkillers, but less than before.

Meanwhile our birthday season approaches, and we will celebrate with wine tasting and a small group of friends. One of my pleasures alongside the things I do myself, if to see and hear Mary's demanding range of activities, including lots of cello and her knitting. I've profited in the past from her jumpers (these are too hot to think about just now!) but her latest project is a series of knitted house squares. No idea how and where these will end up, but they are really enjoyable to see in a growing pile!

And the Tour de France begins on Saturday, with many fewer spectators of course

Visits during the Covid period

By Jon North ([email protected])

Earlier this year we returned, as we do often, to Domaine Lucien Jacob in Échevronne in the Côte d’Or. We were introduced to the Jacobs and their wines over 20 years ago when Mary and the family presented me with a kind of ‘share’ there, and we’ve never regretted it. Despite our encounters with much less expensive wines further south, we would not be without our Burgundy. 

We read of complex and difficult problems in the wine industry - among other things, bubbly consumption is plummeting because people feel they have little to celebrate.  But apart from difficulties in selling and exporting wine, this week there have been local headlines about the lack of water for muscat grapes here, where of course irrigation is not allowed.  But the hot weather also makes producing lower alcohol wines very difficult - quickly ripening grapes have more sugar and so wines end up more alcoholic.

We've had some good visits to winemakers in the past month.  One was an excellent wine tasting outing with visitors Chris and Siena to the Coop in St Christol, and to Ch. Grès Saint Paul. Both were enjoyable, but our encounter with Jean-Philippe Servière at GsP as especially good. We first met him nearly 20 years ago, and his wines are as good as ever; he’s nearly my age and has been making wine for over 40 years (his last holiday, he says, was in 1978!). Nobody can say winemakers have easy lives...

We revisited Nouveau Monde on the coast at Vendres Plage again at the weekend and found the whites and rosés we tasted excellent and reasonably priced. The chardonnay, 'now with vermentino' as the sales blurb might say, is as good as ever (thanks to Régine in Béziers for her recommmendation nearly 20 years ago) and the Chasan, the other white, very good too. I think they are surviving the difficulties just now not only by producing good wine by being next to a campsite, so sales trickle along nicely including a lot of volume sales! We had a very friendly and businesslike reception from Sébastien (his wife Anne-Laure is the oenologue), and although we did not taste reds this time (there is a limit at 32 in the shade!) we will be back to do so. 

Now we are looking forward to a birthday trip to Condrieu and the Côte Rôtie by the Rhône south of Lyon.  Watch this space!

Déjà vu

By [email protected] (Jon North)

Berger & Wyse today
 As I write, most of you will be only too aware of the tit-for-tat quarantines and lockdowns on both sides of the Channel.  This time it seems infections are being spread through younger people, as impatience overcomes caution.  But of course, it is only a minority that needs to behave carelessly for infection to spread.  Anyway, I'm no expert and there is little point in wringing our hands over lost outings or lost money - we are far better off than most others in riding out this crisis as we shall be in future ones.  I have been thinking about the life we expected this year and what changed - no trip to the Caucasus, no visits from family members or trips to see them, but on the plus side the addition of two lovely little dogs to our household, some jobs done which might not have been, excellent outings to find wine.  And the unexpected bonus of keeping our musical trip to the Val du Séran which we expected until the last minute would be cancelled.

So here are a few recent clips from my daily jottings.  Seeing this report in the GuardianI don’t understand ‘tit-for-tat’ diplomacy - if there are good reasons to restrict travel in both directions, no problem, and the label ‘I’ll show you mine if you show me yours’ is an easy if childish journalistic trick, but I fear governments (in France as well as England) are playing to the gallery when they retaliate like this. The Dutch are creditably refusing to play this tit for tat game as I write.

I read even more than usual at present, and one of the most fascinating articles I've come across is (in French) from Le Monde, about the restoration work on Notre Dame in Paris, as the scaffolding (all 40,000 poles) begins to be dismantled. The organ (the biggest, one of three in the cathedral) had to be completely dismantled and cleaned, not because it was damaged but because it was covered in lead dust from the fire. The headline refers to the Mikado of scaffolding - Mikado is the name the French give to our game pick-a stix, which is a good indication of the process of undoing the heaps of scaffold poles without causing further damage to the building!

I'm using newspaper cartoons this time as illustrations - this says that God is multi-religious, but now he is so fed up with humanity that he is thinking of becoming an atheist

Our life recently has been varied recently by visits to friends and by wine outings ( see the wine blog soon for more on these), but we have also continued to see some of our friends from the conversation group we usually have on Tuesdays, meeting in a small and carefully distanced group in one or other of our houses.  Mary and I are fortunate to have each other at least for company, but it is good to see others all the same, and for those of our friends who live alone such occasional contacts are even more vital.

To finish, a reminder of the Royal family which keeps popping up in the news!

Into August

By [email protected] (Jon North)

Françoise's cat

Highlights from this morning.  I just saw this post on Facebook: "The first Gatwick flight to Montpellier since March has just landed. 15 minutes early too." Not sure if we shall be flying any time soon... In solidarity with Mary, I'm feeling pleased with Arsenal's FA Cup win! And as we await our guests for the week, we are hoping for slightly cooler days after the hottest weekend of the year and classified

My besty news of the week is that the pain clinic treatment I am trying seems to be working.  TENS stands for transcutaneous electrical nerve stimulation (the French use this rather clunky phrase, hoping we won't notice behind the acronym...) which consists of pairs of electrodes stuck to the skin with gooey gel, and through which electrical pulses are sent - tingly and not unpleasant if you don't overdo it.  I used to get fed up with physiotherapists who used it without noticeable effect and routinely in order to attend to several patients at once - you were hitched up then left for a quarter of an hour while they went away, had coffee, chats or whatever.  So I needed convincing.

The consultant at St Eloi hospital who sorted out my appointment, Dr Giniès, turned out when I met him to be an archetypal senior medical man, a bit remote and without much to add, was luckily not the one to give me the attention.  He was running 2 hours late.  But his nurse colleague who provided clear, detailed guidance and demonstration, plus a prescription to hire the machine through my local pharmacy, was on time and thorough in every way.  The principle of pain relief, according to them, is to apply electrical stimulation along the path of the nerve (in my case the sciatic nerve to the right leg, around but no over the area where pain is felt.  Unlike the physio applications, which were never more than 20 minutes once a week, mine are an hour at a time and several sessions every day.  I've been using the machine for 3 days now, and to my surprise there has been a pretty instant response in reduced pain, sometimes removing it altogether, sometimes reducing it to a dull ache.  Painkillers not yet abandoned, but I need fewer pills and altogether I feel more optimistic.

The nurse went through all the physical and psychological aspects of chronic pain, and provided me with some very useful ideas and pointers in my long-accustomed sceptical state!  No miracles, but a very hopeful start and change.  In this hot weather the gel is very slippery, so you have to be careful the electrodes don't start to fall off - if one does you can get a sharp jab of pain like a bee sting!

We've not gone out a lot, though it is the season for outdoor cinema and so on even with continuing restrictions, but we did enjoy a lovely meal with friends Marie and Nick in a shady little restaurant in nearby St Dionisy.

So the summer sun continues

Some recent bits and pieces

By [email protected] (Jon North)

Evening looking north from our house

This week I want to give you a tiny flavour of the things that occupy my waking hours, jotted over the last few days on Facebook, so FB people may have seen all of this before, but there are one or two new angles.  This all comes from reading and viewing pictures online, but also from my own photos taken locally - there are links to articles and photo galleries, plus some other transcriptions and translations.  My aim was always to make this blog a resource for my friends who don't use Facebook, but it's all freely available.  I put things here because they are important to me, or make me smile, sometimes both...  Sadly, many important things are more likely to make me cry than to smile.

I checked the rain gauge this morning - 2 mm, the first this month, but enough to soak Mary falling as it did just when she took the dogs for their walk.  The photographer Régis Domergue publishes among many other things, a stream of wonderful photos (click link) of the area where he lives, near the Pic Saint Loup - once you start delving into his site it is hard to stop.  Only a few Km from us here, and the origin of much wonderful wine of the same appellation too!

 Much of what I am posting this time has something to do with viruses, which are constantly on our minds and in the news.  It's tempting to think that the current epidemic is unique or unheard of, but there have been past emergencies, as the polio one described in The man in the iron lung  reminds us.  Rumours abounded then as they have this year with e.g. 5G - then  “some people refused to talk on the phone out of concern that the virus could be transmitted down the line.”  That gives a new meaning to ‘fake news’.  I read this astonishing story in The Week.

Some things are worse than viruses - another clip from Facebook

On another subject, it seems mad that laughing gas is on sale openly.  We’ve seen abandoned cartridges around here, let alone in bigger cities.  Here is a headline from a press report of this recent dangerous craze.  apparently the gas is sold to make chantilly cream - it would be good if it were less easily available to young people

As the football season in the UK comes to a breathless close without spectators, I have shared the pleasure of several friends at Liverpool's triumph in the Premiership.  I read that Liverpool have a throw-in coach; they certainly seem to be coaching crosses and scoring from free kicks in their own box pretty well.  A fitting climax to a wonderful season

We live in a crazy world - António Guterres, the UN secretary general, says. “When two diplomats meet, there are at least six perceptions to manage: how the two perceive themselves, how they perceive each other – and how they think the other perceives them”.  So what hope is there when some of the parties trying to get agreement are megalomaniacs, fantasists or liars?

Back to epidemics and disease.  I read this article on using antibodies to treat coronavirus and it sounds like good news.  When this emergency recedes a bit we may find some useful new scientific tools in disease control.  But we, and researchers even more, need time to do the work thoroughly.  The understandable cries for results and solutions may drown out calls for caution.

Some lighter relief in the Covid world 

This girl is a keeper!!!! It happened at a New York Airport. This is hilarious. I wish I had the guts of this girl. An award should go to the United Airlines gate agent in New York for being smart and funny, while making her point, when confronted with a passenger who probably deserved to fly as cargo. For all of you out there who have had to deal with an irate customer, this one is for you.

A crowded United Airlines flight was canceled. A single agent was re-booking a long line of inconvenienced travelers.

Suddenly, an angry passenger pushed his way to the desk. He slapped his ticket on the counter and said, "I HAVE to be on this flight and it has to be FIRST CLASS."

The agent replied, "I'm sorry, sir. I'll be happy to try to help you, but I've got to help these folks first; and then I'm sure we'll be able to work something out."

The passenger was unimpressed. He asked loudly, so that the passengers behind him could hear, "DO YOU HAVE ANY IDEA WHO I AM?"

Without hesitating, the agent smiled and grabbed her public address microphone. "May I have your attention, please?", she began, her voice heard clearly throughout the terminal. "We have a passenger here at Gate 14 WHO DOES NOT KNOW WHO HE IS. If anyone can help him with his identity, please come to Gate 14".

With the folks behind him in line laughing hysterically, the man glared at the United Airlines agent, gritted his teeth, and said, "F*** You!"

Without flinching, she smiled and said, "I'm sorry sir, you'll have to get in line for that, too."

Life isn't about how to survive the storm, but how to dance in the rain...

Most of my music posts end up in the music blog, but this is partly about unappealing world leaders, so I put it here...  Just listening to the final duet of l’Incoronazione di Poppea - why has this poppe(a)d up in our consciousness more frequently on Radio 3 in this strange year? - and as always I cannot help reflecting that two of the most horrible and ruthless characters in opera should engender some of the most sublime music.



Another music-related post, showing that people are trying to assess the risk of singing together in confined spaces, an article in the Guardian.  Let’s hope this kind of research sheds light on an apparently risky actvity - at the moment I feel pessimistic about rejoining my choir.

Life, illness and ill health all go on despite as well as because of the pandemic.  There are some people who seem almost indestructible, as if they'd live for ever, but not so of course.  My life had been entwined with that of Ted Milligan, Edward H Milligan who was Librarian of the Society of Friends at Friends' House in London from 1957 until 1985 and my 'boss' there for several years from 1973; but as significantly at that time, my friend and mentor when we worked together on the Constitution Review Committee, and a little later played a key part in my wedding to Mary.  He died today, an irrreparable loss and  a wonderful life model for me and many others.  RIP Ted.

I began this blog listening to the gripping climax to the second Test - M revising as Aggers and Tuffers strut their commentator stuff.  This is definitely not the brittle WI side we became used to at the turn of the century.  I am finishing as the series nears its climax, either side can win, Broad and Anderson the undisputed best pair of fast bowlers in world cricket now or probably ever.  We all need to revise our field positions!

A long, hot summer

By [email protected] (Jon North)

Whatever we imagined about this strange health crisis, it is not getting clearer as time goes on. Not only do more and more extra manifestations of the virus bob up, but people have had time to write veritable essays on their view of the hazards, the future, the world.

Since this is a personal blog I guess I’m allowed a bit of selfish reflection. Well, really more of an honest admission of hypochondria. You may share my frequent fear that the latest symptom in the news is one you have had all along, that the slight ache or pain is a symptom of something dire. My own body is, has long been home to a staggering array of itches. They can drive me to distraction. On top of that, for well over a year (thankfully well before Covid reared its spiky head) I have lost a lot of my sense of smell and taste. Not really great for someone who enjoys wine... One would hesitate now to mention such a thing in the wrong official circles for fear of being whisked into restraint with probes deep up every orifice. On the other hand, who (the heck) knows? Paranoia can easily rule.

To escape introspection it’s good to have something to do, so I am really glad this weekend to return to my occasional voluntary job as duty person in the Anglophone Library in Montpellier. It is a small, pleasant airy ground floor space in a bac’ street near the Corum and Beaux Arts. A thousand or so books, space to browse, a children’s section, and a small membership so it is not busy or onerous.

It takes me right back to my early library days, pre-qualification, when I was often sole staff-member in one or other of the branch libraries attached to Chelsea College in London. My luck held with small, interesting workplaces, first at Wye College in Kent then at Friends House (Quaker) Library, before work and life moved in other directions. I am still a librarian at heart I think, and am pleased to have (ex-) librarian cousins (the last of them, Mary Cassidy, has just retired). Shelves full of books are just part of it - to me, it was and is the helping people to find information of all sorts that is so satisfying.

Back in the real world of hot dry weather, dogs and nice meals, we are getting to know the similarities and contrasting in personalities of our two dogs.  Elvire barks a lot but Edmond pulls ahead more on the lead, and he likes to settle proprietorially on my pillow if I forget to shut the bedroom door.  But they have proved excellent companions and perfect for our semi-sedentary lives.  Both full of energy so they can probably do with longer walks when it is cool enough to go further than the minimum!

On my radar: Victoria Coren Mitchell’s cultural highlights

By Victoria Coren Mitchell

The writer and broadcaster on a brilliant children’s museum, Downton and a poem about a skunk

Victoria Coren Mitchell is an author, broadcaster and former professional poker player and is married to the comedian David Mitchell. She started writing a weekly column for the Daily Telegraph aged 14, and has since published a number of books including For Richer, for Poorer: Confessions of a Poker Player (2009). Seasonal specials of the quiz show Only Connect, which she has presented since 2008, will be running on 30 Dec and 1-3 Jan at 8pm on BBC Two. Only Connect: The Difficult Second Quiz Book is out now.

Continue reading...

Why is the NHS listening to the siren voices of the vape manufacturers? | Victoria Coren Mitchell

By Victoria Coren Mitchell

The calls to make e-cigarettes free on prescription are outrageous when an actual cure for smoking is available

Public Health England has called for e-cigarettes to be made available on the NHS. This makes me so angry that I want to have a fag, although the last one I had was on 27 September 2014.

Ah well. I’ll settle for eating another packet of Minstrels and typing furiously.

Continue reading...

The checkout free shop is a wonderful idea, a machine will never judge you | Victoria Coren Mitchell

By Victoria Coren Mitchell

When we no longer have to impress the cashier – or fellow shoppers – we can buy what we like

Are you frightened of the rising machines? I try not to be. Machines are the future and being horrified by the future is so terribly ageing. Banging on about the misery of automated switchboards, the insecurity of online banking or the impersonality of email puts 20 years on you immediately, like racism or natural light. I try to avoid such things.

So, for me, it’s all “Good news, my local post office has shut down!”, “Ooh, you need a ‘registered account’ to buy cinema tickets, I couldn’t be happier!” and “Hurray! A leaked NHS England report says 111 calls will soon be diverted to a ‘diagnosis app’ instead of a person!”

Continue reading...

I did lose a pair of trousers once but they weren’t worth £1m, Boris | Victoria Coren Mitchell

By Victoria Coren Mitchell

The bankrupt tennis star’s admission that he has mislaid his trophies resonates with all of us who know we put that thing somewhere…

A s I sat with Boris Becker in the Riviera sunshine, each of us clutching a cigarette in one hand and a doughnut in the other, I thought: “This is my kind of sportsman.”

I didn’t know Boris Becker very well but I liked him enormously. Clearly, we both enjoyed the taste of a sugary butt on a spring afternoon. Also, we both loved a hand of cards; we were in Monte Carlo for a €10,000 poker tournament. I always found him approachable, friendly, unpretentious and nice to be around.

Continue reading...

Comparing unlike with unlike – it’s Whitehall’s secret new parlour game | Victoria Coren Mitchell

By Victoria Coren Mitchell

If the culture minister says that ambassadors should be paid more than BBC editors, we should next ask him how to choose between Victoria Beckham and a leopard

Well done Peston On Sunday, last week, for having three interview guests and triggering major news stories with each of them. That’s an amazing hit rate.

First guest Jeremy Corbyn hit the headlines for suggesting that the UK doesn’t really have a special relationship with America. Third guest Miriam Margolyes said “fuck” live on air. And the middle guest, shiny new culture secretary Matt Hancock, said that editors at the BBC should not be paid more than ambassadors.

Continue reading...

Molly tries to shuffle the pack | Victoria Coren Mitchell

By Victoria Coren Mitchell

The more things change the more they stay the same – even in a film about a strong woman

Can Hollywood fix itself? Is that already happening? Let’s go to the cinema together and find out.

It’ll have to be my local Everyman – a genteel chain where they transmit a lot of productions live from the National Theatre and sell yoghurt-coated nuts instead of Minstrels. Might not be your cup of tea. On the plus side, you can also get a cup of tea. It has to be that venue, because the trip has already happened.

Continue reading...

My Christmas present to you

By Victoria Coren Mitchell

Hate gift guides? Here’s an alternative to all those that insult you with dull ideas

The gift guides are out again! Regular readers will know how infuriated I am by those Christmas gift guides. Pages and pages of newsprint, all given over to the advice that we should consider buying our relatives a pair of socks or a bottle of wine.

Adding insult to insult, they invariably divide these “ideas” into relatives (“A lipstick for your wife! A book for your mum! A bottle of wine for Grandpa!”) just to make sure that nobody shops beyond the boundaries of age and gender stereotype. Not only must we buy the same old stuff every year, we must make the same old assumptions. Women love clothes. Kids love sweets. Men love golf calendars.

Continue reading...

Ed Sheeran versus the super-idiots | Victoria Coren Mitchell

By Victoria Coren Mitchell

Attacking the singer’s charity efforts takes a rare type of stupidity. But guess what...

According to a Dropbox survey published last week, most people believe that “only 68% of their work colleagues” are capable of the job.

This is a staggering figure. Why so high? Nobody’s capable of the job. Nobody’s capable of anything.

Related: Ed Sheeran Comic Relief film branded 'poverty porn' by aid watchdog

Continue reading...

Michael Gove, where did our love go? | Victoria Coren Mitchell

By Victoria Coren Mitchell

The environment secretary has shown a flash of his old character but I can’t forgive his betrayal

Did you wake up on Thursday morning expecting to feel a wave of affection for Michael Gove? I didn’t. I’m not sure anyone did. Possibly not even Mrs Gove, who wrote a very interesting joke in her Daily Mail column the day before.

“Kevin Spacey and Harvey Weinstein are reportedly languishing in rehab at an upmarket sex addiction clinic in Arizona,” it began. “No sex for eight weeks, apparently – although quite why they needed to fly to the desert for that is beyond me. Most of us find getting married does the trick.”

Continue reading...

Why are the police copping flak? | Victoria Coren Mitchell

By Victoria Coren Mitchell

Don’t damn officers for a Halloween prank – law and order should show it has bit of heart

It is possible that I have many things in common with Fenland police. You can’t do Only Connect for as long as I have without knowing that one thing can always be linked to another. Four things can be a challenge, but a simple pair, such as Fenland police and me… off the top of my head: we both like to wear blue, we’ve both dealt with a lot of drunks and neither of us has managed to stamp out hare-coursing in the county of Cambridgeshire.

And here’s another: we both tweeted pictures of ourselves dressed up for Halloween.

Continue reading...

Casinos gamble on their credibility | Victoria Coren Mitchell

By Victoria Coren Mitchell

If you’re too smart for gaming houses they’ll find a way to stop you - but more fool them

It is rare to see Phil Ivey, the greatest poker player of our time, losing seriously. This man is a genius. He can get inside other people’s heads.

The first time I played poker against him, I think he found me a little unsettling. People do, the first time. In Phil’s case, I don’t think it’s just that I was female – which is what throws most people – but that I was female and making jokes.

Continue reading...

Faster, higher, twerkier? | Victoria Coren Mitchell

By Victoria Coren Mitchell

Why stop at pole dancing at the Olympics? Let’s have groping and mud wrestling as well

The news that pole dancing has been formally recognised as a sport – and will now be considered for possible inclusion in the Olympics – fills me with delight.

Regular readers may be surprised. You might imagine I would feel weary and suspicious at this development. You might imagine I’d roll my eyes and ask: “What next? A simultaneous men’s event – how many bills can you shove in her bra as she writhes?”

Continue reading...

I’m really not a petrolhead... | Victoria Coren Mitchell

By Victoria Coren Mitchell

... but the thought of driverless cars and the surrender of freedom fill me with gloom

God bless the women of Saudi Arabia and their excitement about a royal decree allowing them to hold driving licences at last.

As we sit in traffic jams, fuming about inexplicable delays and unending roadworks, terrible radio playlists, the utter monotony and hell of it all, we should think of our sisters in the desert who see only the freedom, power and joy.

Continue reading...

Putting Granny online? No thanks| Victoria Coren Mitchell

By Victoria Coren Mitchell

I’m all for doing something for old people. But don’t ask me to put family snaps on the web

Today is National Grandparents’ Day. AgeUK is asking people to tweet, Instagram, hashtag (and other words your granny would not have understood) a photograph of their beloved ancestors, marked #grandpics, with a suggested donation of £5 with every photograph.

They asked me directly to do this. I said no. F*** em, I said.

Continue reading...

Oh, do let’s be beastly to the Nazis | Victoria Coren Mitchell

By Victoria Coren Mitchell

Nobody thinks Paul Hollywood is an actual Nazi; we should let him dress how he likes

A Nazi goes into a pub.

Hang on… that’s not a Nazi! It’s the well-known baker and TV personality Paul Hollywood!

Continue reading...

Housing association could make £20m from extending shared ownership leases, BBC investigation finds

By Jack Simpson

Housing association Guinness Partnership could make more than £20m from shared owners having to extend short leases in the coming years, an investigation by the BBC’s Panorama programme has found.

Net new homes rise by 1% to highest number since records began

By Lucie Heath

The number of net new homes delivered in England rose in 2019/20 by 1% on the previous year, resulting in the largest figure since records began in the 1990s.

Chancellor to pump extra £2.3bn into housing budgets

By Nathaniel Barker

Rishi Sunak unveiled a £7.1bn National Home Building Fund (NHBF) during his Spending Review speech in parliament today

Sector’s ‘historically high’ reliance on debt highlighted as key risk by English regulator

By Lucie Heath

The Regulator of Social Housing (RSH) has emphasised the English social housing sector’s “increased reliance on debt” as a key risk, as well as highlighted several new risks related to the impact of COVID-19.

Engaging the next generation of house builders is key to addressing our skills shortage

By Natalie Playfair

House builders must get out into schools if we are to solve our skills shortage, says L&Q’s Natalie Playfair

A week in the life of… a placemaking and partnerships manager

By Jess Mccabe

Eric Hodges’ week has involved mobilising resources to buy and distribute emergency food packages. The placemaking and partnerships manager at Orbit talks us through his week

Spending Review 2020: key housing announcements at a glance

By Inside Housing reporters

Inside Housing’s news team unpicks the chancellor’s Spending Review to see the key housing takeaways.

Spending Review 2020: responses from the sector

By Lucie Heath

Organisations from across the housing sector have been responding to today’s one-year Spending Review, which included announcements concerning infrastructure spending and homelessness. 

Capital expenditure to hit £100bn next year, chancellor announces

By Lucie Heath

The government has commited to £100bn on capital investment next year, including housing and other infrastructure projects

Universal Credit to be cut and Local Housing Allowance to be refrozen from April

By Nathaniel Barker

Universal Credit will be cut and Local Housing Allowance (LHA) rates refrozen despite a predicted surge in unemployment.

Sunak announces £4bn ‘Levelling Up Fund’

By Nathaniel Barker

Chancellor Rishi Sunak has unveiled a £4bn local projects fund for England as part of his one-year Spending Review

Treasury overhauls Green Book rules for funding housing and infrastructure schemes to fit levelling-up agenda

By Dominic Brady

The government has announced an overhaul of the way it assesses large investment programmes in order to align with its “levelling-up” agenda, it announced today.

The role of the regulator is changing – but what about homelessness?

By David Bogle

The Social Housing White Paper has missed a trick by overlooking homelessness, says David Bogle

Former non-compliant landlord receives top governance grading

By Nathaniel Barker

Large North East landlord Gentoo has achieved the top governance grade from the Regulator of Social Housing (RSH), three years after being deemed non-compliant.

Northern Ireland community relations housing project beats targets

By Nathaniel Barker

A housing association-led peacebuilding project in Northern Ireland and across the border has beaten its initial targets to break down racial and religious barriers.

Ethiopia's Tigray crisis: PM declares assault on regional capital Mekelle

PM Abiy Ahmed says the military will try not to harm civilians and urges people to stay at home.

Boris Johnson appoints new chief of staff after Cummings exit

Former Treasury official Dan Rosenfield's appointment comes after a period of upheaval in Downing Street.

Covid-19 tiers: Almost all of England facing tough virus rules

More than 55 million people will remain banned from meeting other households indoors from 2 December.

Cancelled prom pictures win £15,000 Taylor Wessing portrait prize

Alys Tomlinson's Lost Summer features school leavers denied their proms by the coronavirus pandemic.

Covid: Can we have a pub lunch on Boxing Day? And other questions

We answer some of your questions about the Oxford vaccine.

Elizabeth Dixon death inquiry 'exposes 20-year cover-up' of mistakes

Health workers have been "persistently dishonest" over a baby's death in 2001, a report finds.

England's new Covid-19 tiers - where does your team fit?

Clubs throughout England are discovering which tiers they fall into and whether fans can return.

Move to tier two due to 'hard work and sacrifice' in Liverpool

People in Liverpool are praised as the area moves into a lower tier of restrictions.

Wales v England: George Ford returns to starting XV

Fly-half George Ford returns to the starting XV for England's Autumn Nations Cup match with Wales in Llanelli on Saturday.

Master boot vinyl record: It just gives DOS on my IBM PC a warmer, more authentic tone

By Richard Speed

And on the B-side: Linux?

Looking for something to do in quarantine? How about booting DOS from a 10-inch vinyl record?…

Covid: What are the new tiers and lockdown rules in England, Scotland, Wales and Northern Ireland?

England will move to a tougher version of tiered coronavirus restrictions when lockdown ends next week.

Lockdown rules: What Covid tier is your area in and what are the restrictions?

Use our search tool to find out about coronavirus rules and restrictions where you live.

South Africa v England: Eoin Morgan says he does not know best T20 side

Captain Eoin Morgan says there are seven or eight "pretty strong candidates" to be in England's best team, less than a year before the T20 World Cup.

Netflix chooses its own judgment in 'Bandersnatch' case: Settle and make the nasty lawsuit go away

By Richard Speed

Maybe next time Brooker can choose to write a proper Black Mirror episode

Streaming giant Netflix has agreed to settle a lawsuit over the trademark rights to the "Choose Your Own Adventure" series of books.…

Hospitality is 'bearing the brunt' of tier pain

UK Hospitality warns its members are facing mass redundancies as England tiers are revealed.

Datasette Client for Observable

Datasette Client for Observable

Really elegant piece of code design from Alex Garcia: DatasetteClient is a client library he built designed to work in Observable notebooks, which uses JavaScript tagged template literals to allow SQL query results to be executed against a Datasette instance and displayed as inline tables in a notebook, or used to return JSON data for further processing. His example notebook includes a neat d3 stacked area chart example built against a Datasette of congresspeople, plus examples using interactive widgets to update the Notebook.

Via @agarcia_me

Weeknotes: datasette-indieauth, datasette-graphql, PyCon Argentina

Last week's weeknotes took the form of my Personal Data Warehouses: Reclaiming Your Data talk write-up, which represented most of what I got done that week. This week I mainly worked on datasette-indieauth, but I also gave a keynote at PyCon Argentina and released a version of datasette-graphql with a small security fix.


I wrote about this project in detail in Implementing IndieAuth for Datasette - it was inspired by last weekend's IndieWebCamp East and provides Datasette with a password-less sign in option with the least possible amount of configuration.

Shortly after release version 1.0 of the plugin I realized it had a critical security vulnerability, where a malicious authorization server could fake a sign-in as any user! I fixed this in version 1.1 and released that along with a GitHub security advisory: Implementation trusts the "me" field returned by the authorization server without verifying it.

The IndieAuth community has an active #dev chat channel, available in Slack and through IRC and their web chat interface. I've had some very productive conversations there about parts of the specification that I found confusing.


This week I also issued a security advisory for my datasette-graphql plugin. This one was thankfully much less severe: I realized that the plugin was leaking details of the schema of otherwise private databases, if they were protected by Datasette's permission system.

Here's the advisory: datasette-graphql leaks details of the schema of private database files. It's important to note that the actual content of the tables was not exposed - just the schema details such as the names of the tables and columns.

To my knowledge no-one has installed that plugin on an internet-exposed Datasette instance that includes private databases, so I don't think anyone was affected by the vulnerability. The fix is available in datasette-graphql 1.2.

Also in that release: I've added table action items that link to an example GraphQL query for each table. This is a pretty neat usability enhancement, since the example includes all of the non-foreign-key columns making it a useful starting point for iterating on a query. You can try that out starting on this page.

Animated demo showing the cog menu linking to an example query in the GraphiQL API explorer

Keynoting PyCon Argentina

On Friday I presented a keynote at PyCon Argentina. I actually recorded this several weeks ago, but the keynote was broadcast live on YouTube so I got to watch the talk and post real-time notes and links to an accompanying Google Doc, which I also used for Q&A after tha talk.

The conference was really well organized, with top notch production values. They made a pixel-art version of my for the poster!

My PyCon Argentina poster

The video isn't available yet, but I'll link to it when they share it. I'm particularly excited about the professionally translated subtitles en Español.


Since Datasette depends on Python 3.6 these days, I decided to try out f-strings. I used flynt to automatically convert all of my usage of .format() to use f-strings instead. Flynt is built on top of astor, a really neat looking library for more productively manipulating Python source code using Python's AST.

I've long been envious of the JavaScript community's aggressive use of codemods for automated refactoring, so I'm excited to see that kind of thing become more common in the Python community.

datasette-search-all is my plugin that returns search results from ALL attached searchable database tables, using a barrage of fetch() calls. I bumped it to a 1.0 release adding loading indicators, more reliable URL construction (with the new datasette.urls utilities) and a menu item in Datasette's new navigation menu.

Releases in the past two weeks

datasette-graphql 1.2

datasette-graphql 1.2

A new release of the datasette-graphql plugin, fixing a minor security flaw: previous versions of the plugin could expose the schema (but not the actual data) of tables in databases that were otherwise protected by Datasette's permission system.

Via @simonw

I Lived Through A Stupid Coup. America Is Having One Now

I Lived Through A Stupid Coup. America Is Having One Now

If, like me, you have been avoiding the word "coup" since it feels like a clear over-reaction to what's going on, I challenge you to read this piece and not change your mind.

Via Harper Reed

Quoting Joe Morrison

The open secret Jennings filled me in on is that OpenStreetMap (OSM) is now at the center of an unholy alliance of the world’s largest and wealthiest technology companies. The most valuable companies in the world are treating OSM as critical infrastructure for some of the most-used software ever written. The four companies in the inner circle— Facebook, Apple, Amazon, and Microsoft— have a combined market capitalization of over six trillion dollars.

Joe Morrison

The trouble with transaction.atomic

The trouble with transaction.atomic

David Seddon provides a detailed explanation of Django's nestable transaction.atomic() context manager and describes a gotcha that can occur if you lose track of whether your code is already running in a transaction block, since you may be working with savepoints instead - along with some smart workarounds.

Via @adamchainz

Internet Archive Software Library: Flash

Internet Archive Software Library: Flash

A fantastic new initiative from the Internet Archive: they're now archiving Flash (.swf) files and serving them for modern browsers using Ruffle, a Flash Player emulator written in Rust and compiled to WebAssembly. They are fully interactive and audio works too. Considering the enormous quantity of creative material released in Flash over the decades this helps fill a big hole in the Internet's cultural memory.

Via Jason Scott

Security vulnerability in datasette-indieauth: Implementation trusts the "me" field returned by the authorization server without verifying it

Security vulnerability in datasette-indieauth: Implementation trusts the "me" field returned by the authorization server without verifying it

I spotted a critical security vulnerability in my new datasette-indieauth plugin: it accepted the "me" profile URL value returned from the authorization server in the final step of the IndieAuth flow without verifying it, which means a malicious server could imitate any user. I've shipped 1.1 with a fix and posted a security advisory to the GitHub repository.

Implementing IndieAuth for Datasette

IndieAuth is a spiritual successor to OpenID, developed and maintained by the IndieWeb community and based on OAuth 2. This weekend I attended IndieWebCamp East Coast and was inspired to try my hand at an implementation. datasette-indieauth is the result, a new plugin which enables IndieAuth logins to a Datasette instance.

Surprisingly this was my first IndieWebCamp - I've been adjacent to that community for over a decade, but I'd never made it to one of their in-person events before. Now that everything's virtual I didn't even have to travel anywhere, so I finally got to break my streak of non-attendance.

Understanding IndieAuth

The key idea behind IndieAuth is to provide federated login based on URLs. Users enter a URL that they own (e.g. simonwillison.net), and the protocol then derives their identity provider, redirects the user there, waits for them to sign in and get redirected back and then uses tokens passed in the redirect to prove the user's ownership of the URL and sign them in.

Here's what that authentication flow looks like, using this demo of the plugin:

Animated demo: starts at an IndieAuth login screen, enters simonwillison.net, gets redirected to another site where clicking the verify button completes the sign-in and redirects back to the original page.

IndieAuth works by scanning the linked page for a <link rel="authorization_endpoint" href="https://indieauth.com/auth"> HTML element which indicates a service that should be redirected to in order to authenticate the user.

I'm using IndieAuth.com for my own site's authorization endpoint, an identity provider run by IndieAuth spec author Aaron Parecki. IndieAuth.com implements RelMeAuth.

RelMeAuth is a neat hack where the authentication provider can scan the user's URL for a <link href="https://github.com/simonw" rel="me"> element, confirm that the GitHub profile in question links back to the same page, and then delegate to GitHub authentication for the actual sign-in.

Why implement this for Datasette?

A key goal of Datasette is to reduce the friction involved in publishing data online as much as possible.

The datasette publish command addresses this by providing a single CLI command for publishing a SQLite database to the internet and assigning it a new URL.

datasette publish cloudrun ca-fires.db \
    --service ca-fires \
    --title "Latest fires in California"

This command will create a new Google Cloud Run service, package up the ca-fires.db (created in this talk) along with the Datasette web application, and deploy the resulting site using Google Cloud Run.

It will output a URL that looks like this: https://ca-fires-j7hipcg4aq-uc.a.run.app

Datasette is unauthenticated by default - anyone can view the published data. If you want to add authentication you can do so using a plugin, for example datasette-auth-passwords.

Authentication without passwords is better. The datasette-auth-github plugin implements single-sign-on against the GitHub API, but comes with a slight disadvantage: you need to register and configure your application with GitHub in order to configure things like the redirect URL needed for authentication.

For most applications this isn't a problem, but when you're deploying dozens or potentially hundreds of applications with Datasette - each with initially unpredictable URLs - this can add quite a bit of friction.

The joy of IndieAuth (and OpenID before it) is that there's no centralized authority to register with. You can deploy an application to any URL, install the datasette-indieauth plugin and users can start authenticating with your site.

Even better... IndieAuth means you can grant people permission to access a site without them needing to create an account, provided they have their own domain with IndieAuth setup.

I took advantage of that in the design of datasette-indieauth. Say you want to publish a Datasette that only I can access - you can do that using the restrict_access plugin configuration setting like so:

datasette publish cloudrun simon-only.db \
  --service simon-only \
  --title "For Simon's eye only" \
  --install datasette-indieauth \
  --plugin-secret datasette-indieauth \
    restrict_access https://simonwillison.net/

The resulting Datasette instance will require the user to authenticate in order to view it - and will only allow access to the user who can use IndieAuth to prove that they are the owner of simonwillison.net.

Next steps

There are two sides to the IndieAuth specification: client sites that allow sign-in with IndieAuth, and authorization providers that handle that authentication.

datasette-indieauth currently acts as a client, allowing sign-in with IndieAuth.

I'm considering extending the plugin to act as an authorization provider as well. This is a bit more challenging as authentication providers need to maintain some small aspects of session state, but it would be good for the IndieAuth ecosystem for there to be more providers. The most widely used provider at the moment is the excellent IndieAuth WordPress plugin, which I used while testing my Datasette plugin and really was just a one-click install from the WordPress plugin directory.

datasette-indieauth has 100% test coverage, and I wrote the bulk of the logic in a standalone utils.py module which could potentially be extracted out of the plugin and used to implement IndieAuth in Python against other frameworks. A Django IndieAuth provider is another potential project, which could integrate directly with my Django blog.

Addendum: what about OpenID?

Fom 2006 to 2010 I was a passionate advocate for OpenID. It was clear to me that passwords were an increasingly unpleasant barrier to secure usage of the web, and that some form of federated sign-in was inevitable. I was terrified that Microsoft Passport would take over all authentication on the web!

With hindsight that's not quite what happened: for a while it looked like Facebook would win instead, but today it seems to be a fairly even balance between Facebook, Google, community-specific authentication providers like GitHub and Apple's iPhone-monopoly-enforced Sign in with Apple.

OpenID as an open standard didn't really make it. The specification grew in complicated new directions (Yadis, XRDS, i-names, OpenID Connect, OpenID 2.0) and it never quite overcame the usability hurdle of users having to understand URLs as identifiers.

IndieAuth is a much simpler specification, based on lessons learned from OAuth. I'm still worried about URLs as identifiers, but helping people reclaim their online presence and understand those concepts is core to what the IndieWeb movement is all about.

IndieAuth also has some clever additional tricks up its sleeve. My favourite is that IndieAuth can return an identifier for the user that's different from the one they typed in the box. This means that if a top-level domain with many users supports IndieAuth, each user can learn to just type example.com in (or click a branded button) to start the authentication flow - they'll be signed in as example.com/users/simonw based on who they authenticated as. This feels like an enormous usability improvement to me, and one that could really help avoid users having to remember their own profile URLs.

OpenID was trying to solve authentication for every user of the internet. IndieAuth is less ambitious - if it only takes off with the subset of people who embrace the IndieWeb movement I think that's OK.

The datasette-indieauth project is yet another example of the benefit of having a plugin ecosystem around Datasette: I can add support for technologies like IndieAuth without baking them into Datasette's core, which almost eliminates the risk to the integrity of the larger project of trying out something new.



A real showcase of what variable fonts can do: this open source font by David Berlow has 17 different variables controlling many different aspects of the font.

Via @markboulton

Ok Google: please publish your DKIM secret keys

Ok Google: please publish your DKIM secret keys

The DKIM standard allows email providers such as Gmail to include cryptographic headers that protect against spoofing, proving that an email was sent by a specific host and has not been tampered with. But it has an unintended side effect: if someone's email is leaked (as happened to John Podesta in 2016) DKIM headers can be used to prove the validity of the leaked emails. This makes DKIM an enabling factor for blackmail and other security breach related crimes. Matthew Green proposes a neat solution: providers like Gmail should rotate their DKIM keys frequently and publish the PRIVATE key after rotation. By enabling spoofing of past email headers they would provide deniability for victims of leaks, fixing this unintended consequence of the DKIM standard.

Via @matthew_d_green



Variable fonts are fonts that can be customized by passing in additional parameters, which is done in CSS using the font-variation-settings property. Here's a ​variable font that shows multiple effects of Covid-19 lockdown on a bearded face, created by Friedrich Althausen.

Via Kevin Marks

The Cleanest Trick for Autogrowing Textareas

The Cleanest Trick for Autogrowing Textareas

This is a very clever trick. Textarea content is mirrored into a data attribute using a JavaScript one-liner, then a visibility: hidden ::after element clones that content using content: attr(data-replicated-value). The hidden element exists in a CSS grid with the textarea which allows the textarea to resize within the grid when the hidden element increases its height.

Via @chriscoyier

Hunting for Malicious Packages on PyPI

Hunting for Malicious Packages on PyPI

Jordan Wright installed all 268,000 Python packages from PyPI in containers, and ran Sysdig to capture syscalls made during installation to see if any of them were making extra network calls or reading or writing from the filesystem. Absolutely brilliant piece of security engineering and research.

Via @di_codes

Personal Data Warehouses: Reclaiming Your Data

I gave a talk yesterday about personal data warehouses for GitHub's OCTO Speaker Series, focusing on my Datasette and Dogsheep projects. The video of the talk is now available, and I'm presenting that here along with an annotated summary of the talk, including links to demos and further information.

There's a short technical glitch with the screen sharing in the first couple of minutes of the talk - I've added screenshots to the notes which show what you would have seen if my screen had been correctly shared.

Simon Willison - FOSS Developer and Consultant, Python, Django, Datasette

I'm going to be talking about personal data warehouses, what they are, why you want one, how to build them and some of the interesting things you can do once you've set one up.

I'm going to start with a demo.

Cleo wearing a very fine Golden Gate Bridge costume with a prize rosette attached to it

This is my dog, Cleo - when she won first place in a dog costume competition here, dressed as the Golden Gate Bridge!

All of my checkins on a map

So the question I want to answer is: How much of a San Francisco hipster is Cleo?

I can answer it using my personal data warehouse.

I have a database of ten year's worth of my checkins on Foursquare Swarm - generated using my swarm-to-sqlite tool. Every time I check in somewhere with Cleo I use the Wolf emoji in the checkin message.

All of Cleo's checkins on a map

I can filter for just checkins where the checkin message includes the wolf emoji.

Which means I can see just her checkins - all 280 of them.

Cleo's top categories

If I facet by venue category, I can see she's checked in at 57 parks, 32 dog runs, 19 coffee shops and 12 organic groceries.

A map of coffe shops that Cleo has been to

Then I can facet by venue category and filter down to just her 19 checkins at coffee shops.

Turns out she's a Blue Bottle girl at heart.

Being able to build a map of the coffee shops that your dog likes is obviously a very valuable reason to build your own personal data warehouse.

The Datasette website

Let's take a step back and talk about how this demo works.

The key to this demo is this web application I'm running called Datasette. I've been working on this project for three years now, and the goal is to make it as easy and cheap as possible to explore data in all sorts of shapes and sizes.

A screenshot of the Guardian Data Blog

Ten years ago I was working for the Guardian newspaper in London. One of the things I realized when I joined the organization is that newspapers collect enormous amounts of data. Any time they publish a chart or map in the newspaper someone has to collect the underlying information.

There was a journalist there called Simon Rogers who was a wizard at collecting any data you could think to ask for. He knew exactly where to get it from, and had collected a huge number of brilliant spreadsheets on his desktop computer.

We decided we wanted to publish the data behind the stories. We started something called the Data Blog, and aimed to accompany our stories with the raw data behind them.

A Google Sheet containing US public debt figures since 2001

We ended up using Google Sheets to publish the data. It worked, but I always felt like there should be a better way to publish this kind of structured data in a way that was as useful and flexible as possible for our audience.

Serverless hosting? Scale to Zero. ... but databases cost extra!

Fast forward to 2017, when I was looking into this new thing called "serverless" hosting - in particular one called Zeit Now, which has since rebranded as Vercel.

My favourite aspect of Serverless is "Scale to zero" - the idea that you only pay for hosting when your project is receiving traffic.

If you're like me, and you love building side-projects but you don't like paying $5/month for them for the rest of your life, this is perfect.

The catch is that serverless providers tend to charge you extra for databases, or require you to buy a hosted database from another provider.

But what if your database doesn't change? Can you bundle your database in the same container as your code?

This was the initial inspiration behind creating Datasette.

A Global Database of Power Plants on the World Resources Institute website

Here's another demo. The World Resources Institute maintain a CSV file of every power plant in the world.

A GitHub repository containing the Global Power Plant Database

Like many groups, they publish that data on GitHub.

A Datasette instance showing power plants faceted by country and primary fuel

I have a script that grabs their most recent data and publishes it using Datasette.

Here's the contents of their CSV file published using Datasette

Datasette supports plugins. You've already seen this plugin in my demo of Cleo's coffee shops - it's called datasette-cluster-map and it works by looking for tables with a latitude and longitude column and plotting the data on a map.

A zoomed in map showing two power plants in Antarctica

Straight away looking at this data you notice that there's a couple of power plants down here in Antarctica. This is McMurdo station, and it has a 6.6MW oil generator.

And oh look, there's a wind farm down there too on Ross Island knocking out 1MW of electricity.

A map of all of the nuclear power plants in France

But this is also a demonstration of faceting. I can slice down to just the nuclear power plants in France and see those on a map.

a screen full of JSON

And anything i can see in the interface, I can get out as JSON. Here's a JSON file showing all of those nuclear power plants in France.

A screen full of CSV

And here's a CSV export which I can use to pull the data into Excel or other CSV-compatible software.

An interface for editing a SQL query

If I click "view and edit SQL" to get back the SQL query that was used to generate the page - and I can edit and re-execute that query.

I can get those custom results back as CSV or JSON as well!

Results of a custom SQL query

In most web applications this would be seen as a terrifying security hole - it's a SQL injection attack, as a documented feature!

A couple of reasons this isn't a problem here:

Firstly, this is setup as a read-only database: INSERT and UPDATE statements that would modify it are not allowed. There's a one second time limit on queries as well.

Secondly, everything in this database is designed to be published. There are no password hashes or private user data that could be exposed here.

This also means we have a JSON API that lets JavaScript execute SQL queries against a backend! This turns out to be really useful for rapid prototyping.

The SQLite home page

It's worth talking about the secret sauce that makes this all possible.

This is all built on top of SQLite. Everyone watching this talk uses SQLite every day, even if you don't know it.

Most iPhone apps use SQLite, many desktop apps do, it's even running inside my Apple Watch.

One of my favourite features is that a SQLite database is a single file on disk. This makes it easy to copy, send around and also means I can bundle data up in that single file, include it in a Docker file and deploy it to serverless hosts to serve it on the internet.

A Datasette map of power outages

Here's another demo that helps show how GitHub fits into all of this.

Last year PG&E - the power company that covers much of California - turned off the power to large swathes of the state.

I got lucky: six months earlier I had started scraping their outage map and recording the history to a GitHub repository.

A list of recent commits to the pge-outages GitHub repository, each one with a commit messages showing the number of incidents added, removed or updated

simonw/pge-outages is a git repository with 34,000 commits tracking the history of outages that PG&E had published on their outage map.

You can see that two minutes ago they added 35 new outages.

I'm using this data to publish a Datasette instance with details of their historic outages. Here's a page showing their current outages ordered by the most customers affected by the outage.

Read Tracking PG&E outages by scraping to a git repo for more details on this project.

A screenshot of my blog entry about Git scraping

I recently decided to give this technique a name. I'm calling it Git scraping - the idea is to take any data source on the web that represents a point-in-time and commit it to a git repository that tells the story of the history of that particular thing.

Here's my article describing the pattern in more detail: Git scraping: track changes over time by scraping to a Git repository.

A screenshot of the NYT scraped election results page

This technique really stood out just last week during the US election.

This is the New York Times election scraper website, built by Alex Gaynor and a growing team of contributors. It scrapes the New York Times election results and uses the data over time to show how the results are trending.

The nyt-2020-election-scraper GitHub repository page

It uses a GitHub Actions script that runs on a schedule, plus a really clever Python script that turns it into a useful web page.

You can find more examples of Git scraping under the git-scraping topic on GitHub.

A screenshot of the incident map on fire.ca.gov

I'm going to do a bit of live coding to show you how this stuff works.

This is the incidents page from the state of California CAL FIRE website.

Any time I see a map like this, my first instinct is to open up the browser developer tools and try to figure out how it works.

The incident map with an open developer tools network console showing XHR requests ordered by size, largest first

If I open the network tab, refresh the page and then filter to just XHR requests.

A neat trick is to order by size - because inevitably the thing at the top of the list is the most interesting data on the page.

a JSON list of incidents

This appears to be a JSON file telling me about all of the current fires in the state of California!

(I set up a Git scraper for this a while ago.)

Now I'm going to take this a step further and turn it into a Datasette instance.

The AllYearIncidents section of the JSON

It looks like the AllYearIncidents key is the most interesting bit here.

A screenshot showing the output of curl

I'm going to use curl to fetch that data, then pipe it through jq to filter for just that AllYearIncidents array.

curl 'https://www.fire.ca.gov/umbraco/Api/IncidentApi/GetIncidents' \
        | jq .AllYearIncidents
Pretty-printed JSON produced by piping to jq

Now I have a list of incidents for this year.

A terminal running a command that inserts the data into a SQLite database

Next I'm going to pipe it into a tool I've been building called sqlite-utils - it's a suite of tools for manipulating SQLite databases.

I'm going to use the "insert" command and insert the data into a ca-fires.db in an incidents table.

curl 'https://www.fire.ca.gov/umbraco/Api/IncidentApi/GetIncidents' \
        | jq .AllYearIncidents \
        | sqlite-utils insert ca-fires.db incidents -

Now I've got a ca-fires.db file. I can open that in Datasette:

datasette ca-fires.db -o
A map of incidents, where one of them is located at the very bottom of the map in Antarctica

And here it is - a brand new database.

You can straight away see that one of the rows has a bad location, hence it appears in Antarctica.

But 258 of them look like they are in the right place.

I list of faceted counties, showing the count of fires for each one

I can also facet by county, to see which county had the most fires in 2020 - Riverside had 21.

datasette publish --help shows a list of hosting providers - cloudrun, heroku and vercel

I'm going to take this a step further and put it on the internet, using a command called datasette publish.

Datasette publish supports a number of different hosting providers. I'm going to use Vercel.

A terminal running datasette publish

I'm going to tell it to publish that database to a project called "ca-fires" - and tell it to install the datasette-cluster-map plugin.

datasette publish vercel ca-fires.db \
        --project ca-fires \
        --install datasette-cluster-map

This then takes that database file, bundles it up with the Datasette application and deploys it to Vercel.

A page on Vercel.com showing a deployment in process

Vercel gives me a URL where I can watch the progress of the deploy.

The goal here is to have as few steps as possible between finding some interesting data, turning it into a SQLite database you can use with Datasette and then publishing it online.

The incident map, hosted online at ca-fires.vercel.com

And this here is that database I just created - available for anyone on the internet to visit and build against.


Screenshot of Stephen Wolfram's essay Seeking the Productive Life: Some Details of My Personal Infrastructure

I've given you a whistle-stop tour of Datasette for the purposes of publishing data, and hopefully doing some serious data journalism.

So what does this all have to do with personal data warehouses?

Last year, I read this essay by Stephen Wolfram: Seeking the Productive Life: Some Details of My Personal Infrastructure. It's an incredible exploration of fourty years of productivity hacks that Stephen Wolfram has applied to become the CEO of a 1,000 person company that works remotely. He's optimized every aspect of his professional and personal life.

A screenshot showing the section where he talks about his metasearcher

It's a lot.

But there was one part of this that really caught my eye. He talks about a thing he calls a "metasearcher" - a search engine on his personal homepage that searches every email, journals, files, everything he's ever done - all in one place.

And I thought to myself, I really want THAT. I love this idea of a personal portal to my own stuff.

And because it was inspired by Stephen Wolfram, but I was planning on building a much less impressive version, I decided to call it Dogsheep.

Wolf, ram. Dog, sheep.

I've been building this over the past year.

A screenshot of my personal Dogsheep homepage, showing a list of data sources and saved queries

So essentially this is my personal data warehouse. It pulls in my personal data from as many sources as I can find and gives me an interface to browse that data and run queries against it.

I've got data from Twitter, Apple HealthKit, GitHub, Swarm, Hacker News, Photos, a copy of my genome... all sorts of things.

I'll show a few more demos.

Tweets with selfies by Cleo

Here's another one about Cleo. Cleo has a Twitter account, and every time she goes to the vet she posts a selfie and says how much she weighs.

A graph showing Cleo's weight over time

Here's a SQL query that finds every tweet that mentions her weight, pulls out her weight in pounds using a regular expression, then uses the datasette-vega charting plugin to show a self-reported chart of her weight over time.

    regexp_match('.*?(\d+(\.\d+))lb.*', full_text, 1) as lbs,
        when (media_url_https is not null)
        then json_object('img_src', media_url_https, 'width', 300)
    end as photo
    left join media_tweets on tweets.id = media_tweets.tweets_id
    left join media on media.id = media_tweets.media_id
    full_text like '%lb%'
    and user = 3166449535
    and lbs is not null
    group by
    order by
    created_at desc
A screenshot showing the result of running a SQL query against my genome

I did 23AndMe a few years ago, so I have a copy of my genome in Dogsheep. This SQL query tells me what colour my eyes are.

Apparently they are blue, 99% of the time.

select rsid, genotype, case genotype
    when 'AA' then 'brown eye color, 80% of the time'
    when 'AG' then 'brown eye color'
    when 'GG' then 'blue eye color, 99% of the time'
    end as interpretation from genome where rsid = 'rs12913832'
A list of tables in my HealthKit database

I have HealthKit data from my Apple Watch.

Something I really like about Apple's approach to this stuff is that they don't just upload all of your data to the cloud.

This data lives on your watch and on your phone, and there's an option in the Health app on your phone to export it - as a zip file full of XML.

I wrote a script called healthkit-to-sqlite that converts that zip file into a SQLite database, and now I have tables for things like my basal energy burned, my body fat percentage, flights of stairs I've climbed.

Screenshot showing a Datasette map of my San Francisco Half Marathon route

But the really fun part is that it turns out any time you track an outdoor workout on your Apple Watch it records your exact location every few seconds, and you can get that data back out again!

This is a map of my exact route for the San Francisco Half Marathon three years ago.

I've started tracking an "outdoor walk" every time I go on a walk now, just so I can get the GPS data out again later.

Screeshot showing a list of commits to my projects, faceted by repository

I have a lot of data from GitHub about my projects - all of my commits, issues, issue comments and releases - everything I can get out of the GitHub API using my github-to-sqlite tool.

So I can do things like see all of my commits across all of my projects, search and facet them.

I have a public demo of a subset of this data at github-to-sqlite.dogsheep.net.

Commits filtered by a search for pytest

I can search my commits for any commit that mentions "pytest".

A list of all of my recent project releases

I have all of my releases, which is useful for when I write my weeknotes and want to figure out what I've been working on.

A faceted interface showing my photos, faceted by city, country and whether they are a favourite

Apple Photos is a particularly interesting source of data.

It turns out the Apple Photos app uses a SQLite database, and if you know what you're doing you can extract photo metadata from it.

They actually run machine learning models on your own device to figure out what your photos are of!

Some photos I have taken of pelicans, inside Datasette

You can use the machine learning labels to see all of the photos you have taken of pelicans. Here are all of the photos I have taken that Apple Photos have identified as pelicans.

Screenshot showing some of the columns in my photos table

It also turns out they have columns called things like ZOVERALLAESTHETICSCORE, ZHARMONIOUSCOLORSCORE, ZPLEASANTCAMERATILTSCORE and more.

So I can sort my pelican photos with the most aesthetically pleasing first!

Screenshot of my Dogsheep Beta faceted search interface

And a few weeks ago I finally got around to building the thing I'd always wanted: the search engine.

I called it Dogsheep Beta, because Stephen Wolfram has a search engine called Wolfram Alpha.

This is pun-driven development: I came up with this pun a while ago and liked it so much I committed to building the software.

Search results for Cupertino, showing photos with maps

I wanted to know when the last time I had eaten a waffle-fish ice cream was. I knew it was in Cupertino, so I searched Dogsheep Beta for Cupertino and found this photo.

I hope this illustrates how much you can do if you pull all of your personal data into one place!

GDPR really helps

The GDPR law that passed in Europe a few years ago really helps with this stuff.

Companies have to provide you with access to the data that they store about you.

Many big internet companies have responded to this by providing a self-service export feature, usually buried somewhere in the settings.

You can also request data directly from companies, but the self-service option helps them keep their customer support costs down.

This stuff becomes easier over time as more companies build out these features.

Democratizing access. The future is already here, it's just not evenly distributed - William Gibson

The other challenge is how we democratize access to this.

Everything I've shown you today is open source: you can install this software and use it yourself, for free.

But there's a lot of assembly required. You need to figure out authentication tokens, find somewhere to host it, set up cron jobs and authentication.

But this should be accessible to regular non-uber-nerd humans!

Democratizing access. Should users run their own online Dogsheep? So hard and risky! Tailscale and WireGuard are interesting here. Vendors to provide hosted Dogsheep? Not a great business, risky!. Better options: Desktop app, mobile app.

Expecting regular humans to run a secure web server somewhere is pretty terrifying. I've been looking at WireGuard and Tailscale to help make secure access between devices easier, but that's still very much for super-users only.

Running this as a hosted service doesn't appeal: taking responsibility for people's personal data is scary, and it's probably not a great business.

I think the best options are to run on people's own personal devices - their mobile phones and their laptops. I think it's feasible to get Datasette running in those environments, and I really like the idea of users being able to import their personal data onto a device that they control and analyzing it there.

Try it yourself! Everything I’ve shown you today is open source

I invite you to try this all out for yourself!

datasette.io for Datasette

github.com/dogsheep and dogsheep.github.io for Dogsheep

simonwillison.net is my personal blog

twitter.com/simonw is my Twitter account

Screenshot of Dogsheep on GitHub

The Dogsheep GitHub organization has most of the tools that I've used to build out my personal Dogsheep warehouse - many of them using the naming convention of something-to-sqlite.

Q&A, from this Google Doc

Screenshot of the Google Doc

Q: Is there/will there be a Datasette hosted service that I can pay $ for? I would like to pay $5/month to get access to the latest version of Dogsheep with all the latest plugins!

I don’t want to build a hosting site for personal private data because I think people should stay in control of that themselves, plus I don’t think there’s a particularly good business model for that.

Instead, I’m building a hosted service for Datasette (called Datasette Cloud) which is aimed at companies and organizations. I want to be able to provide newsrooms and other groups with a private, secure, hosted environment where they can share data with each other and run analysis.

Screenshot showing an export running on an iPhone in the Health app

Q: How do you sync your data from your phone/watch to the data warehouse? Is it a manual process?

The health data is manual: the iOS Health app has an export button which generates a zip file of XML which you can then AirDrop to a laptop. I then run my healthkit-to-sqlite script against it to generate the DB file and SCP that to my Dogsheep server.

Many of my other Dogsheep tools use APIs and can run on cron, to fetch the most recent data from Swarm and Twitter and GitHub and so on.

Q: When accessing Github/Twitter etc do you run queries against their API or you periodically sync (retrieve mostly I guess) the data to the warehouse first and then query locally?

I always try to get ALL the data so I can query it locally. The problem with APIs that let you run queries is that inevitably there’s something I want to do that can’t be done of the API - so I’d much rather suck everything down into my own database so I can write my own SQL queries.

Screenshot showing how to run swarm-to-sqlite in a terminal

Here's an example of my swarm-to-sqlite script, pulling in just checkins from the past two weeks (using authentication credentials from an environment variable).

swarm-to-sqlite swarm.db --since=2w

Here's a redacted copy of my Dogsheep crontab.

Screenshot of the SQL.js GitHub page

Q: Have you explored doing this as a single page app so that it is possible to deploy this as a static site? What are the constraints there?

It’s actually possible to query SQLite databases entirely within client-side JavaScript using SQL.js (SQLite compiled to WebAssembly)

Screenshot of an Observable notebook running SQL.js

This Observable notebook is an example that uses this to run SQL queries against a SQLite database file loaded from a URL.

Screenshot of a search for cherry trees on sf-trees.com

Datasette’s JSON and GraphQL APIs mean it can easily act as an API backend to SPAs

I built this site to offer a search engine for trees in San Francisco. View source to see how it hits a Datasette API in the background: https://sf-trees.com/?q=palm

The network pane running against sf-trees.com

You can use the network pane to see that it's running queries against a Datasette backend.

Screenshot of view-source on sf-trees.com

Here's the JavaScript code which calls the API.

Screenshot showing the GraphiQL explorer tool running a GraphQL query against Datasette

This demo shows Datasette’s GraphQL plugin in action.

Screenshot of Datasette Canned Query documentation

Q: What possibilities for data entry tools do the writable canned queries open up?

Writable canned queries are a relatively recent Datasette feature that allow administrators to configure a UPDATE/INSERT/DELETE query that can be called by users filling in forms or accessed via a JSON API.

The idea is to make it easy to build backends that handle simple data entry in addition to serving read-only queries. It’s a feature with a lot of potential but so far I’ve not used it for anything significant.

Currently it can generate a VERY basic form (with single-line input values, similar to this search example) but I hope to expand it in the future to support custom form widgets via plugins for things like dates, map locations or autocomplete against other tables.

Q: For the local version where you had a 1-line push to deploy a new datasette: how do you handle updates? Is there a similar 1-line update to update an existing deployed datasette?

I deploy a brand new installation every time the data changes! This works great for data that only changes a few times a day. If I have a project that changes multiple times an hour I’ll run it as a regular VPS instead rather than use a serverless hosting provider.

Brazil's full DB of Covid tests and patient PII leaked (translation in comment)


Music Production on Guix System


PHP 8 Is Here


Show HN: A React Native template with open source login, user management server


Show HN: Weird JSON superset with BigInt, Infinity, TypedArray etc


Show HN: Find info about the developers who post projects on Show HN


Parse, Don’t Type-Check


PHP 8 Release Announcement


For the first time in European history, registrations for EV's overtook diesel


Ubuntu successfully virtualized on M1


Show HN: Forexbook – Automated trading journal that syncs with Metatrader


GiveCampus (YC S15) Is Hiring remote Sr engineers passionate about education


A hint of new physics in polarized radiation from the early universe


We need a FrontPage that lets common folk retake the internet with creativity


Origin of the trefoil radiation warning sign


Montgomery Brewster's 'None of the Above' would walk this election.

By Jackart ([email protected])

It's actually quite liberating to follow politics without a team to shout for. I remain a Conservative by inclination. I like free markets, economic liberalism and so forth even if the Conservative manifesto doesn't seem to all that much, Tories, if not their leadership, are mainly for these things. I am also a social liberal, I remain committed to an open and tolerant society. However the Liberal Democrats risk becoming the Church of England does Politics, being stuffed with the kind of dry, shabby inadequate who can't quite get over his (self) loathing of homosexuality. I dislike May. I think she's a narrow-minded provincial bigot who's been promoted way, way above her level of competence. She is however the best of the two candidates for Prime Minister. 

Let's not pretend Corbyn was doing other than palling around with the IRA in the 1980s because the glamour of "anti-imperialist" terrorists excited him. He has always supported whoever was fighting the UK at the time, and doesn't deserve to be an MP, let alone to reverse those letters. Labour's clown-car economics is only marginally less risible than the Tories offer, this time round. The difference is Labour actually believe their silliness, and they're led by a traitor. 

If you live in Scotland, this election is about independence. If you live in NI, then this election is about the tribal headcount. If you live elsewhere this election is whether you want an incompetent nanny-state provincial Tory or an antediluvian Socialist to deliver Brexit. It's a shabby, and dispiriting affair. If you can't work out how to vote, you can always vote for Montgomery Brewster. None of the above is appealing. But if you feel you MUST vote, then I have prepared a handy flow-chart to help you.

If you despise politicians, you get despicable politicians.
This shabby parade of also-rans from which we have to choose on today (without any actual choice on the main, nay only, issue of the day) is the logic of calling decent, capable people like Blair, Cameron and Major "war criminals" and "Traitors", for decades. It pollutes the language for when you actually get some of these things on the offer.
No worthwhile people will put up with the scrutiny and abuse heaped daily on politicians. So you get the kind of bore for whom the scrutiny isn't an issue. They've never done anything interesting in the their lives. At least David Cameron dropped some E and went to a rave or two as a youth. What does Theresa May, who spent her twenties complaining about the promotion of lesbianism in schools, know of fun? As for Corbyn, he looks like the kind of man for whom a perfect saturday night is treatise on Marx (so long as it contains nothing he doesn't already know and agree with) with some lovely mineral water. He is the Labour man Orwell warned you about.

I'll be voting Tory. Why? My local headbanging Leadsomite hard-brexiter has stood down after his colossal act of vandalism, to be replaced by a man with whom I seem to agree.
My expectations are of a  Tory majority around 75, on a low turnout, and they will have half a dozen seats in Scotland.  The Liberal Democrats will take Vauxhall and Twickenham, losing in Sheffield Hallam (the "were you up for...?" moment as Clegg loses his seat), but holding Orkney and Shetland against the SNP, remaining about where they are now overall. Or that's where my betting is at the moment.
What do I want to see happen? I'd like to see May remain PM but in a hung parliament, reliant on Northern Irish politicians for her majority because let's face it, she deserves nothing better.
A rubbish show all round but at least I can enjoy it, whoever loses.

Whales are more Important to Climate change than Donald Trump.

By Jackart ([email protected])

Donald Trump has pulled the USA out of the Paris Climate accord. And I don't think this matters all that much. For a start, the USA's emissions are falling. Mostly this is because coal is being replaced by Natural Gas, but also because people are driving less, in smaller vehicles with ever more efficient engines. The motors driving the west's steady fall in carbon emissions are economic and technological, not political.

Next to the steady decline in carbon emissions from the west, is set the Vast increase in emissions in recent decades from Asia. But this represents billions of people using no net carbon energy, tending crops using animal muscle and burning biomass (and occasionally starving to death) Just a few decades ago, to my meeting an indian chap on Holiday in Stockholm with his family and chatting about cricket while we tried to decipher the train times. The rise of the middle class in India and China is a huge flowering of human potential, even if it comes with soluble environmental problems.

Anyway, the level of Co2 in the atmosphere is rising, and this is changing the climate. Reducing emissions is a noble aim, but it must not get in the way of developing economies' economic growth. Fortunately, the solution is already with us. Renewable technology is improving. Cars are getting more efficient, and perhaps moving away from fossil fuel (at least directly). And this process will happen in india and China more quickly than in the west beacaue adopting what will be soon proven and cheap technology will enable them to miss whole generations of poluting technologies.

Which brings us to the great cetaceans. The southern ocean is the world's biggest habitat, with the world's shortest food chain, at the top of which sits the largest animal that has ever existed on earth. Phytoplancton bloom, and are eaten by zooplankton, which are eaten by fish larvae and Krill, which are eaten buy just about everything else. The biggest eaters of Krill are the baleen whales which turn five tons of Krill into Iron-rich shit every day. Sperm whales meanwhile are diving to the abysal deep turning several tons of squid into Iron-rich scat, moving nutrients from the deep to the surface. The limiting nutrient at the bottom of the food-chain is iron, so whale faeces fertilise the ocean, and enable more phytoplanckton to grow which absorb Co2 from  the air, much of which falls to the bottom of the ocean as marine snow, and eventually become rock.

But we killed the whales, and when we stopped doing so, they didn't recover as quickly as we hoped. We didn't just kill the Apex predators, in doing so, humanity reduced the Southern ocean's ecosystem's capacity to create life, and absorb Carbon. The southerm ocean may have settled at a lower equilibrium of Iron circulation. The Atlantic on the other hand, which gets tons of Iron from the african deserts every time the wind blows, has seen whale stocks recover better.

Which is why I want to see more research into Iron seeding the ocean, which may give a leg up to Balaenoptera musculus, as well as possibly solving climate change. Climate change is a problem. But while Trump's petulent gesture doesn't help us solve it, nor does it make the problem any harder. Politicians simply matter less than a whale taking a dump.

Why the Blue Passport Matters.

By Jackart ([email protected])

People have spent the day on Twitter saying "why does the colour of a passport matter"? While the Daily Express is cheering the return of the Blue Passport to the rafters. For most people capable of abstract thought, this is a mystifying detail, the importance of which to their opponents is utterly baffling. Of course, I am a remain "ultra". But I did swim in the same intellectual Milieu as the Brexity-Trumpkins for decades and know many serious Brexiters personally. Having spend decades rationalising the EU-obsessed madness of the Tory right as a harmless eccentricity that they don't really mean, I do have, with hindsight, some understanding what these creatures think.

Why does the passport matter?

For the Tory Brexiter, the underlying issue is Sovereignty. They object violently, strenuously and on principle to ANYTHING that comes "above" the Crown in Parliament. The jurisdiction of the ECJ is for them, an insult to the courts and other institutions of the UK. The idea is offensive that any law-making organisation, especially one that Jacques Delors told the trades unions is basically for stopping the Tories Torying, could be "supreme" over parliament.

Of course the ECJ mainly deals in trade disputes and represents an international court to settle international issues and ensure consistent interpretation of EU law. It isn't "making the law of the land" and nor is it a "supreme" court in a meaningful way as far as the average citizen is concerned because it doesn't deal with those issues. If you're up in front of the Magistrate for punching a rotter, you're not going to be able to appeal all the way to the ECJ. Criminal law stops with the nation. Appeals of bad people going up to the European court of Human Rights on seemingly spurious grounds get funnelled into this narrative (shhh, I know), so the impression is obtained that "Crazy Euro-Judges" are "over-ruling parliament", and demanding prisoners can vote or should be allowed hacksaws to avoid trampling on "Human Rights" or whatever the tabloid outrage du jour may be. This then reinforces the narrative that the EU is "anti-democratic" and "makes all our laws". And once you have this narrative, flawed as it is, it's jolly easy to amass an awful lot of corroborating "evidence" because the Tabloids spent 30 years deliberately feeding it.

Sovereignty vs Influence; there is a trade-off. The UK, broadly, wrote the Financial services legislation for the entire continent. In return, the Continent got access to the only truly global city in Europe. The French did this for farming and got the CAP, while the Germans got the Eurozone's interest rates and got to destroy Southern Europe. The EU which contains (rather like the UK and trade negotiators) no-one who CAN write decent financial services legislation legislation, because most of those people are British. Thanks to Brexit, the quality of the legislation on financial services will go down, both in the UK which will be compelled to have regulatory equivalence to keep banks' access to the single market and the EU. The UK will have become a rule-taker rather than a rule maker. I fail to see how this reclaims "Sovereignty". The organisational source of the legislation will remain unchanged, but we loose any ability to influence, let alone write it. Multiply this catastrophe across an economy and you see why the "sovereignty" argument against EU law is, on any rational basis, stupid.

The parliament, the very existence of which takes on the aspect of a supranational government in waiting, rather than a simple means to have democratic oversight of an organisation which employs fewer people than Manchester city council, distributes about 1% of GDP and writes trade law. This unwarranted grandiosity once again suits both the Brussels apparatchiks, and the simian oiks of UKIP whom the British public sent to Brussels as a mark of the National contempt for the institution. The parliament is, to my mind is a risible little potempkin affair, barely worth considering,

So there's the error. Back to the passport.

The International Civil Aviation Organisation sets the dimensions, so the writing was on the wall for the old British hardback passport, fabulous though it was, it didn't really fit in the back pocket of your trousers.  However once you believe that the EU tentacles are slowly creeping into institutions to turn you into a province of the "EUSSR", then you start to see this everywhere. The EU is foolish to seek the trappings of a national Government before they had built a demos, and absent any desire for it from the people. Symbols matter. The UK doesn't have an ID card. So when Brits talk about nationality they might say "Australian passport-holder" rather than "Australian citizen". I am not sure if any other nationalities use this formulation. The passport is slightly more than a document. No? Try losing one abroad.

The EU resolution on Passports is here. For anyone who thinks the EU "made" the UK have a Maroon passport, here's EU Croatia's. .

The EU suggested the Colour be harmonised and the words "European Union" be put First. At the top. Above the crown, First. Symbolising, perhaps inadvertently that the EU was more important than the nations. And there you have it. And no-one working on it thought to object. Changing the colour of the passport was a key symbolic gesture that irritated many people, and reinforced an utterly false narrative, to no end or benefit to anyone. There is simply no need for European Union passports to be uniformly coloured. It merely satisfies the bureaucrats' desire for order. And it is my belief that it is this symbolic bureaucratic exercise in territory marking by the EU that revealed, and still reveals, a fundamental disconnect between the Brussels Panjandrums, the people of the EU and the British in particular. The Eurocrats want a Federal Europe with the EU as a Government. The Nations, broadly supported by their governments don't, and have resisted any attempt.

The EU hasn't made Britain less "sovereign". All EU law, necessary to trade with as little friction as possible, is of the type that by whom it is written doesn't matter. With trading standards does it really matter WHAT they are, just that they're as universal and consistently applied? I don't need to tell you that it was never illegal to display prices of potatoes in Lbs and Oz, just that you HAD to display the price in KG and g too, in case any Frenchmen walking through the market didn't know how many Lbs are in a KG. I don't care who writes the regulations for the import of Duck eggs, just that it's done.

But there it is. The Brexiters shooting with the accuracy of a semi-trained recruit who's just dropped LSD at every figment of their fevered imagination, egged on by equally deluded fantasists who still think they're creating a Federal United States of Europe. These two groups of lunatics needed each other. And so, the passport, with 'European Union' at the top was barely noticed on the continent, but seemed to some Brits as evidence the EU was after their democracy, their identity and their Freedom. However stupid this belief is, a Blue passport could've been delivered cheaply as a quick Tabloid-Friendly win for Cameron and such was the narrow margin, it would have probably been enough.

Rosencrantz and Guildenstern are Dead.

By Jackart ([email protected])

Wednesday saw my 40th Birthday, and to celebrate I went to see Tom Stoppard's brilliant Rosencrantz and Guildenstern are Dead at the Old Vic with a Chum. While Daniel Radcliffe & Joshua Maguire lead, the show is stolen by a magisterial performance by David Haig as The Player, a sort of luvvie-pimp-cum-impresario who holds the whole play, in its absurdity, together.

The play is Hamlet, seen from the point of view of two minor characters, Rosencrantz and Guildenstern, old friends of Hamlet's. The hapless pair spend the play wondering what they're doing and why, having been recalled to Elsinore by Claudius to find out why Hamlet's being such a dick, moping about and talking gibberish to himself ("to be, or not to be..." etc). They are eventually betrayed by their friend, who suspects them of working for his uncle which they are, sort of.

The play is therefore a meditation on the futility of existence, and the limitations of people's personal agency. Most people get on with their lives, as bit parts in a greater drama, not really sure as to the direction of events, or even of the past. After all, what have Rosencrantz and Guildenstern got to go on, but what can be gleaned from a few words of Shakespeare's, as metaphor for everyone's flawed and self-serving memory. Any interrogator or detective will tell you about the reliability of eye-witnesses and the difficulty of establishing the truth.

From everyone's point of view then, even when we're at the centre of events, most of the action is happening offstage. There will have been some point at which you could have said "no", but you missed it. Then you die.

If you can get tickets, do so.

Minimum Wages, Immigration, Culture and Education.

By Jackart ([email protected])

Net migration to the UK has run at hundreds of thousands a year for decades, of which about a quarter since 2004 has been "A8 countries", Poland, the Baltic states, Czech Republic, Slovakia, Slovenia and Hungary, another quarter from 'Core EU' and the rest from non-EU countries, mainly India, Pakistan and West Africa. 13% of the population of the UK was born overseas, of whom over 2/3rds are non-EU migrants. This is an unprecedented migration to the rich world from the poor, and It's not clear from this EU migration is the underlying problem. The Poles will integrate fast, and leave imprints on the culture like a higher incidence of catholicism, bigos (a stew of meat and Sauerkraut) and some hard-to-spell surnames. They're often better educated than the natives, and work harder.

In general the view I've taken over the years is that minimum wages are a bad thing, arguing that they are mainly paid for by the people who otherwise wouldn't get a job at all. Only a job can lead to a better job, and if people are unemployed for a long time, they often become unemployable. So by this logic, keeping unemployment down should in the long-run be better for the poorest.

But, there is a trade off. When I grew up, late '80s and '90s, I cannot recall seeing cars washed by hand. When my father wasn't exploiting child labour by getting me and my brother to do a rubbish, half-arsed job for which we expected to be paid handsomely, we went to see the "blue Dougals" at the petrol station. The UK as a wealthy country, had substituted Capital for Labour, and cars were washed by big machines at every petrol station. But a team of a dozen hard-working and cheerful eastern Europeans can set up a car-wash, do inside and out for very little capital outlay - a jet washer, and some sponges, so when the EU accession countries citizens moved to seek work, this is what many did. The car wash machines were gradually removed and replaced by people. This is the opposite of progress.

Let's take a step back and look at the big picture.

Europe's wealth, it's vitality, its progress didn't spring from European individual or cultural superiority. It started when half the population was wiped out by Yersinia pestis in the 14th Century. There was a certain amount of luck - the same event increased the power of the landowner in Rice states and in pre-feudal societies farther East, but in Northwestern Europe, this created a shortage of Labour, and the peasants rose up a generation afterwards to demand higher wages from their lords. When this happened in Italy, the energy was put into sculpture of the nude male form, and was called "the Renaissance". When wages rise, it makes sense to build machines rather than employ labour, which has a virtuous feedback loop: skilled people running the machines drive up production, and become richer, which creates an incentive for further innovation. More widespread desire for, and access to education is grease in the wheels of this, the motor of progress that led to the industrial revolution.

The opening up of America, a nation with a perpetual and long-lasting shortage of labour not only added another motor to that European culture of innovation which grew up after the Black Death, but also absorbed the excess labour of Europe. While there is a labour shortage, immigration can be managed, though immigrants in large numbers have nowhere, ever been welcomed by the people they move to. Even when the people are kith and kin, the 'Scots Irish' (in reality, families originally from Northern England and the Scottish Borders) were moved on by the Germans and English who'd already settled the East coast. They ended up in Appalachia.

It's clear, then in the short run and in aggregate, wages aren't "driven down" by migration in a market economy. Part of that, in modern times may be due to the minimum wage, which protects some of the people most vulnerable to substitution, but also the 'lump of Labour fallacy'. Immigrants, especially young workers with families bring demand as well as supply and these things more-or-less balance. They aren't "taking our jobs" but they are changing the nature of jobs available. And the vast supply of excess labour from the subcontinent, africa and the poorer bits of Europe is not exactly an incentive to invest in productivity-enhancing machines, as the car-wash example shows. The mass immigration from the poor world has the potential to stall the western motor of innovation and may contribute to wages not rising as far as they might, especially for the lowest skilled workers.

The UK has a problem with productivity. UK employers have got good at employing the excess Labour of a serious chunk of the world, UK wages have been flat for a decade, and these things are linked. So the Chancellor is hiking the minimum wage in the hope of good headlines, and to incentivise investment to drive productivity. So. What effect will this have on immigration. Will it draw more migrants to the UK hoping for higher wages, like European immigration to the USA, or will it price low-skilled immigration out of the Labour market and allow the motor of progress to continue?

Splits that used to be geographic - some countries were rich, and others poor and the movement between the two was rare, is moving to one where there are still two countries, it's just the divide is social, educational, and cultural. You have a global, liberal, free market culture, which values education and novelty. And you have national, 'c' conservatives who just want their own culture, don't care about education all that much, won't move to find a job, and expect to be looked after who stay put and resent incomers. And the latter are disproportionately annoyed about foreigners moving into "Their" neighbourhoods while it's the former who have more to fear in the short term from highly skilled competition, minimum wages see to that. And if minimum wages rise far enough, low skilled workers will not be able to get jobs and they will stop coming to the UK. The problem is, the lowest skilled people are often native. The cost of a raised minimum wage will be borne by those least able to cope.

If we are to avoid society fracturing permanently into Morlocks and Eloi we do need to manage migration, to keep that motor humming. We cannot let the world come at will. But there was no need to pull up the drawbridge against EU migrants who always looked like collateral damage to me.

It's not all about economic self-interest, nor is it wholly naked in-group preference (what educated, open minded people call "bigotry"). It is the interplay between the two. Ultimately the stagnation of UK wages over the last 10 years isn't due to migration, but the recovery from a balance-sheet recession of 2007-9. It's the feeling of ennui caused by a decade of stagnation which has caused the anti-immigration nonsense, the rather blameless Poles have just become a Piñata and for a population that was persuaded to lash out at the EU when they really wanted to lash out at "the Muslims". The tragedy is all this happened just as we were getting back to normal.

Nicola and Theresa. Phwooar.

By Jackart ([email protected])

The Daily Mail's headline "Legs-it" about Scottish First Minister and British Prime Minister Theresa May's shapely legs was pathetic. But remember, the Mail is written by women, for women, and women judge each other, all the time, harshly and vindictively. Judged especially harshly are women more accomplished or better looking than the average Daily Mail reader.

To call this "sexism" is to miss the point. This isn't about women being held down by sexist male tittle tattle. Clearly, two of the most powerful people in the country haven't been held down in any meaningful way. Any executive head of Government is fair game for any and all criticism. What these women have done is rise above the level at which society normally seeks to protect women from abuse.

Male politicians are made fun of for their appearance and clothing all the time. It's the sea men swim in. Whether it's Donald Trump's expensive, but ill-fitting suits and too-long ties like he's stepped out of a 1980s pop video caricature of a businessman, or Cameron's forehead, or the fact that middle-aged men are always assumed to be repulsive, this abuse is normal.  The ridicule a male politician faces when he's seen in public wearing anything other than a blue suit is extraordinary. From Tony Blair wearing a clean barbour, to William Hague's baseball cap or Cameron's beachwear, there's a reason male politicians dress identically. When women's clothing (far more interesting by the way, than the sober suits of most male politicians) is commented on, it enables a personal brand to be created that much easier. Theresa May's shoes are like Margaret Thatcher's handbag. True, women do have to think harder about their clothing - too much leg, cleavage etc... and you immediately invite scorn (of other women, mainly), but the fact the female wardrobe stands out against the endless blue/grey suits and red or blue ties of the male is as much an opportunity as it is a minefield.

Any comment about May's shoes, for example is part of her deliberately curated brand, and shoe-designers are falling over themselves to get their products onto her feet. This isn't sexist. Women like shoes, and there's no reason why Theresa May shouldn't have fun with them.

Lower down the pecking order there's a taboo against men commenting negatively on a woman's appearance, lest you hurt the poor dear's feelings. Yes male 'locker room' banter will discuss who's attractive, but it's rude to do so in front of women and by and large, gentlemen don't. Women don't typically have these conversations about men in earshot of men either, but describing men as "revolting" or "creepy" is so normal as to be unworthy of comment, and completely unnoticed. May and Sturgeon have risen above this social protection, and are subject to the same rules of engagement as men are. i.e that if we have feelings, tough.

These women are grown-ups doing important jobs. If you think the Mail's light-hearted front page is an insult to them, you're an idiot. Of course Sarah Vine who wrote the thing, knows exactly the response it would get, howls of idiot outrage from the usual suspects on Twitter, and from Sturgeon herself. This allows the paper to swat the complaints aside with contempt. This signals to their readership that the Mail is on their side against the bien-pensant left with their idiotic & totalitarian outrage about human trivialities. May by rising above it, does the same. The Mail is one of the Best-selling papers in the UK, and one of the world's most visited "news" (ish) websites. Who won that exchange?

The po-mo left, obsessed with identity politics, used to being able to bully dissenting opinion down STILL hasn't got the new rules of the game. Someone's pointed out the Emperor's naked, but he's still acting like he's in charge and hasn't noticed the mood's changed. Yet.

Completely unrelated, but thank you to the Anonymous commenter who wrote this. It cheered me up.

On Class, Culture and the New Politics

By Jackart ([email protected])

The two tribes of politics, broadly the Tory and Labour parties divided over the 20th Century principally on the matter of economics. Simplifying: Tories preferred market solutions to state planning, and preferred lower taxes and less generous state spending.
The Labour party, which when it abandoned clause IV, surrendered on the economic question, not coincidentally a few years after the Berlin wall came down.
As a result, the great battles since then have been essentially cultural. Gay rights, racial integration etc. The confusion stems from there being no consensus within the Tory or Labour tribes on these issues. Plenty of Tories are happily socially liberal, many of the Labour tribe are socially conservative, especially when you look at voters rather than representatives.
Which brings us to the tribal division of Britain: class. The middle class: liberal, internationalist, universalists; vs a working class: authoritarian, insular and particular world view. The former is comfortable with diversity and immigration. The latter isn't. The former's kids live a long way from home, and move for work, the latters kids live in the same town and expect the work to come to them. The former don't speak to their neighbours, the latter care what their neighbours do and think. These labels are correlated roughly with, but independent of, economic status. It's possible to be middle class, in a local-authority home living on benefits, and working class, earning seven figures and living in a manor house. (Though it's likely these people's kids will change tribes)
There are elements of these cultures in all major parties in the UK, but the rest of us rarely communicate with people from the other tribe. The people you have round for dinner will most probably be from your tribe. Half the country holds its knife like a pen, yet none have sat round my table. When the two tribes meet, it's awkward. Those difficult bottom-sniffing conversations seeking common ground are easy to conclude when two members of the same tribe meet, and difficult when you meet the other half.
There have always been working class Tories, because much of the working class is as comfortable with the certainties of heirarchy as a shire Tory, and doesn't much care for this freedom and opportunity nonsense, preferring a better boss instead. And it's interesting to watch the Tories dangle the protectionism and insularity the working class has long demanded. Middle class labour fabians and the working class methodists have always sat uncomfortably together. Brexit has shattered that coalition, the labour party has been handed to the idiot socialists and will die, unless somehow moderates can oust corbyn before 2020.
Which brings us to the Tory coalition. The high-Tory have promised the old certainties back to the white working class. Meanwhile, middle-class liberals who make up most of the parliamentary party are distinctly uncomfortable with much of what is being done in Brexit's name, but will stick with the Tories, because they offer the promise of power, and however dreadful Brexit is, Jeremy Corbyn is worse. A new coalition is being forged between the Tory squirearchy, and the Working class based on nationalism, social conservatism and heirarchy, directly taking Labour's core vote. This is why UKIP, a working class movement that thinks it *is* the conservative party, apes the style of a country gent. The working class have always got on well with the Gentry, sharing sociailly conservative values. Both despise the middle class.
Brexit split the country down a line more on class values, split the country and handed it to the socially authoritarian party. Whether this is the new politics, with the Tories moving from being the middle-class party to the working class party, as the Republicans did after the war in the USA, or whether the middle-class will wrest back control over both parties in time waits to be seen.
I suspect unless May softens her tone, and thows some bones to the liberals, her coalition will only survive until there's a credible opposition. A more appropriate division of politics would be a ConservaKIP'ish alliance of WWC and high-tory squires, vs LibLabCon middle-class liberals. Therea May seems to be actively seeking it.
Over the Channel, Emmanuel Macron and Marine Le Pen exemplify this split. The candidates of the parties of left, Socialists; and right, RPR are likely to be eliminated in the first round. Macron is likely to win comfortably. His movement 'En Marche!' was only formed a year ago. There's a lesson for British liberals there.

Tories have profoundly damaged the UK. You Should Join the Tories.

By Jackart ([email protected])

2016 happened because decent people don't join political parties, leaving the business of Government to socially inadequate, physically repellent gits with an axe to grind*. In normal circumstances, this makes politics easier for genuinely impressive people to progress through the flotsam of monomaniacs. To be a Grown-up in the Tory Party 1997-2010 was to be able to consider an issue beyond the EU. For Labour it's all about not dreaming of Strike Action by "the workers". Thus the Liberal Centre consolidated a hold on the country, but became complacent to the poison seeping into parties even as the Smug centrist consensus made everyone fat and rich.
There has been a steady, and persistent hollowing out of the political parties. Labour used to be allied to a Trades Union movement that delivered services - health insurance, education and so forth to its members. The Trades Unions of Pre-War Britain where an overwhelming force for good. Atlee's welfare state nationalised all the good the Trades Unions used to do, and so corrupted both the principle of welfare (now far, far from Beveridge's original vision of low, universal payments like Child benefit, topped up with contributory elements) and the Trades unions which became a mere tub-thumper for more state spending. This left the Labour party with the sole purpose of defending a welfare settlement that is not under threat, and a Trades Union movement whose purpose had been nationalised so simply became resistant to all and any reform which might make the system as is function better; unions a mere vested interest of public-sector workers. This isn't a place where people capable of holding more than one idea at a time feel comfortable, and so the Labour party was colonised by people who think not shaving is a political act.
This malodorous and poorly groomed cancer has destroyed the Labour party. It's over, there's no point being in Labour unless you're a Identity politics obsessed Corbynite who laments the end of the Soviet Union. 
Labour, 2010-Present
The Tories at least had the sense to try to vomit the most toxic of their nutters into a bucket marked UKIP, a bucket the dog is unfortunately returning to. The Conservative party my Grandfather joined (from CPGB, as it happens, Labour even back then were cliquey dick-heads) used to be a forum for the upper middle class (and anyone who aspired to join them) to meet, mate and do business. But the horrible young Tories of the '80s, and the Euro-nutters of the '90s meant that by 1997, the Tories were only really suitable for people who were prepared to discuss "Europe" endlessly in ever-more foaming tones, persuading themselves that the EU is a historic enemy like Napoleon, the Kaisar, Hitler or the USSR. To their credit, the Tory Leadership has long known what to do. All David Cameron ever asked of his party was to "stop banging on about Europe". They couldn't stop picking at the scab, and the result is a catastrophe that has already crashed the Pound, weakened the UK (perhaps fatally) and may yet cause a political crisis in Europe and embolden Putin to start rebuilding the USSR.
Tories, 1997-2010
The more say over policy and leadership given to the membership, the more the membership has dwindled (unless, like Labour, the membership criteria are designed to invite entryism for the purposes of choosing a leader - by people who've been quietly loyal to the Bennite project for decades). Giving members a say in who leads the party is absurd. Who the prime minister is, should be a matter for MPs, and MPs alone. It is they who must give the Prime Minister a majority and internal party democracy risks, well, exactly what has happened to Labour. 
However, that Rubicon has been crossed. Party members now expect a vote on the Leader. The question is what to do about this, and the answer is to choose to be a member of a party at all times, hold your nose if necessary. Do NOT identify with the party, but consider which is best placed to advance your objectives. At the moment, the foul bigots, monomaniacs and morons of UKIP are being re-absorbed from a position where they can do little harm beyond foaming at the mouth and masturbating to Daily Express editorials, to one where they can choose the next prime minister, and Mrs May isn't a healthy specimen. The ex-'KIPpers chance may come to choose their PM sooner than expected.
I'm often asked "How come you're still a Tory?"  
Were the Liberal Democrats stronger, I'd be considering them, but I don't trust them on electoral reform (about which they're as silly as Tories are about Europe). But as the Lib-Dems are so far from power, I don't see the tactical benefit of leaving the Tories in a huff, and I broadly agree with the Tories on everything except Brexit. What I'm worried about is the 'KIPpers who're returning to the fold. Unless you want a foul, divisive and ignorant Brexit headbanger to replace May in 2023 or so (Gove for example), Join the Tories, because thanks to Labour's meltdown, Tories and Tories alone will choose the next PM. All not joining a party does is strengthen those (*we) weirdos who still do. Labour moderates, disgusted by Corbyn should cross the floor to the Tories or Liberal democrats, instead of flouncing off to the V&A and opening the way for UKIPish Brexit-o-twats to fight and win a by-elections under Tory colours. Were Tristram hunt now a Tory, not only we could soften this brexit idiocy but also signal just how broad a church the Tories are. 40% of Tory members voted Remain. The tribe that needs to understand the value of a bit of entryism is the liberal centre, who need to abandon any loyalty to their Parties and go to where the power is. The Liberal Centre is complacent because they have for so long occupied the ground sought by all parties, they've not really had to compromise. 
At the moment the business of Government is, and will be for the foreseeable future, a Tory-only affair. That need not look like Nigel Farage, but it will, if Remainers abandon the Tories entirely.

The End of A 'Belle Époque'. 1991-2016.

By Jackart ([email protected])

The interlocking webs of policy which 'politics' seeks to knit are complicated. Whole books can be written on how two individual policies interact. PhDs in Economics are awarded for small snapshots of the whole cloth. Most people don't have the time to keep abreast of developments or read sufficient history to understand why some policies are bad. Thus, people use heuristics - rules of thumb - to make decisions  about that which they aren't expert. "Is this person trustworthy" is a key issue, and we tend to overweight the opinion of those near us. "He is my brother, and I say he's ok" says a friend, you are more likely to believe a mutual friend, than the opinion of a stranger on the same issue.

In the evolutionary past, such a question was a matter of life and death. People only really had to trust those with whom they shared a close genetic relationship. Since the development of agriculture, we've been steadily widening that circle of trust. The wider you spread that circle of trust, the richer your society will be. Even before it had a name, Free market economics allowed people to become blacksmiths, knowing others have water, food, shelter and so forth covered in return. More specialisation, greater productivity, means greater wealth.

Eventually, this requires trust in people we've not met. Towns' food supplies require that farmers unknown and distant supply the basics of existence. Nowadays, It's unlikely the west could quickly supply all available plenty currently manufactured in China. Nor could China supply quickly the complex components and tools shipped from Japan, Europe and USA. Both China, and "the west" are richer from the exchange. And yet, we still don't trust "globalisation".

Most persistent fallacies in political economics are the result of simple policies that appeal to some base heuristics, but which when applied to the larger and wider society, fail catastrophically. Thus egalitarianism in one form or another pops up every 3 generations or so and succeeds in making everyone equal, but some more equal than others, and even more, dead. Then nationalism comes along, and says it's all [another, arbitrarily defined group of humans with slightly different modes of speech] fault, leading to more waste and piles of corpses. And even when the results aren't catastrophic, we seek out the views of those who agree with us on say, Nationalism to inform our opinion on, say, whether or not people are responsible for climate change.

Which political tribes stumble into being right or wrong on any given issue appears arbitrary, because no-one's asking for the evidence before they decide on the policy. Instead of asking "what's right", we're asking what's popular (amongst the coalition of tribes that voted for me) right now. That an opponent comes out with an identical policy, for different reasons is reason enough to oppose something, forgetting completely prior support for it. After all, whatever [another political tribe] thinks must be wrong, right.

The Labour party opposes ID cards. The Labour party has always opposed ID cards. The Tory party is for the Free market and was never in favour of the Corn Laws. We have always been at war with Eastasia. Perhaps if we could think for ourselves rather than just accepting tribal dogma, we'd get better governance. But none of us have the time. So "Democracy" is merely a means to give temporary permission to one coalition of tribes to push through dogmas over many issues, until either the population notices, or the coalition of tribes breaks up, and the electorate takes a punt on the other tribe's prejudices for a bit, and then gets on with whatever they were doing before.

Society ultimately advances by eliminating prejudices it's acceptable to hold thus widening the circle of trust, and increasing riches. By falling back on ancient heuristics to answer the wrong question ("who's fault?" is the wrong question) 2016 democracy has delivered the worst political outcomes on a broad front, as a result of which, we are poorer, and more likely to start fighting as a result of the collapse in political trust we have seen over this year. The post Cold-War 'Belle Époque', which saw half of humanity, 3 billion people, lifted out of poverty, is over.

Idiots cheer.

Boston Dynamics and The Late Sir Terry Pratchett

By Jackart ([email protected])

Everyone knows how driverless cars will work: they will be like ordinary cars, except you read a book rather than acting as pilot. And so, people's understanding of what a technology can do is clouded by what the old technology it replaces does. Which means people without imagination, Head of IBM Thomas Watson, for example, say things like
"There may be a world market for maybe five computers"
and get it wrong. In 1943, computers were used for cryptography, and that's it. (At least he knew what a "computer" was, which few did back then). Predictions are hard, especially about the future. But it's probably worth noting here that the famous World Wide What? front page of The Sun, was in fact rather a good a spoof, by The Sun.

Boston Dynamics makes robots.


Who needs Robots? Well, like computers or the internet or driverless cars, the technology is coming. And it will change people's behaviour in many, unpredictable ways. For example, mobile phones were conceived as portable analogues for the phone on your desk or in your hall. SMS text messaging was added as an afterthought, but became THE dominant means of communication. Calling someone is now rude, often you text first to see if a call would be convenient. Who (apart from mums) leaves voicemail messages any more? Few predicted that change in our behaviour. The smartphone is now ubiquitous, and is more about accessing the internet than calling friends, but wasn't imagined before the internet, Except by Douglas Adams (and John Brunner of whom I'd not heard until I discussed the issue on Twitter). Driverless cars will be as close to the car, as the car is to a buggy and four. And robots, when they become ubiquitous, will be unlike anything we've considered.

I look at Boston Dynamics Robots, the big dog is conceived as a load carrying mule for soldiers on rough terrain, and I think of The Luggage, Rincewind's inscrutable companion on the discworld. I suspect everyone will one day have a robot the size of a dog to carry daily necessaries, following them round. You could send your luggage to someone else, by smartphone app to pick something up. Your luggage could take your shopping home and collect it from the store for you. Large luggages could be sent on ahead with bags. Small luggages could replace handbags and briefcases. The labour and time saving would be vast, spawning whole new areas of employment, servicing and modifying your faithful electronic companion and providing for the opportunities they create to effectively be in two places at once. Freed from the ownership of motor vehicles by the fact we'll be taking taxis everywhere, our Robot luggage will perhaps become the next status symbol around which society is built, replacing the car.

Like cars, I suspect the battery technology will be the limiting step, and like cars, I suspect the fuel cell will be the answer. Small fuel cells will one day power your smart phone too.

But think about the opportunities for people from smart phone. There are tens of thousands of app designers round the world now, a job that had barely been considered as recently as 2007, when the first iPhone was released, and that is similar to how the jobs which will be taken by the robots, will be replaced. That is why people who fear of a "post-jobs" future were wrong in 1816 and are still wrong 200 years later. The world's only limitless resource is human ingenuity.

Anway. I for one welcome our new robot overlords, and this guy should totally be locked up.


Fidel Castro is Dead. (Some of) his Legacy will Live on

By Jackart ([email protected])

Let's be clear, Castro was a murderous bastard who impoverished his country, and whose views on homosexuality and on the importance of brevity in speeches were nothing short of horrifying. It's true, Cubans do have access to better healthcare than many countries of equivalent GDP per capita, and if I had to choose a Communist hell-hole to live in, it'd probably be Castro's Cuba. But the Cuban healthcare system is not the fantasy of western dewey-eyed left-wingers, and Cubans often are excluded from what excellence there is, as it's one of the few means the country has of generating hard currency earnings. Rich foreigners get the best doctors, and more are exported to other successful "progressive" regimes like Venezuela.

"But he was an anti-imperialist". So why were cuban troops in Africa in support of the USSR, which was by any measure or definition an Empire? Anti-Imperialsim is just the justification leftists give for knee-jerk anti-Americanism. And the flood of people risking death to reach the USA should tell you all you need to know about the relative merits of America's and Cuba's system.

Contrasting the attitudes of the USA to Castro, to their attitude to equally murderous bastards like Pinochet misses the point. The US embargo on Cuba is one of the legacies of the Cold war, kept bubbling by the politics of Florida, home to so many Cuban-Americans. There is no Doubt that the US blocade has impoverished Cubans, and that with the fall in the Berlin wall and the collapse of the USSR, such an embargo was no longer justified. However politics are what they are. Fidel Castro's death provides an opportunity for further thawing in relations.

The USA supported "our son of a bitch" all over the world, turning a blind-eye to horrific human rights abuses, though often (albeit less often than we should) working behind the scenes to try and mitigate the worst behaviour. Thatcher is rarely credited with preventing the execution of Nelson Mandela, but she consistently urged Mandela's release, even as she argued against sanctions and branding the ANC "Terrorists". This is one reason why the cold-war piles of dead of Nasty fascist bastards are usually lower than those of nasty communist bastards. I also think the point made by CS Lewis holds. Right wing dictators rarely pretend to be GOOD, making their appeal more on effectiveness.
"The robber baron's cruelty may sometimes sleep, his cupidity may at some point be satiated; but those who torment us for our own good will torment us without end for they do so with the approval of their own conscience."
And one by one, following the collapse of Communism, the support from the USA and its allies for these disgusting regimes was withdrawn. Apartheid South Africa, much of South and Central America saw right authoritarian regimes fall. Genuine democracies were often created in the rubble. The USA didn't support dictators because the USA is an imperialist power, but because it IS a power, and with that comes responsibility. They judged at the time the alternative, Communism, was worse, and represented a genuine existential threat to the USA and its core allies.

This is why for example the USA and its allies mostly support the Regime in the Kingdom of Saudi Arabia. The Saudi regime is repellent, but given the probable alternatives wouldn't be nice, liberal, democratic-minded progressives, they'd be salafist nutcases who'd have access to billions of dollars of oil revenues and the legitimacy of being the Guardians of the Two Mosques. The House of Saud is all that stands between the West and a plausible salafist caliphate with sufficient legitimacy and money to one day threaten the west. We'd rather do business with nice, stable democracies under the rule of law. But seeing as we cannot do to every country on earth what we did to Germany in the late 40s and 50s, we make the best of the options given.

Castro appeared to be a true beleiver in Socialism, so he refused to recognise his philosophy had failed, and his island limped on, a socialist throwback in the age of globalisation. The current poverty of Cuba is partly America's doing, but mostly due to decisions made by Castro himself, policies which set him and the Cuban people at odds with the regional hegemon, in persuit of an evil idealogy. Fidel Castro was on the wrong side of history, and his people suffered because of his stubborness. Now he's dead, it's Cubans turn to make the most of the positive legacy - Cubans are the best-educated poor people on earth, and the mighty economy of the USA is right on their doorstep. There is going to be a lot of money to be made there, and this time, for the first time, Cubans will share in it.

Hail, Trump! God-Emperor of the Alt.Right

By Jackart ([email protected])

And Let's be honest, he's ghastly and despite brown-nosing by Nigel Farage, he's no friend of the UK's, because he doesn't value anything the UK brings to the table. Rumour has it, he asked Farage to intervene in an offshore windfarm decision affecting his Scottish interests, which suggests he doesn't understand the concept of 'conflicts of interests' when in elected office.

This further suggests Trump will attempt to use the office of President to enrich himself, rather than doing so after leaving office, as is accepted. All this is rather feudal; the office holder as gold-giver, distributing patronage and receiving tribute. He's an entertainer and showman, which hails to an even older tradition of politics: that of Imperial Rome, where emperors used state coffers to enrich themselves and their clients,while keeping the mob quiet with bread and circuses.

Donald J. Trump is psychologically unsuited to office in a mature democracy. He is thin-skinned, autocratic, insecure, ignorant, and completely without any understanding of the levers of power he now wields. Much like (later caricatures of?) Nero, Commodus or Caligula.

Despite (or perhaps because of) this, the adolescent losers of Alt.Right see Trump as a God-Emperor (no, really they do. Video surfaced today of people making Roman Salutes, saying "Hail Trump", and distribute Memes based on Games Workshop's futuristic figure-based tabletop wargame, Warhammer 40,000 where humanity is defended from Chaos by a psychic God Emperor). If Trump is Imperator, then the Secret Service is a Praetorian Guard. And how did the Praetorian serve Commodus, to pick one example?

Trump might, were he capable of reading a book, muse on the fact he's surrounded by armed men sworn to uphold the Constitution of the United States of America, and defend it from Enemies DOMESTIC and foreign. Thankfully, the USA is a mature democracy. Where once armed men acted as kingmaker, courts now do. For the simple reason Ignorance is no defence, and the fact that Trump's loathing of 'Washington' is fully reciprocated, I find it unlikely that Trump will survive his term alive and unimpeached. Unfortunately I cannot find odds on a Trump impeachment before 2020. Perhaps it's a racing certainty.

Sexism and the Loss Aversion Heuristic

By Jackart ([email protected])

Men are physically stronger than women, respond quicker to physical training, and suffer less injury under physical stress. Men are more robust, suffer less morbidity than women in almost all phases of life. Obviously these things exist in a normal distribution, but men's distributions are typically platykurtic - there are more men in the tails of the distribution than women. Thus, even where the means are near identical, such as intelligence, you'd expect to see more male geniuses, and imbeciles among men than women, who're more concentrated around the mean. Feel like taking issue with any of these statements? Then you might as well be a creationist.

Men are more accepting of risk, and will prioritise pay over flexibility. So you'd expect men to make up the majority of soldiers and miners and race car drivers. It also means you'd expect to see more men make up corporate boards, everything being equal. More men are more drawn to the cut and thrust of business, and are more likely to prioritise work over other commitments. Women value stability and flexibility more highly than men. This means women, on average don't choose to make the effort necessary to climb the greasy pole. Women (sensibly, in my view as I have done the same) are more likely to think other things more important.

Thus, the brute fanny-counting of media analysis of sexism and the "gender pay gap" ignores female choices and attributes, thus denigrating both women and men for the choices they make. Women for their part see their contribution to society in caring professions such as medicine (more doctors are now women, as well as nurses) and teaching denigrated because these women aren't seeking to be at the top of BAE systems, or whatever. Likewise men, when they see women are going to hired so they form 50% of the workforce of a mining company feel devalued for their skills and attributes because the only way BHP Billiton could make 50% of its employees women is by discriminating against the larger number of men who will apply to drive a bloody great truck miles from nowhere in a bloody great hole in the ground in the middle of a bloody great desert surrounded by nothingness, and live in towns whose bars serve tinnies through wire grilles, and where kicking each others' heads in represents the primary saturday night entertainment.

But worse, by forcing women into traditionally working class men's jobs, you further alienate and disorientate a bit of society which already feels put upon, neglected, belittled and scorned. This is why they voted for Brexit in the UK, and in the USA, will vote for Trump. Working class men are lashing out, because their raison d'etre, to provide for their offspring, has been nationalised, and no other opportunity for them has been provided and they as individuals have too often been thrown on the scrap heap, derided as workshy deadbeats. The working class used to have pride in providing for their family and often doing dangerous, dirty jobs to do so. Opportunity isn't "equal access to university", for which working class men is a middle-class rite of passage, but decent jobs that will allow them to support their family, but which is blocked by the petty credentialism that values paper qualifications over experience and dumb diligence over inspiration.

That loss of pride is agonising. And people mourn loss far more than they celebrate gain. The aim of this post-modern obsession with equality of outcome therefore might as well be to make men despise themselves and women feel inadequate for the inclinations their biology and society has fitted them. Men become 2nd rate women, and women become 2nd rate men. By all means allow everyone to seek their own path, but to imagine men and women will sort 50/50 everywhere is totalitarian in its foolishness and cruelty.

The EU Deserves what's coming.

By Jackart ([email protected])

One of the main reasons to oppose brexit is that the UK doesn't benefit from being "out" should the EU collapse. A disorderly break-up of the EU would damage the UK, independently of our status in or out. (any comment saying "it's better to bail early" will be deleted as a failure of comprehension read the post, please, it's that argument I'm dealing with). Indeed preventing a disorderly collapse should be the UK's priority. And when we were in, a disorderly collapse was unlikely. The UK kept the lid on Brussels insanity. Not only has Brexit given free rein to some of the very worst people in the UK, it also removes a brake on the insane Federasts  of Brussels.

Far from Remainers "talking the UK down", Brexiters have been doing so for decades - talking down the UK's influence in the EU to the extent we're actually thinking of walking out of the UK's proudest creation: the single market. It is now a shibboleth that the UK has "no influence in the EU", whereas the UK drove the single market, kept half the continent out of the poisonous grip of the Euro and pioneered enlargement to the east following the end of the cold war. The UK drove Russian sanctions to this day. The UK was one of the Big three and on many issues, more influential than France. The UK largely writes EU financial regulation for example (as is meet and proper).

But the EU over-reached. Voters, especially in the UK resented the EU's usurpation of the trappings of National sovereignty far more than the reality of "the laws made in Brussels" which was really just code for an underlying vision they (and I) don't like. And what is true of the UK is true of France and the Netherlands and everywhere else. Remainers like to mock the Be.Leaver's joy over the anticipated return of the blue passport. I however have long resented the words "European Union" above (ABOVE!) the crown on the front. It's like the bureaucrats are trying to rub the British People's nose in it. It's a symbol of something burning in the EU's core, which the average voter neither desires, nor trusts.

The ridiculous and unnecessary potemkin parliament with its farcical shuttle from Brussels to Strasbourg focusses the voters minds on the EU, without giving them any outlet to do anything about it. The EU looms much larger than it ought as a result of the charade of Euro elections. Democracy without a demos is pointless - what commonality do Socialist members from spain and the UK have?:

The EU was flawed, Thanks to the UK some of its worst excesses - the Euro for example were limited to countries that really wanted it. And now without a powerful country holding the reins and steering away from "ever closer union" the Brake that was put on at Maastrict and beyond will be removed. The EU will integrate itself to death, there will be chaos when the voters of Europe can take the tin-eared arrogance of Brussels no more. There was no need for all those millions of lives to be attenuated during that process. While leave voters will say "I told you so", a better analogy would be jumping out of a moving car suffering broken bones and extensive skin abrasions, but saying "it would have been worse" because the lunatic who grabbed the wheel when you bailed steered it directly into a tree.

Spending 1% of GDP to write trade and some business law could much more easily be done intragovernmentally, with a humble and small central bureaucracy. There is no need for "Presidents" and parliaments which lead to grandiose visions; visions which slam painfully, like the Euro, into the unyielding wall of reality. Unobtrusively aligning business regulation and deepening economic integration is necessary. A parliament, a flag, an anthem and a head of "state" are not. The EU has paid the price for this arrogant and pompous grandiosity.

Both the EU and UK are and will be significantly worse off as a result of Brexit. And now, just as Brexit is a bad idea that will be tested, so too will European integration. Both Brussels panjandrums and the brexiters fed off each others' fantasies. Both needed to believe integration was happening, even if it wasn't. Ultimately, the costs will become apparent to the UK pretty rapidly. The EU will suffer much more slowly. It's almost like co-operation is a non-zero-sum game, or something.

On Populism: What do we do? vs Who do we blame?

By Jackart ([email protected])

If you ask the wrong question, the answers will not work.

"Populism" is, like pornography, hard to define, but you know it when you see it. Wikipedia defines it thus
"a political ideology that holds that virtuous citizens are mistreated by a small circle of elites, who can be overthrown if the people recognize the danger and work together. Populism depicts elites as trampling on the rights, values, and voice of the legitimate people"
It's clear Farage's lauding of a victory for "mediocre ordinary, decent scum people" he was speaking in this vein. But I don't think this captures the essence of populism. Mainstream politicians "Managerialists" in the Populists' vernacular ask "how do we solve this problem". You can be a capitalist, or a socialist, believing in different answers, but at least you agree on the question. Populists aren't asking this question, but instead "who do we blame?". The answer given by Momentum and UKIP may differ: Bosses vs Immigrants, Capitalists vs the EU but the question is the same.

There's also the populists view that MPs rather than being representatives paid to exercise judgement, are delegates paid to vote on someone else's behalf. In this, Paul Mason and Douglas Carswell are in agreement. But this is simply mob rule and behind it is a fear that legislators may Go Native, if they're allowed thanks to the corrosive influence of "[insert boogeyman]" in their long-running campaign to keep the "real" people down. But perhaps legislators know best; they have exposure and access to what passes for facts in this field, and are paid to study it, maybe there's something in the idea of representative democracy after all.

It's always easier to imagine you're the victim of an elite conspiracy, subject to "discrimination" on the grounds of class or race, or at risk from being "flooded" by immigrants, than it is to answer the question "what to I do?". Whether you're running your own life, or that of a nation, what to do is hard, and one of the stresses of modern life is the extent to which people are free, which means they have to make choices. No longer can you just follow dad into the Factory. Because many suffer from crippling loss aversion, these choices are scary, which is why stupid people yearn to be led. They look for leaders who offer answers which fit their prior prejudices and make sense of a complicated world. Corbyn and Farage have made careers finding and stroking a tribe's prejudices, soothing their people's indignation against a world they feel is against them.

The reason populism is so toxic to political discourse is that in apportioning blame, they create a slipway for the launching of vastly damaging ideas. "It's all the EU's fault" leads to Brexit*. "It's all the Fat Cats' fault" and you have a country that looks like Venezuela. If you start blaming immigrants or minorities, well we saw where that went in the last century. It's also why the Brexiteers ran from office at the moment of victory. Delivery isn't in the populists' skillset. The permanent masturbatory pleasures of opposition are what they crave, always losing so they can keep telling their people the game's rigged against them. If they win, then all those inadequate people will have to start making choices and they feel completely lost again. Much easier to simmer in resentment against an immovable object which allows you to blame it, rather than yourself for your failings.

*This isn't a place for a debate on the merits or otherwise of Brexit. Any comments on that subject will be deleted.

One of the reasons for the Populist's success (please note the "one of" at the start of this sentence) is Russia on the internet. The internet allows people to form much denser ideological defences against reality. And into the internet, there is a wounded superpower, pouring poison, poison which people use as ammunition in the defence of their ideological redoubt. Putin's toxic little propaganda swamps like RT and Sputnik are manufacturing and promoting stories which appeal to the populist mindset. Notice how Racists will share RT stories about Immigrants raping white women while members of the Green party will share horror stories about fracking from the same source. Some of these stories will be true. But many are manufactured, exaggerated and twisted specifically to support any party or idea that causes problems to the democratic governments of the west. This is not a random process. It is directed and controlled by the intelligence agency which has captured Russia. Maskirovka raised to a governing principle.

One of the reasons for the UK's relative success as a nation is that up until now, we have been mostly immune from the allure of the populist demagogue. We simply don't have it in us to put too much belief in one man, whether as protagonist or antagonist. Let's hope Brexit is a flash in the pan, and not part of a widespread descent of mature democracies into populist demagoguery. We'll know in 12 months whether democracy can survive or whether, thanks to Trump, Farage and Le Pen, we're going back to pogroms and a summer "campaigning season".

Please let's stop listening to Putin' useful idiots pedalling fallacious simplicity, and start listening to fallible and all-too-human experts again. At least the experts are asking the right question.

Zero-day Security Updates for Managed WordPress

By bcc

Installing updates is an important part of keeping your computer secure. This is also true when running a website based around popular publishing tools such as WordPress, which have vast communities of plugin and theme developers of varying experience. Plugins often contain security vulnerabilities that can lead to a compromised site and it can be […]

My list of magic numbers for your turkey day enjoyment

Hello, world! A couple of days ago, I noticed someone remarking on a line from an older post of mine that had been making the rounds. In it, I say something about adding a number to "my list of magic numbers". That person wanted to see that list.

It turns out that I've never written this down in any one coherent list... until now. I know that Thanksgiving here in the US usually brings a dull and dreary day online, in which nobody's posted anything interesting, and you just have to look at cat pictures until everyone gets over their turkey comas on Thursday and shopping burnout on Friday. This year will be even stranger since we're all trying to not get each other sick and might be doing it in isolation.

And so, I have put together this list of everything I can think of at the moment, along with a whole bunch of commentary that should be able to send you on dozens of romps through Wikipedia. Hopefully this will both satisfy the request for "the list" and provide a lot of amusement on a day which normally is lacking in content.

I might edit this page a bunch of times to add more items or links, so if it keeps popping up as "updated" in your feed reader, that's why.

Be safe out there, and enjoy.


"HTTP" is 0x48545450 (1213486160) or 0x50545448 (1347703880). If it shows up in your error logs, you're probably calling out to a poor web server instead of someone who actually speaks its binary protocol. See also: malloc("HTTP").

"GET " is 0x47455420 (1195725856) or 0x20544547 (542393671). This might show up in your server's logs if someone points a HTTP client at it - web browser, curl, that kind of thing.

"SSH-" is 0x5353482d (1397966893) or 0x2d485353 (759714643). If this shows up in your error logs, you're probably calling out to some poor SSH daemon instead of someone speaking your binary language.

1048576 is 2^20. It's a megabyte if you're talking about memory.

86400 is the number of seconds in a UTC day, assuming you aren't dealing with a leap second.

86401 would be the number when you *are* dealing with a (positive) leap second.

86399 is actually possible, if the planet speeds up and we need to *skip* a second - the still-mythical "negative leap second".

82800 (23 hours) is what happens in the spring in time zones which skip from 1:59:59 to 3:00:00 in the early morning: you lose an hour. Any scheduled jobs using this time scale in that hour... never run!

90000 (25 hours) is what you get in the fall in time zones which "fall back" from 1:59:59 summer time to 1:00:00 standard time and repeat the hour. Any scheduled jobs using this time scale in that hour... probably run twice! Hope they're idempotent, and the last one finished already! See also: Windows 95 doing it over and over and over.

10080 is the number of minutes in a regular week. You run into this one a lot if you write a scheduler program with minute-level granularity.

10140 is what happens when you have the spring DST transition.

10020 is then what you get in the winter again.

40 is the number of milliseconds of latency you might find that you can't eliminate in your network if you don't use TCP_NODELAY. See also: Nagle.

18 is the number of seconds that GPS and UTC are currently spread apart, because that's how many leap seconds have happened since GPS started. UTC includes them while GPS does not (but it does supply a correction factor). See also: bad times with certain appliances.

168 is one week in hours. Certain devices that do self-tests operate on this kind of timeframe.

336 is two weeks in hours and is another common value.

2000 is how many hours you work in a year if you work 40 hours a week for 50 weeks and the other two are handled as "vacation". This is why you can approximate a full-time yearly wage from an hourly wage by multiplying by 2: $20/hr -> $40K/year.

08 00 is the hex representation of what you get in an Ethernet packet for IPv4 traffic right after the destination and source hardware addresses. See also: EtherType.

45 00 is what comes after that, assuming a relatively boring IPv4 packet.

08 06 is what shows up in an Ethernet packet after the destination and source hardware addresses when some host is trying to do ARP for another host. You'll probably see it right before the aforementioned "08 00 45 00" when two hosts haven't talked to each other recently on the same network.

86 DD is what you'll get for IPv6, and you should see more of that in your future. Also, you won't see ARP.

2130706433 may be interpreted as by some programs, and you can even ping it on some systems depending on how they handle network addresses for various fun and arcane historical reasons. If it works on your machine, others should, too. See also: ping and inet_aton and the first part.

33434 is the first UDP port used by the traditional (i.e., Van Jacobson style) traceroute implementation. See also: 32768 + 666.

49152 is $C000, or a block of open memory on a Commodore 64 frequently used for non-BASIC funtimes. SYS 49152 is how you jump there.

64738 is the reset vector on those same Commodore 64 machines.

64802 is the reset vector for people claiming to be even more OG than the C-64 crowd - it's from the VIC-20.

828 was the beginning of the cassette buffer on a Commodore 64, and was a place you could store a few bytes if you could be sure nobody would be using the cassette storage system while your program was running.

9090909090 might be a string of NOPs if you are looking at x86 assembly code. Someone might have rubbed out some sequence they didn't like. See also: bypassing copy protection for "software piracy".

31337 might mean you are elite, or if you like, eleet.

f0 0f c7 c8 is a sequence made famous in 1997 when people discovered they could lock up Intel machines while running as an unprivileged user on an unpatched system. See also: the Pentium f00f bug.

-1 is what you get back from fork() when it fails. Normally, it returns a pid_t which is positive if you're the parent, or zero if you're the child.

-1, when handed to kill() on Linux, means "target every process but myself and init". Therefore, when you take the return value from fork(), fail to check for an error, and later hand that value to kill(), you might just kill everything else on the machine. See also: fork() can fail - this is important.

15750 Hz is the high-pitched whine you'd get from some old analog NTSC televisions. See also: colorburst.

10.7 MHz is an intermediate frequency commonly used in FM radios. If you have two radios and at least one has an analog dial, try tuning one to a lower frequency and another to 10.7 above that (so 94.3 and 105.0 - hence the need for analog tuning). You may find that one of them squashes the signal from the other at a decent distance, even. See also: superheterodyne conversion.

455 kHz is the same idea but for AM receivers.

64000 is the signaling rate of a DS0 channel. You get it by having 8000 samples per second which are 8 bits each.

4000 Hz is the absolute max theoretical frequency of a sound you could convey during a phone call going across one of those circuits. In practice, it rolls off significantly a few hundred Hz before that point. See also: Nyquist.

1536000 therefore is the rate of a whole T1/DS1, since it's 24 DS0s. This is where we get the idea of a T1 being 1.5 Mbps.

/16 in the land of IPv4 is 2^16, or 65536 addresses. In the old days, we'd call this a "class B".

/17 in IPv4 is half of that /16, so 32768.

/15 in IPv4 would be double the /16, so 131072.

/64 is a typical IPv6 customer allocation. Some ISPs go even bigger. Just a /64 gives the customer 2^64 addresses, or four billion whole IPv4 Internets worth of space to work with. See also: IPv6 is no longer magic.

1023 is the highest file descriptor number you can monitor with select() on a Unix machine where FD_SETSIZE defaults to 1024. Any file descriptor past that point, when used with select(), will fail to be noticed *at best*, will cause a segmentation fault when you try to flip a bit in memory you don't own in the middle case, and will silently corrupt other data in the worst case. See also: poll, epoll, and friends, and broken web mailers.

493 is what you see if someone takes a common file mode from a Unix box of 0755 (-rwxr-xr-x) and renders it as decimal. The 0755 notation you'd typically see for that sort of thing is octal. See also: bad times with unit tests.

420 is likewise the decimal for 0644, the equivalent sort of mode (user gets to read and write, everyone else can't write) when it's not executable.

497 is the approximate number of days a counter will last if it is 32 bits, unsigned, starts from zero, and ticks at 100 Hz. See also: old Linux kernels and their 'uptime' display wrapping around to 0.

(2^32) - (100 * 60 * 60 * 24 * 497)
(2^32) - (100 * 60 * 60 * 24 * 498)

49.7 is the approximate number of days that same counter will last if it instead ticks at 1000 Hz. See also: Windows 95 crashing every month and a half (if you could keep it up that long).

(2^32) - (1000 * 60 * 60 * 24 * 49)
(2^32) - (1000 * 60 * 60 * 24 * 50)

208 is the approximate number of days a counter will last if it is 64 bits, unsigned, starts from zero, ticks every nanosecond, and is scaled by a factor of 2^10. See also: Linux boxes having issues after that many days of CPU (TSC) uptime (not necessarily kernel uptime, think kexec).

(2^64) - (1000000000 * 60 * 60 * 24 * 208 * 1024)
(2^64) - (1000000000 * 60 * 60 * 24 * 209 * 1024)

248 is the approximate number of days a counter will last if it is 32 bits, signed, starts from zero, and ticks at 100 Hz. See also: the 787 GCUs that have to be power-cycled at least that often lest they reboot in flight.

(2^31) - (100 * 60 * 60 * 24 * 248)
(2^31) - (100 * 60 * 60 * 24 * 249)

128 is 2^7, and you'll approach this (but never hit it) when you fill up a tiny unsigned counter on an old system. See also: our cherished 8 bit machines of the 80s, the number of lives you could get in Super Mario Bros, and countless other places of similar vintage.

256 is 2^8, in the event that same counter was unsigned.

32768 is 2^15, and if you used a default 16 bit signed value in your SQL database schema (perhaps as "int"), this is the first number you can't jam into that field. See also: a certain company's "employee ID" column in a database that broke stuff for me as a new employee once upon a time.

65536 is 2^16, in the event that same counter was signed instead.

16777... is the first five digits of 2^24, a number you might see when talking about colors if you have 3 channels (R, G, B) and 8 bits per channel. See also: "16.7 million colors" in marketing stuff from back in the day.

2147... is the first four digits of 2^31, a number you will probably see right around the time you wrap a 32 bit signed counter (or run out of room). See also: Unix filesystems without large file support.

4294... is the first four digits of 2^32, and you'll see that one right around the time you wrap a 32 bit unsigned counter (or run out of room).

9223... is the first four digits of 2^63... 64 bit signed counter...

1844... 2^64... 64 bit unsigned counter...

"1969", "December 31, 1969", "1969-12-31" or similar, optionally with a time in the afternoon, is what you see if you live in a time zone with a negative offset of UTC and someone decodes a missing (Unix) time as 0. See also: zero is not null.

"1970", "January 1, 1970", "1970-01-01" or similar, optionally with a time in the morning... is what you get with a positive offset of UTC in the same situation. Zero is not null, null is not zero!

A spot in the middle of the ocean that shows up on a map and, once zoomed WAY out, shows Africa to the north and east of it is 0 degrees north, 0 degrees west, and it's what happens when someone treats zero as null or vice-versa in a mapping/location system. See also: Null Island.

5 PM on the west coast of US/Canada in the summertime is equivalent to midnight UTC. If things suddenly break at that point, there's probably something that kicked off using midnight UTC as the reference point. The rest of the year (like right now, in November), it's 4 PM.

2022 is when 3G service will disappear in the US for at least one cellular provider and millions of cars will no longer be able to automatically phone home when they are wrecked, stolen, or lost. A bunch of home security systems with cellular connectivity will also lose that connectivity (some as backup, some as primary) at that time. Auto and home insurance rates will go up for some of those people once things are no longer being monitored. Other "IoT" products with that flavor of baked-in cellular connectivity which have not been upgraded by then will mysteriously fall offline, too - parking meters, random telemetry loggers, you name it.

February 2036 is when the NTP era will roll over, a good two years before the Unix clock apocalypse for whoever still hasn't gotten a 64 bit time_t by then. At that point, some broken systems will go back to 1900. That'll be fun. Everyone will probably be watching for the next one and will totally miss this one. See also: ntpd and the year 2153.

January 19, 2038 UTC (or January 18, 2038 in some local timezones like those of the US/Canada) is the last day of the old-style 32 bit signed time_t "Unix time" epoch. It's what you get when you count every non-leap second since 1970. It's also probably when I will be called out of retirement for yet another Y2K style hair on fire "fix it fix it fix it" consulting situation.

1024 is how many weeks you get from the original GPS (Navstar, if you like) week number before it rolls over. It's happened twice already, and stuff broke each time, even though the most recent one was in 2019. The next one will be... in November 2038. Yes, that's another 2038 rollover event. Clearly, the years toward the end of the next decade should be rather lucrative for time nuts with debugging skills! See also: certain LTE chipsets and their offset calculations.

52874 is the current year if someone takes a numeric date that's actually using milliseconds as the unit and treats it like it's seconds, like a time_t. This changes quickly, so it won't be that for much longer, and by the time you read this, it'll be even higher. See also: Android taking me to the year 42479.

$ date -d @$(date +%s)000
Sun Mar 25 21:50:00 PDT 52874

Any of these numbers might have an "evil twin" when viewed incorrectly, like assuming it's signed when it's actually signed, so you might see it as a "very negative" number instead of a VERY BIG number. Example: -128 instead of 128, -127 instead of 129, -126 instead of 130, and so on up to -1 instead of 255. I didn't do all of them here because it's just too much stuff. See also: two's complement representation, "signed" vs. "unsigned" (everywhere - SQL schemas, programming languages, IDLs, you name it), and *printf format strings, and epic failure by underflow.

These numbers ALSO have another "evil twin" in that they might be represented in different byte orders depending on what kind of machine you're on. Are you on an Intel machine? That's one way. Are you looking at a network byte dump? That's another. Did you just get a new ARM-based Macbook and now the numbers are all backwards in your raw structs? Well, there you go. I listed them for the HTTP/GET /SSH- entries up front because I know someone will search for them and hit them some day. The rest, well, you can do yourself. See also: htons(), htonl(), ntohs(), ntohl(), swab() and a bunch more depending on what system you're on.

IoT Unravelled Part 4: Making it All Work for Humans

By Troy Hunt

Presently sponsored by: 1Password is a secure password manager and digital wallet that keeps you safe online

The first few parts of this series have all been somewhat technical in nature; part 1 was how much of a mess the IoT ecosystem is and how Home Assistant aims to unify it all, part 2 got into the networking layer with both Wi-Fi and Zigbee and in part

Christmas & New Year 2020 Porting Desk

By Grahame Davies

By Bruce Clark Just like last year, Simwood’s porting desk will remain open and operational throughout the festive period, with the exception of the bank holidays of course. However, as many providers are not operational through our Business As Usual times, and some are imposing “Data Freezes”, there will be periods when we will be […]

IoT Unravelled Part 3: Security

By Troy Hunt

Presently sponsored by: 1Password is a secure password manager and digital wallet that keeps you safe online

In part 1 of this series, I posited that the IoT landscape is an absolute mess but Home Assistant (HA) does an admirable job of tying it all together. In part 2, I covered IP addresses and the importance of a decent network to run all this stuff on, followed


"Do you feel like the answer depends on whether you're currently in the hole, versus when you refer to the events later after you get out? Assuming you get out."

IoT Unravelled Part 2: IP Addresses, Network, Zigbee, Custom Firmware and Soldering

By Troy Hunt

Presently sponsored by: 1Password is a secure password manager and digital wallet that keeps you safe online

In part 1, I deliberately kept everything really high level because frankly, I didn't want to scare people off. I'm not ashamed to say that the process of getting even the basics working absolutely did my head in as I waded through a sea of unfamiliar technologies, protocols and acronyms.

IoT Unravelled Part 1: It's a Mess... But Then There's Home Assistant

By Troy Hunt

Presently sponsored by: 1Password is a secure password manager and digital wallet that keeps you safe online

With the benefit of hindsight, this was a naïve question:


Week 1

By [email protected] (RevK)

It is a week since our offer was accepted...

When making my breakfast I consider the critical path. I put water in the coffee machine and turn it on, even before putting ground coffee in, as the coffee heating and filtering is the longest path in the whole process. I do things in an order that is efficient, where I can, especially if it is something I do a lot.

Now, my understand is that the searches are the time critical aspect here, so one has to wonder why wait a whole week before considering starting them.

Oh well. Let's see how this week goes.


I'll never install a smart home smoke detector. It's not that I don't trust the software--it's that all software eventually becomes email, and I know how I am with email.

Introducing another free CA as an alternative to Let's Encrypt

By Scott Helme

Let's Encrypt is an amazing organisation doing an amazing thing by providing certificates at scale, for free. The problem though was that they were the only such organisation for a long time, but I'm glad to say that the ecosystem is changing.


It's always a good idea to have another

Weekly Update 218

By Troy Hunt

Presently sponsored by: 1Password is a secure password manager and digital wallet that keeps you safe online

This week, I've finally got a workable mobile setup with sufficient quality audio and video. As I explain in the video, this is ultimately achieved by the Sigma lens feeding into the Sony DSLR then via micro HDMI to the Elgato Cam Link 4K into my laptop via USB which

Viral Quiz Identity Theft

[scrolling through a giant spreadsheet of transcribed data] 'Wow, a surprising number of users grew up at 420 69th St.' 'Yeah, must be a high-rise or something.'

Moving house

By [email protected] (RevK)

I have lived in Bracknell over half my life (so far), so moving house is a bit of a distant memory.

But I believe some people were confused by my previous blog, so worth just clarifying:-

I can do this partly due to things like mortgage reserve accounts (if you have one, keep it, do not let the bank try and sneak it away as they tried with me, and with friends of mine). Also I am pretty sure that if you are buying a house in Wales you are officially allowed to just put it on your Amex card (basically downsizing in price by a good chunk). You'd think this would help.

I am amazed at the time scales, really. There are "searches". OK, but have you seen how fast google can do a search. This is not the 18th century!

Whilst joking about my Amex card (no, I don't have a limit this high), if you have the money ready and sat in an account why does it have to even take "all day" to buy a house. If it was a mandatory two week cooling off period, I could understand, but it sounds like it is just bad management of the process at every level somehow.

So yes, expect more exasperated blogs on the matter.

Also, how is it that technology knows? I have some ES8000 locks - very nice - very reliable. Both of them started playing up and one has given up the ghost, the very day I get confirmation we are moving and that their days are numbered. This is too fluky for reason. Was fun taking one apart though.

Inside the Cit0Day Breach Collection

By Troy Hunt

Presently sponsored by: 1Password is a secure password manager and digital wallet that keeps you safe online

It's increasingly hard to know what to do with data like that from Cit0Day. If that's an unfamiliar name to you, start with Catalin Cimpanu's story on the demise of the service followed by the subsequent leaking of the data. The hard bit for me is figuring out whether it's

Aviation Weather Map

Sure, you could look outside for the current weather, but isn't it a lot more fun to build a live-updating map instead?

E-Paper Weather Display

What happens when you combine two-colour e-paper with bad Python? Weather! Well, weather displays.

The RFID Checklist

What do you do when you want to massively over-engineer a solution to forgetting your phone charger?

The Long Drive

Over a thousand miles over some of the loneliest areas of the USA. What's not to love?

Travel Equipment: 2019 Edition

Taking a look at some of the key travelling equipment I've grown to like in the last year of travel.

ASGI 3.0

Upgrading the ASGI spec to simplify it, while keeping backwards compatibility.

A Django Async Roadmap

Taking a look at what it would take to make Django async-native, what it enables, and if we should even do it at all.

Python & Async Simplified

Event loops, coroutines and awaits, oh my!

Channels 2.0

Finally, the promised land is here and Channels 2.0 is released. But how much has changed? And why?

The Sheets Of San Francisco

Finally, my 3D city maps return, and this time they're mapping the streets and hills of San Francisco.