Posts in Hardware (20 found)

Presto: A Match-Action TCP Stack for the Terabit Era

Presto: A Match-Action TCP Stack for the Terabit Era Rajath Shashidhara, Antoine Kaufmann, and Simon Peter SIGCOMM'26 This paper presents Presto, a Goldilocks implementation of the TCP protocol. It is efficient and yet does not require fixed-function TCP-specific networking hardware. The paper is a tour-de-force in the way it isolates the specific problems that make TCP processing hard to pipeline, and describing clever solutions to these problems. The Reconfigurable Match-Action Table architecture one specific flavor of programmable network accelerator. Here are two previous paper summaries that reference the RMT architecture. At its core, the RMT architecture is a feed-forward pipeline through which network packets flow. Each pipeline stage has a content addressable memory, and a limited amount of compute. The hard part about mapping an application to the RMT architecture is that there is very limited communication between pipeline stages. Network packets flow forward through the pipeline. The one escape hatch is the pipeline can decide to recirculate a packet, which can cause information to be sent from the tail of the pipeline to the front. This paper which, implements a key-value store with RMT leans heavily on this recirculation. Mapping the various steps in TCP protocol handling onto the RMT architecture requires distributing the state associated with a connection across the RMT pipeline. The size of per-connection state at each pipeline stage is fixed. The hardest TCP feature to map onto RMT is segment reassembly. Segment reassembly is the task of tracking and handling received segments (i.e., packets), which may arrive out of order. The receive side of a TCP connection must track the start and end of a window of packets that may be accepted. For example, if the packet with sequence number 4 has been processed, and the window size is 10, then the sender is free to send packets [5, 6, …, 15]. The paper describes three segment reassembly designs, I’ll illustrate one (OOO-1) here. Fig. 4 illustrates a continuous stream of packets with monotonically increasing sequence numbers. is the lowest sequence number of packets that have not yet been received (i.e., the start of the TCP window). defines the end of the TCP window. and define a contiguous set of packets that have been received and are in the TCP window. Note that this design happily accepts these packets. Source: https://dl.acm.org/doi/10.1145/3789240.3829111 Fig. 3 illustrates the 4 pipeline stages that implement TCP receive window tracking. Note that each of the 4 state variables described above is tracked in a different pipeline stage. For example, say that and , and . This means that the next expected sequence number is 4, and no packets in the TCP window have arrived. Say that packet 6 arrives next. Presto will accept this packet and set and . If packet 5 arrives next, then will be set to 5. Finally, when packet 4 arrives, will be set to 4. At this moment (ooo-head-1 is equal to next-seq), the packets 4, 5, and 6 can be sent down the pipeline. This is accomplished with recirculation: a dummy packet is injected into the pipeline which flows through all stages and updates state variables as expected. Source: https://dl.acm.org/doi/10.1145/3789240.3829111 Results Fig. 9 shows throughput vs latency curves for Presto and TAS (a software TCP stack based on kernel bypass): Source: https://dl.acm.org/doi/10.1145/3789240.3829111 Fig. 10 shows power consumption: Source: https://dl.acm.org/doi/10.1145/3789240.3829111 Dangling Pointers It is a shame that Intel has discontinued the Tofino chips. The literature shows that the RMT architecture is flexible enough to efficiently implement a wide range of applications (e.g., key-value store, TCP protocol acceleration). Thanks for reading Dangling Pointers! Subscribe for free to receive new posts.

0 views
Chris Coyier 4 days ago

Underdesk Treadmill

I pulled the trigger on an underdesk treadmill. Basic research suggested GoPlus is a decent one. I was hoping it would be $300-400 USD. Turns out this one is just $119.99. So cheap it had me a little worried, like it was going to be cheap junk, but I pulled the trigger anyway. It took 2-3 days only to get here, and it’s… kinda nice? They must be trying to unload them or something cause it seems a little too to be true. Ask me in a few months I guess.

0 views
Stratechery 5 days ago

2026.37: Duo Threats

Welcome back to This Week in Stratechery! As a reminder, each week, every Friday, we’re sending out this overview of content in the Stratechery bundle; highlighted links are free for everyone . Additionally, you have complete control over what we send to you. If you don’t want to receive This Week in Stratechery emails (there is no podcast), please uncheck the box in your delivery settings . On that note, here were a few of our favorites this week. This week’s Stratechery video is on Autonomy and Innovation . The Duo Arrives.  Does the world need a foldable iPhone that costs between $2000 and $3,200? It’s a fair question. On the other hand, life is short, and tech is a lot more fun when we have new and possibly-crazy hardware projects to discuss — particularly when they’re deployed by Apple. To that end, I heartily recommend cleansing your palate from a week of media-wide AI angst by reading Ben’s take on Apple’s iPhone event and pairing that with Friday’s Dithering , and John Gruber’s impressions of Duo-mania on the ground in Cupertino. Also: bonus being-right points to Gruber, who nailed the name of this device back in April .  — Andrew Sharp AI That Benefits Humanity. I loved Wednesday’s Update contrasting OpenAI’s thrilling and technically impressive Navier-Stokes breakthrough with the release of Meta’s far less sexy Muse agent. While OpenAI’s tactics may in fact chill research in advanced mathematics, what Meta has assembled is free (to consumers) hardware and software that dramatically reduces the barrier to entry for ordinary people looking to harness the power of agents, making the AI upside a lot more accessible to the masses who don’t want to buy a Mac Mini. That’s a big deal! We discussed Muse more on this week’s Sharp Tech , including tips for getting started with agents, and questions about whether people will actually take advantage of this opportunity.   — A S Closing the Book on a Catastrophe.  Everyone’s familiar with the benefits of pro sports ownership and its ability to turn semi-anonymous rich guys into full blown celebrities, but Microsoft co-founder Steve Ballmer is now a living testament to the unstated risk — sports ownership fame can, in a worst case scenario, become infamy. Last week his Clippers received the harshest penalty in NBA history for circumventing the salary cap to pay Kawhi Leonard. We recapped all of it on GOAT this week , including successes and failures in sports journalism, why Kawhi got off easy, and the staggering amounts of evidence that sealed Ballmer and the Clippers’ fate.  — AS Write Things Down — Writing things down is powerful, for humans and for AI; what comes first, however, is what to write, why to do it, and actually getting things done. OpenAI Does Math, Reward-Hacking, Meta Launches Personal Agent — OpenAI solving one of the most famous math problems is extremely impressive, and of little impact to most people’s lives; Meta’s Muse agent launch has the potential to be the exact opposite. The iPhone Duo, The Intelligent Personal Hub, Apple Watch Audio Intelligence — Apple once again demonstrated the power of integrating hardware and software, but it’s biggest AI blindspot might be its belief in the primacy of apps. Agents and Forklifts The Flood that Wrecked the Hard Disk Drive Industry Did Numerical Control De-skill Machinists? Closing the Book on the Clippers Catastrophe and Early Over/Under Picks in the Atlantic Astra (and AGI?) Arrives, Meta’s Muse and the Agent Opportunity, Anthropic and the Revival of (P)Doom Angst

0 views
Unsung 5 days ago

Key symbols we lost to time, pt. 1: The PC side

Various old computers had their keyboards adorned with unique symbols. Companies like Commodore , Atari , Amiga , or even – in its previous life – Apple chose to put their company logos on keys, and there were other weird and obscure keys on weird and obscure keyboards. But it was Apple’s recent push to move their American keyboards closer to European ones by embracing more iconography, that made me think of forgotten key symbols less obscure, ones that belonged to platforms we still use today. Even on a Mac and a PC, some key symbols didn’t make it to modern times. So let’s start with the PC side today since that part of the story begins earlier, and do Macs in a follow-up post. For a lot of 20th century, a battle has been waging between words and icons. The first salvo was, perhaps, the traffic signs : America embraced words, while Europe relied more on iconography. (As much as it looks like it, it wasn’t just “graphic design vs. not”; as a more varied continent with multiple languages, Europe needed a more universal visual language to help people travelling between countries.) This, I understand, trickled down to other things: home electronics, and computers. There, iconography also made it easier to make one product and sell it across all of Europe, without needing to introduce many SKUs with different UI strings. Here’s IBM’s Selectric typewriter from the 1970s, in its American and European edition: (If you’re curious, Express was a very fast Backspace, and Index moved the page down; both were prototypes of future arrow keys.) Here’s IBM’s early 1130 computer from 1965, which sported an unusual symbol for space: Some IBM laboratory and scientific computers in the 1970s and even 1980s veered more into iconography, but eventually lost to text as office PC users rejected the confusing symbols. As their keyboards morphed into PC/Windows keyboards we know today, only four symbols remained and gained widespread acceptance: ⇧ for Shift, ↵ for Enter, ⇥ for Tab, and some version of an arrow for Backspace. But let’s look at those old symbols, some beautiful, all interesting. The two symbols below are: Print Screen (old CRT screen turning into a piece of paper) and key beep – popular when people were transitioning from loud typewriters to relatively quiet keyboards: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/5.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/5.1600w.avif" type="image/avif"> = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/6.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/6.1600w.avif" type="image/avif"> Here – on the front edge of the also-forgotten Reverse Tab – you can see Home, which historically meant “return to the top left corner of the screen” and sometimes even “clear the screen”: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/7.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/7.1600w.avif" type="image/avif"> But my favourites were these, for Insert (now gone) and Delete (still with us): = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/8.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/8.1600w.avif" type="image/avif"> = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/9.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/9.1600w.avif" type="image/avif"> These seem inspired by proofreader marks, which feels wonderfully old-time’y: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/10.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/10.1600w.avif" type="image/avif"> = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/11.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/11.1600w.avif" type="image/avif"> Building on that visual language, one could also find invert/​reverse video, blinking, and underline: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/12.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/12.1600w.avif" type="image/avif"> And this absolute beauty, which I think meant “delete word”: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/13.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/key-symbols-we-lost-to-time-pt-1-the-pc-side/13.1600w.avif" type="image/avif"> The really interesting thing is that some of those symbols survive today in Unicode. I spotted at least ⎀, ⎃, ⎁, and ⎂. The last two are for contiguous and non-contiguous underline, which I feel is a story I should know, but I don’t (yet).

0 views
Jason Tucker 6 days ago

Staying Put with the iPhone 15 Pro Max

Apple held its September event yesterday. New chip, new colors, a redesigned Dynamic Island, and the thing everyone actually cared about: Apple's first foldable phone, officially called the iPhone Duo. I watched the whole thing with my iPhone 15 Pro Max sitting on the desk next to me, and by the end I'd already made up my mind. I'm sitting this one out. This isn't a review. I haven't touched any of this hardware and won't pretend otherwise. It's more of a note on why the upgrade button stayed unclicked this year, and why that's a different decision for me now than it used to be. For a long stretch, a new iPhone showed up in my house every September without much debate. Better camera, better chip, and I'd justify it by pointing at whatever spec sheet Apple put in front of me that year. After a while that was feasible and I switched to the every other year plan with T-mobile and got tired of that too. That stopped once my kids got older. When they were small, the camera mattered. Every version got meaningfully better at low light, at video, at capturing a toddler who wouldn't sit still for a photo. That was worth chasing. Now my wife and I are empty nesters. There's no little kid to chase around the yard, no travel team game where I'm elbowing for a spot on the sideline with a phone up. The upgrade math changed without me deciding anything. It just stopped adding up. Add in some grand kids and I'm back to having the best camera all over again. We're not there yet in this stage of life. My current phone wasn't a random stopping point either. The iPhone 15 Pro Max was the first iPhone with enough RAM to run on-device Apple Intelligence when Apple turned it on. Everything before it physically couldn't do the job, no matter how many software updates rolled through. That felt like a real line in the sand, not a marketing one, and it's a big part of why I stopped here instead of two generations earlier. It's held up. iOS 27 still lists the 15 Pro Max as fully supported, on-device AI features included. The chip hasn't slowed down in any way I can feel, and the camera still does everything I ask of it. That said, today's keynote put the first real crack in that streak. The new Audio Intelligence features on Apple Watch Series 12 and Ultra 4, Live Rewind and Siri Recap, need an iPhone 16 or later to work. Live Rewind pulls back the last 15 seconds of speech to a text snippet on your wrist, and Siri Recap runs in the background all day, summarizing conversations so you can jog your memory later. Neither one runs on a 15 Pro Max, watch or no watch. Not a dealbreaker on its own, but it's a reminder that "fully supported" and "gets every new feature" aren't the same promise, and that gap is only going to widen from here. As an aside, this Live Rewind sounds like a HIPAA nightmare, enjoy. For what it's worth, the watch side of that equation is moot for me anyway. My Apple Watch is a Series 5, several generations older than what these features require, it runs out of battery pretty fast, it does what it needs to do and I'm ok with that for now. Chasing Live Rewind and Siri Recap would mean replacing two devices, not one, which makes the whole feature easy to shrug off for now. None of that means I'm immune to a good pitch, so I did look at what shipped today. The iPhone Duo starts at $1,999 for 256GB, before AppleCare, before the case you'll want because a folding phone with a hinge is not something you drop on tile without consequence. Apple's foldable Pencil ships separately later this year, which says plenty about who this device is actually for. That $1,999 number is also a little misleading on its own. 256GB isn't enough to start a $2,000 phone at, not for something built around two 48-megapixel cameras and video that eats storage fast. My own 15 Pro Max is 512GB, and that's the real floor for me, not the marketing tier. Step up to the Duo's 512GB option and you're at $2,199. A 1TB model, which is honestly where a phone like this should live, runs $2,599. The headline price is the one nobody serious about using the cameras will actually pay. Its so expensive that the tax apps are now sharing how you can write off the phone, or at least portions of it. I get why the engineering is impressive. I don't get paying a premium for a device that, by every early report, still compromises on Face ID in favor of Touch ID because there's no room left for the sensor array, and is arguably worse at the one job my current phone already does well. The camera setup is the part that actually rules it out for me. The Duo ships with two rear cameras and no telephoto lens. I use the telephoto on my 15 Pro Max constantly, enough that losing it isn't a minor tradeoff I'd adjust to. It's a step backward dressed up as Apple's most advanced iPhone. Then there's the fact that this is a first-generation product doing something Apple has never shipped before. A hinge that has to survive years of folding, a crease that has to stay invisible enough to not bother anyone, software that has to handle two very different screen shapes without feeling bolted together. Apple usually gets a device close to right by the second or third try, not the first. I'd rather let other people find the failure points on a $2,000 phone than volunteer mine. The battery is the one real issue on this phone. It's down to 75% capacity with over 1,000 charge cycles, against roughly 600 on my wife's iPhone. Same phone age, mine has clearly done more work on the charging front. A hundred dollars gets it replaced through Apple, which buys time without buying a new phone. But fixing the battery is step one, not the whole plan. The real plan is to save through this next year and replace both my phone and my wife's at the same time, once we've had a full cycle to watch what happens with component prices. Right now the entire industry is dealing with what's being called a memory shortage, driven mostly by AI data centers buying up DRAM capacity that used to go to phones, laptops, and everything else with a chip in it. Analysts are calling for smartphone prices to keep climbing through 2026, and some estimates have the shortage running into 2027 or 2028 before production catches up. That's likely a real part of why the Duo and the 18 Pro line both came in higher than past generations. So the question I'm actually sitting with isn't just camera specs or hinge durability. It's whether this is a temporary spike that eases once memory production catches up, or whether $1,999 phones and $1,199 base models are just the new normal going forward. If prices come back down once the shortage clears, waiting a year saves real money, maybe. If this is the new baseline, waiting doesn't cost me anything either, since the battery swap buys time regardless. There's also a version of this where the market doesn't wait for prices to drop at all. It just leans harder into leasing. If people won't pay $1,999 up front but will pay $58 a month and never think about the total, that becomes the answer the industry settles on instead of cheaper hardware. Watching which way that goes over the next year is as much a part of the plan as watching my own battery health. A while back I also switched carriers, from T-Mobile to US Mobile. That move alone took our service cost from a monthly bill down to a single annual payment that covers the whole year, and it comes out to a fraction of what T-Mobile used to charge every month for the same lines. Once you've broken that habit on the service side, leasing the hardware on top of it stops making sense. Apple offers exactly that now through Apple Upgrade, its Klarna-backed leasing program, and US Mobile has its own version of the same deal. Pay monthly, hand the phone back or buy it out later, repeat every year or two. That's the same recurring payment treadmill I just got off of on the plan side. Trading a small annual number for wireless back into a monthly number for the phone itself would be walking backward, not upgrading. Owning the phone outright and running it five to seven years pairs naturally with paying for service once a year instead of monthly. Both decisions point the same direction: fewer bills showing up, less money leaving on autopilot, and a lot less reason to care what Apple announces every September. Apple doesn't publish a hard number, but the track record is public. Apple's own compliance filing for the iPhone 15 lineup, required under UK law, commits to a minimum of five years of software updates from first sale. The real-world pattern runs longer than that minimum. The iPhone 11 launched in 2019 and is still on the iOS 27 compatibility list this year, which puts it at seven years and counting. Security-only patches have gone even further back, reaching iPhones from 2015 in some cases. Going by that pattern, my 15 Pro Max, released in 2023, still has years of update life left in it even on the conservative end. That's exactly why the plan makes sense: there's no support cliff forcing a decision this year or even next. The battery swap covers the gap, and by the time my wife and I actually pull the trigger on new phones, we'll know a lot more about whether memory prices settled down or just found a new floor. That's the way of life now. Not chasing a keynote every September, but picking the year that makes sense and letting the phone, the market, and the update list tell us when that year has actually arrived. Are you upgrading or waiting another year? Let me know in the comments. Can't comment? Signup for a free account here and you can comment on all of my posts. It keeps the spammer out and makes this place more enjoyable for everyone.

0 views
iDiallo 1 weeks ago

We own the Glass

This was so casually uttered by LG executives in their sales pitch to advertising companies. We own the glass. What they mean is, they own your tv. They own everything on it. You may have paid for the box, but they own the glass. They can run anything they want on it, and you have agreed, in the terms and conditions, that you will inform anyone entering your household that the TV may record them without warning. TVs come equipped with microphones, wifi radio, and tracking software. That’s enough to monitor everything that’s happening around it. If you haven't watched the research video essay published by Gamer Nexus , I highly recommend it. I've said it many times before, TVs are cheap because you aren't simply watching them, they are watching you and listening, and reporting back to the mothership. This info is then used to sell you more stuff. What scares me in all this is that the solution I often tell people may no longer be true. I often tell people, just disconnect your TV from the network and you are all set. Now imagine just for a second. What if they add a cellular radio to the device? One with an esim. Then that is it. You can no longer disconnect your device from the internet. They now own the glass in your house, and have a permanent connection that you cannot disable. They own the glass. We are merely vessels to their business.

0 views
Jim Nielsen 1 weeks ago

Don’t Let Anyone Take Away Your Big Box of Cables

Speaking of being on the internet and finding things that make you go, “Hey! It’s not just me!” I scrolled across this skeet from Tyler Gaw : I just dug to the bottom of my Big Box of Cables to find two cables that I needed for something. They've been in the bottom for 10+ years. So, "when are you ever gonna use these?" was today. Don't ever let anyone take your Big Box of Cables away. I laughed. I cried. I felt inspired. So inspired, in fact, that I decided I was gonna do something about it. Something that would make me forever remember the value of that advice. Now every time I pull that box out to add YAC (yet another cable), instead of asking myself, “Why do I keep this box?” I’ll see that skeet and I’ll be reminded why I do what I do. I’ll feel a spark of joy, motivation, and purpose rekindled. (Not to mention the fact that it will serve as a warning to anyone in the family who thinks “I should just throw this away…”) One day my kids will find that box in the attic amongst my other belongings. I hope they will pay heed to the timeless advice lovingly taped on the outside. Reply via: Email · Mastodon · Bluesky I screenshotted that skeet. I printed it (in black and white with the ole’ trusty Brother). I cut it out. I pulled out my big box of cables (the one my wife lovingly labeled “FAMILY TECHNO BOX”). I cut some clear packing tape. And I plastered that thing on the front on my box.

0 views
Tara's Website 1 weeks ago

Programs are guests. Guests still need a house.

Programs are guests. Guests still need a house. I had this article in mind for a few months. While I was researching Project Quiet Ground and the IBM 5280, my friend Matteo shared this blog article with me: https://dmitrybrant.com/2026/02/01/defeating-a-40-year-old-copy-protection-dongle Long story short, Dmitry Brant describes how he defeated a mid-1980s copy-protection dongle to make an old RPG compiler for DOS work again today. It is an excellent piece of software archaeology, and his reverse-engineering work alone is well worth reading.

0 views
Jeff Geerling 1 weeks ago

OpenNMC is an open replacement for expensive APC management cards

UPSes are typically the most boring part of your homelab, but they're important. One of their main jobs is to give servers time to shut down safely if the power goes out. Another job is to condition your power so your servers can run smoothly. To do both of those things well , you need a smart interface. And at least with APC, there are tons of older UPSes that use Network Management Cards. The one pictured below is the NMC 2, and I pulled out of my old APC Smart-UPS 2200 XL (pictured above).

0 views
Unsung 1 weeks ago

Unsung Heroes: Super Sprint

I know, I know. I’m supposed to say iPod’s click wheel, or the Western Electric 500 rotary dial, or maybe the first Nest. = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/unsung-heroes-super-sprint/1.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/unsung-heroes-super-sprint/1.1600w.avif" type="image/avif"> = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/unsung-heroes-super-sprint/2.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/unsung-heroes-super-sprint/2.1600w.avif" type="image/avif"> = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/unsung-heroes-super-sprint/3.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/unsung-heroes-super-sprint/3.1600w.avif" type="image/avif"> But, have you ever played Super Sprint? It was Super Sprint that had the first amazing rotary controller I’ve ever used, and the whole cabinet design told you the game was very well aware of that. = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/unsung-heroes-super-sprint/5.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/unsung-heroes-super-sprint/5.1600w.avif" type="image/avif"> Super Sprint was a 1986 arcade game from Atari that was, in a nutshell: four cars (at least one computer-controlled), eight tracks, fast races. You might think that those wheels functioned similarly to a regular car steering wheel, but not really – they were much easier to spin, and needed to travel further to rotate the car. You wouldn’t steer delicately, but rather the opposite: you needed to throw the wheel violently in one direction, and then, at the perfect moment, stop it on a dime : So the huge wheels were not realistic. Neither were the cars. They accelerated rapidly – the gas pedal was your only other control – and had a ridiculous amount of understeer. Don’t let the size and intensity of the interface fool you, though: this was a very precise operation. The game was tight – Rollercoaster Tycoon tight or Excel 97 tight, a whole decade before them. In the world awash with slow computers, Super Sprint lived up to its name, laughing latency and delays in their faces. It’s hard for me, even today, to imagine something faster or tighter – and for even my contemporary work, it’s good to remember things can feel this way. And, on top of all that? Better-than-usual sound design , higher-than-usual resolution, shortcuts to reward really good players, and a bunch of great details and easter eggs. Super Sprint wasn’t Atari’s first attempt here – it was preceded by Sprint 2 , Sprint 4, Sprint 8, and Sprint One – and you could tell. It was designed and coded by Kelly Turner and Robert Weatherby, polished as hell, and might have been the first interface between the person, the hardware, and the software that really inspired me. It was almost as much fun to watch three good players compete, as it was to play yourself. But when I played it, it’s possible these were my first – please excuse me here – motor memories. Atari used the same wheel for other games, famous and obscure , but this was where it met its match in software. I can show that to you, but experiencing it is impossible from afar. Even perfect emulation can’t do it justice – there has simply never been a home controller that approached it. (I mean, the whole cabinet weighed 400 pounds!) But if you are ever in an old-school-themed arcade, look out for Super Sprint ( locations ), or its two-player cousin Championship Sprint ( locations ) – and give it a turn or two. = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/unsung-heroes-super-sprint/8.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/unsung-heroes-super-sprint/8.1600w.avif" type="image/avif"> #direct manipulation #flow #games #history #performance #unsung heroes

0 views
Jason Tucker 1 weeks ago

Skip the GPU Upgrade: Repurpose a Gaming PC or Mac for Immich's ML Queue

My Immich server runs on an older Dell box that never had much of a GPU to speak of, just enough for transcoding Jellyfin. Photos upload fine. Thumbnails generate fine. The moment the machine learning jobs kick in, the queue backs up and stays backed up. Face detection, smart search embeddings, OCR, all of it running on a CPU that was never built for the job. I'd been chipping away at the queue for months. A few hundred photos would process overnight, then I'd add a few thousand more from an old backup drive and watch the counter barely move. At that rate I was going to be waiting months to get a fully searchable library. Immich has a built-in answer for underpowered hardware. You can point the machine learning container at a separate, more capable machine and let the server talk to it over the network instead of processing locally. It's called remote machine learning , and the use case is right there in the docs: pair a weak NAS with whatever stronger box happens to be sitting on the same network. I had two candidates sitting around. A gaming PC with an NVIDIA card that mostly sits idle outside of a few nights a week, and my M4 MacBook Pro with 24GB of RAM. The Mac won mostly because it's quieter and I didn't need to keep a tower running just to burn through a backlog. Either one would have worked. The point of remote machine learning is that Immich doesn't care what's on the other end, as long as it can serve requests. Docker on Apple Silicon can't reach the GPU. That's not an Immich limitation, it's a Docker Desktop and container runtime limitation on macOS in general. Metal, the Neural Engine, CoreML, none of it is exposed to a container. So if you spin up Immich's standard immich-machine-learning image on a Mac, you get CPU-only inference no matter how fast the chip is. People have been asking about this in the Immich GitHub discussions for a couple of years now. The maintainers were straightforward about it: hardware acceleration can't be passed through to a container on ARM Mac hardware. If you want the GPU, you have to run the ML service natively, outside Docker entirely. My first attempt at remote machine learning was the plain version straight from the Immich docs. Stand up the immich-machine-learning container on the Mac, point the server at it, done. It worked, technically. It was also barely faster than running the queue locally on the Dell box, because that container ships a Python and ONNX Runtime stack built for x86 with optional CUDA, not for Apple Silicon. On a Mac it just falls back to plain CPU inference inside the container, the same bottleneck I was trying to get away from. Getting past that meant stepping outside Docker entirely and building a native ML service that could reach Metal and the Neural Engine directly. That's a real project on its own: cloning Immich's machine learning code, swapping in CoreML execution providers, installing Poetry, wiring up a separate model cache, and keeping all of it in sync every time Immich itself gets updated. A few people in the Immich discussions had documented doing exactly this by hand, and it's not a small undertaking to maintain solo. A project called Immich Accelerator does that work for you. It's a Homebrew-installed tool that extracts Immich's own microservices worker directly from your running Docker image, then runs it natively on macOS alongside a separate ML service built on Apple's frameworks. The split looks like this. Docker keeps the lightweight pieces: the API server, Postgres, Redis. All of that stays wherever it already lives, in my case on Unraid. The Mac runs the parts that chew through CPU or GPU cycles. CLIP embeddings for smart search run on the Metal GPU through MLX. Face detection and OCR run on the Neural Engine through Apple's Vision framework. Face recognition uses ONNX with CoreML acceleration layered on top. Video transcoding gets remapped from software encoding to VideoToolbox hardware encoding. None of this touches the Docker image itself. The tool doesn't patch Immich or rebuild anything, it just extracts the worker code that's already sitting in the container you're running, so it always matches your version exactly. Mount the media share first, before running setup, so the Mac sees the same path your Docker host uses. I'm mounting the same SMB share Unraid exports: Then install the accelerator and point it at the remote server: There's one hard requirement for this split setup, and it's the one that trips people up. Both machines need to see the exact same media files at the exact same absolute path. Immich stores paths like in Postgres, and if the Mac's mount point doesn't match, thumbnails will 404 even though the worker itself is happily processing jobs. Run it as a background service rather than a one-off foreground process, so it survives reboots and picks up Immich version updates on its own: A few commands come in handy once it's running. Check that everything came up healthy: Confirm the ML service can actually reach Metal and the Neural Engine, not just that it's alive: Tail the logs if a job gets stuck: Watch throughput without opening the Immich admin panel through the built-in dashboard on port 8420: Open from any device on the network, including your phone, to watch the queue drain in real time. If you ever need to back out, stop the service and remove the environment variables and exposed ports from your Docker host's compose file: Once it's running, the per-queue concurrency settings in Immich's admin panel matter more than they do with a single Docker ML container. GPU work and Neural Engine work don't scale the same way CPU work does. Smart search, which runs on the Metal GPU, doesn't benefit from more than two concurrent jobs since MLX serializes GPU access anyway. Face detection and OCR, both running on the Neural Engine, handle three concurrent jobs reasonably well. Thumbnail generation and metadata extraction are CPU or I/O bound and scale higher, up to four. Cranking everything to the same high number just causes CPU thrashing without moving the needle on throughput. The worker itself runs Immich's unmodified code, so the differences are almost entirely in the ML layer. CLIP search results are close but not identical to what Docker's ONNX Runtime path produces, since the underlying computation runs through MLX instead. A search that returns twenty results in Docker might return eighteen or nineteen of the same twenty, occasionally in a different order. Face grouping can land slightly differently at the edges too, since Apple's Vision framework is a different model from the one ONNX Runtime uses. It hasn't caused a real problem for my library. The photos still get found, the faces still get grouped, and the jobs finish in a fraction of the time they used to take. If you've got a Windows or Linux box with a real NVIDIA card instead of a Mac, you actually have it easier. Docker on those platforms can pass GPU access straight through to a container, no native workaround required. The standard remote machine learning setup handles it with a single tag change and a small hardware acceleration file. On the remote machine, the compose file looks like this: Pull the matching from Immich's repo, point your main server's at that machine's address on port 3003, and the queue drains at full GPU speed with none of the native extraction steps a Mac needs. AMD boxes get a similar path through the ROCm tag, and Intel Arc or integrated graphics can use OpenVINO. The Mac route exists because Apple Silicon can't take the easy path. If you're choosing which spare machine in the house gets pulled into service, that's worth weighing. A Windows or Linux box with a GPU is plug and play. A Mac gets you there too, it just takes one extra piece of software to unlock what the hardware can already do. Immich only documents this for Linux and Windows through WSL2, not Docker Desktop's Hyper-V backend directly, so make sure Docker is running through WSL2 before starting. Intel doesn't need a separate link. OpenVINO setup for Arc and integrated graphics is covered on the same hardware acceleration page above, including the WSL2-specific device mapping for and . The heavy lift here is almost entirely a backlog problem. Once a library is caught up, new photos trickle in a handful at a time and even a weak CPU keeps pace fine. The remote machine doesn't need to stay online forever, just long enough to chew through whatever's stacked up in the queue. That makes it a good candidate for batching. Fire up the accelerator or the remote ML container when you know you're about to dump a few thousand photos in, whether that's after digitizing an old hard drive or importing a family member's entire library. Let it run overnight or over a weekend, then shut it down until the next big batch shows up. This matters even more if your GPU is already busy doing something else. A lot of homelab GPUs spend their days on Jellyfin or Plex transcoding, and running Immich's ML jobs on the same card at the same time means the two are fighting over VRAM and compute. Adding a second machine, even a laptop that's only free in the evenings, keeps transcoding and photo processing from stepping on each other and gets a big backlog done in a single dedicated push instead of dragging it out over weeks of contention. The trickiest part of batching is remembering to do it. Nobody thinks about their Immich queue until they get back from vacation and dump four thousand photos into the library at once. Home Assistant can keep an eye on that so I don't have to. I had Claude Code wire this up instead of hand typing it myself, and walking through what went wrong along the way is more useful than just handing over the finished YAML. Nothing here was exotic, but almost every shortcut from an older tutorial needed a second look before it worked. First, confirm what the API returns before writing a single sensor. Immich's queue endpoint lives at : On my version the response nests a count under for each of eighteen job types, smart search, face detection, metadata extraction, and a bunch of others I don't care about for this. The field names happened to match what you'd guess. That's luck, not a guarantee. Run the curl yourself instead of trusting a blog post's field names to still match your version. The REST sensor config has a trap built into it. A lot of older tutorials nest sensors under a entry inside the block. That style validates clean under and reports success on reload, then silently creates zero entities. Modern Home Assistant wants the sensors nested under a top-level key instead: The API key needs permission. If you've already got an Immich integration running in Home Assistant for photo or storage sensors, reuse that key instead of minting a new one, just make sure it lands in cleanly. A key appended by a script inherited a couple of stray trailing spaces from the end of the file once, which indented it one level and quietly broke the top-level mapping. Re-read the file after any scripted edit. Don't just trust that the write succeeded. A template sensor rolls the three queues into one backlog number, which is easier to reason about than three separate ones: Notifications are the other place where old habits bite. A lot of tutorials still call directly. Recent Home Assistant versions moved to an entity-based notify architecture, so the call is with a pointing at the specific notify entity instead. Check which notify entities actually exist and which one carries a real last-sent timestamp before assuming a name. The matters more than it looks like it does. A big backlog appears the instant an upload finishes, and it'll clear itself out over the next hour if the queue is already moving at a normal pace. Requiring the number to stay above the threshold for an hour filters out that normal churn and only pings you when the backlog is actually stuck. Testing that hold is its own small puzzle. A trigger's timer only starts counting from an actual state change, not from a value that was already true when Home Assistant reloaded. Forcing the sensor to a fake threshold doesn't trip it if the queue never moves. The honest way to confirm delivery is to trigger the automation's action directly and check that the notify entity's timestamp actually updates, then set the real threshold back once you know the notification path works. If writing REST sensors by hand isn't appealing, HASS-IMMICH-API is a custom Home Assistant integration that wraps the same job queue endpoints into ready-made sensors and switches, installed through HACS or the SSH addon instead of hand-rolled YAML. The project carries a beta warning, and it means it. Back up your Immich database before the first run. I'd also recommend testing on a smaller library or a subset of your uploads before pointing it at years of accumulated photos, just to get comfortable with how the split deployment behaves on your specific network setup. For a homelab that already has a spare Mac or gaming PC sitting around, or for anyone deciding between buying a GPU for their NAS box versus repurposing hardware that's already on the desk, this closes a gap that's existed in the Immich ecosystem for a while. I thought I was going to have to deal with this some other way, either by throwing money at the problem or by just dealing with it. I'm glad i can use existing hardware to solve the problem for free. Did this help you? I'd love to know. Hardware-Accelerated Machine Learning is the official Immich page covering every backend below, including the exact changes for each one is the file referenced in the compose snippet above. Grab the latest release build rather than an old copy floating around a forum post NVIDIA Container Toolkit install guide walks through getting an NVIDIA card visible inside a container. This is the step most people skip and then wonder why the tag doesn't do anything ROCm Docker install guide covers the AMDGPU driver setup ROCm needs. Its official support targets Linux, so an AMD card on Windows through WSL2 is going to be rougher terrain than the NVIDIA path

0 views
Jeff Geerling 1 weeks ago

Rebuilding a 1995 GPS Time Server so I don't get Telstra'd

In June I purchased this TrueTime XL-AK time server , so I could learn more of the history of GPS-based time. I received it on June 22, and just 16 days later a similar GPS time server took down Australia's cell service for 12 hours ! I made a short video about it but put off digging into the TrueTime... until now. Over the past couple weeks, I've 'restomodded' this device with a Raspberry Pi, to build a stratum 1 NTP Time server, which I'd like to eventually add to the NTP Pool . I found a way to drop in a Pi 5 and GNSS HAT, display the time and GPS status on the built-in 16x2 LCD, show the status on the bicolor LED, and make this box useful again.

0 views

Analysis of Area and Power Overhead for a Synthesizable 4-Phase Bundled-Data Asynchronous RISC-V Processor

Analysis of Area and Power Overhead for a Synthesizable 4-Phase Bundled-Data Asynchronous RISC-V Processor Sean Jacobs, Mark Indovina, and Yashaswini Suresha GLVLSI'26 This paper describes the design of an asynchronous (i.e., there is no clock signal) RISC-V processor. The power and area results are impressive. I’ve only vaguely understood how asynchronous designs operate; this paper helped me understand the space a bit better. As far as I understand, there are two primary advantages of asynchronous circuits: Performance is not limited by infrequently used critical path. Power savings due to not having a clock signal #2 can be mitigated in synchronous designs with the use of clock gating. Inter-pipeline stage communication in this processor uses a 4-phase protocol. This protocol is illustrated in Fig. 2: Source: https://dl.acm.org/doi/10.1145/3787109.3815227 The 4 phases of the protocol are: The request signal transitions from low to high, indicating that all upstream stage outputs are ready to be consumed The acknowledge signal transitions from low to high, indicating that all upstream stage outputs have been consumed by the downstream stage The request signal transitions from high to low The acknowledge signal transitions from high to low The key building block that makes the 4-phase protocol implementable is the Muller C-element. A C-element has two inputs ( and ) and one output ( ). The output remains steady until both inputs are equal, at which point the output value is assigned to be equal to the first input (i.e., ). Fig. 3 illustrates how Muller C-elements and inverters can be used to construct a pipeline that uses the 4-phase protocol: Source: https://dl.acm.org/doi/10.1145/3787109.3815227 The triangles with circles on the input side are active-low inverters. Here is a narrative of how this works. Assume that the bottom ( ) input of the leftmost C-element is 0, the top ( ) input is 1, and the output ( ) is 0. When the input Req signal transitions to 1, it will cause the output of the leftmost C-element to transition to 1. This will send an acknowledgment backward to the unpictured upstream stage and send a request to the downstream (middle C-element) stage. The middle C-element will perform similarly (responding with an acknowledgment and propagating the request down the pipeline). When is set to 1, is set to 0, which will cause the left-most C-element output to return to zero when the unpictured upstream stage sets Req=0. The control path described above can be extended to support an arbitrary feed-forward pipeline as illustrated in Fig. 4: Source: https://dl.acm.org/doi/10.1145/3787109.3815227 The storage elements (pipeline registers) are D-latches (no clock inputs). The combinational logic clouds represent the logic that implements each stage of a RISC-V processor. The delay elements connected to each Muller C-element ensure that the control path does not assert the request signal until after the combinational logic has finished its job. An EDA tool is used to compute the worst possible delay through a logic cloud, and the corresponding delay value is set to be at least that long. The astute reader will realize that the delay elements eliminate one of the primary advantages of using an asynchronous design: the delays are set equal to the worst possible delay (i.e., the critical path). The advantage of this approach is that there is no area overhead added to the combinational logic. It is essentially the same logic that would exist in a synchronous design. Table 1 compares area and power numbers for this asynchronous processor (28nm, 4-stage) against a synchronous processor. Area is essentially unchanged; power is significantly lower. I’m not sure how much clock gating there is in the baseline implementation. Source: https://dl.acm.org/doi/10.1145/3787109.3815227 Dangling Pointers The performance numbers above should be taken with a grain of salt. As far as I can tell, the authors only tested the processor in simulation, they did not fabricate a chip in real life. The Muller C-elements are described with synthesizable RTL, not standard cells. Thanks for reading Dangling Pointers! Subscribe for free to receive new posts. Performance is not limited by infrequently used critical path. Power savings due to not having a clock signal The request signal transitions from low to high, indicating that all upstream stage outputs are ready to be consumed The acknowledge signal transitions from low to high, indicating that all upstream stage outputs have been consumed by the downstream stage The request signal transitions from high to low The acknowledge signal transitions from high to low

0 views
Brain Baking 2 weeks ago

Bring Back The Noise With HDD Synth

The modernisation of some of the vintage components in old computers comes with its own set of challenges. Things break: thirty plus year old hard drives stop spinning, floppy drive components such as a simple elastic rubber to get mechanical things moving disintegrate, and of course plenty of capacitors leak. Sometimes, things break up to the point that I sometimes wonder whether being a retro hardware enthusiast is worth it at all. The solution to these problems is simple and not so simple: de-solder the component from the board and look for a replacement, and throw out that rubber or the drive entirely to find modern replacements such as the SD-to-IDE interface I use to emulate a HDD. Fixed—now the old motherboard still thinks it’s speaking to a genuine vintage hard drive! Not fixed? The distinctive mark of a humming disk is gone: an SD card has little to say except for crack when you jump on it. The true retro enthusiast—the real appreciator of smelly electronic components that go beep —will want to hear that beep . Not just a beep , but a bzzzzzkkrrrttttt tzk tzk tzk BEEP : your classic spin-up sound when these mechanical drives start spinning. Thankfully, some retro enthusiasts are prepared to do more than just accept the fact that the noise is gone. Some go as far as building their own expansion card that fully emulates the sound of yore. This is the story of my friend Peter Bridger’s HDD Synth . Peter was kind enough to send me two prototypes to play with 1 ; his third revision (Mark III) of the idea, as pictured below, currently in the state of an ISA card. The HDD Synth Mark III, with a 3D-printed bracket screwed on. The first thing I thought when I heard the idea was: how is this going to work if your sound card’s drivers are loaded only after the bootup procedure? Peter’s design makes use of another speaker mounted on the card, separate from your sound card or built-in PC Speaker. It leverages the Raspberry Pico to output sampled sound directly to the custom speaker by listening to the ISA port for HDD activity. Earlier models used the HDD LED in pins on the board to detect activity. As I type this, Peter is working on Mark V to reduce the footprint of the card, including getting rid of the requirement of an ISA slot to enable putting this inside older non-IBM PCs as well. One of the coolest aspects of the HDD Synth is its ability to load custom samples as well. The SD card slot is there to hold both firmware & configuration as well as custom sound samples. This allows the card to emulate any kind of vintage hard disk drive, playing just the right sound for you to evoke that instant jolt of nostalgia. Just add four files in a subdir inside : (the rattling when the HDD used to be busy), (power off), (power on), and (general background noise). The configuration file looks to be fairly straightforward: Here, a subdir —in my case a preset one matching my memories quite well—exists on the SD card where the samples live.The only problem I so far encountered was powering off the computer that too quickly discharges all energy resulting in being cut off halfway through. Even though the HDD Synth is still in beta phase, Peter put in a lot of effort to create an experience: the commissioned stickers remind me of the Game Boy’s Play It Loud campaign and the instruction manual was modelled after the original Sound Blaster manuals, detailing every pin and suggesting troubleshooting tips. As the sticker portraying a PC fan emitting a MHDDLA sound states: I’m A Big Fan ! Get it, fan? No? I thought that was a good one. The HDD Synth manual inspired by the original Sound Blaster manuals. The peripheral card currently claims an ISA slot, but as stated, in future versions the card will shrink and the need for a slot will disappear. Apparently, Peter received the request to build something similar that will fit inside a MacBook. Bring Back The Noise, stupid silent MacBook Air I’m typing this on! I’ll be very curious to see how this will pan out. The card’s hardware (and software) design is fully open-sourced so if you’re a capable electronics expert you can order all the components and solder them on yourself. Thank you Peter for letting me try out one of the prototypes. I feel very honoured to be mentioned in the special thanks print on the back of the PCB. Please keep an eye on Peter’s site Strife Streams for more retro goodness and HDD Synth updates. I now own two cards thanks to the Belgian Post and customs service. There is little need in plugging in two HDD Synths in one machine. Or is there? If anyone is interested in checking out the project, let me know and I’ll send you one!  ↩︎ Related topics: / pc hardware / soundblaster / By Wouter Groeneveld on 1 September 2026.  Reply via email . I now own two cards thanks to the Belgian Post and customs service. There is little need in plugging in two HDD Synths in one machine. Or is there? If anyone is interested in checking out the project, let me know and I’ll send you one!  ↩︎

0 views
Kev Quirk 2 weeks ago

Inside Ukraine's Kill Zone

Really interesting (and saddening) look at the front line in the Ukraine/Russia war. Read post ➡ Saw this on Dense Discovery . It's a really interesting look at how the shape of warfare has changes from soldiers with weapons, to drone-based attacks. The days of heavy mechanised manoeuvres are over; a drone costing a few thousand dollars can disable a tank worth millions. I served in Iraq and Afhganistan with the British Army in the early 00's. Back then drones were used , but were in their infancy. The fact that we've completely moved to this kind of warfare in ~20 years in scary. I learned a lot in this post. It's both interesting and extremely saddening. My thoughts are with all those involved in this needless conflict. Thanks for reading this post via RSS. RSS is ace, and so are you. ❤️ You can reply to this post by email , or leave a comment .

0 views
Stratechery 2 weeks ago

Nvidia Earnings, Dollars Per Gigawatt, Open and Hugging Face

Nvidia's earnings were remarking and boring — two sides of the same coin. Everything the company does is about avoiding a consolidated world.

0 views
Jeff Geerling 2 weeks ago

Before NTP there were Time and Daytime

In building an NTP time demo on old Macs for VCF Midwest , I came across RFC 867 and RFC 868 , for the 'Daytime' and 'Time' Protocols, respectively. My first exposure to any form of network time was when I upgraded from a used PowerBook 180c to my first 'new' computer, a Power Mac G3, in 2000. With the introduction of Mac OS 8.5, Apple added a 'Network Time Server' option in the Date & Time Control Panel.

0 views
neilzone 2 weeks ago

Migrating my self-hosted UniFi controller from Network Manager to UniFi OS Server

One of the jobs that has been on my list for a while is to migrate my UniFi controller installation from the self-hosted network manager tool to the new UniFi OS Server tool. The only reason that it was a job at all is because UniFi has decided to discontinue support for the UniFi network manager. Which is probably for the better, as it contained outdated packages anyway. Frankly, I’m not massively impressed with UniFi any more. If I were starting again, I am not sure that I would pick UniFi kit, but I don’t know what I would go for instead. I simply want to run my own controller, without external access or access by anyone else, to control the network infrastructure at home. I did the migration, and it mostly worked. Here’s what I did: I read the Unifi OS Server installation instructions . I also read the Backups and Migration in UniFi instructions. My UniFi controller is running in a virtual machine, so I took a snapshot of that first. If all else failed, I could roll back the snapshot. I backed up the configuration of my existing UniFi network manager configuration. I downloaded it to my local machine. I also backed up the ssh configuration information for my UniFi devices, in line with the instructions: It is also recommended to copy the SSH username and password from Devices > Device Updates & Settings > Device SSH Settings, in case any devices need help later when connecting to the new instance of UniFi Network. I stopped the UniFi network manager with . I followed the Unifi OS Server installation instructions . It will be interesting to see how updates work. The instructions say: Captive portals will be served on port 8444, changed from port 8843 on Network Server. It did not mention that there was also a change to the port to the controller. However, the final line of the set up information showed that it was port 11443. So I changed my nginx proxy config from 8443 to 11443, and reloaded nginx. I could now access the new UniFi OS Server interface. It went downhill from here. I was intending to restore from backup, so I clicked the option for this. It then prompted me to - forced me to - sign in with a ui.com account. I’ve no idea why. It is a local controller, and I don’t want any remote access facilities. Nevertheless, I could not find a way around it. So I did, but I can’t say that I am impressed by this. It then said: We’ve discovered that you already have a self‑hosted UniFi Network installation. Would you like to import your current network settings into UniFi OS Server? But the options were not “Yes” and “No”, but rather “Continue without importing” and “Next”. This was a surprise anyway, as the instructions say: On macOS and Windows, the installer will automatically detect and offer to migrate your existing Network Server setup (if installed in the default location). On Linux, or if auto-migration doesn’t occur, you can manually migrate by installing UniFi OS Server and using the Site Export tool I am running it on Linux, so I did not expect any migration. I guessed that “Next” means “yes”, so I selected “Next”. It took me to a url ending . This was a blank screen. Nothing at all. I waited a couple of minutes, then refreshed the page. It then showed me a page showing that it was “restoring backup”, but the progress bar remained blank for quite a while. It also said that it was restoring to settings from January 2026, not last night’s backup, which surprised me. After a couple of minutes, the progress bar flashed by, and it was done. The import/migration appears to have correctly imported all my devices, and is set up to talk to them. But other aspects of the migration were underwhelming. It did not restore the settings for my mailserver. It was preset to use the “UI Mail Server”. I set it up to use my own mailserver, and it failed, with a useless error message. When I logged in to my mailserver to see what was going on, I saw . It appears that I am not the only person with this issue , albeit with a slightly different setup. They seem to have resolved it by disabling TLS, which is not an option for me. I have not yet got this to work. Even though I had configured automatic backups on the previous Unifi Network Server, they were not enabled on the new UniFi OS Server. I tried to set it up, but I was prompted for my “Ubiquiti SSO account password”. I tried the password for my ui.com account, but I got an error message of “Something went wrong. Please try again later.” Which was no use at all. Having turned off Remote Access (below), I went back to the Backups dialogue. Now, there was an option to download, or upload & restore, but nothing about automation. The info box says that I can schedule backups here, but there is no user interface for that. I took a manual backup. I cannot see a way to do automated backups to my local file system. If this is correct, this is absurd. I may see if I can do something using the command line. *Edit: yes, I can, with python and systemd. See Automating local backups of UniFi OS Server on Linux with uos-backup . “Remote access” is enabled by default, even though I am confident that I did not have remote access enabled before. When I attempted to untick it, it showed a dialogue box: So I disabled it. https://help.ui.com/hc/en-us/articles/220066768-Updating-and-Installing-Self-Hosted-UniFi-Network-Servers-Linux It did not restore my preferred time format (24 hours). I had to turn off analytics, which was on by default. It worked better than I was expecting, but that’s mainly because my expectations were very low. Why the email server and automated backups do not work, I do not know. I will need to investigate these. But at least I am now running a supported controller again. Once I’ve done a scan of the new system with greenbone, I’ll be interested to see what it reports.

0 views
Martin Alderson 2 weeks ago

What GLM-5.3 Flash running on Chinese hardware actually means

Z.AI confirmed that their most recent model release was running all inference on Chinese manufactured hardware. While no doubt an impressive feat, Western companies still have a huge advantage that I can't see changing quickly. To start with, it's worth looking into where Chinese AI hardware is. I'm focusing entirely on the HiSilicon parts - the most competitive parts from Huawei. There are (many, actually) other manufacturers building AI hardware, but it's widely believed that they are no further ahead than HiSilicon, so I think that for brevity it's a fair starting point. One caveat before I go further: Z.AI didn't actually name a chipmaker, and didn't publish throughput or power numbers either. Nobody has independently verified the claim. So I'm assuming HiSilicon here because it's the only plausible candidate at that scale, not because anyone has confirmed it. It's also worth mentioning that the US export restrictions ( CSIS has a good overview ) of high end AI hardware have made this an enormous priority, understandably, for the Chinese. And it's definitely worth mentioning that finding accurate sources for many of the numbers I'll cite are difficult to be confident in, so take the exact numbers with a pinch of salt. The current 'scale-up' series of HiSilicon chip, the 910c series, pairs 96GB of HBM 2e memory with two compute dies, probably achieving something like 1.6PFLOP/s of INT8 compute with ~3TB/sec of memory bandwidth, at around 600W. In essence, this is substantially behind even the H100 from Nvidia, which is now 4 years old. These are around 60% as fast as the H100, and has various other footguns (no native FP8 support for example), which probably restrict efficiency further for many use cases. The next generation 950-series doesn't meaningfully increase compute as far as I can see, but does use domestically produced HiZQ/HiBL HBM memory. Interestingly the cards are configured in two variants - the 950PR and 950DT, with the former focusing on prefill and the latter on decode. In reality, the two products are very similar, but the prefill variant using slower HiBL memory vs the decode HiZQ memory. It does however support more quantisation types, like FP8. I think this shows the limitations of what Chinese hardware can do - at least for the near future. Yes, they can run inference, but so can many sets of hardware now - AMD, Google and Amazon all have competitive solutions, and OpenAI are making significant progress on their Jalapeño inference chip , which in the first published benchmarks did 1.5-1.9x the work per watt of Nvidia's GB300. Inference hardware while no doubt complex, is a pretty solved problem right now with a lot of competition - and that's before you bring in the Cerebras and Groq approach chips. The wall that these Chinese hardware manufacturers are hitting is the lack of viable EUV (extreme ultraviolet) fabrication. This is the next generation silicon manufacturing process from ASML and it is extremely hard . I'd really, really recommend reading Chip War by Chris Miller for the full story, but regardless until there is significant progress on this - and by significant progress, I don't mean the reverse engineered prototype in a Shenzhen lab. I mean reliable, scale production. The industry would be astonished if they got this to scale production before 2030. Bear in mind the Shenzhen prototype hasn't produced a working chip yet, and the more optimistic forecasts have them doing that around 2030 - volume production is a further step beyond it. It took ASML 25 years to figure out this technology - and a good 5+ years of this was scaling it up from the lab to "real" production lines. While China no doubt has incredible engineering talent and the ability to reverse engineer some of ASML's work, it's still a daunting challenge. Without EUV it is not possible to go (much) below the "7nm" fabrication size. Without being able to go below that size, you quickly hit a wall in thermal efficiency, and you reach a point where you simply cannot make the chip(s) any bigger or faster because you cannot expel the heat quickly enough. Added to that, the additional export restrictions on HBM memory to China are clearly causing significant issues, hence the strange use of two different home grown memory technologies in the 950-series - no doubt because they can't produce enough fast (which is still comparatively slow ) memory. These are really the same base constraint - without EUV manufacturing technology you can't produce the latest generations of very fast HBM memory either. Clearly the approach China is taking is instead of really looking for solid incremental leaps in compute and memory from better manufacturing techniques, the idea is to build a lot of them. Even if your fastest chips are at best 5 years behind the latest Nvidia GPUs, you can just build 10 times as many for the same overall inference capacity. And it really is roughly 10x - not against the H100 I was comparing to above, but against what Nvidia actually ships today. A Rubin VR200 is somewhere around 35PFLOP/s of dense FP4 with 22TB/sec of HBM4 bandwidth. The 910c is 60% of a four year old H100; Rubin is another order of magnitude past that. No doubt China is uniquely positioned in being able to do this - with enormous power generation capacity to power this, and huge quantities of skilled engineering and manufacturing labour to build the facilities and cooling required. But really, it's far from ideal. As models get larger, you have to split them over more and more underpowered sets of hardware. Another problem is it makes the models slow - Z.ai's own API is noticeably slower than Western providers serving the same weights. The bit I keep coming back to though is power. And here you have to be careful, because 10x the throughput gap is not 10x the power bill - the 910c pulls about 600W against something like 2000W for a Rubin part. Divide the spec sheets and you get a much less dramatic 2-3x on both compute per watt and bandwidth per watt. But the spec sheets flatter the 910c. 96GB a chip, against the 288GB or more you get on current Western parts, leaves much less room for KV cache, which forces smaller batches, and decode throughput per watt falls away badly at small batch sizes. Add a less mature software stack, and the interconnect and cooling overhead of running 10x the chips, and 5x worse on tokens per watt feels about right to me. If anything that's the charitable end. Which matters because electricity is usually reckoned to be 10-20% of the total cost of running a GPU cluster, with hardware amortisation dominating. Multiply that by five and power goes from a small component of costs to something like half your total bill. That's fine when you have China's generation capacity and you're happy to treat the difference as a strategic subsidy. It's a lot less fine if you ever want to sell inference into a competitive global market on price. Small models getting better doesn't rescue this either. They help, obviously - a 30B model serving a task that used to need a 300B one is a real saving. But it's a saving both sides get - that smaller 30B model still runs 10x as fast on Western hardware, so the ratio between Chinese and Western hardware efficiency stays exactly where it was. And assuming China doesn't have some huge breakthrough in fabrication technology - which as I said before is highly unlikely - it's probable that the gap between Western and Chinese AI hardware will widen if anything. So, to round up - yes it's an impressive feat that they've managed to do this, but there are some hard constraints on efficiency that are unlikely to be solved any time soon. And yes, China could overcome it by sheer quantity, but it's a subpar solution that has real impact on the speed, capacity and economics of their inference.

0 views
Jeff Geerling 2 weeks ago

Building a mini Homelab that fits in my carry-on

I'm traveling to Chicago for VCF Midwest next month. I'll be demoing NTP time history on vintage Macs, with my own GPS-derived NTP service hosted on an Xserve G5, synced via NTP or a strange AppleTalk timing extension from the 1990s . So I built a little 'portable homelab' (pictured above) that supports 1-10 Gbps networking, can run off a small battery for at least an hour, switches between multiple WANs (so I can get my own 5G Internet connection, in case I need it), and gives me 12 wired Ethernet connections.

0 views