Critical thinking is touted as the educational counterpoint to AI and algorithms, but our definitions of it need an update.
Channel
c/technology
Technology
Owner @master · 4895 posts · 1 joined · Status active · Posting permission: Every logged-in user can post
ADHD friendly journaling - Standard journaling doesn't always work for ADHD brains. The structure is too rigid. Prioritizing and assigning timelines is overwhelming. So I designed a new method: The Cursed Garden of Roses and Thorns. It is designed for anyone navigating ADHD or VAST - or feeling overwhelmed by stress and procrastination. It’s also for creative minds who feel they aren't meeting their own potential.
Next in my list of trying to use AI to further my PhD research is Scenario Tests. A unit testing framework for distributed protocols. For a given protocol implementation, I use AI to write Scenario Tests automatically from the protocol specification. The first work in my PhD was Netrix, a domain specific language for testing distributed protocol implementations. Essentially, I was trying to answer the question - What is the equivalent of a unit test for distributed protocols? The answer is Scenario tests. Distributed protocols are notoriously hard to implement correctly, and even harder to find bugs in. However, it is relatively easy to present new protocols and theoretically prove their correctness. The proofs typically follow some form of scenario reasoning. If this invariant is violated, then we get into a scenario which can never happen. Understanding the reasoning and believing in the correctness of the proof is a first step in implementing the protocol. Therefore, it is also very natural for the developer implementing the protocol to write the tests as scenarios. To write a Scenario Test, a developer writes a sequence of filter rules. They filter events to track a runtime monitor, and also guide the execution of the distributed protocol. Let's look at a simple example for Raft. The test states a simple property and enforces a specific scenario in the execution of the distributed system - one where votes and their responses are never delivered and hence, no leader is ever elected. The test has two components, (1) The state machine, and (2) the filters. The state machine tracks the state of the test, derived either from messages sent or from the local state of the nodes in the distributed system. The filters decide which messages are delivered, dropped, duplicated, manipulated, or just observed. Together, they create a scenario and describe a property that needs to be satisfied. Underneath, the test is driven by a stream of events. Events are created when messages are sent, received, or other internal steps are taken by the nodes (e.g. becoming a leader). The events are passed through the filters one by one, and the corresponding action is taken if any of the filters match. If none match, the default action is to deliver a message. Lots of interesting questions come up with scenario tests. How does the test decide the order of messages observed (since there is no single true order in distributed systems)? In the original paper, we allow users to plug in their own strategy for exploration, but the default is random order. The second question which I use the help of AI to answer is - Who writes the test? How do you know which tests are needed or sufficient? For the original paper, I manually wrote all the tests and we come up with a methodology to derive tests from the protocol specification. Now with the advent of AI, I give the LLM the spec of a distributed protocol, the DSL syntax and semantics, and instruct it to write as many tests as it can with the goal of being exhaustive. As expected, we got a lot of meaningful and interesting tests that I'd missed when I manually wrote them. But since etcd/raft is such a robust implementation, I did not find any bugs. All the tests including the framework can be accessed here - zeu5/raft You can find the paper (published in NETYS 2024) and all the detailed experiments here - arXiv (2303.05893)
When Flathub banned AI-coded app submissions last month, some critics warned the platform was denying the future by dismissing a new wave of
Categories ‘Three workers digging in a field outside the data center,’ by Dinnis van Dijken 20 May, 2026 door Sign This text is a documentation of the performance that happened on the 15th of May at Westpoort, Groningen, near the upcoming Google’s datacenter. The idea to record the performance in the form of text was only made possible by the dedication and help from the writer of this text, Dinnis van Dijken. Three workers digging in a field outside the data center by Dinnis van Dijken We were too early. A hare flew past the field before us as we checked our location on Google Maps. The tarmac was still damp from the rain of the night before. Enzy had warned me to wear a warm jacket, long pants and practical shoes as the field was going to be wet. My army boots were a good choice. We waited on a pile of concrete slabs. It was 08:45 and there was nothing before us except a power grid and some industrial buildings. The harsh cackling of a pheasant interrupted the otherwise silent field. We hadn’t expected to cycle this fast. The weather had been good. Little wind, sunshine and no one on the road. At 08:55 a yellow van took a turn towards the field and crawled into an off ramp across from us. It took a few moments before people emerged and started hauling equipment out of the van and putting on jackets. Their mute and anonymous arrival gave the illusion of a dodgy deal that was about to take place. Then Enzy laughed and waved from afar and the feeling lifted. She had a white hard hat and a clipboard ready in her arm. I wouldn’t have questioned their presence in the field if I had just been passing by. There are always people standing around industrial terrain with hard hats and clipboards. As we walked towards the group, traffic cones, shovels, a crate, a stack of stools and a large Albert Heijn bag came out of the back of the van. Hector was carrying a tripod and other gear. Enzy pointed towards the field. It had a small black plastic barrier around it, the kind meant to hold back excess water or very small animals. She said that recently she had been far into the field, but that today we would stay somewhat closer to the road. We grabbed whatever was at our feet and walked in. Hector paused at a small sign near the barrier that said something about danger to life and high voltage. He seemed hesitant about stepping over it, but I wasn’t sure if he was serious. A rabbit scurried past us about ten meters away. It seemed safe enough. The field was lush with ankle high thistles, rye grass and other weeds that had taken the recent mixture of rain and sunshine well. I recognized the wet grey clay soil as my own. My allotment was the same. I kicked it a little. It was wet but workable. Heavy and saturated with water and roots, but friendly. Two weeks ago the soil would not have yielded to any tool after the dry spell we’d had. It would have been hard as a brick. I have broken many shovels against soil like that and lost. Today was the best situation we could have had. The weather really seemed to support Enzy’s work. The sun sat behind a milky cloud. Not too harsh a light for the videographers and not too cold. Enzy and I moved traffic cones into the field, marking the boundaries for the workers to dig in. They hadn’t arrived yet. I wasn’t sure if the cones should be in frame or out of it. Enzy didn’t say. She went to speak to Hector and I stood in the field holding a traffic cone. It was somewhat dirty and broken and only two out of four cones were similar to each other. I looked up and saw a hare looking back at me. We were both not sure what was going on. Three men arrived, as did Marie-Jeanne and Ron. They all seemed elated. The tallest appeared to be in charge of the other two. He did the most talking and wore the same white hard hat as Enzy. The other two were smiling and stayed more in the background. They put yellow neon high vis vests over the orange high vis coats they were already wearing. Enzy had made these to obscure the logos of the company they normally work for. It also provided protection in case of trouble. Regardless, the workers seemed comfortable in the field but slightly unsure about the whole event. I didn’t blame them. When the workers spoke I recognized their accents as local to the North. Coffee and suikerbrood were passed around. At 09:34 the workers walked decisively towards the area marked with the traffic cones. I wasn’t sure when the cones had found their rightful position. Enzy directed the workers, pointing and making shovel-like movements with her arms. The wind carried some of her words over. She told them not to look at the cameras when they passed by. Two workers were far out and the tall hard hat man was nearest. He was wearing blue gloves. The others weren’t. They faced the power grid and the data center at the far end of the field. The power grid seemed impressive. The data center was a low grey rectangle that looked like nothing in particular. I knew enough to know it mattered more than it looked. Enzy raised her arms like a windmill. She looked like one of the towers in the power grid. A y shape. She said that she would clap and then they would start. She clapped her hands above her head and everyone went silent at 09:36. The guy furthest away was using shovels while the tall man used a spade. The shovels were not meant for heavy clay soil, more for lighter soils such as sand or gravel, but they had long handles that allowed the workers to stay quite upright. The worker with the spade cut into the soil more easily. It was the better tool for it. The thuds of the steel carried further than I expected. The sky was a milky grey that didn’t look like it had rain in it, but clearly didn’t want to show us any blue sky either. Everything was evenly lit and saturated with barely any shadows. The wildlife around us seemed relieved at our collective silence and started talking amongst themselves. Insects I didn’t know the names of made loud noises and the pheasants continued their cackling. Somewhere behind me the hare circled through the grass. The two workers with shovels raised their arms high and brought the steel straight down into the clay with the handles at awkward angles. Some patches needed repeated blows before the shovel or spade could sink in deep enough to move a clump. The worker with the spade moved slower but deeper, cutting clean vertical lines into the wet soil. The worker on the far left, wearing a baseball cap, moved faster despite using a shovel instead of a spade. He worked in quick succession, repeatedly driving the steel down with his boot before levering the clay loose. The third worker, dressed entirely in neon orange, apart from Enzy’s neon yellow vest, kept a steady rhythm somewhere between the two. In the silence the thuds seemed solemn and muffled. The movements were targeted and precise, with a practised patience that knows materials will exhaust you if you force them. The clay with all its wetness and vegetation wasn’t easy to move regardless of the tool. The workers bent over their own patches, not looking at each other, not talking. Their neon orange and yellow clothing formed a sharp contrast against the grey sky and bright green weeds around their boots. Even compared to a background of heavy industry the colors looked strangely unnatural. Dark wet soil surfaced beneath the lighter vegetation. It looked like they were digging small canals, or trying to uncover cables, or systematically looking for something. The cuts they made through the field were neat and straight. The result of the digging didn’t seem to really matter, as none of the men seemed to look at the other to gauge where they were going. What mattered was that they were doing this work in this particular field. Hector circled them in a camouflage coat with an old handheld analogue camera. It seemed like a peculiar choice. Shuhan, who had shown up while we had been setting up, circled from the other side with a more conventional one. The workers ignored both of them as instructed and kept digging. The weeds obscured my view of the ground around their feet. At 09:41 heads turned towards the van. A car marked security had stopped nearby. A man in black stood next to it on the phone, gesturing towards us. Marie-Jeanne and Klaas walked over to him. Enzy followed a little later. Behind me the digging continued uninterrupted. I took a picture. The workers kept digging. The worker on the far left had nearly caught up with the guy in full neon, while the tall man with the spade continued with a seeming focus on consistent depth. Occasionally one of them stopped to wipe sweat from his face before continuing again. The silence made everything seem meditative despite the fact that something had begun to become unsettled. More cars appeared on the road behind us. People stood beside them on their phones, watching the field. I waved once. No one waved back. The workers kept on working undisturbed. It was a little patch of quiet while around them everything was starting to stir. They had barely lifted their heads toward any of the hushed commotion beyond the field. I started walking towards the van. Halfway across the field I met Enzy coming back. She said Klaas had told her not to get involved. I looked over at Klaas and Marie-Jeanne with the security and the police. They looked calm, like they had done this before. I walked back with Enzy to the performance and she went to check the duct taped camera. I stood and thought about repercussions. The policeman left. Klaas walked towards our group and I met him midway. He told me it was the best way it could have gone, with the policeman showing up first. Tell them it was just an art piece about workers. Be nice when you meet the police and collaborate. Take a fine if you have to, but don’t kick a fuss. It was always best to just do the performance and not ask for permission first. I made a note. The security guard eventually approached and he told us we were trespassing on the private terrain of “Google Drive”. The name sounded wrong and I wasn’t sure he knew the correct name of the company, just that it had something to do with Google and datacenters. By then the workers had stopped digging at 09:54 and together with Marie-Jeanne began covering up some of the trenches they had made. Enzy walked towards the workers but the guard stopped her. We all made our way to the van in little groups and duos, each carrying whatever we could carry. The guard followed us with most of the soil still left dug up. He said his supervisors were very sensitive about the building in the background and that all footage had to be deleted. Hector lifted the analogue camera to the guard, showing nothing but footage of the workers’ hands and explained he could not delete analogue film. The guard told him to tape over it later. Marie-Jeanne got on her bike and I followed together with the two other writers. At a nearby roundabout she told us we would meet the workers further along for coffee and payment. We found them outside the Aldi distribution center next to the yellow van. They were smiling and talking to everyone. Enzy came out with the clipboard while Ron transferred money to each of the workers using the bonnet of the tall man’s bright blue car. Trucks left the Aldi distribution center as Enzy handed out small packages, a sweet and salty rice cookie wrapped in cellophane with a note stapled to it. She explained to the workers that it was a small thank you and that the cookies were typical of where she was from. Trucks kept leaving the distribution center. Unlike the field, no one seemed to care about our presence.
Retriever researches every name on the attendee lists, directories, and searches you're logged into — profiles, work emails, ICP scores, outreach sent — at $2.50 per 1,000 records.
Today's episode is about remote work. Well, sort of. I found someone with a different perspective on remote work and a fantastic story to share, Paul Lutus. I think that he might be the original remote software developer. He left California behind for a lower cost of living in Oregon. And from Oregon, he developed software for Apple. But the kind of surprising thing is he did this in the 1970s! And he did it so well he became rich and even briefly quite famous.
This is the fourth part (I, IIa, IIb, III) of our honestly-who-knows-how-many part series laying out some general guidelines for how pre-modern armies are organized. We’ve talked about how ar…
Regressive JPEGs: 2026-07-17 One of the cool features of JPEG files is that there's the option to save low frequency components first. This means that a partially downloaded image will be displayed at low resolution instead of being cut off. In the file, this works by breaking up the compressed data into multiple "scans", each prefixed with a header. Here's the first scan of a representive image: FF DA - "start of scan" marker 00 0C - Big endian length field (12 bytes) Includes itself 03 - Number of channels in scan (3) 01 - Global id of first included channel 00 - Huffman table index #1 (DC: 0, AC: 0) 02 - Global id of second included channel 10 - Huffman table index #2 (DC: 1, AC: 0) 03 - Global id of third included channel 10 - Huffman table index #2 (DC: 0, AC: 0) 00 - Starting DCT bin (DC) 00 - Ending DCT bin (also DC) 01 - Precision: half, no pre-existing data. f8ad 512d d3f1 cd96 - Huffman coded DCT coefficients bcb0 58df 53d5 5d97 [...and a lot more] ... this one includes the lowest (DC) Fourier bin for all three color channels. The three color channels are YCbCr instead of the usual RGB. The luminance (Y) seperated because it must be high quality, but the color can be fudged quite a bit while looking fine. Very roughly: Y = G, Cb = B - G, Cr = R - G After it, the file contains eight more scans to fill in the rest of the data: Scan numberChannelsDCT bin rangePrecision 0Y Cb Cr0 - 0Half (-1 bit) 1Y1 - 5Quarter (-2 bits) 2Cb1 - 63Half 3Cr1 - 63Half 4Y6 - 63Quarter 5Y1 - 63Half 6Y Cr Cb0 - 0Full 7Cr1 - 63Full 8Cb1 - 63Full 9Y1 - 63Full Scan #0 contains a very low resolution preview of the image. Scan #1 adds some details to the luminance. Scans number two through five contain full low precision data. Scan 4 has an unusual spectral range because it's filling in the gap left by #1. That way, number 5 has full quarter precision data to build on. Scans six through nine add the final missing bit to bring the image to full quality. Given what I said about color being less important, it might seem weird that my example has the color data first: This works because the the chrominance is saved at half resolution (quarter pixel count). As a result, full chrominance data (Cr + Cb) only weighs half as much as luminance. Since each scan explicitly sets its spectral range, it should be possible to construct a JPEG file where future scans overwrite already rendered image data. Actually, it's very easy to do this: Concatenate multiple images with the same resolution and filter out the start-of-image, start-of-frame and end-of-image markers. This can be done in a hex editor, but I used a quick and dirty C program. When served over a slow network, this concatenated file will switch between multiple images: Click to open in new tab But, most decoders will give up after some number of scans: I think this is done to avoid a zip bomb style problem... but it prevents this from working on more than 9 frames, which is not enough for a proper animation. To do that, I'd have to minimize the number of scans in each frame. The simplest idea is to start with baseline JPEGs that only have a single scan. ... but it doesn't work: In progressive mode, a scan can't contain both AC (bins above 0) and DC (bin 0) data at the same time. This limitation doesn't exist for baseline mode, but the baseline decoder stops after the first scan. Since AC data must follow DC data, the smallest possible "progressive" JPEG contains a single DC-only scan. Because the DCT runs on 16x16 blocks, such an image won't a solid color: it'll be 1/16th of the original resolution. Scan numberChannelsDCT binsPrecision 0Y Cb Cr0 - 0Full Doing this, I can get Chrome to render around 90 frames before giving up. Other browsers like Firefox have more patience, but a 90 scan image seems to work almost everywhere. As a bonus, this avoids the ghosting of the naive attempt: that happened because AC scans are supposed to refine old data. Normally, this allows images to include multiple precision levels without inflating file size... but doesn't play nicely with my tricks. If the file only includes DC scans with no actual progression, this isn't a problem. Since a "DC-only" frame is a standards-compliant images, creating them doesn't require anything special: cat > frame.scans
Register domains across 800+ extensions with free WHOIS privacy, free DNS and email forwarding on every domain. Search, transfer in, and manage everything in one place.
Where truth lives in local-first systems: Electric, Zero, and LiveStore compared, the merge-vs-refuse conflict line, and the apps that still need a server.
Could this be the way of the future as people around the world adapt to rising temperatures?