Please enable JS and disable any ad blocker
10 interesting stories served every morning and every evening.
10 interesting stories served every morning and every evening.
Please enable JS and disable any ad blocker
The most powerful rocket in history just roared off its launch pad in a spectacular show of power and technology.
SpaceX launched the newest version of its giant Starship rocket Friday (May 22), from a recently completed second pad at its Starbase manufacturing and test facility in South Texas. Liftoff occurred at 6:30 p.m. EDT (2230 GMT), sending the massive 408-foot-tall (124-meter) vehicle skyward on its 12th suborbital test flight.
It was the first Starship mission since October 2025, and the first-ever flight of Starship Version 3 (V3), a next-generation build of the rocket that features a complete design overhaul meant to evolve the vehicle toward operational missions. And today’s suborbital Flight 12 was a significant step toward that ambitious goal, even if it was a day later than planned after a glitched thwarted a first launch try on Thursday.
“Congratulations SpaceX team on an epic first Starship V3 launch & landing!,” SpaceX CEO Elon Musk wrote on X after the launch. “You scored a goal for humanity.”
Image
1
of
3
There were some hiccups.
During liftoff, one of the 33 first-stage Raptor engines on Super Heavy shut down, and the booster missed a critical “boost back” manuever to control its return to Earth. Starship’s Ship 39 upper stage also lost one of its six main engines during ascent, but managed to reach space on the remaining five.
“I wouldn’t call it nominal orbital insertion, but we’re in on a trajectory that we had analyzed, and it’s within bounds,” SpaceX spokesperson Dan Huot said in live commentary. “So, teams continuing to work through it with that engine out there, working some through some steps on the engines.”
Starship consists of a first-stage booster called Super Heavy and an upper stage known as Starship, or simply Ship. The first notable event after the rocket cleared the tower this evening occurred about 2 minutes and 20 seconds into flight, when Super Heavy initiated “hot staging” and separation from Ship. (It’s known as hot staging because Ship begins firing its engines before separating from Super Heavy.)
Unlike its V2 predecessor, which featured an interstage ring that fell away at separation, Starship V3 is built with similar hardware secured to the top of the booster, like a fence around the fuel tank’s dome to give some breathing room to the upper stage engines’ ignition and initial thrust away from the booster.
After stage separation, Super Heavy reoriented and attempted to perform a one-minute boostback burn toward Starbase. However, something went wrong and the burn didn’t go as planned, Huot said.
SpaceX has performed booster recoveries at Starbase on previous Starship missions, catching the rocket’s first stage using mechanical “chopstick” arms attached to the site’s launch towers. On Flight 12, however, the company planed to return Super Heavy a soft splashdown in the Gulf of Mexico rather than risk a recovery mishap that could damage the pad on the first flight of brand-new hardware.
Instead, the massive Super Heavy booster plummeted back to Earth and crashed into the Gulf, beaming live views of its fall from space until the screen went black.
“The booster didn’t complete its full boost back,” Huot said just after lifotff. “Its mission ended a little bit early, but landed in the clear area that we had set in advance.”
SpaceX included 22 payloads for Ship to deploy during its suborbital jaunt today — 20 dummy versions of the company’s Starlink broadband satellites and two actual Starlink spacecraft equipped with imaging sensors.
The payloads were deployed as planned over a 10-minute span, beginning roughly 17 minutes after launch, via Ship’s “PEZ dispenser”-like door. The two modified Starlink satellites were tasked with scanning Starship’s heat shield tiles, in a test meant to assess the ability to inspect them for possible damage prior to reentry.
Shortly after the final two Starlink simulators deployed (the ones with cameras that SpaceX nicknamed “Dodger Dogs” after the famed hotdogs at Dodger Stadium), SpaceX broadcast the spectactular video they captured as they flew away from Starship.
“That is a Starship in space,” Huot said.
Image
1
of
2
SpaceX initially planned for the Ship 39 upper stage to perform an in-space relight of one of its six Raptor engines in orbit— an important demonstration to prove the spacecraft can reliably execute maneuvers, as mixing and managing cryogenic fuels and reigniting an engine in zero-g is necessary to alter Ship’s orbit, send it on to the moon or Mars, and bring it back to Earth for recovery and reuse. But because of the lost Raptor engine during launch, flight controllers skipped that test for Flight 12.
And so, the first Starship V3 spacecraft began its descent to Earth.
Ship began its reentry to Earth’s atmosphere about 50 minutes into the flight, falling as its belly became engulfed in a bright plasma. During its descent, Ship 39 performed a series of exercises designed to stress parts of the vehicle to their structural limit. It also executed a novel banking maneuver for its landing burn meant to mimic the trajectory and orientation needed for a launch tower catch on a return to Starbase.
Huge cheers rang out at SpaceX’s headquareters and Starbase facilities as the Ship 39 ignited two engines for a final landing burn. The manuever initially called for three engines, but that one shut down early at liftoff. After the landing, Starship toppled over into the ocean waters and exploded in a magnificent fireball (again, as planned) as SpaceX workers cheered.
Nothing Starship accomplished on Flight 12 was particularly groundbreaking for SpaceX; the mission goals and trajectories were broadly similar to those of the previous few test missions.
However, even successfully following a previously blazed trail was huge for Starship V3, given that it’s a brand-new vehicle with a variety of modifications and upgrades over its predecessors. And V3′s road to the launch pad was a bit rocky.
SpaceX ran into some issues during the testing of the new V3 build in November last year, resulting in the loss of the Super Heavy booster originally slated for the Flight 12 mission. Now, with more than half a year between Starship’s last two launches, SpaceX has some catching up to do.
NASA is relying on Starship as one of the crewed lunar landers for its Artemis program, which aims to eventually establish a permanent human presence on the moon. The space agency has also contracted Blue Moon, a Blue Origin spacecraft, to land Artemis astronauts on the moon, and has indicated a willingness to fly with whichever private lander is ready when it’s time for the missions to get off the ground.
The next of those missions is Artemis 3 — the follow-up to April’s Artemis 2, which flew four astronauts aboard NASA’s Orion spacecraft on a successful 10-day mission around the moon. NASA is targeting mid to late 2027 for Artemis 3, which will launch Orion to low Earth orbit (LEO) to rendezvous and dock with one or both of the private lunar landers, and late 2028 for the first lunar landing on Artemis 4.
As if to drive that fact home, NASA chief Jared Isaacman flew to Starbase to watch the launch personally.
“We’re looking forward to seeing this thing fly, because hopefully at some point in the not too distant future we’re gonna, we’re gonna join up in an earth orbit,” Isaacman said during the live comentary.
After the launch, Isaacman hailed the work of SpaceX’s Starship team.
“Congrats SpaceX team and Elon Musk on a hell of a V3 Starship launch,” Isaacman wrote on X. “One step closer to the Moon … one step closer to Mars.”
Congrats @SpaceX team and @elonmusk on a hell of a V3 Starship launch. One step closer to the Moon…one step closer to Mars 🇺🇸 pic.twitter.com/jjetQxnkiRMay 23, 2026
Congrats @SpaceX team and @elonmusk on a hell of a V3 Starship launch. One step closer to the Moon…one step closer to Mars 🇺🇸 pic.twitter.com/jjetQxnkiRMay 23, 2026
Starship has a number of boxes to check before NASA certifies the vehicle to fly astronauts, but V3 has been built with those goalposts in mind.
The new Starship V3 vehicle includes four passive connection ports on its back, or leeward, side (opposite the heat tiles on its belly), which are designed for docking and ship-to-ship fuel transfers.
In order to fly beyond LEO, Starship requires the assistance of additional Ships to meet up in orbit to top off its fuel tanks. This is especially important for its use as the Artemis moon lander; experts have estimated that each lunar Starship mission could require a dozen or more refueling launches to adequately supply enough propellant to get to the moon, land and launch back to lunar orbit.
Ship has yet to demonstrate in-space refueling, or even a launch that fully reaches Earth orbit. And there are other boxes it needs to tick as well.
For example, NASA is requiring both Starship and Blue Moon to demonstrate uncrewed lunar landings before they fly astronauts down to the lunar surface, putting SpaceX and Blue Origin on a short timeline to ready vehicles for the planned Artemis 4 landing in 2028.
Starship’s launch today helps put it back on track toward meeting that goal, but SpaceX will have to pick up its launch cadence significantly. Just over a year ago, in March 2025, SpaceX founder and CEO Elon Musk posted on X that he expected to be launching V3 at a “rate of once a week in [about] 12 months.”
While that cadence still seems a long way off at Starship’s current state of development, the success of Flight 12 bodes well for the near future. And hopefully the near future features another Starship launch — a giant rocket getting off the ground in a matter of weeks, versus the seven months that separated today’s mission from the previous test flight.
Josh Dinner is Space.com’s Spaceflight Staff Writer. He is a writer and photographer with a passion for science and space exploration, and has been working the space beat since 2016. Josh has covered the evolution of NASA’s commercial spaceflight partnerships and crewed missions from the Space Coast, NASA science missions and more. He also enjoys building 1:144-scale model rockets and spacecraft. Find some of Josh’s launch photography on Instagram, and follow him on X, where he mostly posts in haiku.
Introduction
The <dl>, or description list, element is underrated.
It’s used to represent a list of name–value pairs. This is a common UI pattern that, at the same time, is incredibly versatile. For instance, you’ve probably seen these layouts out in the wild…
Each of these examples shows a list (or lists!) of name–value pairs. You might have also seen lists of name–value pairs to describe lodging amenities, or to list out individual charges in your monthly rent, or in glossaries of technical terms. Each of these is a candidate to be represented with the <dl> element.
So what does that look like?
The Anatomy of a Description List
I’ve been saying “<dl>,” when really, I’m talking about three separate elements: <dl>, <dt>, and <dd>.
We start with our <dl>. This is the description list,note 1 akin to using a <ul> for an unordered list or an <ol> for an ordered list.
<dl>
</dl>
Fancy.
Next up, we want to add a name–value pair. We’ll use a <dt>, short for description term, for the name, and we’ll use a <dd>, short for description detail, for the value.note 2
<dl> <dt>Title</dt> <dd>Designing with Web Standards</dd> </dl>
To add another name–value pair to our list, we add another <dt> and <dd>:
<dl> <dt>Title</dt> <dd>Designing with Web Standards</dd> <dt>Publisher</dt> <dd>New Riders Pub; 3rd edition (October 19, 2009)</dd> </dl>
But wait — what if I have a term that has multiple values? For instance, what if this book has multiple authors?
That’s fine! One <dt> can have multiple <dd>s:
<dl> <dt>Title</dt> <dd>Designing with Web Standards</dd> <dt>Author</dt> <dd>Jeffrey Zeldman</dd> <dd>Ethan Marcotte</dd> <dt>Publisher</dt> <dd>New Riders Pub; 3rd edition (October 19, 2009)</dd> </dl>
There’s one last piece of the description list anatomy to look at for most basic use cases: what if I want to wrap a <dt> and its <dd>(s) for styling reasons?
In this case, the specs allow you to wrap a <dt> and its <dd>(s) in a <div>:
<dl>
<div> <dt>Title</dt> <dd>Designing with Web Standards</dd> </div>
<div> <dt>Author</dt> <dd>Jeffrey Zeldman</dd> <dd>Ethan Marcotte</dd> </div>
<div> <dt>Publisher</dt> <dd>New Riders Pub; 3rd edition (October 19, 2009)</dd> </div>
</dl>
A wrapper <div> like this is the only element that can wrap those <dt>/<dd> groups.
And that’s it! That’s the anatomy of the description list, HTML’s semantic way to mark up a list of name–value groups!
Why Do We Need Semantics For This Anyways?
Before we learned about the <dl>, <dt>, and <dd> elements, my team used to use nested <div>s for this pattern all the time. It looked a lot like:
<div class=“book-details”> <div class=“book-details–item”> <div class=“book-details–label”> Title </div> <div class=“book-details–value”> Designing with Web Standards </div> </div> <div class=“book-details–item”> <div class=“book-details–label”> Author </div> <div class=“book-details–value”> Jeffrey Zeldman </div> <div class=“book-details–value”> Ethan Marcotte </div> </div> <div class=“book-details–item”> <div class=“book-details–label”> Publisher </div> <div class=“book-details–value”> New Riders Pub; 3rd edition (October 19, 2009) </div> </div> </div>
This has all the information about the book, right? Why do we need semantics for a list of name–value groups in the first place if something like a series of nested <div>s could get the job done?
When determining whether a semantic element might be appropriate for a given pattern, I find it helpful to ask, “What benefits — even theoretical — could we get if computers could recognize this pattern?” In this case, what lift could we get if browsers could somehow recognize a list of name–value groups?
Answers to that question will be varied. I tend to spend a lot of time advocating for web accessibility, so my first thought tends to be how screenreaders could interpret the pattern. Off the top of my head, I can think of a couple of benefits screenreader users could get from their screenreaders recognizing this pattern:
The screenreader could tell the user how many name–value groups are in the list.
The screenreader could tell the user how far into the list they are.
The screenreader could treat the list as one block that the user could skip over if they’re uninterested in it.
All of these could make the list more usable than a series of nested <div>s, which would treat each name and value in the list as nothing more than a standalone text node.
If you can come up with a couple of even theoretical lifts from the user’s device recognizing a pattern, then there’s a good chance that the pattern is a strong candidate for having some associated semantics.
For what it’s worth, these screenreader experiences aren’t hypothetical — they’re benefits that screenreader users really get from using <dl> in most browser/screenreader combinations. Admittedly, however, support for the <dl> element is not yet universal. You may decide that screenreaders’ fallback experience — treating the list as standalone text nodes — isn’t sufficient for your use case, and instead opt for something like a <ul> until support improves.
Okay, Okay, One Last Example!
My favorite example, the one that really takes the cake for me, is Dungeons & Dragons statblocks, which are really “Oops! All Name–Value Pairs!”
No, really: just how many candidates for <dl>s do you see in this statblock alone?
I counted five possible description lists, personally. Here’s how I chose to mark this up:
<div> <h1>Kobold</h1> <small>Small humanoid (kobold), lawful evil</small>
<dl> <div> <dt>Armor Class</dt> <dd>12</dd> </div> <div> <dt>Hit Points</dt> <dd>5 (2d6 – 2)</dd> </div> <div> <dt>Speed</dt> <dd>30 ft.</dd> </div> </dl>
<dl aria-label=“Ability Scores”> <div> <dt>STR</dt> <dd>7 (-2)</dd> </div> <div> <dt>DEX</dt> <dd>15 (+2)</dd> </div> <div> <dt>CON</dt> <dd>9 (-1)</dd> </div> <div> <dt>INT</dt> <dd>8 (-1)</dd> </div> <div> <dt>WIS</dt> <dd>7 (-2)</dd> </div> <div> <dt>CHA</dt> <dd>8 (–1)</dd> </div> </dl>
<dl aria-label=“Proficiencies”> <div> <dt>Senses</dt> <dd>Darkvision 60 ft.</dd> <dd>Passive Perception 8</dd> </div> <div> <dt>Languages</dt> <dd>Common</dd> <dd>Draconic</dd> </div> <div> <dt>Challenge</dt> <dd>1/8 (25 XP)</dd> </div> </dl>
<dl aria-label=“Traits”> <div> <dt>Sunlight Sensitivity</dt> <dd> While in sunlight, the kobold has disadvantage on attack rolls, as well as on Wisdom (Perception) checks that rely on sight. </dd> </div> <div> <dt>Pack Tactics</dt> <dd> The kobold has advantage on an attack roll against a creature if at least one of the kobold’s allies is within 5 ft. of the creature and the ally isn’t incapacitated. </dd> </div> </dl>
<h2 id=“actions”>Actions</h2> <dl aria-labelledby=“actions”> <div> <dt>Dagger</dt> <dd> <i>Melee Weapon Attack:</i> +4 to hit, reach 5 ft., one target. <i>Hit:</i> (1d4 + 2) piercing damage. </dd> </div> <div> <dt>Sling</dt> <dd> <i>Ranged Weapon Attack:</i> +4 to hit, reach 30/120 ft., one target. <i>Hit</i>: (1d4 + 2) bludgeoning damage. </dd> </div> </dl>
</div>
This is just one way you could have opted to mark up that statblock.
I love this as a demonstration because it really goes to show just how versatile the description list pattern can really be — the lists of ability scores (STR, DEX, and so forth) and attacks both look very different, and yet, the description list pattern can span them all.
Takeaways
Lists of name–value pairs (or, in some cases, name–value groups) are a common pattern across the web, in part due to their versatility. HTML lets us mark up these lists with a combination of three elements:
The <dl>, or description list, element, which wraps the entire list of name–value pairs
The <dt>, or description term, element, which represents a name in our name–value pairs
The <dd>, or description detail, element, which represents a value in our name–value pairs
Ascribing semantics to patterns such as these gives our users’ devices the information they need to curate useful, usable experiences — oftentimes in ways that we as developers may not expect.
To learn more about description lists and what’s allowed or not allowed, I recommend the MDN docs on the <dl>, or going directly to the specs!
Footnotes
Prior to HTML5, this was called a definition list. This is because the <dl> was originally only intended to represent glossaries of terms and their definitions. | Back to [1]
Prior to HTML5, this was called a definition list. This is because the <dl> was originally only intended to represent glossaries of terms and their definitions. | Back to [1]
Previously known as the definition term and definition detail elements respectively. | Back to [2]
Previously known as the definition term and definition detail elements respectively. | Back to [2]
I have an attention problem.
A couple of weeks ago, I decided to convert my old laptop into a writerdeck, a dedicated writing device free from the distractions of the modern internet.
Lots of folks build really elaborate offline devices for this, and I’d love to do that… someday. Right now I have no shortage of projects and the point is to get writing, so I used what I had: a six-year-old laptop which still runs great, has plenty of power, but isn’t getting much use anymore.
Crucially, this laptop has an excellent keyboard, and a matte screen, which makes it awesome to type on for long stretches, and functional enough in the daylight (I like to sit outside with my dog and write). It’s also a System76 Galago Pro (not sponsored), which means it’s already Linux friendly and has great support in the kernel.
Setting up a tty instead of a desktop
Now, you could certainly just use a regular desktop OS and keep it offline, although that’s easier said than done. I don’t think you can fully remove the browsers from a modern Mac or Windows PC. At least not in a supported way.
Of course, I’m a Linux user, and I have any number of options. I could have gone with a simple desktop or window manager and just not installed a browser, but I wanted something that really broke the desktop OS muscle memory and forced me into thinking about my words with intention.
I opted for a tty-based setup, using Debian (Trixie at the time of writing). Console only- no x11 or Wayland, no desktop getting in my way.
Installing Debian is easy enough. I use the text-based installer mode, and for this writerdeck, I opted to skip full-disk encryption (there’s nothing on this device that isn’t going to be public anyway).
Folks always tell me they get hung up on things because they don’t set themselves up with sudo on Debian. If you’re coming from Mint or Ubuntu or virtually any other desktop-oriented distro, this could trip you up. If you want to use sudo for admin tasks, skip adding a root password. That’ll disable root and set you up as a sudo user.
On the desktop setup screen, I chose to remove all desktop features, because again, I want this thing to be a minimal device. Just me and the words, no GUI getting in my way.
When things wrap up, you’ll be greeted with a bland console login. Perfect place to get started.
Installing network-manager
After signing in for the first time and making sure I was up-to-date with a quick sudo apt update and a sudo apt upgrade, I chose to replace the regular network stack with the network-manager package. Mainly to get access to the very good curses tool nm-tui for connecting to networks.
nm-tui is a thousand times easier than editing config files for setting up network devices. And while I will be working mostly offline with this device when I’m away from home, I do appreciate the ability to connect it to the network to back up files should the need arise.
After installing network-manager with sudo apt install network-manager, you can use nm-tui to scan for available Wi-Fi networks and get hooked up. Depending on your hardware, you might also have WAN access here. Pretty cool.
Installing neovim and kmscon
I couldn’t wait any longer, I installed neovim as soon as I could with sudo apt install neovim. I didn’t want to edit with nano. Nothing personal, I’m just a vim user all the way now.
Normally I use traditional vim but I opted for neovim as I’m trying to get to know it a bit more.
Then, I installed kmscon, which for Debian Trixie needed to be added from backports.
First, I updated my Debian source list by editing the file at /etc/apt/sources.list to add the following two lines:
deb http://deb.debian.org/debian/ trixie-backports main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian/ trixie-backports main contrib non-free non-free-firmware
A quick sudo apt update and then I can simply run sudo apt install -t trixie-backports kmscon. This will install the kmscon package from backports, as well as its dependencies, and set it to automatically start on boot. Next reboot, you’ll see the familiar tty, but now it’s scalable with ctrl-plus and ctrl-minus, like most modern web browsers.
From here, I have a totally functional writerdeck. I could be done here and be reasonably satisfied with an offline, pleasant writing experience. But I wanted a few more nicities which I’ve grown accustomed to.
tmux for multiplexing and a pretty status bar
Next, I installed tmux for basic terminal tiling and a pretty status bar. This is packaged for Debian (and virtually everyone else), and is installed with sudo apt install tmux.
I also installed acpi for battery details, and light to control the screen backlight. You can install these at the same time with sudo apt install acpi light. I set these up in my .tmux.conf file, which is kept in your home directory. Here’s how I used them.
ACPI for battery readouts
Once the acpi package is installed, you should be able to see your battery with acpi -b (assuming your laptop has a battery which is detected with acpi, which has worked so far on every laptop I’ve tried in my house).
So, to get the specific percentage and nothing more, you can pipe acpi -b into grep like so:
acpi -b | grep -m1 -o -P ‘.{0,2}%’
This grep is a bit hard to understand, so let’s break it down:
-m1 says stop reading the file after one line. I did this because some laptops I’ve used have multiple batteries, and I only care about the primary battery. You can probably leave this out if acpi -b only returns a single line.
-o prints only the matched parts of the line. I don’t want a large printout with the remaining time. You might!
-P interprets the pattern as a Perl-compatible regular expression. Then ‘.{0,2}%’ gets us the percent sign and the two numbers preceding the percent. (This won’t show “100%” but I can live with that, because this laptop doesn’t get there anymore.)
I wanted to replace the default details in the tmux status bar with a battery readout, so I do so with the following in my .tmux.conf:
# give me a battery readout instead of the time set-window-option -g status-right “#(acpi -b | grep -m1 -o -P ‘.{0,2}%’)”
Light for brightness
Next, we can use the very simple light command we installed earlier to control the brightness. On my laptop, F8 and F9 have brightness indicators printed on the keys, so it’s a perfect fit.
light -U 10 decreases the brightness by ten percent, and light -A 10 increases it.
So, to bind F8 and F9 to decrease/increase brightness control, I simply add this to my .tmux.conf:
# keybinding for brightness bind -n F8 run-shell ‘light -U 10’ # decrease bind -n F9 run-shell ‘light -A 10’ # increase
Now, next time I start tmux, I’ll have brightness controls. Very neat!
Additional tmux customization
Lastly, I like the status line for tmux at the top of the screen, because neovim puts a status line at the bottom of the screen. That’s achieved by adding set -g status-position top to the .tmux.conf file.
Also, I have a habit of specifying the color. I think it’s green by default but I set it anyway (I might change it in the future, who knows) with set -g status-style bg=green.
So, my final tmux.conf looks like this:
# bar position and color set -g status-position top set -g status-style bg=green
# keybinding for brightness bind -n F8 run-shell ‘light -U 10’ # decrease bind -n F9 run-shell ‘light -A 10’ # increase
# give me a battery readout instead of the time set-window-option -g status-right “#(acpi -b | grep -m1 -o -P ‘.{0,2}%’)”
This isn’t a tmux lesson, but by default, to do a split, you use Ctrl-B to break out of regular mode and into the tmux command mode, and then the % key to split vertically, or ” to split horizontally. Ctrl-B, then an arrow will move your focus between panes.
Someday, I’ll do a formal tmux lesson. Moving on!
neovim and vimwiki
I know a lot of folks won’t want to use neovim or vim, opting instead for emacs or helix or micro or nano or blammo or something else I didn’t mention (but someone’s about to).
That’s great. I’m happy for you. I’m a vim user though, so that’s what I set up.
neovim includes some reasonably great colorschemes which you can try out with the :colorscheme option. I chose blue, which fit my retro vibe just fine, but you could pick anything you want or even write one yourself from scratch.
I added that to my .config/nvim/init.vim file with colorscheme blue, and I also added set linebreak so that way words would wrap to the next line (I don’t normally do this on my desktop but this thing’s one job is writing).
Lastly, I set up vimwiki, which I already covered in a separate %blog post%. The only thing that’s changed is instead of installing vimwiki with a plugin, on Trixie it’s packaged, so you can install it with sudo apt install vim-vimwiki.
Installing Syncthing
I set up syncthing according to the Syncthing docs, which are pretty good and I won’t repeat those too much here.
I set up syncthing to connect my writerdeck’s vimwiki folder to my server’s writing folder, which is a subdirectory inside another, more private vimwiki setup. I do it this way so that if there’s sensitive notes in my desktop vimwiki, they don’t sync to the writerdeck. If I had encryption on this device, I wouldn’t mind that though, and I might set up password-based LUKS encryption just to gain access to my vimwiki diary on the writerdeck.
The one place where I strayed from a stock syncthing setup is that because I don’t have a desktop with a traditional browser, I had to set my syncthing web GUI to be listening on all addresses instead of just 127.0.0.1. I don’t love this approach, but again, this thing has nothing private on it. A better way would be to set up a SOCKS proxy and connect that way, but that’s a topic for a future post.
Setting it up to autologin
The last thing I did to make this writerdeck my own was to set up automatic login.
I want to be able to open this up and start writing quickly- autologin is a simple way to get there.
Autologin with kmscon
Because I installed kmscon, this is pretty easy, just update the (gasp) systemd service with sudo systemctl edit kmsconvt@tty1.service.
Then, I just added the following:
[Service] ExecStart= ExecStart=/usr/bin/kmscon –login — /bin/login -f my_username_goes_here
This tells kmscon to start what comes after the — after –login. In my case, that’s the default /bin/login program with the parameter -f and then my username.
Launching tmux on boot
After kmscon signs me in, I want tmux to automatically launch into vimwiki. But only if I’m on the main tty (the default virtual terminal).
I can do this easily by adding a small bash if/then to my .bashrc:
# Launch tmux if we aren’t already running tmux and we’re in the default tty if [ -z “${TMUX}” ] && [ $(tty) == “/dev/pts/0″ ]; then exec tmux new-session -d ‘vim -c VimwikiIndex’ \; attach fi
This works by checking to make sure we’re not in tmux already (which would be recursive and bad), and it also makes sure we’re in the first virtual tty. If those two conditions are met, then it launches a new tmux session with the command vim -c VimwikiIndex (which tells vim to connect to the Vimwiki index). It then attaches to that session.
After using it for a few projects, I love it.
I’ve had this thing going for a week or so now, and I’ve used it to write this blog post, the script for the companion video, and another future script I’m working up right now. And it’s awesome.
I may extend this idea with a spell checker, or perhaps set up a “writerdeck terminal” in my workspace using an old 486, to really bring myself back to a more intentional experience (with an even better keyboard!).
The point is to write more, and to be less distracted doing so. I have always struggled immensely with the fact that the browser nags at me. I get notifications about apps needing my attention. My music player tells me the next song we’re playing. It’s all very convenient, and very distracting.
I’m trying to be more intentional with my tech choices. I want devices that do one thing really well, and that when I’m done with that one thing, I can put them away, and do something else. I don’t want everything to follow me around everywhere.
If that’s you, maybe you would benefit from a writerdeck. For me, it’s been great. :)
Last year, health wearable maker Oura became embroiled in a social media shitstorm after inking a deal with the Department of Defense and Palantir. Some customers feared their data would end up in the clutches of the Trump administration. The scandal blew up so much that my partner, an Oura ring user, drew my attention to it.
Oura rings are health-monitoring hardware wearables worn on a finger. These battery powered rings keep track of a person’s health data, like heart rate, sleep patterns, menstrual cycles, and dozens of other data points, including their location. Oura keeps a lot of sensitive information about its users on its servers.
As a security and privacy nerd reporter, and the partner of someone who uses hers, I wondered: Where does all that data go, and how does it get there? You might assume it doesn’t matter. But the way that companies set up their products and servers makes all the difference between whether governments (or hackers) can also access that user data.
This was a good opportunity to dig into how Oura rings work, how they send data and how the data is stored, and who has access to it. I wrote a detailed longread explaining why Oura’s security design choices allow governments to tap records from Oura’s vast banks of user information.
Oura is not unique in this, and many (if not most) companies design their systems to allow their staff to access user data, perhaps for troubleshooting customer issues or because it was the easiest and cheapest setup for a once cash-strapped startup. But Oura is now one of the largest health tech wearable makers today, valued at over $11 billion ahead of going public. The company has a responsibility more than ever to ensure that its users’ data cannot be accessed. And, Oura can no longer argue that it does not have the financial resources to do it.
In my previous blog, I revealed that Oura data is not end-to-end encrypted. That means that an Oura user’s health data can be unscrambled at certain points as it travels from a person’s ring, through their phone app, over the internet, and as it lands on Oura’s servers. The company confirmed that it stores user data in a way that allows some staff to access it. This also means others can as well, such as a prosecutor with a warrant, a hacker with stolen keys, or a disgruntled insider who wants to leave behind a fustercluck of a mess.
Out of the three, we know at least one of those things has happened.
When I reached out for comment before publishing my last article, an Oura spokesperson told me that the company does “receive infrequent requests from the government.” Oura said it looks at each request “for legality, scope, and necessity,” and that it pushes back “where requests are invalid, overbroad, or inconsistent with our commitment to protect our members’ privacy.”
Oura would not say how many requests it receives, how often it turns over user data, or what kinds of data are requested. Oura has sold over 5.5 million rings to date as of around the time of my last article, giving some scale to the size of the company’s customer base.
I asked Oura back then if it would disclose how often it received these requests, such as by publishing a transparency report. A wave of tech companies began releasing in aggregate how many government demands they received on a semi-annual basis. This was largely to counter the claims that they were secretly handing over reams of user data to the government upon request, stemming from the NSA surveillance scandal in 2013.
There was some hope in Oura’s initial response. A spokesperson told me at the time that while Oura does not publish a transparency report, the company said it was “actively evaluating how to share aggregate data in a way that maintains security and does not introduce risk to our members.”
It’s been eight months, dear reader.
I recently reached out to Oura again to see if it would release a transparency report, and after several follow-up emails, the once-responsive Oura has not yet replied to any of my inquiries, or committed to releasing the numbers. I’m hopeful that Oura will reconsider and publish how many demands it receives as other tech companies have.
Without seeing the numbers, it is impossible to know how often, if ever, Oura rejects government demands for data. As the frontrunner in the health wearables market, Oura should share how often the government demands access to users’ information if it wants to earn or keep the trust of its customers.
~ ~
Thank you so much for reading ~this week in security~. If you liked this article, please share it! Feel free to reach out with any feedback, questions, or comments about this article: this@weekinsecurity.com.
For years, my desk was pushed against the wall. I would sit in front of it, look at the wall, and work. It was fine, and I never really questioned it.
After a recent trip to Hamburg, visiting various museums and exhibitions, something struck me. I hadn’t seen a single desk that was facing the wall. Almost every single desk was in the middle of the room, and facing the room itself.
Once I was back from my trip, I rotated the whole setup for my desk, and flipped it. Now my desk is facing the room. My back is against the wall, I can see the door, and I have the rest of the room in my field of view. It is a small change, but the space feels very different. I should have done this earlier.
From time to time people still message me of my desk photos that appeared on Instagram or X. Those photos are old now, and I actually changed my room setup quite a bit. The room looks different, and the desk has changed as well. Over the last months I started to think more carefully about what I want from a desk and how I spend time around it.
Rethinking the desk
Instead of having a single, tech only desk, I now use one large desk that is split into two parts: a digital side and an analog side.
For a long time my idea of a desk was simple: a place for a computer, monitor, keyboard, mouse, and some accessories. It was a work surface for technical tasks. Everything else had to adapt to that. Here is an old photo:
The problem is that this pulls every activity into the same mode. If you sit down, you are in front of screens. Even if you only want to read, think, plan, or write something by hand, the computer is right there and competes for your attention.
This also means that I always had to push away my keyboard if I wanted to have more space for writing or sketching.
I did not want to maintain two separate desks in the same room, but I also did not want the computer to dominate everything. A single, long surface with two clearly defined areas turned out to be a good compromise. So I researched and ended up with the one in the pictures, which is a 200x75cm long desk from USM Haller.
The idea is that, on one side I keep the digital tools. On the other side I keep the analog tools. They share the same piece of furniture, but they serve different purposes.
The digital side
The digital side is the part of the desk by the windows. It has the Studio Display, the Mac and my split keyboard (It’s the Elora Halcyon with my own custom design) This is where I spend most of my day writing, coding, and being on calls, so I try to keep it as empty as possible.
This area is intentionally minimal. Everything on this side is directly related to my day to day work. When I sit in the chair and slide over to this half of the desk, I know I am there to write, code, review something, or join a call.
This also changed how I think about adding new items. If something wants to live on the digital side, it has to be used regularly. If not, it moves to the other half of the desk or leaves the desk entirely.
The analog side
The other half of the desk is reserved for everything that does not need a screen. On a typical day, this part of the desk has:
A notebook or planner
A couple of fountain pens
Books I am currently reading
Loose sheets with sketches or diagrams
A desk lamp that nicely illuminates the surface (It’s the Artemides Tolomeo Mini, with my custom designed adaptor)
This is where I read, write in a journal, plan projects, or outline ideas. Sometimes I use it for small DIY projects. Sometimes it turns into a shared space with my kids, where we build LEGO or sit together and draw.
The analog side does not need to look minimal. It needs to be functional and inviting. It is a place where things can stay out for a while so I can return to them without having to pack everything away.
People following me for a long time know that I really like clean and minimalist design, but with time I realized that minimalism also kills creativity, or the passion to work on new things. Maybe it’s best to enjoy a mix of both, minimalism and maximalism, and adapt according to your needs.
Living with the setup
I have been using this two-part desk layout for about nine to ten months and I am very happy with it.
Facing the room instead of the wall makes the office feel more open and comfortable. There is now some sort of depth in front of my eyes, that was lacking previously. Also, having the door in front of me, instead of my back, feels also safer somehow.
Splitting the desk into a digital and an analog side creates a clear mental boundary. And moving the chair from one side to the other is enough to change the context.
I do not see myself going back to a tech only desk. This setup gives me a place to work, a place to think, and a place to spend time with my kids, all on a single surface.
The tanker deal is not just a competition won; it is a decision that shifts the balance. Behind the purchase of the new Airbus A330 MRTT lies a shift in the centre of gravity of Italy’s air defence, which is now looking increasingly to Europe within the NATO framework, leaving behind the US option linked to the Boeing KC-46.
In this context, Italy has formalised the acquisition of six Airbus A330 MRTT tanker aircraft, in a deal with a total value of around 1.39 billion euro, including long-term logistic support. The news emerges from publication on the European TED (Tenders Electronic Daily) portal on 19 May 2026 and confirms that the contract was signed on 16 April by ARMAERO.
The decision closes a process launched in 2022 that went through cancellations, tenders without valid bids and changes in the industrial landscape, before finally settling on a European solution that has now become the standard among several NATO countries.
From the Boeing KC-46 to a return to Airbus: a geopolitical choice
The path that led to the final decision was complex and marked by several changes of course. Initially, in 2022, Italy had selected the Boeing KC-46 Pegasus as the platform to replace and complement the current KC-767A refuelling fleet.
However, the programme was cancelled in 2024, opening a new European tender that proved more difficult than expected. The subsequent procedure, launched in 2024, ended in April 2025 without any offers fully meeting the required technical specifications.
Only in the final phase, in December 2025, was a single proposal left on the table: that of Airbus, which led to the definitive signing of the contract in 2026.
According to international sources and defence-sector analyses, the Italian decision is seen as a clear shift towards the European supply chain, with the definitive abandonment of the Boeing KC-46 platform in the national context.
Both systems are NATO-compatible, so Italy’s ability to operate alongside the United States does not change. The geopolitical difference is that with Boeing the logistical and support centre of gravity remains more “US-centric”, whereas with Airbus a European ecosystem of maintenance, training and supply chains is strengthened.
In practice, NATO remains the overarching framework, but Europe is increasing its weight in enabling capabilities, such as tankers.
The meaning of the contract: far more than a simple aircraft purchase
The A330 MRTT is not just a tanker for in-flight refuelling, but a multi-role platform capable of combining different strategic functions. The aircraft is used both for direct support to combat operations and for long-range strategic transport of personnel and materiel.
For Italy, the introduction of six new tanker aircraft above all means a significant increase in the Italian Air Force’s power-projection capability, particularly for missions that require extended endurance from new-generation fighters such as the F-35 and Eurofighter Typhoon.
Italy joins the club of 19 MRTT operators
Another element that has emerged in recent hours concerns the international dimension of the Airbus programme. With this acquisition, Italy becomes the 19th operator worldwide of the A330 MRTT, a platform that has now been firmly established as the reference standard among NATO and allied countries.
This highlights the growing centrality of the Airbus aircraft in the military tanker market, where in recent years it has steadily gained ground over its US competitors.
The A330 MRTT is designed to deliver extended endurance and operational flexibility. Its primary function is air-to-air refuelling, which allows fighters to significantly extend their time on station in the operational area without returning to base.
This capability translates into a direct advantage for NATO missions, for operations in the wider Mediterranean and for possible crisis scenarios further afield. At the same time, the platform retains a strong logistical component and can also be used for strategic transport and humanitarian operations.
Aircraft variant and industrial participation still to be defined
Despite the signing of the contract, some technical and industrial aspects remain open. It has not yet been clarified whether the chosen configuration will be the standard version of the A330 MRTT or the more recent MRTT+ evolution, based on the A330neo and offering greater fuel efficiency.
In parallel, the level of involvement of Italian industry in the programme still has to be defined, a key factor for the economic and technological return of the operation.
A decision that redraws the balance
Italy’s change of paradigm fits into a broader trend in which Boeing is struggling to expand the export market for its tanker compared with Airbus.
Several defence analysts point out that although the KC-46 is the standard tanker of the USAF, it has suffered technical problems and delays that have slowed its competitiveness abroad, to the benefit of the A330 MRTT, which has already been adopted by many NATO and non-NATO allies. In this sense, the Italian choice is seen more as an industrial victory for Airbus than as an American “political defeat”.
Overall, Italy’s decision to turn to Airbus marks a significant step not only in military terms, but also industrially and geopolitically. Abandoning the KC-46 Pegasus in favour of the A330 MRTT further consolidates the European axis in the military tanker sector, strengthening interoperability with NATO allies that are already users of the platform.
For the Italian Air Force, this is an important qualitative leap that boosts its global power-projection capability and reduces dependence on solutions outside the European industrial base.
Tips
Book Freak #210: The Art of Money Getting
P.T. Barnum’s Golden Rules for Making Money
Get The Art of Money Getting
P.T. Barnum was 70 years old when he turned his most popular lecture into this book in 1880. By then, he’d already built America’s most famous museum in New York, introduced General Tom Thumb to audiences, served as mayor of Bridgeport, gone broke from a disastrous investment in a Connecticut clock company, and clawed his way back. He was 60 when he co-founded the traveling show that eventually became Barnum & Bailey Circus. The Art of Money Getting compresses a lifetime of hustle into 20 plainspoken rules.
Core Principles
1. Don’t Mistake Your Vocation
Barnum’s first rule: pick the work you’re built for, then aim to be the best at it. Most people get this backward. They take whatever job pays and spend decades fighting upstream. The people who succeed have a knack for what they do. Find your knack first.
2. Avoid Debt Like the Plague
Debt eats self-respect. Barnum says young people, especially, should avoid it. The moment you owe somebody money, you’ve handed them a piece of your freedom. The whole game is keeping income above outgo.
3. Whatever You Do, Do It With All Your Might
Half-doing is expensive. Barnum watched neighbors spend whole lifetimes poor because they only kind of worked, while somebody else got rich doing the same job thoroughly. The people who go all in pull ahead of the ones who don’t.
4. Preserve Your Integrity
Nobody buys from someone they don’t trust. You can be the friendliest merchant in town, but if a customer suspects you of cheating, they’ll walk to the next shop. Dishonesty might pay this week. It costs you over a lifetime. Reputation is the actual asset.
Try It Now
Examine your current work. Does it match your natural abilities? If not, what would? Make a plan to move toward it.
List your debts. Create a concrete plan to eliminate them, starting with the smallest. Avoid taking on any new debt this month.
Pick one task you’ve been half-doing. This week, do it with all your might. early and late, leaving no stone unturned.
Quote
“Money is, in some respects, like fire. It is a very excellent servant, but a terrible master.”
“Money is, in some respects, like fire. It is a very excellent servant, but a terrible master.”
Book Freak is published by Cool Tools Lab, a small company of three people. We also run Recomendo, the Cool Tools website, a YouTube channel and podcast, and other newsletters, including Recomendo Deals, Gar’s Tips & Tools, Nomadico, What’s in my NOW?, Tools for Possibilities, Books That Belong On Paper, and Book Freak.
05/22/26
To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".
10HN is also available as an iOS App
If you visit 10HN only rarely, check out the the best articles from the past week.
Visit pancik.com for more.