Shared posts

30 Mar 17:06

Learning to fly

by russell davies

Looking back I've always been pretty bad at going to gigs and going out dancing. Or, rather, I was OK at it until some point in my twenties.

Fondly remembered gigs as a teenager: Genesis and Tangerine Dream (twice?) at the Assembly Rooms, Prefab Sprout and The Daintees at The Blue Note.

Fondly remembered gigs while at college: Trouble Funk at the Town and Country, The Membranes, The Mekons and Bogshed at Stow Hill Labour Club, Newport. (This one?)

After that. Not much. Similarly I've been bad at going out dancing. 

Fondly remembered dancing as a teenager: 6th form disco. Co-op Function Rooms & the Blue Note, Derby.

Fondly remembered dancing while at college: the Tufty Club, various parties.

Since then it seems to have dried up. Some combination of work, hating smoke, always being the only person not drinking, being in a band, not liking crowds, really loving being at home has gotten me out of the 'going out to music' habit.

I have determined of late to change that. Because I really like live music. I really like dancing. And yet, as discussed, I never do either of them.

Partly because I don't drink. And sitting on my own sipping a Diet Coke seems more something than nursing a beer or a whisky. The latter would make me feel like a stranger on the edge of town, the former makes me feel like a Dad dropping someone off.

Partly because I have no one to go with. Anne's not really interested in much of the music I might like. She is occasionally kind enough to humour me with pleasant jazz if it involves sitting down but that's about it. My current solution to this is to buy two tickets to things I fancy and then flail randomly amongst my friends trying to entice them to come. So far it's not really working. People have lives.

But 2023 is the year I'm determined to get better at this. If you fancy a gig let me know.

 

 

 

 

 

 

30 Mar 16:46

Protocols, APIs, and conventions

by Jon Udell

The Fediverse is wired together by protocols like ActivityPub and WebFinger which, as yet, I know very little about. That’s because the Steampipe plugin, which supports the dashboards I’ve been building and describing in this series, doesn’t require me to understand or use those protocols.

It does, however, require me to understand and use the Mastodon API. Mostly I use that API by way of the Go SDK for Mastodon (thanks, mattn!), sometimes I make REST calls directly. Either way, my read-only dashboards use a fairly small subset of the Mastodon API. The full API is quite broad and deep; it enables API clients to read from and write to Mastodon servers in all sorts of ways. Here are the chapters of the Mastodon API book: apps, accounts, admin, instance, search, statuses, timelines, notifications, oembed. These chapters define what’s common to all Mastodon clients, including web apps, phone apps, native OS apps, and Steampipe dashboards.

So far I’ve ignored protocol-enabled interop in order to focus on API-enabled interop. I’m aware that the Fediverse includes much more than just Mastodon. I intend to explore BookWrym, Friendica, Funkwhale, Lemmy, takahe, PeerTube, Pixelfed, PeerTube, and others in due time. But right now the Mastodon ecosystem is plenty to try to wrap my head around.

For example, there’s a new web client for Mastodon: elk.zone. With the recent addition of support for lists, it has become my favorite way to interact in Mastodon space. So naturally I wanted to be able to click through from Steampipe dashboards to Elk, and use it as an alternative to the batteries-included Mastodon web app.

It turned out to be easy to enable that integration. Not thanks to ActivityPub, and not even thanks to the API. It works thanks to a third level of interop at play: common patterns for account URLs and toot URLs.

Here’s the account URL for Ward Cunningham who hangs his shingle at mastodon.radio: https://mastodon.radio/@k9ox. But as we saw in instance-qualified Mastodon URLs, if you visit that URL directly — and if it’s not your home server — you can’t follow Ward there, or add him to a list. You’ll need to copy that URL, paste it into your home server’s search box, run the search, and arrive at an instance-qualified URL where you can follow him or add him to a list: https://mastodon.social/@k9ox. If you’re home is fosstodon.org this would instead be https://fosstodon.org/@k9ox.

Similarly here is one of Ward’s toots at mastodon.radio: https://mastodon.radio/@k9ox/109802968820955379. If you want to reply or boost or favorite, you can’t do it there. The URL you need is again one that routes through your home server: https://mastodon.social/@k9ox/109802969999396562. Note that the ids for the same toot differ! That difference surprised me and some others, and is a topic for another episode. Here I’ll just note that these two patterns govern how we interact when crossing server boundaries in Mastodon space using the stock web client.

When I started using Elk, another layer of pattern emerged. Here are those same URLs in Elk:

https://elk.zone/mastodon.social/@k9ox

https://elk.zone/mastodon.social/@k9ox/109802969999396562

As it turns out, I just needed to make two of the Steampipe plugin’s transform functions prepend elk.zone to the instance-qualified URLs, then make such prefixing a configuration option. Now when I visit Mastodon links from dashboards, to reply or boost or follow or enlist, I land in the Elk experience that I prefer.

ActivityPub and WebFinger are formal standards. I would describe the Mastodon API as a de-facto standard. But this prefixing maneuver is just a convention. It’s not guaranteed to work with another web client, and not even guaranteed to work across all URLs presented by the stock Mastodon client. That’s OK by me. Conventions are incredibly useful. The Twitter hashtag is just a convention, after all, inspired in turn by an IRC convention.

We’re in one of those Internet moments of rapid innovation, when new conventions can unlock emergent behaviors. It hadn’t even occurred to me that the Steampipe dashboards could support Elk. A few hours after I thought they might, they did. I’ve seen this kind of thing before, perhaps most notably when the blogosophere adopted <link rel="alternate" type="application/rss+xml" href="{feedUrl}"> to enable browsers to auto-discover RSS feeds. That happened about 20 years ago, and quite suddenly when a handful of leading blogging tools adopted the convention in a matter of days. It was a lot of fun to live through that era. If you missed it, enjoy the sequel that’s unfolding now!


1 https://blog.jonudell.net/2022/11/28/autonomy-packet-size-friction-fanout-and-velocity/
2 https://blog.jonudell.net/2022/12/06/mastodon-steampipe-and-rss/
3 https://blog.jonudell.net/2022/12/10/browsing-the-fediverse/
4 https://blog.jonudell.net/2022/12/17/a-bloomberg-terminal-for-mastodon/
5 https://blog.jonudell.net/2022/12/19/create-your-own-mastodon-ux/
6 https://blog.jonudell.net/2022/12/22/lists-and-people-on-mastodon/
7 https://blog.jonudell.net/2022/12/29/how-many-people-in-my-mastodon-feed-also-tweeted-today/
8 https://blog.jonudell.net/2022/12/31/instance-qualified-mastodon-urls/
9 https://blog.jonudell.net/2023/01/16/mastodon-relationship-graphs/
10 https://blog.jonudell.net/2023/01/21/working-with-mastodon-lists/
11 https://blog.jonudell.net/2023/01/26/images-considered-harmful-sometimes/
12 https://blog.jonudell.net/2023/02/02/mapping-the-wider-fediverse/
13 https://blog.jonudell.net/2023/02/06/protocols-apis-and-conventions/
14 https://blog.jonudell.net/2023/02/14/news-in-the-fediverse/
15 https://blog.jonudell.net/2023/02/26/mapping-people-and-tags-on-mastodon/
16 https://blog.jonudell.net/2023/03/07/visualizing-mastodon-server-moderation/
17 https://blog.jonudell.net/2023/03/14/mastodon-timelines-for-teams/
18 https://blog.jonudell.net/2023/04/03/the-mastodon-plugin-is-now-available-on-the-steampipe-hub/
19 https://blog.jonudell.net/2023/04/11/migrating-mastodon-lists/
20 https://blog.jonudell.net/2023/05/24/when-the-rubber-duck-talks-back/

15 Mar 16:17

The Best Apple Wireless Charging Stations for Multiple Devices

by Nick Guy

If you’re in the Apple ecosystem, there’s a good chance you’re all in: iPhone, Apple Watch, and AirPods. One way to keep each of these devices powered is to run three cords to three USB charging ports. But the tidiest and most convenient way is to use a wireless charging station.

Whether you like to charge your Apple gear on a bedside table at night or at a desk during the day, the Belkin MagSafe 3-in-1 Wireless Charging Stand 2nd Gen (WIZ017) is your best bet. It offers fast wireless charging speeds for up to three compatible devices, and it has a compact, convenient design.

15 Mar 04:50

Amazon Q4 2022 Financials

For the last couple of years, each quarter I’ve been posting a quick analysis of Amazon’s quarterly business results in a Twitter thread. I don’t use Twitter much any more, and Mastodon doesn’t make it easy to post threads, so the blog it is. Summary: Amazon’s retail business loses money (as usual) but the AWS and Advertising businesses are huge, throw off lots of cash, and continue to grow fast. They subsidize the money-losing retail operation in a way that seems deeply unfair to me.

Source: Q4 2022 Earnings Release.

Looking at Amazon as a whole, quarterly sales are up 9% year-over-year to $149.2B, annual sales also 9% to $514B. The company as a whole had a GAAP profit of $0.3B in Q4 and loss of $2.7B for the whole year; operating incomes were $2.7B and $12.2B respectively.

“Profit” is an accounting abstraction, what concerns me more would be the negative free cash flow of $19.8B over the course of 2022. Perhaps someone more finance-literate could offer a good reason why this shouldn’t be a worry?

AWS

What a story: Quarterly revenue growth of 20% year-over-year to $21.4B, annual revenue growth of 29% to $80.1B. The quarterly operating income was $5.2B, $22.8B annually. That income increased hardly at all, and annually was “only” up from $18.5B in 2021, so the margins, while excellent, are falling a bit.

AWS is now considerably bigger than IBM and much more profitable.

Every time I report these AWS numbers I stop and shake my head; a combination of top-line total, continuing growth, and sustainable margin at this scale is mind-boggling.

Other stuff

Advertising quarterly revenue is up to $11.5B, that’s 23% year-over-year. Note that they don’t report income, but my bet (without any inside information) is that the margin is even higher than AWS’s.

The internal structure of the retail operation is broken out, highlighting that third-party seller services is a monster business, running over $36B in the most recent quarter, growing at 24%.

Owning the store everyone shops at is a good business.

Take-away

Amazon as a whole isn’t really very profitable. Its retail sector loses money, and that loss is made up by the tens of billions of gravy coming in from AWS and Advertising.

Why is this business structure considered rational? And why is it legal for Amazon to be the prime competitor of the economy’s whole retail sector while not having to make a profit?

Obviously, foregoing profit for the sake of growth is a tried-and-true business strategy, and laudable within limits. But it seems obvious to me that Amazon is way, way past those limits.

As I’ve said since the moment I walked out Amazon’s door in May 2020, AWS should be spun off. The best time to do that was three years ago. The second best time is now.

15 Mar 04:20

Android 14 Could Give You More Control Over Carrier-installed Bloatware

by Ronil
Nobody likes pre-installed bloatware that takes a massive chunk of the smartphone’s storage. For years now, Google has been working on ways to trim malware, bloatware, and spam from its smartphone operating system with each latest version released. And with the Android 14 developer preview, the big G is taking a step further with a […]
15 Mar 02:39

How things are made

by Kate Bowles
Chat GPT is like an e-bike for the mind Sam Altman, CEO of OpenAI, Twitter, 16 December 2022 “We think the casualisation problem will be solved by AI in about 15 years or so.” University CEO, 2019 1 Hello, it’s been a while. May 2020: something about refusal, and then three years of careful-what-you-wish-for. Three years of writing that refused to be written, as we all tried to find our footing in a pandemic that wouldn’t end, and wouldn’t end,...
22 Feb 18:40

Review: Focal Bathy’s Headphones

by Michael Kalus

Introduction

Review: Focal Bathy’s Headphones

The last few years have seen a massive change in the way we consume music. With the advent of the iPod more than 20 years ago it was finally possible to carry lots and lots of music with you.

The iTune store made it easy and almost normal for a lot of people to buy their latest tunes on the internet instead of a physical store.

Then came the iPhone and with it a few years later the arrival of mobile internet and the advent of music streaming. Now you had “infinite pockets” to carry and listen to all your music.

What did not change for a long time though was how you listened to it. Whether you plugged your headphones into an iPod, portable CD Player or computer, it was almost always involving a cable.

This started changing a few years ago when the “True Wireless” trend kicked off. Wireless headphones aren’t new, much like cordless phones radio signals have been used for a long time to transmit music without the need of wires to your ears. But in general the technology was clunky, you needed special receivers to make use of them, often requiring external power sources.

For phone calls, bluetooth headsets had become a standard by the mid-2000s, but the battery time as well as the sound quality just wasn’t good enough to allow for music to be sent that way in a satisfying way.

This started changing in earnest in the mid 2010s when advances with the Bluetooth stack as well as advances in battery runtime finally allowed to make use of the built in bluetooth capability that most phones have.

Since then, you can find bluetooth headphones for as little as $20 to where the sky’s the limit.

The Focal Bathy’s come a bit closer to the sky than most, so are they worth it? They do retail for $1000 after all.

Review: Focal Bathy’s Headphones
The controls on the headphones

Design and Ergonomics

The design of the Bathy’s is somewhat classical, one could even say subdued if it wouldn’t be for the bright LED lights on the side that are on by default. I guess it’s “it” at the moment that everything needs to have LED lights to show that it is “modern” and “current”. Thankfully you can turn the LED lights off, but only through the phone app, which is a bit annoying if you tend not to just install an app for a new device you just bought. More about the app and its features later.

The other thing that literally stands out is just how big the cushions are. I do not have a small head and I think the “standoff” is quite pronounced. This may be in part why the Bathy’s sound so wide though. More about this in the sound section.

Lastly, a very weird design decisions. The controls for the Bathy’s that exist on the headphones themselves are meant to be on the right side. But weirdly, if you put the headphones down and fold the ear cups in and set them down, the controls are on the left side.

I actually ended up listening to the headphones for a while then wrong way round and wondered why the bass sounded a bit muffled. This was the answer, I had them on backwards.

It is a mystery to me why the Bathy’s fold that way. I gave the headphones to a few people and ask them to put them on, and without fail everybody put them on the wrong way first, because instinctivly people presume that when you fold them, you put them down on the cushions, not on the the back of the headphones.

I can guess that Focal designed the Bathy’s this way to not have pressure on the ear cups and prevent their compression, but I really do not think this is a good or user-friendly design.

Review: Focal Bathy’s Headphones

Quirks & Features

Hook me up

The Bathy’s come with a multitude of connectivity options.

  1. Wireless over Bluetooth, supporting quite a variety of protocols:
    1. SBC2. aptX3. aptX HD4. AAC
  2. Wired, via a standard 3.5mm connector. Note that the headphones will still required to be powered on in order to function.
  3. Via USB-C, using it’s own DAC for sound decoding.

This gives you quite a bit of options on how you want to connect to your devices.

In addition, the Bathy’s also offer Active Noise Cancellation (ANC). The mode can either be transparent, letting outside noise through, soft, cutting out loud noises, or silent, which is meant to eliminated all of the external sound.

Take me on the road

Focal claims a battery life for using bluetooth at 30 hours. My testing has confirmed this claim.

When wired into your stereo / computer via a normal audio cable the claim is 35 hours and if you use the built in DAC via USB cable 40 hours.

Be aware though that you cannot use and charge the headphones at the same time. The headphones also aren’t passive, so if you ever run out of power, just plugging in the 3.5mm cable will not work.

Considering the long battery runtime that is not really that much of a concern, but it is a bit surprising that headphones in this price range have such a limitation.

Review: Focal Bathy’s Headphones

Active Noise Cancellation (ANC)

What is ANC?

Active noise cancellation works by listening to the outside noise and creating “counter waves”. Think of throwing a rock into a quiet pond. You can see the waves from the rock rippling out across the lake. If you throw another rock into the lake, it will create its own waves. Where those two waves intersect, they can cancel each other out if they are of the same amplitude (or reduce one of the waves).

ANC works in the same way. It tries to create counter waves to eliminate external noise. This of course is a bit of a challenge, as you do not want to cancel out the music you are listening to, so almost always this isn’t 100% perfect, but often works better than purely passive noise cancelling (e.g. by having the headphones block your ear canal, or fully enclose the ear and using heavy dampening in the headphone.

How good is the ANC?

I have tried a few noise cancelling headsets. Both passive and active. By themselves, the headphones (when turned off) provide an okay noise cancelling experience, they aren’t quite as quiet as my beyerdynamic DT770 Pros, but better than some cheap, closed ones I bought years ago.

With ANC turned on, they are up there in their sound and noise cancelling quality with the Sony’s WH-1000XM5, which sell for around $500 and are considered somewhat reference for their abilities.

In the real world I have tried the Bathy’s at home, on the Skytrain here in Vancouver, in an office as well as in a coffee shop.

The experience has been a bit mixed. In the office environment it does an excellent job of killing off the background noises and allows for good concentration and listening to the music.

On the train and in the coffee shop it was a more mixed bag. Certain sounds, like knocking out the coffee from the porta filter, made it through, especially during quieter music passages. On the train, similar, certain screeching sounds made it through the ANC even when the music was louder. I found they seem to do slightly worse than the AirPod Pros in these scenarios. Probably due to the fact that the AirPods sit directly in your ear canal and do a much better job in passively cancelling noises.

I also tried wearing them while walking down the street, they are doing an okay job with ambient noises, but if there’s a lot of wind the size of them def. catches it and transfers some of the sound inside the headphones.

It’s also worth noting that they are not IPX rated, so in rainy Vancouver it’s not really recommended to wear them outside.

The not so great thing about the Bathy ANC

With all that said, there are a bunch of annoyances with the ANC.

First thing is the slowness in which ANC changes modes. It takes around a second to go from “Silent” to “Soft” or “Off”. In addition to that, while the Bathy’s switch, they turn off the audio you’re listening to. So you get this fade out / fade in effect which is a bit irritating. Especially compared to my AirPods Pros that manage to do the switch instantly, without interrupting what you are listening to.

I also struggle a bit to just find the button the headphones themselves, and have hit pretty much everything else on occasion. That may be more down to me though than the headphones itself.

Review: Focal Bathy’s Headphones

Sound Quality

Let me start by saying that these are the widest sounding wireless headphones I have ever listened to. They do beat my Meze Classic 99’s and sound soundstage wise almost like my open Sennheisers.

This was probably the biggest surprise when I first listened to them. Closed headphones generally do have a narrower soundstage and I found most wireless headphones are even narrower.

Considering the many different ways you can get music into it, I did a cross listing between a couple of songs trying different methods:

  1. aptX HD & Wired into my Fiio M11 Pro Ltd.
  2. AAC through my Bluetooth
  3. USB-C to my MacBook Pro.

The files were always the same, the only difference was in the connection to the headphones. In all these cases I used the Plex Media Player to play back the files (note, the decoder may still be different as Plex uses different decoders based on platform).

So what’s the difference?

Let’s get the wireless connectivity (aptX & AAC) out of the way first. I could not hear a difference. If I’d be forced to I’d say the aptX HD stuff sounded a bit more detailed, but I couldn’t point at anything specific. The compression on both does not seem to make a massive difference in my testing. This isn’t really too surprising, it’s a few kbit/s more with aptX, but the AAC codec has been developed to deal with low(er) bandwidth, so a massive jump would have actually surprised me.

For the 3.5mm wired connection it did sound better. As a caveat: the decoding is done by two discreet DACs in my Fiio M11 Pro Ltd. The DACs are known for their warmer, organic, sound profile. A lot of the change may be down to the DACs more so than the wired connection, but I would still say that wired beats wireless, if for no other reason than that you are not bandwidth constrained, plus you get a bit more playback time.

So how about the build in DAC? In short: It’s good. It is not at the level as my M11 Pro, but it def. Does beat the sound quality coming out of my MacBook. This, again, shouldn’t surprise. Apple’s DACs were always okay, but never anything special. A $1000 pair of headphones with a built in DAC should sound better than what comes out of the box from Apple.

Having said that, for both the USB as well as the 3.5mm cable, the connection is on the right side where all the controls are. Yet the headphone jack on my laptop etc. are all on the left side. So I always have the cable crossing over in front of me. I know, #FirstWorldProblem

Sound: Final thoughts

As stated above, the Bathy’s are wide, they have an incredibly large sound stage with a lot of detail. The bass is a bit more subdued than you are probably used to if you have listened to Beats or Sony headphones. It won’t have your skull vibrate, but it is full and does fill the sound stage, it just does not have the massive punch you get with the Beats as a comparison.

So if you are someone who wants a heavy beat, these are probably not for you. They do provide a very balanced soundstage though, with lots of mids and heights. Hearing a guitar string being plugged, or the strike of a key on a piano is fascinating to listen to and as enjoyable as when I listen to the same on my Sennheiser’s HD 660s.

Review: Focal Bathy’s Headphones

Final Thoughts

I have been using the Bathy’s now for two months and despite my minor annoyances they are easily the nicest wireless headphones I have ever owned. They are comfortable on the head even for longer sessions with no pressure points and sound wise they come close to my cabled headphones.

This of course all comes at a price. Which here in Canada is pretty much $1000. This is a lot of money to spend on a pair of headphones. Are they worth it? That’s a question you ultimately have to answer for yourself.

I have spent quite a bit of money over the last few years investing into better audio equipment. From upgraded DACs to buying a new record player. So for me the Bathy’s were a logical next step.

If you have the money and you want incredibly nice and balanced sounding headphones, they are def. A good investment.

Review: Focal Bathy’s Headphones

Summary & Rating

Good looking and good sounding wireless headphones with a myriad of connection options, at a price.

Pros

  • Long Battery life
  • Stylish
  • Comfortable to wear for extended periods
  • Incredibly wide sound stage
  • Well balanced audio.

Cons

  • Weird ergonomics
  • Bass is a little bit timid, especially when compared to Sony, Bose, Beats.
  • No IPX Rating (Not water proof / protection)
  • Expensive

Score

  • Usability: 8/10
  • Battery: 9/10
  • Sound Quality: 8/10
  • Design: 7/10
  • ANC: 7/10

Total: 39/50

22 Feb 18:38

Wildebeest, a Mastodon-compatible server running on Cloudflare pages

by Volker Weber

Today we’re introducing Wildebeest, an open-source, easy-to-deploy ActivityPub and Mastodon-compatible server built entirely on top of Cloudflare’s Supercloud. If you want to run your own spot in the Fediverse you can now do it entirely on Cloudflare.

Wildebeest serves two purposes: you can quickly deploy your Mastodon-compatible server on top of Cloudflare and connect it to the Fediverse in minutes, and you don’t need to worry about maintaining or protecting it from abuse or attacks; Cloudflare will do it for you automatically.

Sounds interesting.

More >

12 Feb 18:06

2023-02-02 General

by Ducky

Vaccines

It’s here! This preprint from India has the first data for nasal vaccines in humans that we’ve seen. It compares of the same inactivated adenovirus delivered nasally (BBV154) and intramuscularly (Covaxin), both from Bharat Biotech:

Levels of antibodies and good things range from about 1.5x to almost 2x higher when delivered nasally. There were also four times as many side effects in the intramuscular version than the nasal version.


Two weeks ago, I reported that the US CDC thought there might be a slightly elevated risk of stroke after a Pfizer vax. Multiple organizations have looked into their data, and do not see a link. For example, here’s an article on what PHAC didn’t find. This article mentions in passing that in the CDC study, it looked like there were more strokes because the control group had an unusually low number of strokes, not because the vax group had an unusually high number.

Transmission

This paper from the USA says that they found Alpha, Delta, and Gamma circulating endemically in white-tailed deer, long after those have basically gone extinct in humans. There’s also been a lot of divergence in those strains, showing that the virus has stuck around in deer long enough for it to mutate quite a bit.


This paper from the USA found that an elderly (vaccinated) lion at a zoo caught COVID-19 (presumably from humans) in December 2021 and then passed it back to three of its (vaccinated, mask-wearing) handlers. (The article mentions that the lion was disabled enough that it had to hand-fed, which freaks me out a bit.) Presumably, the lion was unmasked.

Mitigation Measures

This press release says that the World Health Organization determined that we are still in a pandemic. I have the sense that it was close, and I bet in three months, they will lift the “we are in a pandemic” resolution.

Why does this matter? Mostly because it will make it harder for governments to continue with their pandemic resolutions.


Testing

This article says that Roche is developing a better PCR test for XBB.1.5.

Long COVID

This paper from USA looked at people who had gotten a COVID-19 test. Of the people who were positive, about half had symptoms after three months. However, about a quarter of the people who were negative (who presumably had some other upper respiratory infection) still had symptoms after three months!

There were slight differences in which symptoms were most common at three months. Loss of smell or taste were in the top five symptoms COVID-positive participants but not in the top five for COVID-negative patients. (COVID-negative participants had runny nose and joint pain in their #4 and #5 positions.)

Symptoms at three months

The message I take from that is that other viral infections are not as benign as I thought!

Treatments

This press release reports that the US today withdrew authorization for Evusheld — a monoclonal antibody which was used sort of like a vaccine — because it’s not effective against the current strains. 🙁


This article from the USA (reporting on this survey) says that Paxlovid is way under-prescribed, in part because doctors were hesitant to prescribe it. Many doctors were concerned about drug interactions (even though there’s only two drugs that patients can’t safely just stop taking for a week to go on Paxlovid) or about Paxlovid rebound (even though rebound happens without Paxlovid too). Some doctors feel that patients “aren’t sick enough”, even though you have to prescribe Paxlovid before symptoms have a chance to get bad!

I don’t know how underprescribed Paxlovid is in Canada, but we have the additional problem here of a lot of people not having family doctors. This article says that the number of Paxlovid prescriptions in Ontario doubled when pharmacists were given authority to prescribe it.


This paper from the UK found that while treatment with molnupiravir did reduce severity and reduce recovery time, it didn’t decrease hospitalizations or deaths.

It’s worse than that, however. This preprint from Australia says that in immunocompromised people, molnupiravir caused mutations which not only persisted but also spread. This article talks about how molnupiravir is just not worth the risks.


This paper says that with VV116, a Chinese antiviral, people recovered 17% faster than with Paxlovid, and with about 13% fewer side effects. None of the VV116 patients or Paxlovid patients died or had severe COVID. I do not know how VV116 interacts with other drugs (which is one of the big problems hindering Paxlovid; while Paxolovid’s drug interactions can mostly be managed, there are two drugs which can’t be stopped, and it’s better to not have to stop them).

Recommended Reading

This blog post gives a detailed look at Sweden’s excess mortality rates. Spoiler: it turns out that minor procedural changes can make a big difference in numbers. The post’s “cumulative deaths” chart is not monotonically increasing (people came back to life???), so it’s hard for me to endorse the conclusions. However, the discussion is very interesting.


This article talks about bivalent boosters and who should get them. Spoiler: it draws the conclusion that you should absolutely get a booster if you are over 50 and maybe you don’t need bother if you are under 50. HOWEVER, the article does not consider Long COVID at all.


This article discusses the future of vaccines, going through all the different types which are in the pipeline.


This article gives a detailed status update on where we are with variants. If you read this blog regularly, there probably won’t be much that surprises you.


This article talks about wastewater surveillance in airplanes, including explaining why it’s a harder problem than measuring levels in sewer wastewater.

12 Feb 17:42

Joe Rogan

by bob
“the idea that Jewish people are not into money is ridiculous. That’s like saying Italians aren’t into pizza.” Turns out Neil Young was right. Offenders continue to offend, all you need to do is give them enough rope. And Spotify’s reaction…CRICKETS! Sweden legendarily accepted Jewish refugees during World War II, but that tradition of looking […]
12 Feb 17:05

Homeworld

by Rui Carmo

Homeworld is an amazing real-time strategy game originally developed by Relic/Sierra.

Its original version, despite being remastered and re-cast into various formats, is only available on the Mac or Linux via community ports:

Resources

Category Date Link Notes
Source Code 2023 HomeworldSDL

An SDL port of the original game for Mac and Linux

2010 rcarmo/homeworld

an older source code tree I snapshotted back in the day


12 Feb 17:05

Notes for January 30-February 5

by Rui Carmo

This is an abridged list of the non-work things I accomplished during this week.

Monday, 2023-01-30

Felt feverish, insanely tired. Unsurprisingly, realized I got a cold.

  • Tidied the office.
  • Went through my personal project backlog and pruned a few things.
  • Ended the day early and spent some time doodling with music stuff.

Tuesday, 2023-01-31

Took part of the day off to nurse my cold, ended up spending a couple of hours in my blissfully sunny living room for a change.

  • Cleaned up my personal ~/Development folder a bit, archiving older projects and making sure only the ones I should be focusing on are readily available to avoid distractions.
  • Upgraded my MacBook to macOS Ventura 13.2. Nothing blew up, but nothing improved much either. System Preferences, in particular, is a buggy mess.
  • Upgraded zigbee2mqtt to new point release. Some sensors still dropping off the network, probably need to start debugging router firmware.
  • Reinstalled Amethyst to check out the new version as well.

Wednesday, 2023-02-01

Got back to work. Was pleasantly surprised to receive most of my new server parts (except for the DeskMeet B660, which is, worryingly, yet to be shipped, even as I clean up these notes).

  • Resumed investigating how to automate cgroup resource limiting without going fully medieval on /proc.
  • Ran a number of tests on my cloud-init template to set up a nice sandbox that can also be useful for isolating apps running inside Piku.

Thursday, 2023-02-02

Busy day and family evening, so not much time to tinker.

  • Since Twitter decided to turn off free API access, I fast-tracked my RSS to Mastodon bridge and got it to post its first blog notification. I expect it will have bugs, but as far as a quick and dirty 90-line aiohttp hack goes, it’s pretty decent.
  • As a direct result of the above, ended up fixing a long-standing bug in cron expression validation in Piku that had eluded me for a while and that was due to a reentrant call.

Friday, 2023-02-03

Nothing much to report.

  • Deployed the RSS-to-Mastodon bridge in production. Yes, I know it’s a Friday, it’s less than 100 lines and non-critical.
  • Spent my lunch break fixing a double glazed window latch.
  • Filed some photos from 2008 I found in a relative’s old USB hard drive.
  • Went through my Drafts folder and noticed I hadn’t posted about my Mastodon list to RSS hack yet–fixed that as well.

Saturday, 2023-02-04

A semblance of personal productivity, with actual tangible outputs.

  • Personal inbox zero.
  • Read most of this week’s The Economist.
  • Wasted some time chasing after a D3.js bug in an old custom chart I wanted to re-use.
  • Resumed a couple of my 3D printing projects that are in the fine adjustment stage: i.e., taking 2mm slices of pieces with incorrect dimensions, printing them out, and double-checking tolerances.
  • Published the first version of my replacement base for the Vodafone/Sagem ONT “Smart Router” that Vodafone Portugal provides to their fiber subscribers.

Sunday, 2023-02-05

CAD and 3D printing day. I think it’s the first time I had both printers going non-stop.

  • Tweaked some tolerances in yesterday’s 3D models, printed a final version of the ONT base and started planning for re-wiring the LAN closet.
  • Had another run-in with the Sunlu matte white “PLA of death”, which this time clogged my Prusa so badly it forced me to completely disassemble the extruder and actually drill through the clog.
  • Decided to step up replacing the extruder altogether with the Aero Titan I got last week and start designing an X carriage mount for it. Fortunately, I have all the original BQ Prusa Hephestos STL files (they’re still available online), so it’s mostly a matter of plugging holes and placing new ones.
Yellow for plugs, red for new holes.
  • Printed out some rough drafts of other printer parts (extruder mount, fan shroud, etc.)
  • Also printed out two sets of parts for a modular spool holder for which I had ordered some ball bearings a month ago. Pro tip: you can fine tune things by squirting WD-40 into the bearings and then fitting the roller with a heat gun.
  • Cleaned up and posted these notes.

12 Feb 17:04

The Four Horsemen of the Tech Recession

by Rui Carmo

I have my own opinions about this, but I cannot really write about the topic at length.

Nevertheless, this seems broadly right to the point where I thought I’d mention it.


12 Feb 16:49

Twitter Favorites: [Sean_YYZ] Some ‘urbanists’ on actually working towards providing affordable housing: https://t.co/2IDBZAn9sP

Sean Marshall @Sean_YYZ
Some ‘urbanists’ on actually working towards providing affordable housing: pic.twitter.com/2IDBZAn9sP
12 Feb 16:48

Twitter Favorites: [alltartans] A Tartan for the Broken of the Winds https://t.co/5Kibq1mgUl

Tartans @alltartans
A Tartan for the Broken of the Winds pic.twitter.com/5Kibq1mgUl
12 Feb 16:48

Twitter Favorites: [CanadaPaintings] Take Me to the Mountains Billie Rae Busby 2022 https://t.co/Lxg7q9uGQA

Canadian Paintings @CanadaPaintings
Take Me to the Mountains Billie Rae Busby 2022 pic.twitter.com/Lxg7q9uGQA
12 Feb 16:46

Why I'm not the biggest fan of Single Page Applications

Sometimes it seems like accessibility experts and other web professionals hate JavaScript. This might be true for some, but most understand that JavaScript can be useful for improving UX and even accessibility. JavaScript solutions are often more accessible than their pure HTML or CSS counterparts.

We know JavaScript is not an enemy, but, admittedly, there is a certain reluctance towards building client-side rendered websites by some developers. These people are often dismissed as the “old guard” because of their seemingly irrational aversion towards modern web development. If you don’t understand where this is coming from, it might seem incomprehensible why someone would not want to build single page applications (SPA), but go for the standard way of building websites, sometimes referred to as multi page applications (MPA), instead.

There has been a lot of criticism about SPAs and especially React recently. On a personal level, I can absolutely understand that. I don’t like Meta and their business model; I don’t like how React thought leaders sold their library as something that it’s not, and I don’t like the bro culture that sparked from this whole thing. On a professional level, I understand that there are people for whom React is nothing more than a tool or a .js file. People who, you know,…just build websites for a living. Although I’m not happy about it, I also understand that JS libraries and frameworks are often the entry point to web development for new web developers. Nevertheless, there is also valid and serious professional criticism. With this post I’m not trying to convince anyone to build their websites differently, I just want to share my view and my experiences as someone who has been building websites for over 20 years, and I try to summarize reasons why some developers, including me, are wary of building SPAs. Before I give you some examples, let me say one important thing: I know that it’s possible to create accessible single page applications and I know that there are people who work with JS frameworks (because they want to or have to), and optimise the shit out of their websites because they care about their users.


A lot of the scepticism comes from the fact that some critical features of a website work fundamentally different in single page applications.

Routing

When you create 3 HTML documents, let’s call them home.html, about.html, and dashboard.html, and you link them, clicking a link the following happens: The browser navigates to the new page, the page loads, the title of the page changes in the browser’s tab, focus is on the body, and, if you’re using a screen reader, the software announces the title of the page. Of course, a lot more happens. This is a simplified and incomplete depiction of the process, but the important bit is that no matter how you’re accessing and activating the link (mouse, screen reader, touch, switch device, etc.), you know what happened, that something happened, and where you are. The loading process and the transition from one page to another tell you that you’ve navigated to a new page. Focus is at the beginning of the DOM, where you would expect it, and your screen reader announces the title of the page automatically.

When I click a link, NVDA, the screen reader I'm using, announces the title of the page, for example “Dashboard - My Website”.

In a Single Page Application, you create only one HTML document and you replace the main content of the page when the user clicks a link. To achieve that, you may have to use a routing library like React Router. Compared to the process of native routing I’ve described earlier, the following happens: DOM content changes, focus is still on the link, the title in the browser tab doesn’t change, and a screen reader announces nothing. If you’re lucky, you know what happened, that something happened, and where you are. If you’re a blind screen reader user, you’ll most likely get no feedback at all.

When I click a link, NVDA announces nothing.

While not intentionally, single page applications, at least in terms of page navigation, are inaccessible by design. The creators of reach router did their best to make routing accessible by managing focus, but since data loading and focus management on route transitions are coupled, it was too complicated to do it correctly. Despite all their efforts, routing became completely inaccessible again, when reach router and react router merged and they stopped doing not-good-enough focus management by default.

Custom routing and focus management done right can actually work even better than the native behaviour without JavaScript, but it must be built manually. You don’t see that in many SPAs unfortunately. I’d rather serve users with the not so great, but consistent default experience than no experience at all.
Anyway, there's a lot we can learn from SPAs and from people with accessbility in mind working with them. There’s fantastic research about that topic by Marcy Sutton (“What we learned from user testing of accessible client-side routing techniques with Fable Tech Labs”).

Note: In the previous demo I was using “Create React App”, one of the recommended toolchains and the basic example in React Router. I can imagine that there are frameworks that support accessible routing by default.

The document title

The <title> of the page is one of the most important elements in a HTML document. Users benefit from a well-formed and descriptive page title in many ways.

To mitigate inaccessible routing and the missing feedback after clicking a link, screen reader users help themselves by pressing shortcuts that announce the title of the page. The page title tells them on which page they are. So even if there’s no feedback, they know they’re on a new page when the title has changed. If the title has changed! In a SPA, you usually have to implement title management manually. Again, this is something that just works in native routing.

Screen reader shortcuts for announcing the page title
Screen Reader Command Announcement
NVDA Ins + T Page title
JAWS Ins + T Page title
Voice Over on macOS VO + Shift + I Page summary, including page title
Voice Over on macOS VO + F2 Page title

There are more reasons you'd want to change the page title. It serves as the label for bookmarked pages/favorites, and search engines use the title in their search results pages. Social media sites, chat or mail applications, and similar software use the title in link previews when no other title is specified.

Before you start sending me links: I know that it's possible, I've done my research. My point is, that it's yet another thing you have to reimplement manually.

DOM changes

DOM changes are not specific to SPAs, but to using JavaScript in general. The thing is that reactive DOM changes are at the very core of single page applications. For every significant change you make, you have to communicate that change not just visually, but also semantically. Live regions, ARIA attributes, or focus management can help with that. You won’t find any information about live regions or using focus() for announcing DOM changes in the official React accessibility docs, the Vue accessibility docs, or the Angular docs.
The more JavaScript we add to our page, the more fragile our interface gets and the more we have to manage and communicate manually, if we want to create equal experiences for all.

JSX

JSX kinda looks like HTML, but it’s not really HTML because it’s a mix of HTML with component tags and made-up attributes (I’m talking about you className). I know that React doesn’t require using JSX, but many new devs learn React and JSX first (and only), because boot camps and indoctrinated communities tell them it's the only real way to build websites and they need to know React in order to get a job. This abstraction can be terrible if you don’t understand the difference between the actual standard (HTML) and the abstraction layer. We’re already really bad at writing native HTML and a language that obfuscates the standard language doesn’t make things better.

<li className="item">
{isPacked ? (
<del>
{name + ' ✔'}
</del>
) : (
name
)}
</li>

Before we choose to work with any language that is not native HTML, but compiles to HTML, we should learn HTML first. This doesn’t just apply to JSX, but Markdown, Pug, NunJucks, etc. Our input will be much better if we know how the output should look like.

The page context

In SPAs, you create components. A component might be part of another component, and another component until it finally ends up in the wrapper <div> of your index.html. If you look at the final document of most SPAs, the page doesn’t look like a coherent entity, but more like a dump for components that happen to form a page visually. As already mentioned, HTML is a cornerstone of any accessible website and the page structure (a sound heading outline, landmarks, DOM order, semantic HTML in general) plays an important role.

Don’t get me wrong, I also build components that are part of a system, but I also spend a good amount of time crafting pages that work well. The fact that the HTML document is something that you barely touch, because everything you need in there will be injected via JavaScript, puts the document and the page structure out of focus.
I don’t suggest that a component-based approach is wrong, not even one that is written in a JavaScript environment, quite the opposite, but just because it’s more convenient and efficient to work with a JS framework, doesn’t mean that we have to serve all that JavaScript to the client. The traditional way of serving websites entirely on the client is outdated, but I also don’t believe that concepts like hydration are much better.
It’s worth exploring approaches that separate concerns and try to minimize the amount of JS shipped. Some notable projects are Lit, Astro, Svelte, or WebC.

Performance

Most SPAs probably perform well on my 3,500 Euro laptop and my 500 Euro smartphone, but a Macbook Pro and Huawai P30 are not necessarily the average device the average user uses to access the web. I’m not in the position to talk about the performance implications of client-site rendering and especially React, but there has been a lot of criticism early on because SPAs just don’t perform as well as thought leaders at Meta or Vercel used to make you think.

I suggest you read the following articles:

Complexity

Setting up a SPA from scratch is not simple, it involves many tedious steps. Even if you use one of the boilerplate setups, you’re handling a compound dependency monster that just waits to ruin your day because one tiny detail doesn’t work out of the box the way you want it. There’s so much complexity in these things that it makes some people doubt whether it’s worth the effort and if it’s not maybe smarter to spend the time working on something else, something that actually benefits users.

I guess the biggest criticism here is that it feels like people who believe in the superiority of single page applications and the entire ecosystem focus more on developer experience (DX) than user experience. That sounds like a dangerous blanket statement, but after all these years, I never had the feeling that the argument “better DX leads to better UX” was ever true. It’s nothing more than a justification for the immense complexity and potentially significantly worse UX. And even if the core argument isn't DX, other arguments like scalability, maintainability, competitive ability, easier recruiting (“everyone uses React”), and cost effectiveness, in my experience, only sound good, but rarely hold up to their promises.

Conclusion

I hope this didn’t come off as a rant, it’s not. I’m just trying to explain why SPAs are not the first choice or no choice at all for some people. I’m glad that this diverse landscape of tools exists because we can learn from innovation and use this knowledge to create better experiences. I’ve worked with several JS libraries and frameworks, because it pays the bills, but I’ve never used one for my own projects and I’ve never consulted a client to do so, and I probably never will. The simple reason is that I build websites most of the time, and not complex applications. There is a place and time for JS frameworks and client side rendering, but it’s usually not the right choice for the typical website.

My blog doesn't support comments yet, but you can reply via blog@matuzo.at.

12 Feb 16:46

Day 100: it's over, or is it!?

OMG, I did it, day 100! 4 months and 16 days ago I published the first post and then I wrote another post every workday for 138 days straight without missing a single day. In this final post, I want to do a quick recap and give an outlook for what's coming next.

Recap

Starting this project was one of the best and worst ideas I ever had.

It was a great idea because I’m finally up to date with modern CSS. I’ve learned so so much, not just about the fancy new stuff, but also about CSS in general. Based on the feedback I’ve received, I wasn’t the only one who benefited from this project. This format, short, focused posts about a single topic, worked well for many people. That makes me happy. Thank you for reading and participating!

It was a bad idea because it was so much work and it put quite a lot of pressure on me at times. Each post took me at least 1 hour to write, sometimes up to 4 hours. In some weeks, that meant spending an entire working day or more writing these posts on top of my other work. Consequently, the quality of some posts is not as good as I’d like it to be.

Anyway, I’m glad that I finished it. Especially because I’m someone who tends to abandon their side projects quickly since the next more exciting project is already around the corner.

My favorite posts

I’m happy with how most posts I’ve written have turned out, but, of course, I have some favorites.

Top 3 favorite new features

I’ve covered a lot of new features in CSS, but I’m most excited about these.

Top 3 favorite posts

Like I said, this experiment turned out to not just focus on modern CSS, but core CSS concepts, too. These are 3 of my favorite posts.

Top 3 most useful properties/values

There are certain new features that (will) make my life as a frontend dev much easier.

Top 3 most surprising features

I honestly knew nothing about, I don’t know, 80%? of the stuff I wrote about before I did my research. Some things surprised me.

Soooo, now that I’m done, what’s next? Well, I’ll probably not write about CSS too soon again, haha. My personal next step is to implement many of these features and techniques in the websites I’m building to get some actual hands-on experience. Once I have that, I can write blog posts with a bit more substance. I will also talk about my insights as CSS Day in June.

Interop 2023

I’m looking forward to learning what’s coming next to the web platform. We can track the progress in the Interop 2023 Dashboard. This year’s focus areas are:

Alright, that's it. Thank you so much for following along and being a part of this. You can find a collection of all demos on CodePen.

My blog doesn't support comments yet, but you can reply via blog@matuzo.at.

03 Feb 03:39

Instagram, TikTok, and the Three Trends

by Ben Thompson

Trends in medium, AI, and user interaction underpin Instagram's response to TikTok, and will determine Meta's long-term moat.


Back in 2010, during my first year of Business School, I helped give a presentation entitled “Twitter 101”:

The introductory slide from a Twitter 101 presentation in business school

My section was “The Twitter Value Proposition”, and after admitting that yes, you can find out what people are eating for lunch on Twitter, I stated “The truth is you can find anything you want on Twitter, and that’s a good thing.” The Twitter value proposition was that you could “See exactly what you need to see, in real-time, in one place, and nothing more”; I illustrated this by showing people how they could unfollow me:

A slide noting that Twitter is what you make of it

The point was that Twitter required active management of your feed, but if you put in the effort, you could get something uniquely interesting to you that was incredibly valuable.

Most of the audience didn’t take me up on it.

Facebook Versus Instagram

If there is one axiom that governs the consumer Internet — consumer anything, really — it is that convenience matters more than anything. That was the problem with Twitter: it just wasn’t convenient for nearly enough people to figure out how to follow the right people. It was Facebook, which digitized offline relationships, that dominated the social media space.

Facebook’s social graph was the ultimate growth hack: from the moment you created an account Facebook worked assiduously to connect you with everyone you knew or wish you knew from high school, college, your hometown, workplace, you name an offline network and Facebook digitized it. Of course this meant that there were far too many updates and photos to keep track of, so Facebook ranked them, and presented them in a feed that you could scroll endlessly.

Users, famously, hated the News Feed when it was first launched: Facebook had protesters outside their doors in Palo Alto when it was introduced, and far more online; most were, ironically enough, organized on Facebook. CEO Mark Zuckerberg penned an apology:

We really messed this one up. When we launched News Feed and Mini-Feed we were trying to provide you with a stream of information about your social world. Instead, we did a bad job of explaining what the new features were and an even worse job of giving you control of them. I’d like to try to correct those errors now…

The errors to be corrected were better controls over what might be shared; Facebook did not give the users what they claimed to want, which was abolishing the News Feed completely. That’s because the company correctly intuited a significant gap between its users stated preference — no News Feed — and their revealed preference, which was that they liked News Feed quite a bit. The next fifteen years would prove the company right.

It was hard to not think of that non-apology apology while watching Adam Mosseri’s Instagram update three weeks ago; Mosseri was clear that videos were going to be an ever great part of the Instagram experience, along with recommended posts. Zuckerberg reiterated the point on Facebook’s earnings call, noting that recommended posts in both Facebook and Instagram would continue to increase. A day later Mosseri told Casey Newton on Platformer that Instagram would scale back recommended posts, but was clear that the pullback was temporary:

“When you discover something in your feed that you didn’t follow before, there should be a high bar — it should just be great,” Mosseri said. “You should be delighted to see it. And I don’t think that’s happening enough right now. So I think we need to take a step back, in terms of the percentage of feed that are recommendations, get better at ranking and recommendations, and then — if and when we do — we can start to grow again.” (“I’m confident we will,” he added.)

Michael Mignano calls this recommendation media in an article entitled The End of Social Media:

In recommendation media, content is not distributed to networks of connected people as the primary means of distribution. Instead, the main mechanism for the distribution of content is through opaque, platform-defined algorithms that favor maximum attention and engagement from consumers. The exact type of attention these recommendations seek is always defined by the platform and often tailored specifically to the user who is consuming content. For example, if the platform determines that someone loves movies, that person will likely see a lot of movie related content because that’s what captures that person’s attention best. This means platforms can also decide what consumers won’t see, such as problematic or polarizing content.

It’s ultimately up to the platform to decide what type of content gets recommended, not the social graph of the person producing the content. In contrast to social media, recommendation media is not a competition based on popularity; instead, it is a competition based on the absolute best content. Through this lens, it’s no wonder why Kylie Jenner opposes this change; her more than 360 million followers are simply worth less in a version of media dominated by algorithms and not followers.

Sam Lessin, a former Facebook executive, traced this evolution from the analog days to what is next in a Twitter screenshot entitled “The Digital Media ‘Attention’ Food Chain in Progress”:

Lessin’s five steps:

  1. The Pre-Internet ‘People Magazine’ Era
  2. Content from ‘your friends’ kills People Magazine
  3. Kardashians/Professional ‘friends’ kill real friends
  4. Algorithmic everyone kills Kardashians
  5. Next is pure-AI content which beats ‘algorithmic everyone’

This is a meta observation and, to make a cheap play on words, the first reason why it made sense for Facebook to change its name: Facebook the app is eternally stuck on Step 2 in terms of entertainment (the app has evolved to become much more of a utility, with a focus on groups, marketplace, etc.). It’s Instagram that is barreling forward. I wrote last summer about Instagram’s Evolution:

The reality, though, is that this is what Instagram is best at. When Mosseri said that Instagram was no longer a photo-sharing app — particularly a “square photo-sharing app” — he was not making a forward-looking pronouncement, but simply stating what has been true for many years now. More broadly, Instagram from the very beginning — including under former CEO Kevin Systrom — has been marked first and foremost by evolution.

To put this in Lessin’s framework, Instagram started out as a utility for adding filters to photos put on other social networks, then it developed into a social network in its own right. What always made Instagram different than Facebook, though, is the fact that its content was default-public; this gave the space for the rise of brands, meme and highlight accounts, and the Instagram influencer. Sure, some number of people continued to use Instagram primarily as a social network, but Meta, more than anyone, had an understanding of how Instagram usage had evolved over time.

Kylie Jenner and Kim Kardashian asking Instagram to be Instagram

In other words, when Kylie Jenner posts a petition demanding that Meta “Make Instagram Instagram again”, the honest answer is that changing Instagram is the most Instagram-like behavior possible.

Three Trends

Still, it’s understandable why Instagram did back off, at least for now: the company is attempting to navigate three distinct trends, all at the same time.

The first trend is the shift towards ever more immersive mediums. Facebook, for example, started with text but exploded with the addition of photos. Instagram started with photos and expanded into video. Gaming was the first to make this progression, and is well into the 3D era. The next step is full immersion — virtual reality — and while the format has yet to penetrate the mainstream this progression in mediums is perhaps the most obvious reason to be bullish about the possibility.

The trend in mediums online

The second trend is the increase in artificial intelligence. I’m using the term colloquially to refer to the overall trend of computers getting smarter and more useful, even if those smarts are a function of simple algorithms, machine learning, or, perhaps someday, something approaching general intelligence. To go back to Facebook, the original site didn’t have any smarts at all: it was just a collection of profile pages. Twitter came along and had the timeline, but the only smarts there was the ability to read a time stamp: all of the content was presented in chronological order. What made Facebook’s News Feed work was the application of ranking: from the very beginning the company tried to present users the content from their network that it thought you might be most interested in, mostly using simple signals and weights. Over time this ranking algorithm has evolved into a machine-learning driven model that is constantly iterating based on every click and linger, but on the limited set of content constrained by who you follow. Recommendations is the step beyond ranking: now the pool is not who you follow but all of the content on the entire network; it is a computation challenge that is many orders of magnitude beyond mere ranking (and AI-created content another massive step-change beyond that).

The trend in AI and content online

The third trend is the change in interaction models from user-directed to computer-controlled. The first version of Facebook relied on users clicking on links to visit different profiles; the News Feed changed the interaction model to scrolling. Stories reduced that to tapping, and Reels/TikTok is about swiping. YouTube has gone further than anyone here: Autoplay simply plays the next video without any interaction required at all.

The trend in UI online

One of the reasons Instagram got itself in trouble over the last few months is by introducing changes along all of these vectors at the same time. The company introduced more video into the feed (Trend 1), increased the percentage of recommended posts (Trend 2), and rolled out a new version of the app that was effectively a re-skinned TikTok to a limited set of users (Trend 3). It stands to reason that the comany would have been better off doing one at a time.

That, though, would only be a temporary solution: it seems likely that all of these trends are inextricably intertwined.

Medium, Computing, and Interaction Models

Start with medium: text is easy, which is why it was the original medium of the Internet; effectively anyone can create it. The first implication is that there is far more text on the Internet than anything else; it also follows that the amount of high quality text is correspondingly high as well (a small fraction of a large number is still very large). The second implication has to do with AI: it is easier to process and glean insight from text. Text, meanwhile, takes focus and the application of an acquired skill for humans to interpret, not dissimilar to the deliberate movement of a mouse to interact with a link.

Photos used to be more difficult: digital cameras came along around the same time as the web, but even then you needed to have a dedicated device, move those photos to your computer, then upload them to a network. What is striking about the impact of smartphones is that not only did they make the device used to take pictures the same device used to upload and consume them, but they actually made it easier to take a picture than to write text. Still, it took time for AI to catch up: at first photos were ranked using the metadata surrounding them; only over the last few years has it become possible for services to understand what the photo actually is. The most reliable indicator of quality — beyond a like — remains the photo that you stop at while scrolling.

The ease of making a video followed a similar path to photos, but more extreme: making and uploading your own videos before the smartphone was even more difficult than photos; today the mechanics are just as easy, and it’s arguably even easier to make something interesting, given the amount of information conveyed by a video relative to photos, much less a text. Still, videos require more of a commitement than text or videos, because consuming them takes time; this is where the user interaction layer really matters. Lessin again, in another Twitter screenshot:

I saw someone recently complaining that Facebook was recommending to them…a very crass but probably pretty hilarious video. Their indignant response [was that] “the ranking must be broken.” Here is the thing: the ranking probably isn’t broken. He probably would love that video, but the fact that in order to engage with it he would have to go proactively click makes him feel bad. He doesn’t want to see himself as the type of person that clicks on things like that, even if he would enjoy it.

This is the brilliance of Tiktok and Facebook/Instagram’s challenge: TikTok’s interface eliminates the key problem of what people want to view themselves as wanting to follow/see versus what they actually want to see…it isn’t really about some big algorithm upgrade, it is about relesing emotional inner tension for people who show up to be entertained.

This is the same tension between stated and revealed preference that Facebook encounted so many years ago, and its exactly why I fully expect the company to, after this pullback, continue to push forward with all three of the Instagram changes it is exploring.

Instagram’s Risk

Still, there is considerably more risk this time around: when Facebook pushed forward with the News Feed it was the young upstart moving aside incumbents like MySpace; it’s not as if its userbase was going to go backwards. This case is the opposite: Instagram is clearly aping TikTok, which is the young upstart in the space. It’s possible its users decide that if they must experience TikTok, they might as well go for the genuine thing.

This also highlights why TikTok is a much more serious challenge than Snapchat was: in that case Instagram’s network was the sword used to cut Snapchat off at the knees. I wrote in The Audacity of Copying Well:

For all of Snapchat’s explosive growth, Instagram is still more than double the size, with far more penetration across multiple demographics and international users. Rather than launch a “Stories” app without the network that is the most fundamental feature of any app built on sharing, Facebook is leveraging one of their most valuable assets: Instagram’s 500 million users…Instagram and Facebook are smart enough to know that Instagram Stories are not going to displace Snapchat’s place in its users lives. What Instagram Stories can do, though, is remove the motivation for the hundreds of millions of users on Instagram to even give Snapchat a shot.

Instagram has no such power over TikTok, beyond inertia; in fact, the competitive situation is the opposite: if the goal is not to rank content from your network, but to recommend videos from the best creators anywhere, then it follows that TikTok is in the stronger relative position. Indeed, this is why Mosseri spent so much time talking about “small creators” with Newton:

I think one of the most important things is that we help new talent find an audience. I care a lot about large creators; I would like to do better than we have historically by smaller creators. I think we’ve done pretty well by large creators overall — I’m sure some people will disagree, but in general, that’s what the data suggests. I don’t think we’ve done nearly as well helping new talent break. And I think that’s super important. If we want to be a place where people push culture forward, to help realize the promise of the internet, which was to push power into the hands of more people, I think that we need to get better at that.

There is the old Internet AMA question as to whether you would rather fight a horse-sized duck or 100 duck-sized horses. The analogy here is that in a world of ranking a horse-sized duck that everyone follows is valuable; in a world of recommendations 100 duck-sized horses are much more valuable, and Instagram is willing to sacrifice the former for the latter.

Meta’s Reward

The payoff, though, will not be “power” for these small creators: the implication of entertainment being dictated by recommendations and AI instead of reputation and ranking is that all of the power accrues to the platform doing the recommending. Indeed, this is where the potential reward comes in: this power isn’t only based on the sort of Aggregator dynamics underpinning dominant platforms today, but also absolutely massive amounts of investment in the computing necessary to power the AI that makes all of this possible.

In fact, you can make the case that if Meta survives the TikTok challenge, it will be on its way to the sort of moat enjoyed by the likes of Apple, Amazon, Google, and Microsoft, all of which have real world aspects to their differentiation. There is lots of talk about the $10 billion the company is spending on the Metaverse, but that is R&D; the more important number for this moat is the $30 billion this year in capital expditures, most of which is going to servers for AI. That AI is doing recommendations now, but Meta’s moat will only deepen if Lessin is right about a future where creators can be taken out of the equation entirely, in favor of artificially-generated content.

What is noteworty is that AI content will be an essential part of any sort of Metaverse future; I wrote earlier this year in DALL-E, the Metaverse, and Zero Marginal Content:

What is fascinating about DALL-E is that it points to a future where these three trends can be combined. DALL-E, at the end of the day, is ultimately a product of human-generated content, just like its GPT-3 cousin. The latter, of course, is about text, while DALL-E is about images. Notice, though, that progression from text to images; it follows that machine learning-generated video is next. This will likely take several years, of course; video is a much more difficult problem, and responsive 3D environments more difficult yet, but this is a path the industry has trod before:

  • Game developers pushed the limits on text, then images, then video, then 3D
  • Social media drives content creation costs to zero first on text, then images, then video
  • Machine learning models can now create text and images for zero marginal cost

In the very long run this points to a metaverse vision that is much less deterministic than your typical video game, yet much richer than what is generated on social media. Imagine environments that are not drawn by artists but rather created by AI: this not only increases the possibilities, but crucially, decreases the costs.

These AI challenges, I would add, apply to monetization as well: one of the outcomes of Apple’s App Tracking Transparency changes is that advertising needs to shift from a deterministic model to a probabilistic one; the companies with the most data and the greatest amount of computing resources are going to make that shift more quickly and effectively, and I expect Meta to be top of the list.

None of this matters, though, without engagement. Instagram is following the medium trend to video, and Meta’s resources give it the long-term advantage in AI; the big question is which service users choose to interact with. To put it another way, Facebook’s next two decades are coming into sharper focus than ever; it is how well it navigates the TikTok minefield over the next two years that will determine if that long-term vision becomes a reality.


Subscription Information

Member: Roland Tanglao
Email: rolandt@gmail.com

Manage your account

03 Feb 03:39

HubbuHubbuH frames on Tuesday

HubbuHubbuH frames on Tuesday + wool stuff on the site. A shorty this week.
View this email in your browser
SHOP   •   GRANT'S BLAHG   •   NEWS BLUG

Reminder - HubbuHubbuHs next Tuesday at noon

That's Kyle and Rachel on our annual Thanksgiving cruise to Ocean Beach last year. I don't have any fresh tandem pics, but hopefully we'll have some in time for the presale next week. We're going on a staff ride in five minutes and I'm riding the tandem with Spencer.

We've got 50 frames coming and once these are gone, that's a wrap on HubbuHubbuHs. All tandems present some logistical problems when it comes to storage, but if you're deep into bikes and you want to own one tandem in your lifetime, this is the one to get, even if you have to stash the frame for a couple years. More info on the presale and pictures here. They're going to be available to add to the cart next Tuesday at noon Pacific.

Wooly stuff - now possible to find on the site

Spencer alerted me that some of the wooly stuff I put on the site last year didn't get categorized, meaning, you could only find it by searching for it. He fixed it and they're all find-able on the site now.  James is wearing the WoolyWarm tee, which is based on regular fitting tee shirts we sent to the manufacturer. If you don't like the overly athletic cut of some of the stuff at REI but you want wool - get this one. I'm wearing it now and it adds just the right amount of coziness.

New Blahg

Grant has a new one up about how he rides nowadays, flat pedals vs. clipless, a book recommendation, and more. Read it all here.

Homers - coming in with HubbuHubbuHs

We've got a shipment of Homers coming in too, split between the gold above and the always classic Homer blue. We haven't decided whether to pre-sell them or just restock the site when they get here, but consider this a heads up if you'd like one of our flagship Country bikes.

The one above could qualify as a "Will Pick" build package. It's our usual stuff, but with wider than normal Noodle bars and a shorter than normal stem. The bars are as wide as the seattube is long, which looks slightly off-kilter in some of the photos but feels incredible.

The gold color continues to tempt me:
I'll get the Roaduno in this color.

and, what the heck, all y'all email readers can be privy to this:
That should be "new color, comma, Dark Gold." Dark gold/orange aren't new colors.

This is the latest schedule for 2023 with colors. The dates are when the frames are slated to ship from Taiwan, but if even one order gets pushed back it'll have a cascade effect on the others too. Frankly, some delays here and there might be good for us because we don't have a giant warehouse to store everything. I'm excited to see purple Appaloosas.

Web Specials

There's still a couple of web specials in the Garage Sale section of the site. I just dropped the price $200 on the Gus above. Hillibike builds generally come out in the high threes, so it's a good deal.

Bacon stock 2/2/23

bandannas

-lugs

-paisley

 

crane spring bell small

 

dotty wool gloves

 

fujiya adjustable wrench

goat gloves

 

hobson zingo

-cable cutters

-chain whip

-valve tool

 

jim cage

-big

-normal

 

monarch pedals

-pedal wings, silver

 

newbaum's cotton bar tape

 

pletscher touring kickstand

 

sheldon fender nuts

shifter incidentals 

 

shimano

-8s 11-34 cassette

-8s 11-40 cassette

-acera m3000 9s shifter

-acera t3000 rd

-altus m310 rd

-bb cable guide

-deore m592 shadow rd

-downtube cable stops

-dxr brake levers

 

teravail ehline tires

 

yokozuna 73mm salmon inserts

Miscellaneous

Friend and Hunqapillar rider Jeff designed some sweatshirts for Blue Lug. They'll be up on BL's site on the 4th. Get some friends together and pool the order to save on shipping!

Or spend your loot on this vintage tee featuring our former shipper Robert. Shout out to other shipping alumni Jenny and Vaughn, who also deserve their own shirts.

It's neat to see Tom Ritchey utilizing the same stream we do on Railroad grade 42 years ago. Adam on the left is a current Ritchey employee too.
Here's an email-reader-only coupon code: plug in the code "tampopo" at checkout for free domestic shipping for orders over $100. It'll expire next Thursday night. I saw Tampopo in theaters on Monday and it never fails to make me laugh. 8/10!

Have a good weekend,
-will
03 Feb 03:30

The Best Photo Editing Apps for Android and iOS

by Erin Roberts and Ben Keough
A smartphone displaying an Adobe Lightroom app editing screen and situated between a couple printed photos and a black camera.

Smartphone cameras have come a long way, but you probably still notice images that could benefit from a little editing help, whether that’s brightening a photo of your friends in a dark bar or subtly tweaking a stunning landscape.

After testing 10 mobile photo editing apps, we’re sure that Adobe Lightroom (Android, iPhone, iPad) is the best option for photographers of all skill levels. Lightroom is easily the most powerful editor we tested—it features a wide variety of adjustments that produced the best-looking photos in our tests. And thanks to its raw-file editing and cross-device syncing capabilities (with a paid subscription), it’s an app that you can grow with as you develop as a photographer.

03 Feb 03:24

Howard Jones-This Week’s Podcast

by bob
“What Is Love?,” “Things Can Only Get Better,” “No One Is to Blame”…we explore Howard Jones’s career from yesterday to today! https://podcasts.apple.com/us/podcast/howard-jones/id1316200737?i=1000597698286 https://music.amazon.com/podcasts/9ff4fb19-54d4-41ae-ae7a-8a6f8d3dafa8/episodes/f324ebb1-c2eb-4e76-97bb-fd2dce98d543/the-bob-lefsetz-podcast-howard-jones https://www.stitcher.com/show/the-bob-lefsetz-podcast/episode/howard-jones-211456528
03 Feb 03:24

The Practicality of Art in Software

by Federico Viticci

I’ve been following with great interest this series of articles by John Gruber (and Matt Birchler’s related story) about the chasm between iOS and Android apps. I have some thoughts since expanding my app knowledge beyond iOS and iPadOS is one of my goals for 2023.

About a month ago, during my holiday break, I purchased a Google Pixel 7 as a way to re-familiarize myself with Android.1 To say that I found the ecosystem worse than I remembered would be an understatement. It’s not just about the fact that – as Gruber and Birchler noted – most Android apps suck compared to their iOS counterparts; it’s that the entire OS lacks cohesiveness.

Google has been focusing on visual customization and Google Assistant-based improvements over the past few years, which I think is a reasonable strategy. And, objectively speaking, I do appreciate the greater freedom Android grants power users who care about aspects such as split-screen multitasking, total control over default apps, or theming. But the whole experience feels fragmented, and as a result crude, when it comes to using your phone with apps in everyday life. The general baseline of quality for design and expected system features is simply higher on iOS.

This is why every year in my annual iOS reviews I make a big deal about the latest design changes and developer APIs coming to iOS: the rising tide of Apple’s developer and design tools raises all boats on the iOS platform. When you’re using an iPhone months later with the new OS on it, everything feels consistent at a base level and then developers and designers can infuse their craftsmanship in the apps they make. By lacking that baseline and the developer craftsmanship, using apps on Android feels like installing free apps from GitHub repos. Sometimes they get the job done, and at some point they will receive updates, and good for you if you just want to use that kind of software. But personally, those apps don’t make me happy I spent $1000 on a phone. Visually and functionally, they are subpar.

I have a feeling that most critics of Gruber’s latest story on art in software will focus on this part, which is, in fact, my favorite takeaway from the piece:

Art is the operative word. Either you know that software can be art, and often should be, or you think what I’m talking about here is akin to astrology. One thing I learned long ago is that people who prioritize design, UI, and UX in the software they prefer can empathize with and understand the choices made by people who prioritize other factors (e.g. raw feature count, or the ability to tinker with their software at the system level, or software being free-of-charge). But it doesn’t work the other way: most people who prioritize other things can’t fathom why anyone cares deeply about design/UI/UX because they don’t perceive it. Thus they chalk up iOS and native Mac-app enthusiasm to being hypnotized by marketing, Pied Piper style.

As part of my platform explorations lately (you may have noticed I recently wrote about Apple’s apps for Windows), I’ve been thinking about this a lot: where do you draw the line when it comes to the artistic value of a piece of software versus the practicality of having to use software because you need to get your job done?

If your job depends on it, can you use something that isn’t necessarily well-designed – that doesn’t ”make your heart sing” – but that makes you more efficient and, ultimately, pay the bills? In simpler terms: what happens if you prefer the Apple ecosystem for UI and UX but you’re feeling hamstrung by it at the same time?

This has, of course, been on my mind lately because of iPadOS 16. I fundamentally dislike Stage Manager, and every time I sit down at my desk with my beautiful Studio Display and elegant Magic Trackpad and Keyboard accessories, I feel conflicted about an operating system that looks great, feels nice – much, much nicer than Windows 11 – but doesn’t work the way I want.

This is where, I believe, the conversation around art applied to software gets murkier. Historically (and I’m going to oversimplify here, but bear with me – this is a blog), the debate surrounding the role of “art” in society has been largely split between those who only perceive the aesthetic value of an artistic creation and those who believe a piece of art should also contain social, political, and economical commentary to push our species forward. You can go to the Louvre and just enjoy the Mona Lisa for what it is, or you can listen to American Idiot and find meaning in the lyrics. You can play Call of Duty and just have a good time, or understand how Celeste isn’t just about climbing a mountain.

In bringing this back to software, it’s evident that – again, historically – Apple doesn’t believe in art as a veneer to make something “look good”. Art – whereby “art” we refer to the human care behind the design of software – is intrinsically tied to the technology that powers the computer. It’s the intersection of technology and liberal arts: skew toward one side more than the other, and you risk of losing the balance many of us like about Apple. Art in Apple’s software isn’t some secret ingredient that can just be added at the end of the process, like a spice: great design is the process itself. Case in point: the Dynamic Island.

There is no doubt in my mind that the essence of iPadOS – how menus appear, lists scroll, buttons are tapped, heck, even what a pointer should look like – has been designed with more taste, thought, and care than anything in Windows 11. There is no checklist that can quantify when an interface “feels” nice. The iPadOS UI, particularly in tablet mode, feels nicer than any other tablet I’ve tried to date.

The problem is that an iPad, at least for people like me, isn’t supposed to be a companion to work that happens somewhere else. It is the work. And ultimately, I think it’s fair to demand efficiency from a machine that is supposed to make you productive. I feel this every time Stage Manager doesn’t let me place windows where I want on an external display; every time I can’t place more than four windows in a workspace; every time I can’t record podcasts like I can on a Mac; every time a website doesn’t work quite right like it does on a desktop; I feel it, over a decade into the iPad’s existence, when developers like Rogue Amoeba or Raycast can’t bring their software to iPadOS.

We can’t talk about art in software in a vacuum. As a computer maker or app developer, you have to strike that balance between the aspirational and the practical, the artistic and the functional – the kind of balance that, by and large, Apple is achieving on the Mac. Unfortunately, when it comes to iPadOS, I feel like Apple has been prioritizing the artistic aspect over the functional, and it’s not clear when that will be rectified.

So, you see, I’m struggling with this. Over the past year I’ve realized that the computer for me is a convertible: a tablet that can transform. The more I explore other platforms, the more I believe that iPadOS looks and feels nicer, but it’s also getting in the way of me being able to get my work done. Maybe this has been true for a while and Stage Manager was the proverbial straw that broke the camel’s back. You can’t separate art from the technology, but, at the end of the day, there’s also work to be done. Pragmatism kicks in. I’m conflicted, and I keep going back to this question:

What’s worse? Being begrudgingly productive or happily inefficient?


  1. The last time I used an Android phone, I believe it was a Nexus 5↩︎

Support MacStories and Unlock Extras

Founded in 2015, Club MacStories has delivered exclusive content every week for over six years.

In that time, members have enjoyed nearly 400 weekly and monthly newsletters packed with more of your favorite MacStories writing as well as Club-only podcasts, eBooks, discounts on apps, icons, and services. Join today, and you’ll get everything new that we publish every week, plus access to our entire archive of back issues and downloadable perks.

The Club expanded in 2021 with Club MacStories+ and Club Premier. Club MacStories+ members enjoy even more exclusive stories, a vibrant Discord community, a rotating roster of app discounts, and more. And, with Club Premier, you get everything we offer at every Club level plus an extended, ad-free version of our podcast AppStories that is delivered early each week in high-bitrate audio.

Join Now
03 Feb 03:23

Abbie Angie Velar

I’m driving a loaner car from the Jaguar Land-Rover dealership, a 2023 Range Rover Velar. I’m not in love with it. But it’s got a name: Abbie Angie.

What happened was, my lovely 2019 Jaguar I-Pace was in for an annual checkup (first time I’ve paid a penny for maintenance). On Friday when I picked it up, the dealership guy told me “Gonna be seeing you soon again, there’s this big recall, the problem affects less than 5% of I-Paces but we still have to do 19 hours of labor to tear it apart and put it back together.” On Monday morning I was one of the 5%, the car flashed inscrutable messages on the dashboard and declined to leave the carport.

That name

This thing is big, black, and square. It drives like a cow.

An Aberdeen Angus cow is big, black and square. And I have a personal connection: My second cousin Artis was Aberdeen Angus Queen at the Calgary Stampede sometime around 1970. Bet that wasn’t on your bingo card for today. Anyhow, Abbie Angie is short for Aberdeen Angus.

Aberdeen Angus cow in Gadental, Austria 2023 Range Rover Velar; palm tree

Above: Aberdeen Angus in Gadental, Austria.
Below: Range Rover Velar.
Gadental photo credit Böhringer Friedrich.

What it is

Apparently there are three Range Rovers in this line-up, of which the Velar is the medium option. It’s huge, so I shudder to think what the top of the line might be. It’s called a Crossover SUV, but then so is my I-Pace, and the two aren’t like each other in the slightest. It has a front hood the size of a small European country and I haven’t cared to ascertain the details about the planet-destroying dinosaur-burning apparatus beneath it.

Similarly, a cow has a bulky middle which contains four stomachs.

What’s good

I should preface my good/bad takes by noting that I’ve been driving an expensive and much-praised electric car for four years; perhaps the things about the Velar that annoy me are failings of fossil-fuel cars in general? Especially given that the Velar has been favorably reviewed by respectable car publications like Top Gear and Edmunds. Having said that…

It’s fast, sometimes. It can lurch away from a green light pretty quick, and if you floor it, once the acceleration kicks in (see below) you’ll find yourself breaking laws pretty soon.

It is a Land-Rover after all — comes with all sorts of controls to help you drive in deep ruts. heavy snow, and sand. Also it’s got tilt indicators and various four-wheel-drive adjustments. So I guess you could go off-road and damage the landscape.

The screen is really excellent; well-placed, with terrific production values and graphical elegance. The display when music is playing is really pleasing to the eyes. Also, it feels lightning fast, but don’t take my opinion too seriously because every reviewer of the Jag has panned the sluggish response of its touch-screens.

The Android Auto implementation is immensely better than in my Jag, where you have to plug in the USB and then wait for a while for AA to spin up. I only had to plug in once on Abbie Angie; now it works on Bluetooth and connects instantly as soon as I turn the car on.

There’s loads of room inside.

What’s bad

See note above about the cow. It lurches into motion with a big klunk.

It has a nice tight turning radius but taking a curve at any speed feels like, well, moo.

Like a good environmentally-sensitive fossil car should, it turns itself off when stopped. So when the light turns green you get one klunk as the engine starts and another when the transmission kicks in.

When you’re cruising along at moderate speed and want to go faster and step on the gas, all the elements under the hood hold a committee meeting to think about it, then eventually the car reacts. As anyone with a farm background knows, cattle can run surprisingly fast, it just takes them a while to get up to speed.

The seats just aren’t that comfortable; they come in multiple parts that don’t seem well-co-ordinated.

It’s loud, particularly when the acceleration committee passes the move-forward resolution, a snarly sort of roar that they tell me actually pleases fossil-car admirers. I guess I’m being unfair to those Aberdeen Anguses, who emit quite a melodious lowing sound.

I can’t use my mobile app to turn on the heater a few minutes in advance so I can get into a nice pre-warmed cab. I’m in Canada and it’s winter so this is a big deal.

It’s got a huge gas tank and runs it down pretty fast. Not gonna mention numbers, but stopping by the gas station is a very painful experience.

Who’s it for?

When we were considering the Jag, we went to a Jaguar/Land-Rover marketing event in 2018, described here, from which I quote:

We went in for an intro lecture, which was given by this charming dude who totally loved cars; early in his remarks he said “Our products are things that absolutely nobody really needs” … “We build these vehicles that can go everywhere and do everything, but I guess it’s OK that a lot of their owners don’t go anywhere or do anything”.

I can personally testify that on the streets of Vancouver, where I live, there are many Land-Rover products, each of them taking an unreasonable amount of space relative to the number of people inside.

Go electric

The biggest downside of going electric is you can’t go buy one and drive it home, demand exceeds supply.

But if you can get one, it’ll be agile (unlike a cow), smooth (unlike a cow), responsive (unlike a cow), cheap to run (unlike a cow), and emit no greenhouse gases (unlike a cow).

Can’t wait to get back in my Jaguar.

03 Feb 03:22

SOLVED! The Case of the Bing Ban Theory

This post is part of a series:

Today I bring good news: We solved the mystery! Bing now indexes my site and it shows up on DuckDuckGo… and it’s possible your site is showing up now too. What fixed it? Here’s what Microsoft/Bing told me a couple days after my post…

Thousands of small blogs were mistakenly marked as spam splogs. Wasn’t specific to yours.

Woah. It’s done. That’s it. I’m released from SEO jail. Thanos snapped. Temba, his arms wide. Jubilee.

This whole experience is a lot to digest, but I think there’s one important lesson here…

Blog your problems

That’s it. That’s the biggest lesson. Blog your problems. When in doubt, blog it out. In my experience, one of three outcomes is probably going to happen:

  1. You’ll solve your problem while writing out your problem (Best)
  2. Someone responds who knows how to solve your problem (Great)
  3. No one responds and you learn you have a unique problem (Less great, but novel)

I almost didn’t post about my Bing SEO issue because I didn’t want to come across as whiny and entitled, like those cringe Senators that grill Google employees on why their tweets get less likes. But this is another case where blogging my problems1 paid off in spades.

I got a lot of good SEO advice and tips from people, thank you. That said, I came away feeling like SEO still isn’t super scientific. “Use this tag” or “Don’t do this weird combination of HTML” SEO-tricks probably have an impact, but advice hits me like “Be sure to arrange the energy crystals on your homepage in a certain way.” There’s a lot of cargo culting2 when it comes to SEO, performing certain acts in hopes the SEO gods will return favorably.

If I did anything within my agency to help the situation, I believe the following three tasks helped:

  1. Sign up for Bing Webmaster Tools
  2. Verifying my site
  3. Clear out any crawl errors

Knowing what Bing sees and expects means I can provide that basic level of service in exchange for indexed links. This situation was a bit unique, with the “splog” ordeal, but Bing and I have a transactional relationship now instead of a ritualistic relationship hoping for divine providence. Thankfully, my well-being doesn’t live or die by search rankings.

Can we take a minute and imagine what it’d be like running a search engine‽ What an impossible task! Billions of websites and you’re constantly at war with spam farms, hostile state-sponsored disinformation campaigns, literal nazis, literal pedophiles, and literal terrorists. My niche brand of “emo tech” content is far from any of that, but the idea my site could appear algorithmically like a spam site seems in the realm of possibility. I’m impressed Bing could even fix the issue.

It truly is the Year of the Personal Website

One final thought. Amidst the background of imploding flagship Web 2.0 content silos, the importance of having your own small blog feels paramount. The Verge asked to Bring back personal blogging. Matthias Ott called it “The Year of the Personal Website”. A smile comes across my face every day as I see new sites born, fresh redesigns come to life, and dormant bloggers resurface.

I want more personal sites to exist in the world. If running your own blog is too much, you can still bring back blogging by starting a blogging co-op with your friends (that’s how I started). You can also write for blogs that pay money. Not because there can be money in blogging, but because there’s no replacement for using language to connect one human being to another. Let’s get back to the original slogal of the World Wide Web, “Let’s share what we know”.

In all the shifting sands, mass layoffs, singularities, and crumbling silos; it might be more important than ever to invest time to establish your voice and have a hub for yourself.

And now (hopefully) those blogs will show up on DuckDuckGo.

  1. I want to fully acknowledge that I have a lot of privilege when it comes to blogging. Beyond the obvious like race and gender, I’ve been lucky to have 17+ uninterrupted years of doing professional web development. I do work my ass off, but I have a work situation that lets me spend cycles on blogging, podcasting, and speaking at conferences and that’s allowed me to build an audience over time, so my reach is probably greater than most.

  2. The term “cargo cult” is a bit problematic, because it implies “civilized” nations are better. If a giant, noisy, metal bird I had never seen before dropped a crate of supplies on my beach; you bet your ass I’d spend time figuring out how to make that happen again.

03 Feb 03:22

Run Python code in a WebAssembly sandbox

by Simon Willison

I've been trying to figure this out for ages. Tim Bart responded to my call for help on Hacker News with this extremely useful code example showing how to run Python code in WebAssembly inside Python, using wasmtime-py and the new Python WASM build released by VMware Wasm Labs.

First step is to download the VMWare build:

cd /tmp
mkdir wasm
cd wasm
wget https://github.com/vmware-labs/webassembly-language-runtimes/releases/download/python%2F3.11.1%2B20230118-f23f3f3/python-aio-3.11.1.zip
unzip python-aio-3.11.1.zip

Create a virtual environment and install wasmtime:

python3 -m venv venv
source venv/bin/activate
pip install wasmtime

Here's my version of Tim's code, slightly modified to provide a run_python_code() function:

from wasmtime import Config, Engine, Linker, Module, Store, WasiConfig
import os
import tempfile


class Result:
    def __init__(self, result, mem_size, data_len, consumed):
        self.result = result
        self.mem_size = mem_size
        self.data_len = data_len
        self.consumed = consumed

    def __str__(self):
        return f"""\
result:

{self.result}

mem size pages of 64kb: {self.mem_size}
data length: {self.data_len}
fuel consumed: {self.consumed}
"""


def run_python_code(code, fuel=400_000_000):
    engine_cfg = Config()
    engine_cfg.consume_fuel = True
    engine_cfg.cache = True

    linker = Linker(Engine(engine_cfg))
    linker.define_wasi()

    python_module = Module.from_file(linker.engine, "bin/python-3.11.1.wasm")

    config = WasiConfig()

    config.argv = ("python", "-c", code)
    config.preopen_dir(".", "/")

    with tempfile.TemporaryDirectory() as chroot:
        out_log = os.path.join(chroot, "out.log")
        err_log = os.path.join(chroot, "err.log")
        config.stdout_file = out_log
        config.stderr_file = err_log

        store = Store(linker.engine)

        # Limits how many instructions can be executed:
        store.add_fuel(fuel)
        store.set_wasi(config)
        instance = linker.instantiate(store, python_module)

        # _start is the default wasi main function
        start = instance.exports(store)["_start"]

        mem = instance.exports(store)["memory"]

        try:
            start(store)
        except Exception as e:
            print(e)
            raise

        with open(out_log) as f:
            result = f.read()

        return Result(
            result, mem.size(store), mem.data_len(store), store.fuel_consumed()
        )


if __name__ == "__main__":
    for code in (
        "print('hello world')",
        "for i in range(10000): print('hello world')",
        "print('hello world')",
        "for i in range(100000): print('hello world')",
        "import sqlite3; print(sqlite3.connect(':memory:').execute('select sqlite_version()').fetchone()[0])"
    ):
        try:
            print(code)
            print("====")
            print(run_python_code(code))
        except Exception as e:
            print(e)

Running this produces the following output (truncated), which illustrates what happens to things that run out of "fuel" (which I set to default to 400,000,000 units):

wasmtime % pipenv run python demo.py 
print('hello world')
====
result:

hello world


mem size pages of 64kb: 160
data length: 10485760
fuel consumed: 230790953

for i in range(10000): print('hello world')
====
error while executing at wasm backtrace:
    0: 0xb02e6 - <unknown>!<wasm function 1505>
    1: 0xb2967 - <unknown>!<wasm function 1536>
    2: 0x1b9221 - <unknown>!<wasm function 3563>
    3: 0x1ae61a - <unknown>!<wasm function 3558>
    4: 0x49be2a - <unknown>!<wasm function 10123>
note: using the `WASMTIME_BACKTRACE_DETAILS=1` environment variable may show more debugging information

Caused by:
    wasm trap: all fuel consumed by WebAssembly
error while executing at wasm backtrace:
    0: 0xb02e6 - <unknown>!<wasm function 1505>
    1: 0xb2967 - <unknown>!<wasm function 1536>
    2: 0x1b9221 - <unknown>!<wasm function 3563>
    3: 0x1ae61a - <unknown>!<wasm function 3558>
    4: 0x49be2a - <unknown>!<wasm function 10123>
note: using the `WASMTIME_BACKTRACE_DETAILS=1` environment variable may show more debugging information

Caused by:
    wasm trap: all fuel consumed by WebAssembly
print('hello world')
====
result:

hello world


mem size pages of 64kb: 160
data length: 10485760
fuel consumed: 230794521

for i in range(100000): print('hello world')
====
error while executing at wasm backtrace:
    0: 0x7d7f - <unknown>!<wasm function 72>
...
   17: 0x1c52e9 - <unknown>!<wasm function 3618>
   18: 0x49b7c9 - <unknown>!<wasm function 10123>
note: using the `WASMTIME_BACKTRACE_DETAILS=1` environment variable may show more debugging information

Caused by:
    wasm trap: all fuel consumed by WebAssembly
error while executing at wasm backtrace:
    0: 0x7d7f - <unknown>!<wasm function 72>
...
   16: 0x1c53c2 - <unknown>!<wasm function 3619>
   17: 0x1c52e9 - <unknown>!<wasm function 3618>
   18: 0x49b7c9 - <unknown>!<wasm function 10123>
note: using the `WASMTIME_BACKTRACE_DETAILS=1` environment variable may show more debugging information

Caused by:
    wasm trap: all fuel consumed by WebAssembly
import sqlite3; print(sqlite3.connect(':memory:').execute('select sqlite_version()').fetchone()[0])
====
result:

3.39.2


mem size pages of 64kb: 160
data length: 10485760
fuel consumed: 381954995

That last code line - import sqlite3; print(sqlite3.connect(':memory:').execute('select sqlite_version()').fetchone()[0]) - produces the following output:

3.39.2

This confirms that there's a WebAssembly build of SQLite bundled in with that Python WASM package, and it's a relatively recent version.

03 Feb 03:22

I’m Now a Full-Time Professional Open Source Maintainer

I’m Now a Full-Time Professional Open Source Maintainer

Filippo Valsorda, previously a member of the Go team at Google, is now independent and making a full-time living as a maintainer of various open source projects relating to Go. He's managing to pull in an amount "equivalent to my Google total compensation package", which is a huge achievement: the greatest cost involved in independent open source is usually the opportunity cost of turning down a big tech salary. He's doing this through a high touch retainer model, where six client companies pay him to keep working on his projects and also provide them with varying amounts of expert consulting.

03 Feb 03:21

Pluralistic: Netflix wants to chop down your family tree (02 Feb 2023)

by Cory Doctorow
mkalus shared this story from Pluralistic: Daily links from Cory Doctorow.


Today's links



A Victorian family tree template populated by tintypes of old-timey people. In the foreground stands a menacing, chainsaw-wielding figure, his face obscured by a hoodie. The blade of the chainsaw is poised to chop down the family tree. A Netflix 'N' logo has been superimposed over the man's face.

Netflix wants to chop down your family tree (permalink)

Netflix has unveiled the details of its new anti-password-sharing policy, detailing a suite of complex gymnastics that customers will be expected to undergo if their living arrangements trigger Netflix's automated enforcement mechanisms:

https://thestreamable.com/news/confirmed-netflix-unveils-first-details-of-new-anti-password-sharing-measures

If you'd like an essay-formatted version of this post to read or share, here's a link to it on pluralistic.net, my surveillance-free, ad-free, tracker-free blog:

https://pluralistic.net/2023/02/02/nonbinary-families/#red-envelopes

Netflix says that its new policy allows members of the same "household" to share an account. This policy comes with an assumption: that there is a commonly understood, universal meaning of "household," and that software can determine who is and is not a member of your household.

This is a very old corporate delusion in the world of technology. In the early 2000s, I spent years trying to bring some balance to an effort at DVB, whose digital television standards are used in most of the world (but not the USA) when they rolled out CPCM, a DRM system that was supposed to limit video-sharing to a single household.

Their term of art for this was the "authorized domain": a software-defined family unit whose borders were privately negotiated by corporate executives from media companies, broadcasters, tech and consumer electronics companies in closed-door sessions all around the world, with no public minutes or proceedings.

https://onezero.medium.com/the-internet-heist-part-iii-8561f6d5a4dc

These guys (they were nearly all guys) were proud of how much "flexibility" they'd built into their definition of "household." For example, if you owned a houseboat, or a luxury car with seatback displays, or a summer villa in another country, the Authorized Domain would be able to figure out how to get the video onto all those screens.

But what about other kinds of families? I suggested that one of our test cases should be a family based in Manila: where the dad travels to remote provinces to do agricultural labor; the daughter is a nanny in California; and the son is doing construction work in the UAE. This suggestion was roundly rejected as an "edge case."

Of course, this isn't an edge case. There are orders of magnitude more people whose family looks like this than there are people whose family owns a villa in another country. Owning a houseboat or a luxury car makes you an outlier. Having an itinerant agricultural breadwinner in your family does not.

But everyone who is in the room when a cartel draws up a standard definition of what constitutes a household is almost certainly drawn from a pool that is more likely to have a summer villa than a child doing domestic work or construction labor half a world away. These weirdos, so dissimilar from the global majority, get to define the boxes that computers will shove the rest of the world into. If your family doesn't look like their family, that's tough: "Computer says no."

One day at a CPCM meeting, we got to talking about the problem of "content laundering" and how the way to prevent it would be to put limits on how often someone could leave a household and join another one. No one, they argued, would ever have to change households every week.

I put my hand up and said, "What about a child whose divorced parents share custody of her? She's absolutely going to change households every week." They thought about it for a moment, then the rep from a giant IT company that had recently been convicted of criminal antitrust violations said, "Oh, we can solve that: we'll give her a toll-free number to call when she gets locked out of her account."

That was the solution they went with. If you are a child coping with the dissolution of your parents' marriage, you will have the obligation to call up a media company every month – or more often – and explain that Mummy and Daddy don't love each other any more, but can I please have my TV back?

I never forgot that day. I even wrote a science fiction story about it called (what else?) "Authorized Domain":

https://craphound.com/news/2011/10/31/authorised-domain/

I think everyone understood that this was an absurd "solution," but they had already decided that they were going to complete the seemingly straightforward business of defining a category like "household" using software, and once that train left the station, nothing was going to stop it.

This is a recurring form of techno-hubris: the idea that baseline concepts like "family" have crisp definitions and that any exceptions are outliers that would never swallow the rule. It's such a common misstep that there's a whole genre called "Falsehoods Programmers Believe About ______":

https://github.com/kdeldycke/awesome-falsehood

In that list: names, time, currency, birthdays, timezones, email addresses, national borders, nations, biometrics, gender, language, alphabets, phone numbers, addresses, systems of measurement, and, of course, families. These categories are touchstones in our everyday life, and we think we know what they mean – but then we try to define them, and the list of exceptions spirals out into a hairy, fractal infinity.

Historically, these fuzzy categorical edges didn't matter so much, because they were usually interpreted by humans using common sense. My grandfather was born "Avrom Doctorovitch" (or at least, that's one way to transliterate his name, which was spelled in a different alphabet, but which was also transliterating his first name from yet another alphabet). When he came to Canada as a refugee, his surname was anglicized to "Doctorow." Other cousins are "Doctorov," "Doctoroff," and "Doktorovitch."

Naturally, his first name could have been "Abraham" or "Abe," but his first employer (a fellow Eastern European emigre) decided that was too ethnic and in sincere effort to help him fit in, he called my grandfather "Bill." When my grandfather attained citizenship, his papers read "Abraham William Doctorow." He went by "Abe," "Billy," "Bill," "William," "Abraham" and "Avrom."

Practically, it didn't matter that variations on all of these appeared on various forms of ID, contracts, and paperwork. His reparations check from the German government had a different variation from the name on the papers he used to open his bank account, but the bank still let him deposit it.

All of my relatives from his generation have more than one name. Another grandfather of mine was born "Aleksander," and called "Sasha" by friends, but had his name changed to "Seymour" when he got to Canada. His ID was also a mismatched grab-bag of variations on that theme.

None of this mattered to him, either. Airlines would sell him tickets and border guards would stamp his passport and rental agencies would let him drive away in cars despite the minor variations on all his ID.

But after 9/11, all that changed, for everyone who had blithely trundled along with semi-matching names across their official papers and database entries. Suddenly, it was "computer says no" everywhere you turned, unless everything matched perfectly. There was a global rush for legal name-changes after 9/11 – not because people changed their names, but because people needed to perform the bureaucratic ritual necessary to have the name they'd used all along be recognized in these new, brittle, ambiguity-incinerating machines.

For important categories, ambiguity is a feature, not a bug. The fact that you can write anything on an envelope (including a direction to deliver the letter to the granny flat over the garage, not the front door) means that we don't have to define "address" – we can leave it usefully hairy around the edges.

Once the database schema is formalized, then "address" gets defined too – the number of lines it can have, the number of characters each line can have, the kinds of characters and even words (woe betide anyone who lives in Scunthorpe).

If you have a "real" address, a "real" name, a "real" date of birth, all of this might seem distant to you. These "edge" cases – seasonal agricultural workers, refugees with randomly assigned "English" names – are very far from your experience.

That's true – for now (but not forever). The "Shitty Technology Adoption Curve" describes the process by which abusive technologies work their way up the privilege gradient. Every bad technological idea is first rolled out on poor people, refugees, prisoners, kids, mental patients and other people who can't push back.

Their bodies are used to sand the rough edges and sharp corners off the technology, to normalize it so that it can climb up through the social ranks, imposed on people with more and more power and influence. 20 years ago, if you ate your dinner under an always-on #CCTV, it was because you were in a supermax prison. Today, it's because you bought a premium home surveillance system from Google, Amazon or Apple.

https://pluralistic.net/2021/07/29/impunity-corrodes/#arise-ye-prisoners

The Netflix anti-sharing tools are designed for rich people. If you travel for business and stay in the kind of hotel where the TV has its own Netflix client that you can plug your username and password into, Netflix will give you a seven-day temporary code to use.

But for the most hardcore road-warriors, Netflix has thin gruel. Unless you connect to your home wifi network every 31 days and stream a show, Netflix will lock out your devices. Once blocked, you have to "contact Netflix" (laughs in Big Tech customer service).

Why is Netflix putting the screws to its customers? It's part of the enshittification cycle, where platform companies first allocate surpluses to their customers, luring them in and using them as bait for business customers. Once they turn up, the companies reallocate surpluses to businesses, lavishing them with low commissions and lots of revenue opportunities. And once they're locked in, the company starts to claw back the surpluses for itself.

https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys

Remember when Netflix was in the business of mailing red envelopes full of DVDs around the country? That was allocating surpluses to users. The movie companies hated this, viewed it as theft – a proposition that was at least as valid as Netflix's complaints about password sharing, but every pirate wants to be an admiral, and when Netflix did it to the studios, that was "progress," but when you do it to Netflix, that's theft.

Then, once Netflix had users locked in and migrated to the web (and later, apps), it shifted surpluses to studios, paying fat licensing fees to stream their movies and connect them to a huge audience.

Finally, once the studios were locked in, Netflix started to harvest the surplus for its shareholders: raising prices, lowering streaming rates, knocking off other studios' best performing shows with in-house clones, etc. Users' surpluses are also on the menu: the password "sharing" that let you define a household according to your family's own idiosyncratic contours is unilaterally abolished in a quest to punish feckless Gen Z kids for buying avocado toast instead of their own Netflix subscriptions.

Netflix was able to ignore the studios' outraged howls when it built a business by nonconsenually distributing their products in red envelopes. But now that Netflix has come for your family, don't even think about giving Netfix some of what it gave to the MPAA.

As a technical matter, it's not really that hard to modify Netflix's app so that every stream you pull seems to come from your house, no matter where you are. But doing so would require reverse-engineering Netflix's app, and that would violate Section 1201 of the DMCA, the CFAA, and eleventy-seven other horrible laws. Netflix's lawyers would nuke you until the rubble bounced.

When Netflix was getting started, it could freely interoperate with the DVDs that the studios had put on the market. It could repurpose those DVDs in ways that the studios strenuously objected to. In other words, Netfix used adversarial interoperability (AKA Competitive Compatibility or ComCom) to launch its business:

https://www.eff.org/deeplinks/2019/10/adversarial-interoperability

Today, Netflix is on the vanguard of the war to abolish adversarial interop. They helped lead the charge to pervert W3C web-standards, creating a DRM video standard called EME that made it a crime to build a full-featured browser without getting permission from media companies and restricting its functionality to their specifications:

https://blog.samuelmaddock.com/posts/the-end-of-indie-web-browsers/

When they used adversarial interoperability to build a multi-billion-dollar global company using the movie studios' products in ways the studios hated, that was progress. When you define "family" in ways that makes Netflix less money, that's felony contempt of business model.


Hey look at this (permalink)



A Wayback Machine banner.

This day in history (permalink)

#15yrsago Fine news https://memex.craphound.com/2008/02/02/fine-news/

#10yrsago Law and Little Brother https://lawandthemultiverse.com/2013/02/01/little-brother-part-1/

#5yrsag Million-dollar lotto winner finally can afford a doctor visit, discovers he has terminal cancer and promptly dies https://www.newsweek.com/new-york-lottery-winner-dies-weeks-after-scooping-jackpot-796957

#5yrsago Hero bicyclist narrows streets near FCC and offers drivers $5 “Priority Access” so drivers can “choose the plan that best suits their needs” https://thenextweb.com/news/net-neutrality-activist-throttles-street-outside-fcc-building

#5yrsago All’s Faire in Middle School, a wonderful graphic novel about misfits, middle school and the middle ages https://memex.craphound.com/2018/02/02/alls-faire-in-middle-school-a-wonderful-graphic-novel-about-misfits-middle-school-and-the-middle-ages/

#5yrsago Announcing the Catalog of Missing Devices: the amazing stuff the DMCA has strangled in its cradle https://www.eff.org/missing-devices

#1yrago How noncompetes shackle workers to dead-end jobs https://pluralistic.net/2022/02/02/its-the-economy-stupid/#neofeudal

#1yrago To fight inflation, fight monopolies https://pluralistic.net/2022/02/02/its-the-economy-stupid/#overinflated



Colophon (permalink)

Today's top sources: Rebecca Valentine (https://twitter.com/defnotbeka).

Currently writing:

  • Picks and Shovels, a Martin Hench noir thriller about the heroic era of the PC. Yesterday's progress: 549 words (101253 words total)
  • The Bezzle, a Martin Hench noir thriller novel about the prison-tech industry. FIRST DRAFT COMPLETE, WAITING FOR EDITORIAL REVIEW

  • A Little Brother short story about DIY insulin PLANNING

  • Vigilant, Little Brother short story about remote invigilation. ON SUBMISSION

  • Moral Hazard, a short story for MIT Tech Review's 12 Tomorrows. FIRST DRAFT COMPLETE, ACCEPTED FOR PUBLICATION

  • Spill, a Little Brother short story about pipeline protests. ON SUBMISSION

Currently reading: Analogia by George Dyson.

Latest podcast: Social Quitting https://craphound.com/news/2023/01/22/social-quitting/

Upcoming appearances:

Recent appearances:

Latest books:

Upcoming books:

  • Red Team Blues: "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books, April 2023
  • The Internet Con: A nonfiction book about interoperability and Big Tech, Verso, September 2023

  • The Lost Cause: a post-Green New Deal eco-topian novel about truth and reconciliation with white nationalist militias, Tor Books, October 2023


This work licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.

https://creativecommons.org/licenses/by/4.0/

Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.


How to get Pluralistic:

Blog (no ads, tracking, or data-collection):

Pluralistic.net

Newsletter (no ads, tracking, or data-collection):

https://pluralistic.net/plura-list

Mastodon (no ads, tracking, or data-collection):

https://mamot.fr/@pluralistic

Medium (no ads, paywalled):

https://doctorow.medium.com/

(Latest Medium column: "'Conversational' AI Is Really Bad At Conversations https://doctorow.medium.com/conversational-ai-is-really-bad-at-conversations-18a79ac4a83a)

Twitter (mass-scale, unrestricted, third-party surveillance and advertising):

https://twitter.com/doctorow

Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):

https://mostlysignssomeportents.tumblr.com/tagged/pluralistic

"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla

03 Feb 03:12

No, mRNA vaccines don't cause strokes

by Debunk the Funk with Dr. Wilson
mkalus shared this story from Debunk the Funk with Dr. Wilson's YouTube Videos.

From: Debunk the Funk with Dr. Wilson
Duration: 12:54

Patreon: https://www.patreon.com/DrWilsonDebunks

I rarely read YouTube comments these days, so if you want me to see your comment, here is how you can contact me directly and I will be glad to respond to you when I can: Email: dr.wilson.debunk@gmail.com
Facebook (direct message): https://www.facebook.com/DocWilsonDebunks/

Where else to follow me (I don’t always check my inboxes on these platforms):
Twitter: @Debunk_The_Funk
Instagram: debunk_the_funk

CDC’s announcement on the v-safe safety signal: https://www.cdc.gov/coronavirus/2019-ncov/vaccines/safety/bivalent-boosters.html

The document Steve fails to understand: https://phmpt.org/wp-content/uploads/2022/04/reissue_5.3.6-postmarketing-experience.pdf

Steve gets the number of vaccinees during the period of surveillance wrong and falsely claims the denominator is hidden. Here are the cumulative persons vaccinated: https://ourworldindata.org/covid-vaccinations

Stroke fact sheet: https://www.world-stroke.org/assets/downloads/WSO_Global_Stroke_Fact_Sheet.pdf

Preprint finding no increased risk of stroke following a COVID booster: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4336133

Song used for outro: Funky Party by Lobo Loco

03 Feb 03:10

Quoting Ludwig Stumpp

Just used prompt injection to read out the secret OpenAI API key of a very well known GPT-3 application.

In essence, whenever parts of the returned response from GPT-3 is executed directly, e.g. using eval() in Python, malicious user can basically execute arbitrary code

Ludwig Stumpp