Shared posts

20 Nov 04:03

My moment of glory on Twitter

by skullsinthestars

The destruction of Twitter at such a fast rate that you can pretty much watch it collapse in real time is a bit melancholy for me. Though I’m happy to see Billionaire Baby demonstrate clearly his level of actual competence, I’m sad to be losing a platform that I met so many good friends on and had so many positive memories on.

Of course, not every memory is a positive one, and that’s sort of the point of this next story, which is kind of my greatest moment of glory on the platform. I took on one of the worst internet trolls of the time, confused the hell out of her, and not only walked away without a scratch, but with a laugh.

It’s been a few years so it’s about time that this story be told.

So let me set the scene. The story begins in June of 2015. The prominent British biochemist Tim Hunt was participating in the World Conference of Science Journalists in Seoul, and gave remarks at a lunch for women journalists and scientists. His remarks, as reported later, were not good:

It’s strange that such a chauvinist monster like me has been asked to speak to women scientists. Let me tell you about my trouble with girls. Three things happen when they are in the lab: you fall in love with them, they fall in love with you, and when you criticise them they cry. Perhaps we should make separate labs for boys and girls? Now, seriously, I’m impressed by the economic development of Korea. And women scientists played, without a doubt, an important role in it. Science needs women, and you should do science, despite all the obstacles, and despite monsters like me.

Now Hunt argued that his remarks were intended to be a joke, and not taken seriously, but they were definitely inappropriate for a speech in front of a room full of women professionals, especially ones in a field that is well known to treat women very poorly. Furthermore, he defended his comments for a few days after he made them, until the heat really started to turn on.The remarks were pretty widely condemned by scientists and science communicators, with some infamous unsurprising exceptions, and Hunt ended up resigning from a number of prestigious positions. Twitter was filled with people criticizing Tim Hunt for his comments, though it is important to note that Hunt himself was not and never was on Twitter.

Enter Louise Mensch, serial con artist and shameless opportunist. Most people are probably familiar with her more recent grift, when she found a degree of success as a member of the “anti-Trump” crew, promoting unverified and nonsensical conspiracy theories about Trump’s connections to Russia. (There probably *are* connections to Russia, but she published any weird garbage she heard, for clicks.) She was also a briefly a member of the UK Parliament from 2010-2012, before moving to the US with her new husband to pursue a media career.

She quickly became known for being a right-wing cyberbully, siccing her large following on anyone she felt deserved her ire (and would give her the most attention). In the Tim Hunt controversy, she portrayed herself as the defender of Tim Hunt’s honor, and launched dogpiling attacks on anyone who happened to mention the name “Tim Hunt” on Twitter. She would clearly search for his name and launch attacks on anyone who mentioned him.

I had quite a few friends who were targeted by her, and most of them had to lock their accounts during the onslaught. It in fact seemed like everyone I knew in the science communication community was attacked at some point or another.

In October of 2015, it was finally my turn.

As it happens, I was in San Jose, California to attend the annual Frontiers in Optics meeting. The confrontation started as I was back at my hotel room, relaxing for a bit before the meeting reception in the evening. I saw a tweet from my friend about the Tim Hunt situation and replied, not thinking much of it. (Note how I used a dot in front of her name to make it a public reply, as we did back in the day.) Thus began the event:

Note that she used a quote tweet, so that the post is visible to all her followers, and she also used a hashtag, so that anyone could find her post and join in on the harassment. Her goal was to troll me into a response, and make me reflexively defend myself and my science and argue with her, to give her something for her brigade to hammer me on.

However, I had prepared in advance.

When the Tim Hunt stuff started, I realized that there was a possibility that I might get attacked my Mensch herself; what, I asked myself, would be the best response? This is what I came up with:

As I was typing my response, Mensch had already continued a thread to yell at me some more. And I had more responses.

Weirdly, Mensch seemed convinced that nobody was allowed to be offended by Tim Hunt’s comments unless they had heard them in person. Of course, this was also something she wanted to draw me into an argument on. And added more insults to try and upset me by mocking my cats.

Finally she caught up with my “Hi I’m Dr. SkySkull” tweet:

At this point, a number of my twitter friends were commenting on this thread. The comments were largely along the lines of: “I have no idea what is happening here but I can’t look away.”

Mensch just continued to try to get a reaction out of me:

Can you see what I was doing at this point? Mensch’s entire schtick was to push people into a defensive stance, to get them to react to her attacks, probing for weak points that she could repeatedly hammer them on. So I not only gave her any ammunition, I didn’t even bother to respond directly to anything she said. I just shouted non-sequiturs at her in all caps.

She tried responding directly to my tweet about “science” to goad me.

At this point, I was laughing my ass off. I was just sitting there, waiting to see what she would tweet at me next, and I was having a great time thinking up new bullshit to reply.

You can see her getting a little desperate, returning to her notion that one cannot be offended by things that do not happen directly in front of you. And she kept trying, the poor dear. She was like a one-hit wonder just playing the same hit song over and over again, hoping for greatness to return.

Then, instead of doing a public “dot-reply,” she tried to bring her followers into the attack, by simply mentioning me in a tweet attacking me. This was also one of my favorite replies:

When I was in grad school, my classmate Eliza and I used to play the “non-sequitur game” that we made up. The point was to have a conversation with each other in nothing but non-sequiturs. The first person who replies with something even vaguely related to the previous comment was the loser. This game prepared me well for dealing with Mensch.

She made one final desperate attempt to provoke me for being a cat parent. I feel that my comments got better as the conversation went on.

She gave up for a few minutes, but clearly was unhappy that she hadn’t gotten the reaction she wanted, so she tried again to stir up her followers against me. I again had a response prepared.

Notice the little smiley face and the hashtag “TimHunting.” That was one last attempt to get people to pile on. That was the last I heard of Louise.

As for her followers? I had two people tweet at me, trying to goad me, and I literally just ignored them. And then? Nothing. I didn’t bother locking my account, I didn’t bother blocking Mensch. I didn’t have to.

I went to the Frontiers in Optics Reception, had a few glasses of wine, and relaxed and enjoyed myself. I didn’t even need to look at my phone, though I did just to post one more tweet.

You may wonder what the point of all this was. Mensch prided herself on her ability to intimidate and bully people. I deprived her completely of oxygen. I not only ignored her arguments, I made it very clear with my nonsensical statements that I was not giving her the one thing she probably wanted the most, some of the internet’s most valuable currency: respect. You can almost see in her posts the slow realization that I’m just completely mocking her, and that I’m mocking her for the entertainment of all my followers.

Honestly, I didn’t see much in the way of Mensch and the Tim Hunt affair after that. I can’t say for certain, but I like to think I took the wind out of her sails and she looked ahead to her next grift. And maybe get a little payback for all my friends who were attacked by her.

There were other prominent famous internet trolls who liked to launch attacks on people with their followers. I actually came up with different mocking approaches for each of them, but never needed to use them. Fortunately, Twitter started to crack down on organized harassment campaigns, and though they didn’t go away completely, the frequency of them went down.

This story combines the best and the worst of Twitter all at once. I hope you found it entertaining! Raising a glass to Twitter, for however long it lasts.

20 Nov 04:01

Nothing but Blackened Teeth, by Cassandra Khaw

by skullsinthestars

Now that I’m back in the book reading habit, I’m also back in the book impulse-buying habit. A few weeks back, I happened to see Cassandra Khaw’s Nothing but Blackened Teeth (2021), on the shelf, and was intrigued.

It is a very short book, really a novella, of 124 pages. That makes it a quick read, and I finished it over the course of two nights.

The premise will summarize why it caught my attention in the first place: a group of friends arrange to rent out a Heian-era mansion in Japan for the wedding of two of them. Though the day starts pleasant enough, there is history between members of the group, and tensions start to build quickly.

Those tensions are nothing, however, compared to the threat that awaits them all. One of them had heard stories that a jilted bride had been buried in the basement of the house, and that every year a maiden had been sacrificed to keep her company. That bride does not rest, however, and she is looking for more companions…

Nothing but Blackened Teeth is a very fast-paced story. It is narrated from the point of view of Cat, one of the guests and a woman with a history of mental illness. Cat is very aware of horror story tropes, and she is constantly pointing out where her companions are making all the wrong choices. It ends up being very meta, in a Scream-movie sense.

My one criticism is that I kinda wish the novella spent a little more time with the characters before everything goes to hell. Their backstories are well thought out and interconnected, but it feels like the main threat manifests just as we’re really digging into their conflicts. But part of the charm of Nothing but Blackened Teeth is that it moves along at a rapid pace, giving it the feel of a TV horror anthology episode.

The supernatural horror is well done, and there are enough twists and turns in its short run to keep readers guessing. Overall, Nothing but Blackened Teeth is a fun creepy story that will keep you entertained for a few nights. I’m curious to look into more of Cassandra Khaw’s work now…

19 Nov 16:37

New Visualization in R Course, and Other Updates

by Nathan Yau

I have two course-related updates on FlowingData. First, there’s a new course on visualizing data with R. Second, I updated the Visualization for Clarity course so that you can more easily get feedback from me on how to make a better chart.

Members get instant access to the new courses. If you’re not a member yet, you can find information here.

If you’re already a member (thank you), log in and you can have at it.

Visualization in R

The first version that I wrote several years ago was an effort to consolidate my visualization tutorials so that those new to charts in R had a more step-by-step way to follow along.

This second version of the course is completely rewritten with new examples, exercises, quizzes, and resources all in one place. So it should be easier to follow along. You can also keep track of what you’ve completed and pick up where you left off. I hope it’s helpful.

Find more details on the Visualization in R course here.

Improving with feedback

I have another course, Visualization for Clarity, which is tool-independent. It’s more focused on making data graphics that help people understand data better than it is on the tools to work with data.

There are a few new wrinkles to this course. There are more exercises and resources. There are quizzes.

But the best part is that there’s a final project that you can send to me. If you send your project by November 30, 2022, I’ll send back comments on how I might make it better (or how great the work is).

When I was new to visualization, I made charts and stared at them for a while. I knew there was something to improve, but I wasn’t sure what it was, so I’d tinker a lot. Tinkering is time well-spent, but feedback from others helps with less random tinkering. I hope it’s helpful.

Find more details on Visualization for Clarity here.

Become a member

FlowingData is proudly 100% member-supported, and I’d like to keep it that way forever. If you’re not a member, I’d appreciate your support. You can see membership perks here.

Tags: clarity, course, R

19 Nov 16:37

Debirdify

Manuel Eberl, Nov 15, 2022
Icon

Today's Mastodon update with news and items from the great migration. Debirdify: According to the website, "Debirdify uses the Twitter API to look through profile information for things that look like Fediverse account names." Also: Dave Lane from OERu offers a comprehensive tutorial on installing a Mastodon server using Docker Compose (I have to try this one!). Also, Brian Keegan uses an interesting analogy to explain Mastodon: "If you think of the fediverse as a university, each Mastodon server is like a dorm." Also: using Keyoxide as a verification service for Mastodon (warning: not simple). Also, Jon Udell creates a prototype Mastodon reader using Steampipe (warning: not simple). Also: Takahē: A New ActivityPub Server. Python, with Joomla. Also: Antichirp "allows you to load server blocklists from larger instances so you don't have to do all the moderating yourself." Finally, Clive Thompson describes "how Mastodon is designed to be antiviral" (may throw up a stupid Medium spamwall).

Web: [Direct Link] [This Post]
19 Nov 16:37

Data Vis Dispatch, November 15

by Veronika Halamková

Welcome back to the 68th edition of Data Vis Dispatch! Every week, we’ll be publishing a collection of the best small and large data visualizations we find, especially from news organizations — to celebrate data journalism, data visualization, simple charts, elaborate maps, and their creators.

Recurring topics this week include U.S. midterms (again), climate, the war in Ukraine, and the second full week of the #30DayMapChallenge.

Last week, Americans cast their votes in the midterm elections and kicked off a different kind of race — the race to report on (and visualize) results as votes are being counted.

The New York Times: Live Election Results: Top Races to Watch, November 9

First, here’s a look at the results for the House of Representatives:

Bloomberg: 2022 House Election Results, November 14
Politico: The battle for the House is still uncalled, hinging on more than a dozen close races., November 15
Le Monde: Midterms 2022 : suivez l’annonce des derniers résultats sur notre carte interactive, November 8
Süddeutsche Zeitung: So haben die USA gewählt, November 9
SPIEGEL: Was die Midterms entschieden hat, November 9
De Tijd: Amerika kleurt roder dan midterms doen vermoeden, November 10
The Financial Times: By the numbers: what we have learnt from the 2022 US midterm elections, November 13

Next, a few maps showing the results for the Senate:

The New York Times: U.S. Senate Election Results: Democrats Win, November 15
The Wall Street Journal: Live Election Results 2022, November 15
Bloomberg: 2022 Senate Election Results, November 14
The Financial Times: Live results map: US midterm elections 2022, November 15
The Wall Street Journal: How 2022 Midterm Polls Performed in Senate Races, November 10
USA Today: These Senate, House races will determine Congress’ balance of power: A visual breakdown, November 9

And finally, the governors‘ results by state:

The Washington Post: Governors election results, November 15
The Texas Tribune: Election results: How Texas voted in the November 2022 midterms, November 8
The Baltimore Banner: Blue shift: Precinct voting data shows change between 2018 and 2022 in governor race, November 11
Star Tribune: How Minnesota voted for governor, precinct by precinct, November 9
Bloomberg: How DeSantis and the GOP Won the Florida Numbers Game, November 11

Election data visualizations also covered key political issues, historical trends, and analysis.

The New York Times: See Which 2020 Election Deniers and Skeptics Won and Lost in the Midterm Elections, November 10
The Washington Post: Tracking which 2020 election deniers are winning, losing in the midterms, November 15
The Wall Street Journal: How We Voted in the 2022 Midterm Elections, November 9
The Wall Street Journal: Midterm Elections Point to Closely Divided House as Voters Shift in Pivotal Districts, November 10
The Economist: Could Ron DeSantis beat the man who made him?, November 10
The Financial Times: Red and Blue America refuse to budge, November 11
The Washington Post: Where voter turnout exceeded 2018 highs, November 9
The Washington Post: When polls close — and how long counting votes might take — in each state, November 8
The Washington Post: Where midterm votes are still being counted, November 15
Reuters: 57% of Americans disapprove of the president, November 8
Pew Research Center: Before midterms, Trump’s image among Republicans had become less positive, November 14
Reuters: Charting the midterms, November 9
The Wall Street Journal: Where Abortion Is Legal and Where It Loses Protections Without Roe v. Wade, November 10

The second week of COP27, the UN’s Climate Change Conference, inspired climate-related coverage, ranging from rising temperatures and shrinking rivers to climate finance.

ZEIT ONLINE: Wie heiß wird die Welt?, November 11
The Outlier: Extreme temperatures in South Africa, November 11
Bloomberg: Shrunken Mississippi River Slows US Food Exports When World Needs Them Most, November 10
19 Nov 16:34

Crypto Wants a Central Bank

by Matt Levine
Binance, FTX, greenwashing and cars.
19 Nov 16:34

4 ways a Firefox account comes in handy

by Kristina Bravo
An illustration shows a Firefox browser window with cycling arrows in the middle, a pop-up hidden password field and the Pocket logo next to the address bar.
Credit: Nick Velazquez / Mozilla

Even people who are very online can use some help navigating the internet – from keeping credit card details safe when online shopping to generating a password when one simply doesn’t have any more passwords in them.

Using Firefox as your main browser helps take care of that. Want to level up? With a Firefox account, you can take advantage of the following features whether you’re using your desktop device, tablet or your phone.

1. See your bookmarks across devices

To easily find your go-to places on the web (aka your bookmarks) on your phone or tablet, use Firefox mobile for Android or iOS. Not only will you get the same privacy-first experience you enjoy when using Firefox on desktop, you’ll also have Firefox Sync, which lets you see your bookmarks wherever you log into your Firefox account. Firefox Sync allows you to choose the data you want to take with you. In addition to bookmarks, you also have the option to sync your browsing history, open tabs and your installed add-ons across devices. 

A Firefox browser pop-up shows a window asking the user to choose what they want to sync.

2. Use a secure password manager that goes with you wherever you are

Firefox has a built-in password manager that can generate a secure password when you’re creating a new account on a website. (Just click the password field and hit Use a Securely Generated Password. Firefox will save your login for that site.) When you’re using Firefox on your mobile device and you’re logged into your Firefox account, you’ll see your usernames and passwords right where you saved them.

3. Shop securely across devices with credit card autofill

Firefox will also automatically fill in credit card information that you saved when purchasing something online. You just need to enter your CVV number, which Firefox doesn’t save as a security measure. For extra protection, you can choose to require your device’s password, face ID or fingerprint before Firefox autofills your credit card data. Here’s how to turn that on. 

While this works both on desktop and mobile devices when you’re signed into your Firefox account, you can also opt to start shopping on one device and send your browser tab to another to complete your purchase. For example, you can add items to an online shopping cart on your phone but choose to check out on your laptop. 

4. Stay productive now, save that article or video for later

The internet is full of stories, whether it’s a long read about Gen Z’s internet habits or a video about nerdcore hip-hop. They’re a fun way to learn about the world, but sometimes, we need to set them aside so we can finish that research paper for class or slide deck for work. Just hit the Pocket button in the toolbar to easily save an article or video. When you’re ready, just log into Pocket with your Firefox account and you’ll find everything you’ve saved.

A screenshot from the Firefox browser shows the Pocket logo next to the address bar.

Switching to Firefox on your iOS or Android device is easy

If you already use Firefox on desktop, then you already know how Firefox beats other major browsers on security, privacy and functionality. You can easily enjoy the same benefits with a Firefox account on your phone or tablet by making Firefox your default browser on mobile. Here’s how to do that: 

A table shows a comparison of Firefox's portability vs. other browsers.

The internet can bring us to our favorite online spaces and take us to new, fascinating places at the tip of our fingers. A Firefox account lets you enjoy all the web has to offer while keeping your data safe – wherever you are. 

Firefox browser logo

Get Firefox

Get the browser that protects what’s important

The post 4 ways a Firefox account comes in handy appeared first on The Mozilla Blog.

19 Nov 16:33

She’s Exploring

by peter@rukavina.net (Peter Rukavina)

In She’s Letting Go (Again) Lisa writes eloquently about her decision to go exploring.

But it’s only by entering that uncertainty that I’ve been able to find a new path: learning to surrender, to do small experiments, to sometimes be played by life instead of conducting it. It’s been messy as I learned to trust myself. And while experience has shown me I’m trustworthy, I still have plenty of self-doubt each time I decide to leap.

“What kind of person would be right for Peter?”, one might once have asked.

“An explorer!” a sage might have replied.

What a joy it is to be alongside for the leap and what follows.

19 Nov 16:33

Stephen Fearing on Bandcamp

by peter@rukavina.net (Peter Rukavina)

Stephen Fearing, in February, on pulling his catalog from Spotify:

What a relief! After years of holding my nose from the stench of @spotify. I’m taking down the music that I own. We must all pick our battles and I’m a very small player, but it feels good to take a stand alongside those I admire.

You can now find much of his music on Bandcamp.

I interviewed Stephen for the radio when I was 22 and he was 25. He was an up and coming folk musician with a new album; I was a squeaky community radio volunteer who’d never interviewed anyone before. We survived it. And we’re both still here.

Red Lights in the Rain.

19 Nov 16:33

Neue deutsche Redewendung: Twitter kaufen

by Volker Weber

Marc-Uwe Kling hat auf Mastodon einen wunderbaren Strip veröffentlicht. Folgt diesem Link und Ihr seht alle vier Panels. Und dann folgt ihm am besten gleich auch noch.

19 Nov 15:53

Find me on Mastodon with my custom mail address

by Volker Weber

However, there is one thing I would like my own server for: discoverability. Much like with e-mail, I want folks to have an easy address to find me, and one that I can keep giving out to everyone even if later I switch to a different Mastodon server. A bit like e-mail forwarding to your ISP’s e-mail service.

The good news is: you can use your own domain and share it with other folks. It will link to your actual account.

Go on, try it. Search for @maarten@balliauw.be, and you will find my @maartenballiauw@mastodon.social.

Maarten Balliauw

I have adapted his solution and now you can find me on Mastodon by searching for vowe@vowe.net and you get my as @vowe@chaos.social. If I ever move to a different server, I change the webfinger to the new address.

[Thanks, Andreas]

19 Nov 15:53

Root Cause, Proximal Cause, or Least Effort to Remediate

by James Socol

I am no fan of "Root Cause Analysis." It's one of the many terms or concepts that software has borrowed from manufacturing—while ignoring the subsequent 70 years of research into human factors and resilience engineering.

However, like Lorin, I admit that it has some value during incident response. It's jargon, or an "improper noun": it means something more than is contained in the colloquial words. Typically, we're looking for the proximal cause. What's the most recent thing that changed? What specific input violated some constraint?

So I very much appreciated this post by Casey Rosenthal, which I read this morning after having spent a few hours fighting production fires with several on-call engineers yesterday (and more than a few who weren't, but jumped in anyway). In particular, the term "Least Effort to Remediate," or "LER," stuck with me.

When we're looking for the "root cause" during an incident, we're really looking for the Least Effort to Remediate. Undoing the proximal cause (e.g. the configuration that changed, the new host in a kubernetes node pool, the recent deploy) is typically the LER. Not always, but often enough that it's a pretty good place to start.

What I especially like about LER vs the jargon version of "root cause," (setting aside that "root cause" requires active containment to this context) is that "cause" is backward-looking and often inherently linked to blame: "What just happened? Did anyone do anything?" LER, however, is more forward-looking: "What can we do right now?"

19 Nov 15:52

Tech Debt, Depreciation, and Features

by James Socol
Tech Debt, Depreciation, and Features

There was some discourse on Twitter (yes, it's still there, for now) yesterday about the nature of Technical Debt and how effective it is as a metaphor. The real seed was the new boss arguing with—and eventually firing—one of the few remaining engineers on the Android team. But as far as I can tell, Cindy Sridharan—a person whose opinions are always worth considering—really kicked off the discourse segment with this tweet:

And Marco Rogers—another worthwhile follow, while you can— came in pretty hot with

I don't fully agree with Marco here. I think there's a lot of value in the debt metaphor for describing technical decisions within a team. Making use of "good," deliberate debt to ship something faster than you otherwise could is a trade-off, and in healthy product teams, that kind of good debt gets paid down regularly. (I even think you can extend that metaphor.)

This kind of debt—what Martin Fowler would call "deliberate and prudent"—is usually much more concrete corner cutting than what Marco's describing at the top of that thread. It can be captured in issue trackers, estimated—if that's a thing you do—prioritized, and fixed. It's things like "this API is designed to be extensible, but for now the implementation is not. We will fix the implementation after it ships." Or "using these two features together can create data loss, so for now we will prevent using them together. We will fix the bug after we ship."

(And for the record, there is plenty in that thread I do agree with.)

Outside of product teams, though, I generally try to use Camille's phrase: "sustaining engineering." It's the work we do to keep ourselves effective and responsive over time—and engineers should absolutely understand and learn to communicate how that work contributes business value.

But in the original discussion that Cindy quoted, technical debt is absolutely the wrong metaphor. What Eric, the now-former-Twitter developer, describes as tech debt is the consequence of a team that never prioritized performance, and did not treat it as a feature.

When we say performance is a feature, that means that while we may not always work on it, we should test, measure, and monitor it. We shouldn't allow it to "break"—and that means we have an agreed-upon, UX-driven threshold for what counts as "broken."

In multiple roles now, engineers on my teams have done work to measure the impact of better performance. In all cases, there's been a fairly obvious point of diminishing returns, i.e. once it's this fast, making it faster doesn't have much impact on engagement, business metrics, or even SEO. Somewhere around there—maybe shy of that point if it's already in the realm of diminishing improvements for engineering time—is usually a good place to set a threshold.

And then, like any other feature, you can stop actively working on it. This is hard for engineers, sometimes, because it's fun. Performance optimizations often feel like the "real engineering work," especially when you have to find new, clever solutions for each tenth of a second.

"Debt" is a useful metaphor, but not for everything, and not when it is used as a handwavy catch-all term.

19 Nov 15:47

How to Setup Encrypted Chat on Librem Devices

by David Hamner

Whether on a Librem 14 laptop or a Librem 5 phone, using Matrix is one of the best free software solutions for communication. It offers end-to-end encryption where the keys are fully in your control; In other words, Matrix servers can’t read your encrypted messages at all. Recently our Librem 5 chat application, Chats, announced […]

The post How to Setup Encrypted Chat on Librem Devices appeared first on Purism.

19 Nov 15:47

JSON Changelog with SQLite

JSON Changelog with SQLite

One of my favourite database challenges is how to track changes to rows over time. This is a neat recipe from 2018 which uses SQLite triggers and the SQLite JSON functions to serialize older versions of the rows and store them in TEXT columns.

Via fasiha/yamanote

19 Nov 15:47

How to create a tarball of a git repository using "git archive"

by Simon Willison

I figured this out in a Gist in 2016 which has attracted a bunch of comments over the years. Now I'm upgrading it to a retroactive TIL.

Run this in the repository folder:

git archive --format=tar.gz -o /tmp/my-repo.tar.gz --prefix=my-repo/ main

This will write out a file to /tmp/my-repo.tar.gz.

When you tar -xzvf my-repo.tar.gz that file it will output a my-repo/ directory with just the files - not the .git folder - from your repository.

You can use a commit hash or tag or branch name instead of main to create an archive of a different point in that repository.

Without the --prefix option you'll get a .tar.gz file which, when compressed, writes a bunch of stuff to your current directory. This usually isn't what you want!

Here's a version that picks up the name of the directory you run it in:

git archive --format=tar.gz -o $(basename $PWD).tar.gz --prefix=$(basename $PWD)/ main

Note the trailing / on --prefix - without this you'll get folders called things like datasettetests.

basename $PWD gives you the name of your current folder.

19 Nov 15:47

Who controls the internet?

A look at diversity of authoritative NS records in gTLDs, as presented at the 5th ICANN DNS Symposium.
19 Nov 15:44

Time is an illusion, Unix time doubly so...

Unix counts time as seconds since the epoch. Seems straight forward. What could possibly go wrong?
19 Nov 15:41

Recording Yourself 24x7, and Then Processing the Info

Rober Dam: I record myself on audio 24x7 and use an AI to process the information. Is this the future?

I bought a couple of Chinese microphones, I wear them and turn them on all day recording everything I speak, at the end of the day the files are processed with OpenAi’s Whisper and transformed into text files from which the information is extracted.

In that context I realized that you could create a rudimentary “Ok Google” style “Digital Assistant” to actively take advantage of the fact that it was recording everything anyway.

This is a pretty clever idea. I can't see myself wearing a microphone all day, but I could see something in my office for this.

Maybe I could make a Siri Intent to do this? But Siri is always getting what I say wrong and I have to interrupt what I was doing to correct it. If I don't correct it I'll see a reminder in a few hours and have no idea what it's for.

Wouldn't it be cool to have the recorded information to go along with reminders or notes to yourself?

19 Nov 07:26

Quoting Jack Clark

These kinds of biases aren’t so much a technical problem as a sociotechnical one; ML models try to approximate biases in their underlying datasets and, for some groups of people, some of these biases are offensive or harmful. That means in the coming years there will be endless political battles about what the ‘correct’ biases are for different models to display (or not display), and we can ultimately expect there to be as many approaches as there are distinct ideologies on the planet. I expect to move into a fractal ecosystem of models, and I expect model providers will ‘shapeshift’ a single model to display different biases depending on the market it is being deployed into. This will be extraordinarily messy.

Jack Clark

19 Nov 07:21

Verifying your GitHub profile on Mastodon

by Simon Willison

Mastodon has a really neat way of implementing verification, using the rel=me microformat.

You can edit your Mastodon profile and add up to four links to it. Mine looks like this at the moment:

My Mastodon profile has four links: BLOG: simonwillison.net, GitHub: simonw.github.io, Twitter: twitter.com/simonw and TIL: til.simonwilliso.net. All but the Twitter one show a green checkmark and a green background, to indicate they are verified.

The verification checkmark can be had by embedding a link BACK to your Mastodon profile on another site.

My https://simonwillison.net/ and https://til.simonwillison.net/ page headers include the following HTML:

<link href="https://fedi.simonwillison.net/@simon" rel="me">

Getting a verified link to GitHub is a tiny bit trickier. GitHub does support rel=me - but only for one of the link fields in your profile:

The edit profile form on GitHub, with a number of different form fields

The only field here that will have rel=me applied to it when GitHub serves the final page is that link field, which I have set to my personal blog at https://simonwillison.net/

So the easiest way to verify your GitHub profile is to point the link to your Mastodon page, which in my case is https://fedi.simonwillison.net/@simon

But... I didn't want to sacrifice that field! I want to link to my blog.

The first thing I tried was editing my profile to point to Mastodon, then editing my Mastodon profile to trigger a verification job, then editing my GitHub profile back again.

This looked like it worked, at least for my own personal Mastodon server. But it turns out other people visiting my profile wouldn't see the verified checkmark, because each Mastodon server runs its own verification checks - and their server was checking after I had reverted the change I had made.

Angus Hollands suggested a neat fix: use a GitHub Pages domain instead.

GitHub reserves https://your-username.github.io/ as a URL that you can create your own static GitHub Pages site on.

The way you do this is to create a repository called github.com/your-username/your-username.github.io - any HTML you put in that repo will be served from your personal domain.

Angus pointed out that since GitHub restrict who can publish there, proving ownership of simonw.github.io is equivalent to proving ownership of github.com/simonw.

So I did that instead! I set up https://simonw.github.io/ to be a page that served the rel=me link AND redirected to my https://github.com/simonw profile.

Here's the HTML I used to make that happen:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Redirecting to github.com/simonw/</title>
    <meta http-equiv="refresh" content="0; URL=https://github.com/simonw">
    <link href="https://github.com/simonw" rel="me">
    <link href="https://simonwillison.net/" rel="me">
    <link href="https://fedi.simonwillison.net/@simon" rel="me">
  </head>
  <body style="margin: 0; padding: 0">
    <a
      href="https://github.com/simonw"
      style="
        display: block;
        height: 100vh;
        width: 100vw;
        margin: 0;
        padding: 0;
        color: white;
      "
    >
      github.com/simonw
    </a>
  </body>
</html>

The key pieces here are that <link href="https://fedi.simonwillison.net/@simon" rel="me"> element to verify my Mastodon profile, and the <meta http-equiv="refresh" content="0; URL=https://github.com/simonw"> to implement the redirect.

GitHub Pages doesn't allow you to use real server-side redirects, so this <meta> tag is the next best thing.

It's completely unneccessary, but I decided to make the page itself a huge clickable link element which would redirect to the right place, using height: 100vh and width: 100vw to fill the page and setting the text to be white on a white background to keep it invisible for the split second before the redirect happens.

19 Nov 07:12

The power of Mastodon

by Volker Weber

I ran a quick poll yesterday on both Mastodon and Twitter. You can see the polls below, and I will comment on the results further down. The poll wasn’t really meant to find out anything about Covid. There are way better studies out there. What I was trying to find out was how the engagement on Mastodon is, compared to Twitter. Three numbers:

  • Mastodon (2400 followers): 11667 votes, 1381 boosts, 298 favorites
  • Twitter (6800 followers): 330 votes, 22 retweets, 5 likes

I have about three times as many followers on Twitter than on Mastodon, but the engagement is so much higher on Mastodon, that the two do not even compare.

The results are mostly useless. People do not know how often they have been infected and the medical standards vary widely between the US and EU. You can safely assume that there are more infections, but you can also learn that infections are not inevitable. I have many replies from people who mask religiously because they have other medical conditions that would make an infection with Covid-19 much more dangerous that to the average person.

Your next steps:

  1. Sign up for Mastodon. If you have trouble finding an instance, go to https://home.social
  2. Search for me as vowe@vowe.net and follow.
19 Nov 07:11

‘Command-K Bars’ as a Modern Interface Pattern

by Federico Viticci

Maggie Appleton (via Michael Tsai) has written about one of the UI trends I’ve seen pop up more and more lately, and which we mentioned on AppStories several times over the past year: the so-called ‘Command-K’ bars inside apps.

Command bars are command-line bars that pop up in the middle of the screen when you hit a certain keyboard shortcut.They’re also known as ‘command palettes’, ‘command launchers’, or ‘omniboxes’ Traditionally CMD + K, hence the moniker “Command K bars.” But CMD + E and CMD + / have also been strong shortcut contenders.

[…]

They don’t even have to remember its exact name. Fuzzy search can help them find it by simply typing in similar names or related keywords. For example, if I type “make” into a command bar, it’s likely to show me any actions related to creating new items. Even if “make” isn’t part of the action name.

[…]

These bars also do double duty as universal search bars. You’re not only searching through the available actions in an app. You can also search through content like documents, file names, and tasks.

You’ve probably seen these command bars in apps like Obsidian, Craft, Todoist, Arc, Cron, Notion, and lots of others. (On Apple platforms, Things did something similar all the way back in 2018 with a feature called ‘Type Travel’.) It feels like every modern productivity app – especially on desktop – has its own flavor of this interface element nowadays. In a way, this visual trend reminds me of pull-to-refresh before it was standardized by Apple and became a native iOS UI component.

I’m intrigued by Command-K bars as a feature that speeds up keyboard-driven interactions on iPad and Mac while at the same time serving as a search box for an app’s own commands. Think of the typical Command-K bar as a mix of Spotlight, the macOS menu bar, and iPadOS’ keyboard shortcut menu, but as an element that can be invoked from anywhere in an app and dismissed with just a keystroke. As the examples in Maggie’s article show, Command-K bars can be genuinely useful to surface hidden commands and allow power users to save time when using complex apps.

There are plenty of cases where Apple’s apps could benefit from this kind of in-app search makeover. Here’s Notes, for instance, when you activate the ‘Note List Search’ command:

Search inside Notes.

Search inside Notes.

And here’s the rather complex list of keyboard shortcuts supported by Safari:

Keyboard shortcuts in Safari for iPad.

Keyboard shortcuts in Safari for iPad.

I said this on AppStories and I’ll say it again: I think Apple should consider an in-app version of Spotlight that replicates the functionality of Command-K bars and is optimized for keyboard usage on iPadOS and macOS. Modern productivity software is clearly moving in this direction on desktop and the web; I’d like to see Apple apps offer faster keyboard navigation and command discoverability too.

→ Source: maggieappleton.com

19 Nov 07:09

Things can only get better

by russell davies

This is a really good read. The topic is interesting and confounding. It’s very well written. And it’s well written specifically to make a point about how these things aren’t normally well written.

19 Nov 07:08

What is driving our carbon emissions and what to do about it

by Gregor Aisch

Hi, this is Gregor, head of data visualization at Datawrapper. As COP27 is nearing its end tomorrow, it’s time to take another look at CO2 emissions data.

In the summer of 2019, I published the only chart we should be looking at, where I plotted global carbon emissions. Three years later I think it’s time to take another look at this data.

It turns out, not much progress has been made in terms of worldwide CO2 emissions (aside from a short COVID-19 decline in 2020). In fact, the estimated global CO2 emissions in 2022 reach 36.6 GT CO2/yr, a new all-time high, leaving less time to reach our target to limit warming to 1.5 degrees Celsius.

This is a very frustrating picture. How can it be that despite everything we’ve been doing, global CO2 emissions still reach new record-level highs?

In my previous blog post, I looked at how this number breaks down by region, but that didn’t help me understand why emissions keep increasing, and why it’s so hard to reduce them. In fact, just looking at country comparisons can be outright misleading.

The problem with CO2 emissions is that they are not just dependent on population. In fact, they are dependent on four major factors. The formula below describing this relationship is called the Kaya identity, named after the scientist who developed it in the early 1990s, Yoichi Kaya:

In plain English it says that our CO2 emissions are a product of

  • how many people we are (population),
  • how wealthy we are (GDP per capita),
  • how much energy we need for that wealth (energy intensity),
  • and how much stuff we have to burn to get that energy (carbon intensity).

For instance, when comparing Germany and the United States, it can be hard to understand why Germany has managed to reduce its total CO2 emissions over the past 50 years while the U.S. has not.

Both countries have more than doubled their per-capita GDP (getting richer and richer), and both have seen similar developments in their energy intensity. Germany has been slightly better at getting its energy from more renewable sources, but the key difference is in the population growth.

Germany has seen very modest population growth of 6%, which we have been able to “offset” through improvements in energy intensity and carbon intensity, while the United States has seen a population growth of 66%.

We can use this view on other countries as well. Looking at China, we see a country that has seen very similar developments to the United States in terms of population, carbon intensity, and energy intensity. But since its GDP per capita has grown by a factor of 36(!), China's CO2 emissions have also skyrocketed.

What this shows us is that GDP per capita is a very significant influence on our CO2 emissions. This makes sense since it is mostly a measure of how much stuff we produce, ship around the world, and sell for profit.

That brings me back to Germany. Yes, we have been able to reduce our CO2 emissions over the past 30 years, to a degree where it may even look like we’re “on track” to reaching our set target of net zero by 2045.

But the obvious problem here is that we can’t reduce energy intensity and carbon intensity forever. Germany is already in the lower quadrant of countries by energy intensity and carbon intensity, meaning it has “less room” for improvement.

Reducing both requires investing in new technologies, re-shaping entire industry sectors, creating hundreds of thousands of new jobs, and training a generation of workers. In other words: it may take more time than we have!

So in the meantime, I think the only viable choice we (as rich countries) have for getting our emissions down fast is to shrink our economies! We have to produce less, import and export less, buy less stuff, work fewer hours, and instead take better care of ourselves and the things we own.

During the pandemic we’ve seen what is possible if we all work towards a common goal. Now we must do it again.


That’s it for this week. Next Thursday, come back to hear from our full-stack developer Doce!

19 Nov 07:08

Why Elon Musk can’t control Twitter

by Josh Bernoff

The hardest insight for anyone working in or through social media is this: No matter what you think you own or control, you are not in charge. The participants are. And they will do whatever they want, in spite of (and sometimes because of) any efforts you make to channel, guide, or block them. I … Continued

The post Why Elon Musk can’t control Twitter appeared first on without bullshit.

19 Nov 07:08

Swinging Back to Open Standards

by Kyle Rankin

History is a series of pendulum swings between opposite extremes. A generation moves in a certain direction, and the next generation reacts based on the consequences (often rejecting it). Eventually a new generation appears that never directly experienced the consequences and lessons from the previous generations, who then moves back toward that direction and the […]

The post Swinging Back to Open Standards appeared first on Purism.

19 Nov 07:08

Digital Books wear out faster than Physical Books - Internet Archive Blogs

Brewster Kahle, Internet Archive Blogs, Nov 17, 2022
Icon

There's a story about why people of my generation are disgruntled. During our lifetimes we've bought the same Beatles album on vinyl, 8-track, cassette tape, CD-ROM, MP3 download, and now as a streaming service. How many times, we ask, do we have to pay for the same music? It wasn't the same for books. "Ever try to read a physical book passed down in your family from 100 years ago?" asks Brewster Kahle in this blog post. "Probably worked well." However, things are changing. "Ever try reading an ebook you paid for 10 years ago? Probably a different experience. From the leasing business model of mega publishers to physical device evolution to format obsolescence, digital books are fragile and threatened." Right. It's not simply the fact that books are on digital that makes them fragile. Plain text files 50 years old are still easily read. But publishers are constantly changing formats and access models, with the result that, like music, we have to buy them over and over again. That's why the updating work of Internet Archive is so important.

Web: [Direct Link] [This Post]
19 Nov 05:55

idk how this guy thinks the internet works but let me tell you: i have seen many giant websites shit the bed because some hard drive got full and nobody noticed lol twitter.com/austen/status/…

by Internet of Shit (internetofshit)
mkalus shared this story from internetofshit on Twitter.

idk how this guy thinks the internet works but let me tell you: i have seen many giant websites shit the bed because some hard drive got full and nobody noticed lol twitter.com/austen/status/…

People are saying twitter is going to go down as if the way servers stay up is a bunch of infra engineers sitting in the back room pedaling stationary bikes to power the racks




4828 likes, 417 retweets



712 likes, 131 retweets
16 Nov 03:27

First snow on ground 2022

by jnyyz

We’ve had some extremely light flurries during the past week, but today we got a proper snowfall during the morning to the extent that the snow is actually hanging around for at least a day or two.

It is still above freezing, and there is still enough bike traffic on the Bloor bike lanes that there were plenty of tracks to follow home. If the slush freezes overnight, I’ll consider switching to the winter bike with the studded tires.

I do hope that they hold off on salting the roads since once that happens, I’ll have to hang up the good bike for the season. I’m still hoping that I can get a proper birthday ride in with clear roads and above freezing temperatures.

Last year, the first snow on ground wasn’t until the 21st.