<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="/sheet.xsl"?><rss version="2.0"><channel><title>Hacker News</title><link>https://news.ycombinator.com/</link><description>Links for the intellectually curious, ranked by readers.</description><item><title>Jailbreaking my car's navigation system just so I can change the time</title><link>https://blog.nns.ee/2026/11/02/renault-hack/</link><pubDate>Mon, 02 Nov 2026 16:29:19 +0000</pubDate><comments>https://news.ycombinator.com/item?id=50339288</comments><description>&lt;a href="https://news.ycombinator.com/item?id=50339288"&gt;Comments&lt;/a&gt;</description><ns0:encoded xmlns:ns0="http://purl.org/rss/1.0/modules/content/">&lt;article class="post" itemscope="" itemtype="http://schema.org/BlogPosting" morss_own_score="9.539094650205762" morss_score="12.453488271691285"&gt;&lt;div class="article-content" itemprop="articleBody" morss_own_score="5.828787242971045" morss_score="189.25982172572967"&gt;&lt;p&gt;The car that I drive is a 2014 Renault Latitude. It's not a fancy car by any means and is starting to show its age, but it gets me from point A to point B and does everything else reasonably well so I've never really had any reason to complain.&lt;/p&gt;&lt;p&gt;When I bought the car, the previous owner asked me whether I wanted a "navigation map SD card" with it.&lt;/p&gt;&lt;p&gt;They mentioned that the car apparently needs this SD card just to change the time on the clock, but I didn't really find that believable - not that they were lying to me, but perhaps they couldn't figure out how to enter the correct settings menu. After all, videos of similar head units online showed the menu with the clock settings option right there.&lt;/p&gt;&lt;p&gt;Since the maps on the SD card were apparently very out of date and didn't function properly, I decided I didn't need it and the previous owner tossed it.&lt;/p&gt;&lt;p&gt;I didn't really miss it. The dashboard display did show a large "No maps found!" message taking up the majority of the display, but it didn't bother me too much.&lt;/p&gt;&lt;p&gt;&lt;a href="https://blog.nns.ee/img/2026-11-02-renault-hack/ui.jpg"&gt;&lt;img src="https://blog.nns.ee/img/2026-11-02-renault-hack/ui.jpg"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Like most other European countries, Estonia uses daylight saving time, and we recently switched from summer time (UTC+3) to "winter time" (UTC+2), which meant that the time displayed on the dashboard was out of sync by an hour. I dived into the settings menu, hoping to easily find the "Set time" option in there.&lt;/p&gt;&lt;p&gt;That never happened.&lt;/p&gt;&lt;p&gt;The menu where the "Set time" option should've been simply didn't have that option. I compared the menus with the ones in online videos, and the option was simply missing. There were two "Settings" buttons on the dash, and one of them worked but only let me change various Bluetooth and phonebook settings, with no time &amp;amp; date settings in sight. The second Settings button did not work whatsoever, instead showing a "No maps detected!" pop up message every time I pressed it.&lt;/p&gt;&lt;p&gt;I must've spent an hour going through various menus, pressing various buttons or button combinations hoping to land in the correct menu, searching the web for information on this particular unit simply because I refused to believe that there was no option to change the time and &lt;em&gt;I clearly must've been missing something obvious&lt;/em&gt;.&lt;/p&gt;&lt;h3&gt;&lt;a href="https://blog.nns.ee/2026/11/02/renault-hack/#just-re-it"&gt;Just RE it&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Still in denial, I decided to fetch the firmware and dig into it, hoping to find some indication on how to open the correct settings menu.&lt;/p&gt;&lt;p&gt;Luckily, I wasn't the first to embark on this journey and someone had already done some reverse engineering work on this particular unit (&lt;a href="https://github.com/andronedev/carminat-tomtom-live-re/blob/main/README.md"&gt;https://github.com/andronedev/carminat-tomtom-live-re/blob/main/README.md&lt;/a&gt;). While it was in French and seemingly heavily LLM-assisted, it did point me to the correct URLs for fetching the update files themselves.&lt;/p&gt;&lt;p&gt;When extracted, the update files included a &lt;code&gt;ttsystem&lt;/code&gt; file which turned out to be an ext3 filesystem containing the device's root filesystem, which was pretty much exactly what I was looking for. The unit itself (TomTom Carminat LIVE, codename &lt;code&gt;beaumont&lt;/code&gt;) is built around a Samsung S5P6440 SoC running TomTom's custom OS based on Linux 2.6.28.10.&lt;/p&gt;&lt;p morss_own_score="7.0" morss_score="11.0"&gt;After reverse engineering it for a while, I came to the conclusion that the previous owner was completely correct. There was absolutely no way to enter the correct settings menu without a navigation SD card inserted. In fact, the menu definition &lt;em&gt;pointing&lt;/em&gt; to the Settings applet was read from the SD card itself, and without one inserted containing the right menu definition, the unit didn't even know &lt;em&gt;how&lt;/em&gt; to enter the Settings applet.&lt;/p&gt;&lt;p&gt;This decision by TomTom (or Renault) is still baffling to me.&lt;/p&gt;&lt;p&gt;What made things worse was that this needed to be a &lt;em&gt;legitimate&lt;/em&gt; SD card. The system had DRM checks which rejected SD cards without the correct CID (a unique ID burned into the card) and files with signatures based on that specific CID, so I couldn't even copy the files to a blank SD card. I'm guessing the DRM was in place to prevent people from pirating maps.&lt;/p&gt;&lt;p&gt;I don't want maps. I have a phone that I use for navigation. I just want to change the damn time.&lt;/p&gt;&lt;p&gt;I checked online and found some third parties selling the card I presumably needed, but with shipping to Estonia, it would've cost me roughly 60 EUR, which I really didn't feel like paying.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Fine&lt;/em&gt;. I'll just root it and do it myself.&lt;/p&gt;&lt;h3&gt;&lt;a href="https://blog.nns.ee/2026/11/02/renault-hack/#easy-wins"&gt;Easy wins?&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;I couldn't find anyone online who'd jailbroken one of these before. I found some old forum threads with long-expired image links that had some pretty generic information about the unit itself and the general consensus was that it was difficult to root.&lt;/p&gt;&lt;p&gt;I didn't expect a Linux 2.6 system from 2011 to be incredibly hard to hack, so I naively went in looking for some easy wins.&lt;/p&gt;&lt;p&gt;My first idea was to modify the ext3 update image itself. It seemed like I could easily just mount the filesystem, modify some init scripts to do what I want, and copy it to a blank SD card for the unit to pick up my modified image and flash it.&lt;/p&gt;&lt;p&gt;While the system showed confirmation prompts to install vanilla, unmodified &lt;code&gt;ttsystem&lt;/code&gt; images with no problem, I could never get it to update to my modified image, and I had no idea why. I checked the updater logic present in the update file itself and couldn't see any reason why my image would be rejected.&lt;/p&gt;&lt;p&gt;It was at this point that I set up an emulator with QEMU, a custom kernel also based on the same 2.6 version, some patches and a very simple CAN emulator for the system to actually boot - albeit reluctantly, wanting to reboot every 3 seconds, which I just patched out by ignoring reboot syscalls.&lt;/p&gt;&lt;p&gt;I used this to test installing the modified update image in there. I then realized that I don't actually &lt;em&gt;have&lt;/em&gt; the &lt;code&gt;recovery&lt;/code&gt; partition that the device boots into to perform the update, and came to the conclusion that there must be some sort of verification layer there that I'm missing.&lt;/p&gt;&lt;p&gt;Taking a closer look at the &lt;code&gt;ttsystem&lt;/code&gt; image also pretty much confirmed this, as it had a bunch of high-entropy data appended to it, followed by some zero blocks, followed by 40 high-entropy bytes. I assumed this was a signature of some sort (40 bytes could be DSA with SHA-1), but with no access to the actual binary doing the verification, I couldn't really figure out how to attack this or if I even could.&lt;/p&gt;&lt;h3&gt;&lt;a href="https://blog.nns.ee/2026/11/02/renault-hack/#back-to-the-drawing-board"&gt;Back to the drawing board&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;I'd been reluctant to put the effort into building the emulator, but it turned out to be extremely useful for testing out various attacks and getting an overview of how the system behaved.&lt;/p&gt;&lt;p&gt;For example, I found out that &lt;em&gt;most&lt;/em&gt; partitions were mounted either read-only, &lt;code&gt;noexec&lt;/code&gt; or both. Mounts from a live system:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;span&gt;rootfs on / type rootfs (rw)&lt;/span&gt;
&lt;span&gt;none on /sys type sysfs (rw,nosuid,noexec)&lt;/span&gt;
&lt;span&gt;none on /proc type proc (rw,nosuid,noexec)&lt;/span&gt;
&lt;span&gt;/dev/mmcblk0p5 on /content type ext3 (rw,nosuid,nodev,noexec,noatime,nodiratime,errors=continue,data=ordered)&lt;/span&gt;
&lt;span&gt;/dev/loop0 on / type ext2 (ro,noatime,nodiratime,errors=continue)&lt;/span&gt;
&lt;span&gt;none on /dev type tmpfs (rw,nosuid,noexec,size=1024k)&lt;/span&gt;
&lt;span&gt;none on /tmp type tmpfs (rw,nosuid,noexec,size=2048k)&lt;/span&gt;
&lt;span&gt;none on /var type tmpfs (rw,nosuid,noexec,size=5120k)&lt;/span&gt;
&lt;span&gt;none on /dev/pts type devpts (rw,nosuid,noexec,gid=5,mode=620)&lt;/span&gt;
&lt;span&gt;none on /var/log type tmpfs (rw,nosuid,noexec,size=1024k)&lt;/span&gt;
&lt;span&gt;/dev/mmcblk0p3 on /mnt/flash type ext3 (rw,sync,nosuid,nodev,noexec,errors=continue,data=ordered)&lt;/span&gt;
&lt;span&gt;/dev/mmcblk1p1 on /media/sdcard type vfat (rw,sync,nosuid,nodev,noexec,noatime,nodiratime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1)&lt;/span&gt;
&lt;span&gt;/dev/loop1 on /media/loopback type ext3 (rw,nosuid,nodev,noexec,noatime,nodiratime,errors=continue,commit=3600,data=journal)&lt;/span&gt;
&lt;span&gt;none on /mnt/movi type unionfs (rw,nosuid,nodev,noexec,noatime,nodiratime,dirs=/media/loopback=rw:/media/sdcard=ro)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Notably, the base FAT32 filesystem of the SD card was mounted to &lt;code&gt;/media/sdcard&lt;/code&gt;, and the system mounted a unionfs on top of it in &lt;code&gt;/mnt/movi&lt;/code&gt;, which had a writable layer pointing to an ext3 filesystem which lived as a file on the external SD. I'm not 100% sure what the point of this setup was (maybe so they can use &lt;code&gt;data=journal&lt;/code&gt;, which survives power loss better?), but nevertheless all of these mounts were &lt;code&gt;noexec&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;This seemed like surprisingly strong security for something from 2011.&lt;/p&gt;&lt;p&gt;Something else that the emulator helped me with was identifying all of the files that the system tried to read from the external SD card. One of these files was &lt;code&gt;master.script&lt;/code&gt;, a script in a custom language for automating certain UI navigation actions. This was loaded every boot and I hoped this would allow me to somehow open the correct settings menu for setting the time.&lt;/p&gt;&lt;p&gt;&lt;a href="https://blog.nns.ee/img/2026-11-02-renault-hack/execute-script.jpg"&gt;&lt;img src="https://blog.nns.ee/img/2026-11-02-renault-hack/execute-script.jpg"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I reversed &lt;code&gt;ttn&lt;/code&gt;, the binary responsible for parsing this script, documenting its functionality as I went, but unfortunately I didn't find any way to open the menu I needed.&lt;/p&gt;&lt;h3&gt;&lt;a href="https://blog.nns.ee/2026/11/02/renault-hack/#more-wild-goose-chases"&gt;More wild goose chases&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;I still thought &lt;code&gt;master.script&lt;/code&gt; was what I should be putting my effort into, since it had a lot of functionality that could be a potential attack vector.&lt;/p&gt;&lt;p&gt;As usual, I checked for any &lt;code&gt;system&lt;/code&gt; or &lt;code&gt;popen&lt;/code&gt; calls that would allow me to perform command injection. Unfortunately, I didn't find any constructed with user input.&lt;/p&gt;&lt;p&gt;I thought I had hit the jackpot when, while reversing the parser, I came across a &lt;code&gt;SHEX&lt;/code&gt;/&lt;code&gt;SHELLEXECUTE&lt;/code&gt; command. It passed an arbitrary argument to &lt;code&gt;launchserver&lt;/code&gt;, which launched whatever command line was provided with &lt;code&gt;execve&lt;/code&gt;.&lt;/p&gt;&lt;p morss_own_score="7.0" morss_score="11.0"&gt;This had two obstacles. The first one was that there was still no way to get it to execute a &lt;em&gt;custom&lt;/em&gt; executable directly, as the SD card was mounted &lt;code&gt;noexec&lt;/code&gt; which prevents executables and scripts on it from running. However, this could be bypassed by not executing the script directly, but rather executing something like &lt;code&gt;/bin/sh /media/sdcard/payload.sh&lt;/code&gt;, which would go through &lt;code&gt;/bin/sh&lt;/code&gt; on the rootfs, which was &lt;em&gt;not&lt;/em&gt; mounted &lt;code&gt;noexec&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;The second hurdle was bigger, however. It turned out that while &lt;code&gt;launchserver&lt;/code&gt; would happily launch anything, &lt;code&gt;SHEX&lt;/code&gt; accepts only a single whitespace-delimited token. This means that I could only control &lt;em&gt;which&lt;/em&gt; binary was executed, but not pass it any arguments. Combined with the previous obstacle, this then also seemed like a dead end because I could only run scripts or binaries that were already on the rootfs. I did look through most of them, but nothing seemed very helpful.&lt;/p&gt;&lt;p&gt;Defeated, I started looking at file writes. Maybe if I could write files to places I shouldn't be able to, that would give me some sort of leverage.&lt;/p&gt;&lt;p&gt;Sure enough, I discovered the &lt;code&gt;LOG&lt;/code&gt; command, which let me truncate a file (defined with &lt;code&gt;#define LOGFILE log.txt&lt;/code&gt;) and write a single line to a file of my choosing. This one actually allowed spaces and regular ASCII characters, but only bytes 0x20 to 0x7E, meaning writing binary data is out of the question. As &lt;code&gt;ttn&lt;/code&gt; runs as root, any writes would also be written as root.&lt;/p&gt;&lt;p&gt;It also had a classic path traversal vulnerability. Defining &lt;code&gt;LOGFILE&lt;/code&gt; with &lt;code&gt;../&lt;/code&gt; in it allowed me to write outside the intended logfile directory, theoretically allowing me to write printable ASCII to anywhere on the system.&lt;/p&gt;&lt;p&gt;However, I once again ran into a wall with how the mount points were set up. I couldn't overwrite anything on the rootfs since it was mounted read-only, and everything else was mounted &lt;code&gt;noexec&lt;/code&gt; and would never be executed anyways. I also looked into whether there were any useful config files I could overwrite, but most files were a custom binary format that I couldn't write with &lt;code&gt;LOG&lt;/code&gt; or were otherwise unhelpful. This also looked like a dead end.&lt;/p&gt;&lt;p&gt;Among other things, &lt;code&gt;master.script&lt;/code&gt; allowed displaying images on the screen (GIFs/BMPs). I spent some time setting up a fuzzing environment using Unicorn to see if I could hit any image decoder bugs causing memory corruption, and while I did get quite a few OOB reads, I didn't find any useful writes.&lt;/p&gt;&lt;h3&gt;&lt;a href="https://blog.nns.ee/2026/11/02/renault-hack/#borrowing-a-trick-from-kernel-exploits"&gt;Borrowing a trick from kernel exploits&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;I had been researching, reverse engineering and trying to come up with different strategies to run arbitrary code for a while. Much to my frustration, none of my strategies ended up working, and I took a step back to look at the bigger picture and figure out if I can make any of the puzzle pieces that I already have fit together.&lt;/p&gt;&lt;p&gt;Among other things, I knew I could:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Execute arbitrary binaries, but with no arguments and only the ones already on the rootfs&lt;/li&gt;&lt;li&gt;Write ASCII to paths of my own choosing&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This is when I had a brainwave and was reminded of a trick that kernel exploits often use: Instead of trying to get the userland to execute our script, why don't I get the &lt;em&gt;kernel&lt;/em&gt; to execute our script instead?&lt;/p&gt;&lt;p&gt;Often, Linux kernel exploits, when being able to write arbitrary memory, overwrite the &lt;code&gt;core_pattern&lt;/code&gt; string. Normally, this dictates how coredumps are stored when a process crashes, but it &lt;em&gt;also&lt;/em&gt; accepts special syntax for piping these coredumps to a process instead (&lt;code&gt;|/bin/my-coredump-handler&lt;/code&gt;). When a crash occurs, the kernel spawns the process specified in &lt;code&gt;core_pattern&lt;/code&gt; and pipes the data in there.&lt;/p&gt;&lt;p&gt;&lt;code&gt;core_pattern&lt;/code&gt; also supports cmdline arguments for the spawned process. I got lucky here, since support for this landed in 2.6.24 whereas the unit's kernel was 2.6.28.&lt;/p&gt;&lt;p&gt;Importantly, you're also able to set &lt;code&gt;core_pattern&lt;/code&gt; from &lt;em&gt;userland&lt;/em&gt; by writing the pattern to &lt;code&gt;/proc/sys/kernel/core_pattern&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;I can easily use this to point &lt;code&gt;LOGFILE&lt;/code&gt; to &lt;code&gt;../../proc/sys/kernel/core_pattern&lt;/code&gt; and &lt;code&gt;LOG&lt;/code&gt; the string &lt;code&gt;|/bin/sh /media/sdcard/payload.sh&lt;/code&gt;. This would run the rootfs &lt;code&gt;/bin/sh&lt;/code&gt; and execute our script with it as root.&lt;/p&gt;&lt;p&gt;Being able to execute arbitrary binaries also turned out to be useful even without arguments, since I needed to somehow get a program to crash, triggering a coredump. Using a DoS vuln to crash the script parser or the main UI itself wouldn't work very well, because this would immediately trigger a reboot of the whole system, killing my script.&lt;/p&gt;&lt;p&gt;I used my emulator setup to execute pretty much every single binary on the system, and found that &lt;code&gt;/bin/dbus-monitor&lt;/code&gt; raised a SIGABRT if it couldn't connect to the system bus (which the unit didn't run), triggering a coredump. This was perfect.&lt;/p&gt;&lt;h3&gt;&lt;a href="https://blog.nns.ee/2026/11/02/renault-hack/#putting-it-together"&gt;Putting it together&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;My final &lt;code&gt;master.script&lt;/code&gt; turned out to be quite simple:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; LOGFILE&lt;/span&gt;&lt;span&gt; ..&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;..&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;proc&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;sys&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;kernel&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;core_pattern&lt;/span&gt;
&lt;span&gt;LOG &lt;/span&gt;&lt;span&gt;|/&lt;/span&gt;&lt;span&gt;bin&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;sh &lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;media&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;sdcard&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;payload.sh&lt;/span&gt;
&lt;span&gt;SHEX &lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;bin&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;dbus&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;monitor&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I initially confirmed success by simply calling &lt;code&gt;reboot&lt;/code&gt; in the &lt;code&gt;payload.sh&lt;/code&gt; script. I was very pleasantly surprised when booting the unit with the SD card inserted and pressing "Yes" at the "&lt;em&gt;Execute master.script?&lt;/em&gt;" prompt, the unit rebooted, confirming that I had code execution.&lt;/p&gt;&lt;p&gt;The first thing I did was use this to create a full backup of the internal eMMC using &lt;code&gt;dd&lt;/code&gt;. With a more complete dump of the system, I pretty quickly figured out that the date &amp;amp; time settings that I'm interested in are in &lt;code&gt;/mnt/flash/settings.dat&lt;/code&gt;, which is a custom binary format. After some more reverse engineering, it turned out the unit doesn't really have a concept of timezones at all. It gets the time from GPS and stores the local offset as a number of minutes. Mine was set to 180.&lt;/p&gt;&lt;p&gt;I changed it to 120.&lt;/p&gt;&lt;p&gt;That is how I was finally able to fix my car's timezone.&lt;/p&gt;&lt;/div&gt;&lt;/article&gt;</ns0:encoded></item><item><title>Fujifilm to boost tape production 5x as AI fuels archiving demand</title><link>https://arstechnica.com/gadgets/2026/10/fujifilm-to-boost-tape-production-5x-as-ai-fuels-archiving-demand/</link><pubDate>Mon, 02 Nov 2026 14:02:42 +0000</pubDate><comments>https://news.ycombinator.com/item?id=50336918</comments><description>&lt;a href="https://news.ycombinator.com/item?id=50336918"&gt;Comments&lt;/a&gt;</description><ns0:encoded xmlns:ns0="http://purl.org/rss/1.0/modules/content/">&lt;article class="double-column h-entry post-2179647 post type-post status-publish format-standard has-post-thumbnail hentry category-ai category-gadgets tag-fujifilm tag-kanagawa tag-lto tag-magnetic-tape-storage" data-id="2179647" morss_own_score="9.058380414312618" morss_score="12.60840555257305"&gt;



&lt;div class="" morss_own_score="2.4375" morss_score="10.4375"&gt;





&lt;span&gt;
    Tape Revival
  &lt;/span&gt;


&lt;h1&gt;
        Fujifilm to boost tape production 5x as AI fuels archiving demand
      &lt;/h1&gt;
&lt;p&gt;
        Low costs and offline security mean magnetic tape still has a job.
      &lt;/p&gt;

&lt;div&gt;&lt;a href="https://arstechnica.com/author/nickindge/"&gt;
    Nick Indge
  &lt;/a&gt;
  –
  
&lt;time title="2026-10-30T13:38:19-04:00"&gt;
  Oct 30, 2026 1:38 pm
&lt;/time&gt;
&lt;span&gt;|&lt;/span&gt; &lt;a href="https://arstechnica.com/gadgets/2026/10/fujifilm-to-boost-tape-production-5x-as-ai-fuels-archiving-demand/#comments" title="99 comments"&gt;

    99
  &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;




&lt;a href="https://cdn.arstechnica.net/wp-content/uploads/2026/10/GettyImages-2202649793.jpg"&gt;
&lt;img src="https://cdn.arstechnica.net/wp-content/uploads/2026/10/GettyImages-2202649793-640x357.jpg"&gt;
&lt;img src="https://cdn.arstechnica.net/wp-content/uploads/2026/10/GettyImages-2202649793-1152x648.jpg"&gt;
&lt;/a&gt;




&lt;span&gt;
          Credit:

                      &lt;a href="https://arstechnica.com/gadgets/2026/10/fujifilm-to-boost-tape-production-5x-as-ai-fuels-archiving-demand/www.gettyimages.com/detail/photo/vintage-reel-to-reel-tape-recorder-royalty-free-image/2202649793"&gt;
          
          iStock / Getty Images Plus

                      &lt;/a&gt;
&lt;/span&gt;









&lt;span&gt;
          Credit:

                      &lt;a href="https://arstechnica.com/gadgets/2026/10/fujifilm-to-boost-tape-production-5x-as-ai-fuels-archiving-demand/www.gettyimages.com/detail/photo/vintage-reel-to-reel-tape-recorder-royalty-free-image/2202649793"&gt;
          
          iStock / Getty Images Plus

                      &lt;/a&gt;
&lt;/span&gt;














&lt;span&gt;Story text&lt;/span&gt;





&lt;div class="grid grid-cols-3 items-center gap-3 px-5 py-2" morss_own_score="1.619047619047619" morss_score="9.619047619047619"&gt;
&lt;label&gt;Size&lt;/label&gt;

&lt;option value="small"&gt;Small&lt;/option&gt;
&lt;option value="standard"&gt;Standard&lt;/option&gt;
&lt;option value="large"&gt;Large&lt;/option&gt;

&lt;label&gt;Width
      &lt;span&gt;*&lt;/span&gt;
&lt;/label&gt;

&lt;option value="standard"&gt;Standard&lt;/option&gt;
&lt;option value="wide"&gt;Wide&lt;/option&gt;

&lt;label&gt;Links&lt;/label&gt;

&lt;option value="standard"&gt;Standard&lt;/option&gt;
&lt;option value="orange"&gt;Orange&lt;/option&gt;


&lt;span&gt;* Subscribers only&lt;/span&gt;&lt;br&gt;
      &lt;a href="https://arstechnica.com/store/product/subscriptions/"&gt;Learn more&lt;/a&gt;

&lt;/div&gt;







&lt;div class="post-content post-content-double" morss_own_score="5.876288659793814" morss_score="27.7675930076199"&gt;
&lt;p&gt;In an announcement released Thursday, Fujifilm said it will invest roughly 10 billion yen (about $63 million) to increase its production capacity fivefold for an unlikely beneficiary of the AI era: magnetic tape.&lt;/p&gt;
&lt;p&gt;Fujifilm attributes the surge in archiving demand to the spread of generative AI, which the company remarked is producing “exponential growth” in data needs worldwide. The 5x increase in production capacity will be measured against fiscal year 2025 production levels.&lt;/p&gt;
&lt;p&gt;The investment in Fujifilm’s Kanagawa Factory, Odawara site will make it “the largest investment Fujifilm has made to date in dedicated LTO tape facilities.” The project will run from fiscal years 2026 through 2028 to fund manufacturing expansion and additional personnel, primarily to produce the latest-generation “FUJIFILM LTO Ultrium10” tape.&lt;/p&gt;
&lt;p&gt;Mainstream consumers may have abandoned tape decades ago, but the enterprise world never did. Cloud giants rely on tape to back up vast troves of data. Fujifilm’s work with magnetic tape as a data storage medium dates back to the 1950s, and in 2000, the company released its first LTO Ultrium storage tape. In 2011, the company was the first to commercially produce tape with barium ferrite magnetic particles, and in 2025 it debuted the LTO Ultrium10, the first storage solution in the medium to use what the company calls “fine hybrid magnetic particles” by combining barium ferrite with strontium ferrite tech. Each generation of tape (currently Gen 10) has seen meaningful increases in both compressed and uncompressed storage limits.&lt;/p&gt;
&lt;figure&gt;



&lt;a href="https://cdn.arstechnica.net/wp-content/uploads/2026/10/LTO-Roadmap-2026-HiRes.jpg"&gt;
&lt;img src="https://cdn.arstechnica.net/wp-content/uploads/2026/10/LTO-Roadmap-2026-HiRes.jpg"&gt;
&lt;/a&gt;
&lt;div&gt;
              LTO capacity by generation. Gen 10 is the current tech; Gen 11-14 figures are consortium projections for the future.
                              &lt;div&gt;
                  Credit:
                                      &lt;a href="https://www.lto.org/roadmap/"&gt;LTO.org&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;



&lt;figcaption&gt;


&lt;div&gt;
      LTO capacity by generation. Gen 10 is the current tech; Gen 11-14 figures are consortium projections for the future.

              &lt;span&gt;
          Credit:

                      &lt;a href="https://www.lto.org/roadmap/"&gt;
          
          LTO.org

                      &lt;/a&gt;
&lt;/span&gt;
&lt;/div&gt;

&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;According to Fujifilm, “major cloud service and data center operators” have been expanding their use of magnetic tape because it can store large data volumes at relatively low cost. Tape backups can be easily disconnected and stored in a drawer, a vault, or a separate facility. Fujifilm highlights the ability to air-gap tape cartridges as a last defense for user data: “Given the sophistication of cyberattacks, magnetic tape is attracting increasing attention as a means of protecting data from threats such as ransomware.”&lt;/p&gt;


&lt;/div&gt;





&lt;a href="https://arstechnica.com/author/nickindge/"&gt;&lt;img src="https://cdn.arstechnica.net/wp-content/uploads/2026/10/5814.jpg"&gt;&lt;/a&gt;

&lt;a href="https://arstechnica.com/author/nickindge/"&gt;
                  Nick Indge
              &lt;/a&gt;
&lt;span&gt;Senior Technology Reporter&lt;/span&gt;




&lt;a href="https://arstechnica.com/author/nickindge/"&gt;
                  Nick Indge
              &lt;/a&gt;
&lt;span&gt;Senior Technology Reporter&lt;/span&gt;

&lt;div&gt;
      Nick Indge is a Senior Technology Reporter at Ars Technica covering hardware, embedded systems, and self-hosted infrastructure. A former security investigator turned tech writer, he writes to help readers escape subscription traps and regain ownership of their digital lives. He lives in Chicagoland with his family and a goofball husky.
    &lt;/div&gt;




&lt;a href="https://arstechnica.com/gadgets/2026/10/fujifilm-to-boost-tape-production-5x-as-ai-fuels-archiving-demand/#comments" title="99 comments"&gt;

    99 Comments
  &lt;/a&gt;










&lt;/article&gt;
</ns0:encoded></item><item><title>The 'Astra can read and write weights to improve Qwen' post is misleading</title><link>https://honnibal.dev/blog/astra-read-write-misleading</link><pubDate>Tue, 03 Nov 2026 12:21:17 +0000</pubDate><comments>https://news.ycombinator.com/item?id=50351111</comments><description>&lt;a href="https://news.ycombinator.com/item?id=50351111"&gt;Comments&lt;/a&gt;</description><ns0:encoded xmlns:ns0="http://purl.org/rss/1.0/modules/content/">&lt;div class="post_content__xFbqa" morss_own_score="5.830721003134796" morss_score="32.3307210031348"&gt;&lt;p&gt;Stage magicians often do the same trick multiple ways.
One iteration uses a gimmick prop, the next one shows you the prop isn’t gimmick but that one palms the object, the third time was a forced choice etc.
When you watch the performance you assume there’s only one technique, so each time they do it they seem to debunk your hypothesis about how it
must be working.&lt;/p&gt;
&lt;p&gt;This is pretty much how the experiments in the &lt;a href="https://rikiyat.github.io/blog/weight-space-programming/"&gt;‘Astra can read and write weights to improve Qwen’ post&lt;/a&gt; work. The post’s abstract says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Just by looking at the raw weights, GPT-6 Astra can tell what a network was trained to do. And without any environment feedback, it has no trouble writing, from scratch, small game-playing networks that outplay networks trained with PPO for 100 million steps.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Likewise, asked to make Qwen3.5-0.8B better at math without gradients, Astra identifies an issue in its weights causing reasoning loops that Qwen’s own model card warns about, and fixes this by natively editing 0.016% of the weights. With the same sampling settings, this weight correction raises MATH-500 from 7.9% to 48.1% and generalizes out of the box to instruction following, raising IFEval by 3x.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you read that, would you assume that the Qwen experiment worked ‘just by looking at the raw weights’? Well it doesn’t. There’s experiments that look at raw weights, and experiments that improve a game-playing network, and an experiment that improves Qwen at maths. But those latter two aren’t just working with raw weights, they write Python programs.&lt;/p&gt;
&lt;p&gt;Here’s a summary of what the post actually does and how the techniques work.&lt;/p&gt;
&lt;figure&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;#&lt;/th&gt;&lt;th&gt;Experiment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt;&lt;th&gt;Reads raw weights?&lt;/th&gt;&lt;th&gt;Writes weights?&lt;/th&gt;&lt;th&gt;Python?&lt;/th&gt;&lt;th&gt;Runs network?&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;Name the game a PPO MLP was trained on&lt;/td&gt;&lt;td&gt;17K&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;4/4 correct&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Name the shape a diffusion MLP generates&lt;/td&gt;&lt;td&gt;24K&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;3/3 correct&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;Name a char transformer’s language and copying heads&lt;/td&gt;&lt;td&gt;7.2M&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;3/3 correct&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;Fix a stuck Kinetix car policy&lt;/td&gt;&lt;td&gt;172K&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No¹&lt;/td&gt;&lt;td&gt;0% → 100%²&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;Write MinAtar game MLPs from scratch&lt;/td&gt;&lt;td&gt;20K&lt;/td&gt;&lt;td&gt;No³&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Beats PPO-100M⁴&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;Write a 9×9 Go network&lt;/td&gt;&lt;td&gt;1.5M&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes (0–50 passes)&lt;/td&gt;&lt;td&gt;Beats PPO&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7a&lt;/td&gt;&lt;td&gt;Spot the sycophantic Gemma 3&lt;/td&gt;&lt;td&gt;270M&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Failed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7b&lt;/td&gt;&lt;td&gt;Same, seeing attention patterns&lt;/td&gt;&lt;td&gt;270M&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes⁵&lt;/td&gt;&lt;td&gt;3/3 correct&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;Fix Qwen3.5’s maths&lt;/td&gt;&lt;td&gt;800M&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes (50 passes)&lt;/td&gt;&lt;td&gt;7.9% → 48.1%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;8b&lt;/td&gt;&lt;td&gt;Same, on Gemma 3&lt;/td&gt;&lt;td&gt;270M&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes (50 passes)&lt;/td&gt;&lt;td&gt;Failed&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;figcaption&gt;&lt;p&gt;¹ Given one recorded episode of the failure.&lt;/p&gt;&lt;p&gt;
² In one try, changing 3.5% of the weights.&lt;/p&gt;&lt;p&gt;
³ Weights start at zero, so there’s nothing to read.&lt;/p&gt;&lt;p&gt;
⁴ Beats PPO-500M only on Breakout (517 vs. 25); loses to it on Seaquest (53 vs. 89) and Asterix (53 vs. 55).&lt;/p&gt;&lt;p&gt;
⁵ Runs up to 16 texts and sees only the attention patterns, not the outputs.&lt;/p&gt;&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;The “just by looking at the raw weights” setting (raw floats in context, no tools, no
running the network) only appears in experiments 1, 2 and 4, on networks of 17K–172K
weights. Every experiment involving a real language model uses Python, and the
Qwen result, which is the headline one, also gets to run the model on up to 50 batches of practice problems.&lt;/p&gt;
&lt;p&gt;What the Qwen result actually shows is that Astra can be prompted to devise and perform tasks that
a human ML engineer could do. Human ML engineers write snippets of code that analyse or
even modify network weights “directly” all the time. Figuring out how to do this productively is not
nothing, and AI models of a year or two ago would have failed at all these tasks.&lt;/p&gt;
&lt;p&gt;But to me the Qwen result and the other experiments that use Python don’t belong in the same post or paper as the experiments that read the weights directly.
A single technique that could achieve both, “Author weights for a small game from scratch” and “Improve the performance of a large model on a sample task” would imply a deep capability. If you test a single technique that way you’ve demonstrated a sort of ‘gestalt’ of the weights (it can write them out from scratch) and also that it understands a large existing network. But that’s not at all true here, because it’s not a single technique.&lt;/p&gt;&lt;/div&gt;</ns0:encoded></item><item><title>No Brother of Mine Will Play the Flute</title><link>https://homosabiens.substack.com/p/no-brother-of-mine-will-play-the</link><pubDate>Tue, 03 Nov 2026 15:40:04 +0000</pubDate><comments>https://news.ycombinator.com/item?id=50353360</comments><description>&lt;a href="https://news.ycombinator.com/item?id=50353360"&gt;Comments&lt;/a&gt;</description><ns0:encoded xmlns:ns0="http://purl.org/rss/1.0/modules/content/">&lt;div class="body markup" dir="auto" morss_own_score="5.72983114446529" morss_score="103.63245638934475"&gt;&lt;p&gt;“No brother of mine will play the flute.”&lt;/p&gt;&lt;p&gt;&lt;span&gt;These are the words my older brother uttered—&lt;/span&gt;&lt;em&gt;pronounced&lt;/em&gt;&lt;span&gt;, more like—&lt;/span&gt;&lt;strong&gt;decreed&lt;/strong&gt;&lt;span&gt;, even—as I, a ten-year-old transitioning from elementary school to middle, debated the merits of various instruments I might learn, in band class.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;(I had been leaning toward flute.)&lt;/p&gt;&lt;p&gt;(I ended up going with clarinet.)&lt;/p&gt;&lt;hr&gt;&lt;p&gt;I was recently in a conversation where a friend said, approximately:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I feel you’re on stronger ground, Duncan, when you say that the status quo is unfairly blocking some people from activities they spontaneously want to do and (you argue) safely could in a different society.&lt;/p&gt;&lt;p&gt;I feel less comfortable when you dig for reasons that other people’s aversions to touch or sexual activity or whatever might be “unhealthy” (against some standard I’m not sure you’ve made a case for the universal healthiness of).&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span&gt;(I’m sort of dropping you into the deep end; you can probably figure out &lt;/span&gt;&lt;a href="https://homosabiens.substack.com/p/you-are-the-deer-in-the-subway"&gt;what&lt;/a&gt; &lt;a href="https://homosabiens.substack.com/p/hubris-and-control"&gt;sort&lt;/a&gt; &lt;a href="https://homosabiens.substack.com/p/trauma-and-grooming"&gt;of&lt;/a&gt; &lt;a href="https://homosabiens.substack.com/p/in-defense-of-punch-bug"&gt;conversation&lt;/a&gt; &lt;a href="https://homosabiens.substack.com/p/invalidating-imaginary-injury"&gt;it&lt;/a&gt; &lt;a href="https://homosabiens.substack.com/p/benign-boundary-violations"&gt;was&lt;/a&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;I had a lot of thoughts in response.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I think the statistical case for the unhealth of the younger generation is very strong, vis-a-vis depression, isolation, anxiety, etc. I’m reminded of that meme:&lt;/p&gt;&lt;/blockquote&gt;&lt;figure&gt;&lt;a href="https://substackcdn.com/image/fetch/$s_!AkYa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa658ffcd-5a3a-4c9a-b3e2-957a2ea2ac39_1338x1022.png"&gt;&lt;img src="https://substackcdn.com/image/fetch/$s_!AkYa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa658ffcd-5a3a-4c9a-b3e2-957a2ea2ac39_1338x1022.png"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span&gt;Like, asexuals &lt;/span&gt;&lt;em&gt;absolutely&lt;/em&gt;&lt;span&gt; exist (and are a completely healthy type of human), but also we know the rough base rate for asexuality and the stuff we’re seeing with younger generations staying at home and touching no one ever and living on social media and masturbation &lt;/span&gt;&lt;em&gt;exceeds&lt;/em&gt;&lt;span&gt; that rate, by a lot.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;(And it’s not like there aren’t obvious causes—things happening that are unprecedented in our social and evolutionary history, that you would expect to fuck people up in the very ways we’re seeing people get fucked up. It’s a deer in the subway prior—the vast majority of possible departures from equilibrium are not improvements, or at least not straightforwardly/costlessly so.)&lt;/p&gt;&lt;p&gt;&lt;em&gt;In general,&lt;/em&gt;&lt;span&gt; if someone seems elsewise completely happy and healthy and well-adjusted, then I certainly don’t question their sexuality or their aversion to touch or whatever. It’s mostly just that I’ve almost never &lt;/span&gt;&lt;em&gt;seen&lt;/em&gt;&lt;span&gt; a person who had a strong aversion to touch who otherwise did, in fact, seem completely healthy and happy and well-adjusted. Something like 9 out of 10 people that I’ve met who had strong touch aversions were also visibly maladjusted in the same way that you would expect from the stereotype of an animal that was cringing away from normal touch (e.g. from other members of its own species).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The 1 out of 10 does exist!&lt;/p&gt;&lt;p&gt;But it’s a strong prior.&lt;/p&gt;&lt;p&gt;&lt;span&gt;To put it another way: if someone is like “Yeah, I am wildly outside of the distribution for desiring touch, and also I’m deeply fucked up in this other way, but don’t worry, I swear, those things are totally unrelated, the touch thing is #valid,” I &lt;/span&gt;&lt;em&gt;squint&lt;/em&gt;&lt;span&gt; at them.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Healthy person who is touch-averse: sure, range of preferences; different people &lt;/span&gt;&lt;a href="https://www.lesswrong.com/posts/yepKvM5rsvbpix75G/you-don-t-exist-duncan"&gt;exist&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Unhealthy person: I bet on &lt;/span&gt;&lt;em&gt;entanglement.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span&gt;Then some time passed, and I felt the need to &lt;/span&gt;&lt;em&gt;keep adding clarifications,&lt;/em&gt;&lt;span&gt; and I came to the insight that’s at the core of this essay:&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span&gt;Oh, also: hopefully it’s clear that, even if the touch aversion &lt;/span&gt;&lt;em&gt;is&lt;/em&gt;&lt;span&gt; part of a complex of maladjustments, the answer is &lt;/span&gt;&lt;strong&gt;obviously&lt;/strong&gt;&lt;span&gt; not to brute-force override their touch preferences, in the moment. Like, even a malignant touch aversion is still real! To the extent that you want to help them fix it (and they want that, too), you can’t just “should” it away.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;A random human saying “your touch preferences are Wrong” is indeed likely to do or advocate a bunch of abhorrent shit that I also agree is wrong, and vocally advocate against—someone’s traumatic adjustment to unhealthy circumstances is often itself pretty well-adjusted, in the sense of making the available best of a bad situation.&lt;/p&gt;&lt;p&gt;&lt;span&gt;(e.g. slowing down in winter, which I recently &lt;/span&gt;&lt;a href="https://homosabiens.substack.com/i/195498630/v"&gt;argued against pathologizing&lt;/a&gt;&lt;span&gt;, even though winter itself was not really present in our African ancestral experience and there’s a decently strong argument that we’re not really adapted for it and therefore the slowing-down is more of a cope than a straightforward natural good.)&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr&gt;&lt;p&gt;Here’s the thing about what my brother had to say, regarding the flute:&lt;/p&gt;&lt;p&gt;&lt;span&gt;The boys in our middle school and high school who &lt;/span&gt;&lt;em&gt;did&lt;/em&gt;&lt;span&gt; play the flute did not do well, as a class.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;That’s … mostly an indictment of the local culture. Like, it’s &lt;/span&gt;&lt;em&gt;bad&lt;/em&gt;&lt;span&gt; if your school bullies and hazes people because a) for some reason everybody has decided that one’s choice of musical instrument is a Gender Thing™ and b) if you pick the wrong one then you’re some kind of Wrong, yourself, and c) the correct response to &lt;/span&gt;&lt;em&gt;that&lt;/em&gt;&lt;span&gt; is to torment you for seven years.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;That’s bad.&lt;/p&gt;&lt;p&gt;&lt;span&gt;And also. &lt;/span&gt;&lt;em&gt;That was the reality of the situation.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;There’s a sort of wishful thinking that I’ve written about &lt;/span&gt;&lt;a href="https://www.lesswrong.com/posts/gNodQGNoPDjztasbh/lies-damn-lies-and-fabricated-options"&gt;at length&lt;/a&gt;&lt;span&gt;, before, where a certain kind of Good Parent™ might look at the situation and go “That’s stupid. You shouldn’t be constrained in your choice of musical instrument by small-minded bullies and hicks. Get your shoes, we’re going to get you a flute &lt;/span&gt;&lt;em&gt;right now.&lt;/em&gt;&lt;span&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;And in the moment, I probably would have felt a rush of satisfaction and validation, and appreciation for the support.&lt;/p&gt;&lt;p&gt;And then I would’ve spent seven years one layer further down in hell.&lt;/p&gt;&lt;p&gt;&lt;span&gt;The &lt;/span&gt;&lt;em&gt;actual &lt;/em&gt;&lt;span&gt;choice before me was not, in fact, “costlessly choose the thing you want” versus “kowtow to the fickle whims of a broken society.”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;It was “spend a large fraction of your finite points &lt;/span&gt;&lt;em&gt;here,&lt;/em&gt;&lt;span&gt; on this specific battle,” versus “keep your head down and enjoy playing the next-most-appealing instrument in relative peace.”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;(The clarinet was also fraught, by the way—just somewhat less so. There was a rather awkward moment when Philip Howard and I got to high school, and the band divided up by instrument to go off and practice, and the clarinetists headed for the girls’ locker room, because that’s where the clarinetists had &lt;/span&gt;&lt;em&gt;always&lt;/em&gt;&lt;span&gt; gone to practice.)&lt;/span&gt;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;A lot of shit is broken in the world right now.&lt;/p&gt;&lt;p&gt;&lt;span&gt;And a lot of our &lt;/span&gt;&lt;em&gt;responses&lt;/em&gt;&lt;span&gt; to that broken shit are themselves broken. Masking. Being closeted. Self-medicating. Doom scrolling. Hiding. &lt;/span&gt;&lt;a href="https://medium.com/@ThingMaker/no-legal-targets-bed45909cd7b"&gt;Lashing out&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Sometimes, those broken responses can be self-reinforcing. They can start a vicious spiral that digs you further, and further, and further. Political polarization begets further political polarization; touch-starved people often become averse to touch, and this sucks. There’s something there that is &lt;/span&gt;&lt;em&gt;important&lt;/em&gt;&lt;span&gt; to fix, before it crosses the point of no return.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;But the &lt;/span&gt;&lt;em&gt;way&lt;/em&gt;&lt;span&gt; to fix it isn’t to ignore the problem. You don’t cure someone of their arachnophobia by tossing a box of spiders at them. Coping strategies are there &lt;/span&gt;&lt;em&gt;for a reason,&lt;/em&gt;&lt;span&gt; and you almost never improve a situation by yanking away the crutch.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;My friend heard me loudly pathologizing certain signatures of the younger generation (such as their social isolation and touch aversion) and got &lt;/span&gt;&lt;em&gt;nervous,&lt;/em&gt;&lt;span&gt; because when people start saying “X is unhealthy and wrong,” they often move pretty quickly to &lt;/span&gt;&lt;em&gt;doing&lt;/em&gt;&lt;span&gt; something about it, and the cure is often worse than the disease.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;His objection was sound, and reasonable. &lt;/p&gt;&lt;p&gt;&lt;span&gt;(And I’m glad he lodged it openly, because it was a good reminder to back up and be explicit about &lt;/span&gt;&lt;em&gt;not&lt;/em&gt;&lt;span&gt; taking an ill-advised next step. I had forgotten to emphasize that part, because I had taken it for granted.)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;People from &lt;/span&gt;&lt;a href="https://homosabiens.substack.com/p/review-conor-moretons-civilization"&gt;Agor&lt;/a&gt;&lt;span&gt; are a &lt;/span&gt;&lt;em&gt;tiny, tiny bit&lt;/em&gt; &lt;a href="https://www.lesswrong.com/posts/t2LGSDwT7zSnAGybG/split-and-commit"&gt;more sane&lt;/a&gt;&lt;span&gt;, when it comes to stuff like that. We intentionally practice the habit of being able to acknowledge that a thing is broken and bad while &lt;/span&gt;&lt;em&gt;not&lt;/em&gt;&lt;span&gt; taking any action in response, because we know that hasty action is likely to &lt;/span&gt;&lt;a href="https://homosabiens.substack.com/p/the-road-to-hell"&gt;make things even worse&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;(The axiom “most possible departures from equilibrium are not improvements” applies &lt;/span&gt;&lt;em&gt;just as well&lt;/em&gt;&lt;span&gt; to the &lt;/span&gt;&lt;em&gt;new&lt;/em&gt;&lt;span&gt; equilibrium of [problem] + [coping strategy]. By the time someone has &lt;/span&gt;&lt;em&gt;developed&lt;/em&gt;&lt;span&gt; a coping strategy, they’ve usually already searched the space of possibility at least a little, and found a local balance that minimizes the bad stuff, such that any single step in any direction is unlikely to be better. The fix in such cases usually requires changing two or three or four things &lt;/span&gt;&lt;em&gt;all at once,&lt;/em&gt;&lt;span&gt; and &lt;/span&gt;&lt;em&gt;that&lt;/em&gt;&lt;span&gt; kind of intervention takes care and forethought and patience and humility.)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;It was wrong for the people at my school to harass boys for playing “girly” instruments.&lt;/p&gt;&lt;p&gt;&lt;span&gt;It was also wrong for my brother to trample all over my personal sovereignty, and (essentially) &lt;/span&gt;&lt;em&gt;take away from me&lt;/em&gt;&lt;span&gt; the freedom to choose which instrument I would play for the next seven years.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;But those two wrongs &lt;/span&gt;&lt;em&gt;did&lt;/em&gt;&lt;span&gt; add up to a right. Or at least, they left me in the &lt;/span&gt;&lt;em&gt;least wrong&lt;/em&gt;&lt;span&gt; situation that was actually available, given all of the constraints. There are a lot of things I might change, if given access to a time machine, but “play the flute instead of the clarinet” isn’t one of them.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;(An even &lt;/span&gt;&lt;em&gt;better&lt;/em&gt;&lt;span&gt; move would’ve been to just &lt;/span&gt;&lt;a href="https://www.lesswrong.com/posts/SvKpaPbZ2tibeDpgh/meadow-theory"&gt;give me an accurate map of where the fenceposts were&lt;/a&gt;&lt;span&gt;, and then let me make a truly informed decision, but my brother was only thirteen; he, too, was doing his best. (Also there would’ve been costs &lt;/span&gt;&lt;em&gt;to him&lt;/em&gt;&lt;span&gt; of me playing the flute, and he had a right to care about those.))&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;It takes more than mere wishing to get out of the &lt;/span&gt;&lt;a href="https://homosabiens.substack.com/p/truth-or-dare"&gt;darkworld&lt;/a&gt;&lt;span&gt;. In the meantime, while you’re here, you have to make do.&lt;/span&gt;&lt;/p&gt;&lt;hr&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;&lt;span&gt;BTW my novel &lt;/span&gt;&lt;em&gt;Pass&lt;/em&gt;&lt;span&gt; is still going up &lt;/span&gt;&lt;a href="https://passnovel.com/"&gt;online&lt;/a&gt;&lt;span&gt;; chapter three is set to go out on Friday morning. I probably won’t keep reminding everyone, but I &lt;/span&gt;&lt;em&gt;would&lt;/em&gt;&lt;span&gt; love it if you read it and left a comment.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span&gt;A sad historical footnote: this brother has since thoroughly and explicitly disavowed his relationship to me, stating more than once, in unequivocal terms, that I am in fact &lt;/span&gt;&lt;em&gt;no brother of his&lt;/em&gt;&lt;span&gt; (even though I &lt;/span&gt;&lt;em&gt;didn’t&lt;/em&gt;&lt;span&gt; ever play the flute).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;hr&gt;&lt;p&gt;Everything I write becomes free after a week or two, but it’s only paid subscriptions that make it &lt;em&gt;possible&lt;/em&gt; for me to write. If you found a coffee’s worth of value in this or any of my other writing, please consider signing up to support me; every bill I can pay with writing is a bill I don’t have to pay by doing other stuff instead. I also accept and greatly appreciate one-time donations of any size at &lt;a href="http://paypal.me/duncansabien"&gt;paypal.me/duncansabien&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</ns0:encoded></item></channel></rss>