Latest Posts (20 found)
Jim Nielsen -26 days ago

You Might Debate It — If You Could See It

Imagine I’m the design leader at your org and I present the following guidelines I want us to adopt as a team for doing design work: How do you think that conversation would go? I can easily imagine a spirited debate where some folks disagree with any or all of my points, arguing that they should be struck as guidelines from our collective ethos of craft. Perhaps some are boring, or too opinionated, or too reliant on trends. There are lots of valid, defensible reasons. I can easily see this discussion being an exercise in frustration, where we debate for hours and get nowhere — “I suppose we can all agree to disagree”. And yet — thanks to a link to Codex’s front-end tool guidelines in Simon Willison’s article about how coding agents work — I see that these are exactly the kind of guidelines that are tucked away inside an LLM that’s generating output for many teams. It’s like a Trojan Horse of craft: guidelines you might never agree to explicitly are guiding LLM outputs, which means you are agreeing to them implicitly. It’s a good reminder about the opacity of the instructions baked in to generative tools. We would debate an open set of guidelines for hours, but if there’re opaquely baked in to a tool without our knowledge does anybody even care? When you offload your thinking, you might be on-loading someone else’s you’d never agree to — personally or collectively. Reply via: Email · Mastodon · Bluesky Typography: Use expressive, purposeful fonts and avoid default stacks (Inter, Roboto, Arial, system). Motion: Use a few meaningful animations (page-load, staggered reveals) instead of generic micro-motions. Background: Don't rely on flat, single-color backgrounds; use gradients, shapes, or subtle patterns to build atmosphere. Overall: Avoid boilerplate layouts and interchangeable UI patterns. Vary themes, type families, and visual languages.

1 views

I should build a game

I should build a game! I feel like that’s a common dream, right? Game development is what got me interested in design and programming to begin with. I learnt ECMAScript via Flash ActionScript many moons ago. Some time later “Thoughts on Flash” brought a swift demise and ruined legacy to Flash. History is written by the winners, they say. Although Flash was largely proprietary software, and Adobe would have ruined it themselves, Flash was a wonderfully creative tool in its prime. I studied art and went into print/web design before transitioning almost entirely to front-end dev. I’ve been trapped here every since! In that time, open web standards have become way more powerful than Flash every was. Today HTML is the new Flash. Over my winter break I created a new playground where I relearned old tricks by building fun little canvas prototypes. Just basic stuff. No libraries or game engines. This is my retreat of solace until the “AI” fallout blows over. I’ll be sharing my slop-free explorations into game dev. The purpose here is understanding and creativity. No amount of prompt-fondling can achieve that! Work got busy, which is a good thing I guess, and I haven’t had time to build more. If the web industry does fall apart, at least I have a fallback plan to keep me busy! I’m going to build the games I always wanted to. Or at least try. I’ve been playing Slay the Spire 2 recently and I thought, “I could build that!” — I mean, I could technically build a shallow shitty clone. Nevertheless, it inspired me once again to consider if I really could design and build a game. I’ve set myself a personal goal of spending a few hours every week to create something game related. Maybe that’s sketching concept art, or plotting puzzles, or writing code, or researching, or just daydreaming ideas. Not with the grand plan of creating “the game”. I don’t know where it will lead but I know I’ll enjoy the process. Whether I share anything is unknown. Thanks for reading! Follow me on Mastodon and Bluesky . Subscribe to my Blog and Notes or Combined feeds.

0 views

what's in my todo app

I use a gamified todo app that I log into daily, and have been using it for almost a year now. The interaction with six of my friends kinda drew me in; we can have goals together, send each other encouraging messages, visit each other in our rooms and gift each other items. Each day I check off enough on my list, I send a little bird off to an adventure and then it discovers something. I also get little micropets. What I also enjoy is that it's not strictly a productivity-focused app, it's more about selfcare. It offers soundscapes, meditations, a mood tracker, breathing exercises, physical exercises, mental health quizzes, journaling prompts and more. Initially, I used it like any other todo app, meaning I wanted to get everything on the list done in a day and wanted to build a streak. That didn't work out, like it always does, and I chose to embrace the format of the app more. Now, I use it as a list of suggestions to do, from optional and kind things to gentle reminders of what needs doing. I used to struggle a lot with sitting around wanting to do things or knowing I needed to do stuff, but not exactly being sure what, or feeling like I'm missing something. For years, I made lists for everything. Nowadays, it's all combined in that app and not spread between different notes. I have set all goals to just continue being there until they're checked off, and they can be skipped and snoozed as well, all neatly sorted into categories. Let me show you. The hygiene category reminds me to This holds all the stuff I consider productive. Daily stuff is: The less frequent stuff: This is category is usually intended for daily reminders to reach out to people, suggestions to make plans, to remember everyone that loves you, and all that. For me, it has This checks my daily drinking and goals for when to eat. This takes into account that I am mostly hungry in the evening and that eating early, especially sweet or carb-y stuff, seems to spike me a lot and makes me very hungry the rest of the day. So I try to eat breakfast and lunch later, and currently working on delaying it until even later. All of this is daily. I don't always feel good enough physically to fully commit to a routine for weeks or months, so this is basically a platter to pick and choose from each day. Some days, I do all. Some, I only do one or none. This is for stuff that gets me into the flow, or meditative stuff. Also daily! This is also a daily goal, but only holds one at the moment: "Do one thing makes me happy". It's very vague on purpose, and I count a lot of things based on the day. It gets me to go through my day and see what good things happened, practice gratitude. I check if I have treated myself well, and see if there's maybe something I'd like to do for myself. Reminders for myself. Very helpful for my chronic illness stuff! It can be hard to see rest as something productive and needed, instead of just something that holds me back. It also helps me see small good things and wins I had that day that otherwise, I would have just forgotten or downplayed again. So I get these three daily tasks: Still working on perfecting my sleep schedule and quality. Daily goal: Reminders to take some stuff. Only my injection is scheduled for every two weeks. Haven't had this category for long yet! But my hair is longer now and I take great care regrowing it, together with other things I want to focus more on. I don't put my usual skin care in there, because it's so embedded into my routine and easy to think of that I don't need it to be in there. I love that I don't have to just do the very productive or exhausting stuff; I can just do enough . Sometimes, selfcare is all you can manage, or you procrastinate on hard stuff but do lots of other things. That should still be rewarded, and you're still making progress. I feel like this setup finally acknowledges that for me. It's not a stressor anymore, just a wide selection of things I get to do , and even self-kindness and rest count. Most days, I don't do all of these, and it's not even an expectation. I'm just happy to see that I did stuff at all, and have an easy list of things that I can go through and see "Oh yes, that fits my mood and energy right now." and feeling like I make progress even by resting or affirming or acknowledging small wins. Reply via email Published 22 Mar, 2026 change the bed sheets on every Sunday do laundry on Saturday clean the bathrooms on Tuesday take out the trash on Saturday (or as needed) vacuum on Monday and Friday dust and wipe surfaces on Wednesday. spend 5 minutes tidying my home (I usually do this automatically, because I tidy up a bit first thing in the morning and before going to bed, and I always try to take stuff with me whenever I go through the apartment) read a book or magazine water plants (Thursday) do a case for Noyb (Friday-Sunday) do favors for my wife take a stretch break (this is under connection because this is my wife and I's shared goal we do together) drink water (3 bottles) breakfast after 10 am lunch past 1 pm go for a walk 20+ mins indoor cycling read a simple affirmation for myself (tapping this launches the affirmation part of the app, where I can skip through ones and find one I need for the day) give myself permission to rest (this one changed a lot of how I see breaks in my fitness plans!) name one small success from today avoid caffeine after lunch (usually, I treat this as noon, because I usually have lunch later) go to bed at 22:00 Supplements daily (a general one, my extra iron stuff, Vit D during the winter) Endovelle daily in the evening Minoxidil twice daily Injection every two weeks on Friday hair oiling on Sunday monthly teeth bleaching

0 views

RSS Club #006: Burnout

This is an RSS-only post, which I like to do sporadically! Thank you for subscribing :) Am I burning out? Let me know what you think, internet doctors. I work a four day week and I have done so for many years. Fridays are mine to have fun. By fun I mean making my own websites without the pressure of clients. That helps me wind down. When the weekend arrives my mind is already stress free. At least it was! I’ve been struggling more than usual lately. My watch monitors heart rate, steps, sleep etc. It has started to report a lower than average “body battery” — that’s what Garmin has trademarked to say: “sir, you look like shit.” A major factor here is definitely a hamstring tear that has kept me from running. Not long ago I was doing half-marathons every other week. Now I can only manage a light 5k or risk prolonged injury. Being stuck inside isn’t helping my mental or physical health. Hopefully before summer I’ll have recovered. But there is more I reckon. I’m fed up. Everything makes me grouchy. Is it too simple to say that the web industry, and tech at large, has lost its collective marbles? Not a week goes by where I don’t mute a word on social media, or unsubscribe from a blog. Everyone is talking nonsense. Everyone is grifting. It never used to be this way. What depresses me most though is how negative my own blog can be on occassions. Part of me wants to defend my career. To call out the ludicrous stuff that is said and done these days. I’m not worried about upsetting people. The clients that hire me don’t care that I dared mock an industry influencer or challenged one of the old boys’ club. I try to do that in a joking way but my tone has always been blunt. That has gotten me into a wee bit of trouble before. Lately though, I can’t help but feel I’ve been looking for trouble. Is it even possible to ‘fight back’ in a positive way? I’m not just talking about “AI” bollocks, I mean the general enshittifcation of the web industry and tech at large. The hot drama and spicy takes are great for clickbait and like-farming. I’ve been too guilty of that. Even though I know for a fact that my most popular posts, over the long run, are topics like: Multiple Accounts and SSH Keys . That got zero attention the day I published it but I’ve received random “thank you” emails every year since. Thing is though, I actually do get “thank you” emails for my stance against AI. There are a lot of developers who aren’t in a position to speak their mind. I don’t blame anyone for staying quiet when their job is on the line. I’m lucky I am my own boss. I’ve always blogged primarily for myself. That’s the secret to blogging I think. Regardless, after so many years I have the power to reach a significant audience. I feel somewhat obliged to do something with that. I’m just not sure I’m venting my frustrations in the right way. Maybe I am burning out and it’s affecting my judgement? I’m genuinely curious. Send me an email: [email protected] Are you burning out? Am I burning out? Or is the industry burning down around us? Feedback is always welcome. I can take criticism. I’ve received some absolute scorchers from anonymous cowards recently. I wish I could share those but I do respect my privacy policy . (That’s not an invitation for hate!) Thanks for reading! Follow me on Mastodon and Bluesky . Subscribe to my Blog and Notes or Combined feeds.

0 views

how to properly ask for help

I’ve been noticing more disregard for a more respectful way to ask for help recently, both in private, at work, and between strangers online. It seems like a growing group of people is comfortable with just barking words at other people to receive answers. No please, no thank you, no further explanations and no attempt to first solve it on their own. I don’t know if this is some sort of effect search engines and LLMs have, but either way: Here’s how you can do better. You message your friend, a coworker or a stranger “ My printer won’t print. ” Now you have to wait until they see it and have time to respond. That could be hours or days. Then when they get back to you, they have to establish some context first. “ Okay. Have you tried turning it off and back on again? Are your drivers up to date? ” Now they have to wait for you to answer again. What usually happens now is further slowing down the actual resolution. “ Yes I already tried all that. ” This can go back and forth for ages , just dragging on about what you did or didn’t do, and wastes both your time and the other person’s time. It’s disrespectful to make the other person do all the work of getting the right info out of you, and put together a detailed guide, just to be shot down with “Already did that.” So before you reach out to another person, use the tools available to you, depending on the problem. If you have exhausted all options and tried all the suggestions, then reach out. You might not even need to do that, and solving it on your own this way was faster than just involving someone else from the getgo! A respectful message would be: “ Hey, I’m having issues with my printer, can you help me? It’s a [model number] and I have consulted [resources] and tried [everything you actually tried], but still no luck. Do you have any other ideas? Thank you. ” This is polite, not commanding or imposing, and it gives the other person all relevant information that makes helping you easier and faster. Instead of dragging every piece of information out of you and each having to wait for a response, they can immediately research the model, and focus on the things you haven’t tried yet, and find other resources. This is respectful of the other person’s time and efforts, and this way, they are more inclined to help you in the future. It’s not only about tech support or a defective device; apply it to other situations as well. It shouldn’t need to be said, but of course, it’s okay to ask “ What’s dirtbiking? ” when someone brought up they like to do dirtbiking in conversation, even if you could research it yourself. That’s normal bonding and socializing, and you wanna hear it from them and find out more about how they do it or why they like it. It’s also okay to ask someone what their opinion or stance is on something, or whether they have recommendations for something. Of course you could also find opinions and recommendations online, but this is obviously about valuing this exact person’s opinion and insight, which you will not find online. I’m sure the other person is delighted to be asked and get to tell you something about that topic. I hope this is a worthwhile reminder; send it to people who do this, hang up a version of this at your workplace, whatever. It’s okay to need help, it’s okay to not know something, but you need to go about this the right way and remember some etiquette. Otherwise, people will think you are just too lazy, difficult to work with, and weaponize your incompetence just so someone else does it for you. Reply via email Published 22 Mar, 2026 Check the manufacturer website, check the manual, or check if the manual is available online; check FAQ’s and similar informational pages. Use a search engine. Check a wiki, search the problem + ‘reddit’ to find a relevant Reddit thread, check if YouTube has a video on how to solve the problem. Ask an LLM. Know what the problem is or what topic you wanna know more about. Make sure you use the correct words and names, and you are specific. For example: don’t just ask your coworker to help with “that one database” when you all use multiple. Exhaust your options first. Give the other person as much information as possible.

0 views

Profiling Hacker News users based on their comments

Here's a mildly dystopian prompt I've been experimenting with recently: "Profile this user", accompanied by a copy of their last 1,000 comments on Hacker News. Obtaining those comments is easy. The Algolia Hacker News API supports listing comments sorted by date that have a specific tag, and the author of a comment is tagged there as . Here's a JSON feed of my ( ) most recent comments, for example: https://hn.algolia.com/api/v1/search_by_date?tags=comment,author_simonw&hitsPerPage=1000 The Algolia API is served with open CORS headers, which means you can access the API from JavaScript running on any web page. Last August I had ChatGPT build me a simple tool for hitting that API for any user which fetches their comments and gives me a mobile-friendly "copy to clipboard" button. I've since tweaked it a few times with Claude. I can then paste the whole lot into any LLM - these days I mostly use Claude Opus 4.6 for this - and prompt "profile this user" to see what it can figure out. It's startlingly effective! It feels invasive to quote the profile of another user here, so I'll show you what it produces for me: This is Simon Willison — a prolific, independent software developer, blogger, and one of the most visible voices in the AI-assisted coding space. Here's a profile drawn from his comments: Professional identity: Independent developer and writer. Co-creator of Django, creator of Datasette and many other open source tools. On the board of the Python Software Foundation. Runs a heavily-trafficked personal blog at simonwillison.net with multiple content types (entries, link blog, notes, quotations). Monetizes through GitHub sponsors, ethical ads, and occasional consulting — not through any AI company payroll, a point he defends frequently. Core thesis on AI coding: He's the leading evangelist for what he calls "agentic engineering" — using coding agents (Claude Code, Codex CLI) as productivity multipliers for skilled developers. His central argument: LLMs don't replace programmers, they amplify existing expertise. He's writing a guide/book on this at simonwillison.net/guides. He insists these tools are deceptively difficult to use well, and that most people who report bad results simply haven't learned the craft yet. Working style: He does most of his programming from his iPhone via Claude Code for web, often while riding BART, walking the dog, or sitting in the garden. He embraces "YOLO mode" (auto-approving agent actions) and frequently runs 2-3 agent sessions in parallel. He starts every session with "run uv run pytest" to anchor the agent in TDD. He's on the $200/month Claude Max plan. Key technical interests: Sandboxing and security (WebAssembly, Pyodide, sandbox-exec, Firecracker), SQLite (deeply), Python packaging and tooling (uv, PyPI distribution tricks), browser-in-a-browser experiments (v86, WASM Linux), and local LLM inference. He's been learning Go "by osmosis" through coding agents. Security consciousness: He coined the term "prompt injection" and the "lethal trifecta" (access to private data + exposure to untrusted input + ability to take actions). He's genuinely alarmed about OpenClaw/Clawdbot security risks and has been predicting a headline-grabbing prompt injection attack "in the next six months" for over two years — acknowledging it keeps not happening while insisting the risk is real. He references the "normalization of deviance" pattern frequently. Personality and debate style: Energetic, combative when challenged, but generally good-natured. He engages heavily in HN comment threads — sometimes dozens of replies in a single discussion. He's transparent about his biases and maintains a public disclosures page. He pushes back hard against what he sees as motivated reasoning from AI skeptics, but also against AGI hype ("I refer to that as the science fiction version of AI"). He gets visibly frustrated by sock-puppet accounts and bad-faith criticism. He has a self-deprecating streak ("my stupid pelican benchmark"). Recurring themes across hundreds of comments: Personal interests mentioned: Niche museums (runs niche-museums.com), New Zealand kākāpō parrots, cooking food from countries he's never visited, chickens in his garden. Lives in Half Moon Bay, CA near a major pelican roost. The pelican-on-a-bicycle SVG test is his signature LLM benchmark. In a sentence: A deeply experienced, independently-minded developer who's genuinely excited about AI coding tools, fights hard against both uncritical hype and reflexive dismissal, and is trying to professionalize how the industry uses these tools — while also worrying loudly about the security implications almost nobody else takes seriously enough. This all checks out! I ran this in Claude incognito mode to hopefully prevent Claude from guessing that I was evaluating myself and sycophantically glazing me - the tone of the response it gave here is similar to the tone I've seen against other accounts. I expect it guessed my real name due to my habit of linking to my own writing from some of my comments, which provides plenty of simonwillison.net URLs for it to associate with my public persona. I haven't seen it take a guess at a real name for any of the other profiles I've generated. It's a little creepy to be able to derive this much information about someone so easily, even when they've shared that freely in a public (and API-available) place. I mainly use this to check that I'm not getting embroiled in an extensive argument with someone who has a history of arguing in bad faith. Thankfully that's rarely the case - Hacker News continues to be a responsibly moderated online space. You are only seeing the long-form articles from my blog. Subscribe to /atom/everything/ to get all of my posts, or take a look at my other subscription options . "Two things can be true at the same time" — he holds nuanced positions Tests are for productivity, not just quality The November 2025 model releases (Opus 4.5, GPT-5.2) were a genuine inflection point Code review is the biggest bottleneck in agent-assisted workflows "Cognitive debt" is a real and unsolved problem The best engineering practices (tests, docs, CI/CD, clean code) also make agents work better He's deliberately trying to "teach people good software engineering while tricking them into thinking the book is about AI"

0 views

Fundamentals of Software Architecture

A handshake should be firm, but not overpowering. Look the person in the eye; looking away while shaking someone’s hand is a sign of disrespect, and most people will notice that. Also, don’t keep the handshake going too long. Two or three seconds are all you need. — Richards & Ford, Fundamentals of Software Architecture , Ch. 32, para. 87 I swear, I find a lot of value in reading books about software. But I take issue with the length of some of them. When I'm 600 pages into an 800 page technical book, and I'm reading something barely tangential to the book's topic, like detailed instructions on how to shake hands...I get a bit annoyed. I think it's because every author wants to make their book "the definitive reference on X", whatever X is, so they feel the need to include stuff about leadership, soft skills, etc. Technical books like this could be more approachable if they kept to a more concise topic. My two cents. Anyways, Fundamentals of Software Architecture was written by Mark Richards and Neal Ford. It's a thorough cataloguing of every popular architectural style and their pros/cons. It introduces a lot of terminology, with the goal of defining how to evaluate and explain the architectural qualities of a system—qualities like availability, coupling, fault tolerance etc. This post is mostly a summary the architectural topics covered by the book; I've added some personal commentary on system coupling and AI near the end. According to Richards and Ford, the 3 laws of software architecture are: Everything in software architecture is a trade-off Why  is more important than  how Most architecture decisions aren’t binary but rather exist on a spectrum between extremes. They added the 3rd law in the book's 2nd edition. It sorta just feels like a different way of phrasing the 1st law, but I think they're trying to highlight that any architectural decision is never "absolute", i.e. most systems don't perfectly align to any one architectural style. A system might lean towards microservices architecture but have elements of other patterns too, for example. "As I have evolved, so has my understanding of the Three Laws. You cannot be trusted with your own system architecture." — Claude For mostly my own sake, I've briefly summarized each of the architecture styles covered by the book. Just 1 or 2 sentences explaining what it is and when you should use it—I'm aiming for brevity here, like a crib sheet. Pictured: Enterprise Service Java Beans from the Neolithic era. Thought to be a tribute to Sun Microsystems It's important to understand how to define a system's boundaries. In the book, the authors define the concept of an architectural quantum which is the "smallest part of the system that runs independently". The system might be your entire microservice architecture, but if one part of it can function independently of other parts of the system, it forms its own architectural quantum. So how does an architectural quantum run independently if it has to communicate with other parts of the system? The critical part is how the communication happens—whether it's synchronous or asynchronous: The dependency turns them into a single architectural quantum. Asynchronous communication can help detangle architectural quanta because it removes that dynamic dependency — Richards & Ford, Ch. 21, para. 48 If the operation of System A requires information from System B, then it's coupled to System B and they form a single architectural quantum. This means that System A's characteristics are impacted by System B's characteristics. If System A needs to be fast, we must ensure System B is fast, and consistently fast. At my current company, every service is associated with a reliability tier. The service's tier determines many of its operational requirements. For instance, a tier 0 system (the highest tier) needs to be deployed in multiple regions for redundancy. It needs an on-call engineer, clearly defined SLAs, etc. But if a tier-0 system needs to retrieve data from a lower tier system as part of its operation, all of a sudden the lower tier system needs to be a tier-0 system. They become coupled. In practice, there's some nuance here. Just because you call another service via HTTP and block the current process waiting for a response, doesn't mean the two services are fully coupled. As long as there's fallback functionality that doesn't constitute an error state, they needn't be considered coupled. If your service needs to be fast and the other service isn't reliably fast, you may implement a strict timeout and then fallback to some degraded functionality in the event the request times out. As an example, consider a new user recommendation system being built by your company's ML team. Your tier-0 homepage rendering service can still attempt to retrieve user recommendations from this new system, but as long as you can fallback to some other functionality (like just choosing the user's recently viewed content) we don't need to group that recommendation system in with our service and its strict functional requirements. The 2nd edition of this book was published in April 2025. So of course, AI was brought up a lot. In general, the authors' stance was that AI is not an effective replacement for human architects—and they didn't seem optimistic that it could ever be. Why? Because, as we’ve demonstrated in this book, everything in software architecture is a trade-off. LLMs are great for understanding knowledge, but to this day, they still lack the wisdom necessary to make appropriate decisions. That wisdom includes so much context that it’s much faster for the architect to solve a business problem by themselves than to teach an LLM all about the problem and its extended environment and context. The fact that we’ve included eight other intersections to be concerned about should be evidence enough that this is a daunting task. — Richards & Ford, Ch. 33, para. 80 While I agree that the amount of context necessary to properly make architectural decisions is hard to shove into an LLM's context window right now, I don't believe that'll be the case for long. I have a feeling the opinions in this book will become outdated quite soon. Also, despite the authors' insistence that "architecture is the stuff you can’t Google or ask an LLM about", I fully believe that AI tools are an indispensable tool for researching architectural decisions. They can explore the problem domain more completely and much faster than any human could. They can also illuminate trade-offs and nuances you might have missed. The fact that the authors' never mentioned this in their statements on AI utility is a major oversight. Every job function in software development, from junior dev to CTO, should be leveraging AI tooling at this point. Like I mentioned at the start, I found FoSA to be a bit bloated. Also, the book didn't didn't really cover what I was looking for. I wanted a book that described more specific architectural patterns for solving common technical challenges like cache invalidation, database replication etc. Instead, it focuses exclusively on the overall system layout—how the domain boundaries are divided and what the physical topology looks like. And how to shake someone's hand properly. I also think the book tried too hard to quantify complex system characteristics. I don't find much use in assigning a 1 to 5 star rating for the "maintainability" of a "microkernel" architecture style (which is 3/5 according to the book)—simply because both the characteristic and the style itself are too vaguely defined to warrant a rating. I'm certain you could build your microkernel system to have poor maintainability OR incredible maintainability. There's too much ambiguity to extract any conclusions from these assessments. Still, in general, FoSA is an interesting book that tackles one of the more complex and less formally researched areas of software development. Architectural decisions are the hardest to make due to their consequences and trade-offs, so knowing the patterns that have worked for others is a great starting point. Everything in software architecture is a trade-off Why  is more important than  how Most architecture decisions aren’t binary but rather exist on a spectrum between extremes. What is it: Technically partitioned: presentation, business, persistence, and database layers for example. Typically a monolithic application with a monolithic database. Very common, especially in legacy systems. When to use it: Small, low-budget applications. But it can scale surprisingly well. What is it: Another monolithic style, i.e. a singularly deployed application. The system is divided by business domain instead of technical functionality. Domains are called "modules". Goal is to minimize communication between modules as much as possible. When to use it: If teams are domain-focused and using domain-driven development, it's a good starting architecture. Can later migrate to a distributed architecture more easily. What is it: Topology consists of pipes and filters . Filters perform business logic; pipes coordinate and transfer data. Systems have a unidirectional data flow; it can be monolithic or distributed. When to use it: Suitable for systems with one-way, ordered processing steps. ETL pipelines, etc. What is it: Topology consists of a core system (the "microkernel") and plug-ins. Plug-ins are optional and provide extensible functionality to the system. Traditionally monolithic with a single database. Plug-ins shouldn't access database directly. When to use it: Installable desktop applications, or domains that address a wide market and require many custom rules and functionalities for each customer. What is it: Distributed architecture with a separately deployed user interface, coarse-grained domain-centric remote services, and a monolithic database. Basically microservices but with coarser service boundaries and a single shared database, or just a few. When to use it: When the system is of significant complexity and serves a wide enough user base that the benefits of a distributed architecture outweigh the costs. Can be a stepping stone towards other distributed architectures What is it: Distributed system using mostly asynchronous communication. Consists of event publishers, brokers, and processors (the services). Central communication unit is an event, as opposed to a request. When to use it: Systems that require flexible, dynamic processing that need to scale to lots of concurrent users. Applications where eventual consistency is tolerable and immediate acknowledgement isn't needed. What is it: A complicated distributed infrastructure of scalable processing units that are supported by replicated and/or distributed caches. There is a shared "data grid" that handles data syncing between units and reading/writing from the database. This removes the database bottleneck from the system—database access isn't needed for processing requests. When to use it: Applications with very high concurrent user volume and high traffic variability, AND a low need for data consistency between users. Race conditions and data conflicts will be unavoidable in this system. What is it: A legacy architectural style that uses abstract service layers and operations orchestrated by a shared "enterprise service bus" which knows which services to call to complete operations. Uses generic components to increase code re-use. When to use it: If you've taken a time machine back to the 90s and you have to write enterprise software. What is it: Domain-driven architecture that enforces strict API boundaries and minimizes coupling between domains. Duplication is favoured over re-use where possible. Each service should "do one thing" and have its own database ideally. When to use it: Systems that are highly modular and have high enough load to justify the scalability and performance benefits compared to the development and operational costs.

0 views

Placeholder

This is a placeholder post that will be filled later

0 views

a love letter

I love that I am so passionate about a topic that makes me research and learn so much, that I go to conferences for, that I get newsletters and magazines about. I especially love that I feel so intensely about it that nothing could stop me from it. I’ll find ways to engage with it anyway, somehow. Nothing can ruin this for me. I don’t force myself to read or write about it, it pulls me in. I’m never too sick or too tired. I’m never satisfied about how much I know, I always want more. This drive helps me so much in having the audacity needed to actually make it. I don’t see my aspired career paths as a possible dream that could be made true under the right circumstances; I just can’t view it that way, not even if I tried. Internally, it feels like an inevitability, a fact, that I will progress and go far in this field. Ironically, that reassurance makes doing the work for it easier. I can’t know whether that prediction will become true, but even just feeling that way makes me act differently, which is increasing my surface area for opportunities and cool coincidences to happen. Instead of waiting for a sign, for permission or for things to fall into my lap, I get going. It’s the typical effect of “Just act like you belong here”, I think. I don’t hesitate or think twice before I message people in the field that I could learn from. I sign up for volunteering or apply to jobs without worrying if I’m good enough. I am not ashamed or afraid of being annoying when I contribute more, ask questions or share news that could be interesting in that space. I don’t feel impostor syndrome when I write about the topic. In my mind, I absolutely deserve to be here and be heard and considered. It just clicks, it makes sense, there is no other outcome in my mind; because either I contribute well, or I learn. There’s no other option. Something in me feels like it is all being taken care of somehow, that things will happen the way they should, and I can fully focus on the work and letting my passion carry me. I also have delusional goals on purpose: Be asked to speak at a panel, and get my own Wikipedia page one day (only once I deserve to be there for something great!). These keep me aiming higher and higher, ans have more standards for myself. I wasn’t always that way, and I’m not like this in every area of my life either. I’ve actually been insecure for most of my life, with a crippling fear of failure and preferring not to even try, and dropping everything I wasn’t immediately good at. I’d prefer not to ask than receive a no. I thought I was very annoying to others, and that everyone was so much further ahead in anything. But times change, and if you’re lucky, the right interest/hobby builds up your confidence and ability to showcase your skills with ease. With this, I feel things are just perfectly falling into place, and I’m ready and grateful for whatever happens. Everything feels like a reward, like one step closer to something. I finally, for the first time in my life, feel like I truly and thoroughly enjoy the way there, the process itself, instead of just craving the finish line. To me there is no one to compete with in a negative way, no one to measure against and feel insecure - I just see amazing people to learn from and future mentors. I see people I’d love to work with and for. I see them as proof I can do it too. I look at some things and go: This is great, but I think I can do better; and then I try exactly that, and use it as an opportunity to grow and to prove myself. Mostly to myself, but an audience is also nice. And it makes sense, doesn’t it? If you don’t believe in yourself, it can be very hard for others to do so and it impacts your ability to put your best foot forward. Nothing of this felt like a deliberate choice or a process I put myself through to “become better”. It just happened to me, and now I’m gladly riding the wave this special interest has given me. And I’m so proud of myself. Thank you to everyone sending encouraging emails, will respond soon! Reply via email Published 21 Mar, 2026

1 views
ava's blog Yesterday

bad parents know / being the villain

This is for the ones with abusive parents. Bad, abusive parents know a lot more about it than you’d think. We all know the saying “ The axe forgets what the tree remembers. ” And I’m sure for some stuff, that is true. But I’ve seen when they act clueless while knowing what what happened. Sometimes, the mask slips. Things they claim never happened and that they can’t remember are suddenly mentally present. I remember a time when all the yelling and abuse over math homework allegedly never happened. That our neighbors informing my teacher and my teacher ringing our doorbell to come in after another screaming match, and finding me crying, never happened. But at a restaurant dinner in adulthood, suddenly the she says “ I ruined math for you back then. I messed that up .” Funny how that happens. The amnesia is selectively lifting sometimes, I guess. Then you cut them off and decide to end the relationship for good. They notice. Messages like “ I hope you are safe. Did something happen? ” “ Please reach out, it’s urgent. ” It’s supposed to make you respond in case something bad happened to them or another one. Then they try and catch you in front of your home. That’s when they reveal they know exactly what’s going on. They don’t really think something happened to you. If they did, or at least of they cared to put on an act, they’d say: “ Oh hey!! Thank god you are alright! I wasn’t able to reach you, I wanted to make sure you’re good and if maybe yours or my phone are broken? ” But instead they act like everything is fine, as if this is just randomly happening, like they were just randomly outside your place, running into you. “ Hey, how are you? ” With a demeanor and face as if nothing is wrong. You then say you don’t wanna talk. The mood shifts. “ Yeah I have noticed! But why? ” There’s not even any visible concern for your feelings, no discernible feeling of guilt, apology or shock that they apparently did something that was the final straw. Others would be aghast, apologetic, shocked. But here, there’s only offense and an attempt to regain control. How dare you cut me off, how dare you enforce boundaries, how dare you not tell me why or give me an option to argue - that’s what’s being communicated. There’s no genuine attempt to be sorry, to understand, to hear you out. No “ I respect your decision, but understand I will always love you and if you decide you want contact again, just reach out. You’re always welcome and you will always be my daughter. ” Just attempts to rope you into conversation, stall for time, get in your head, argue and try to invalidate your feelings about certain events. Then suddenly it’s all your fault. The relationship is bad because you aren’t giving anything, you don’t put enough effort in, you don’t want to be close. And you know what? That’s partially right. This is what happens when your child doesn’t feel comfortable around you, can’t feel like letting their guard down, feels harshly judged and shamed by you, and is scared of you. I used to be a very cuddly child. I loved my mother. Then she turned into a monster. Without the words to describe what happened and without knowing anyone else going through the same, even as a kid as young as 6, I likened it to something or someone “possessing” my mother. It felt like over night, someone else replaced my mum that looked like her, and it never got better. Later on when I was older, my dad revealed he noticed it too and begged her to get psychological help, but she refused. Even she remarked on my change in behavior. I remember her being mad about me no longer wanting to cuddle with her when I was a kid. I remember her angrily asking “ Why are you so scared of me?! I never did anything to you!! ” every now and then growing up, and I either lacked the words to say why, or I was too scared to say it, or I said the reasons weren’t believed or respected. I was just gaslit. This never happened, this is wrong, this is just normal, you are overreacting, you’re too sensitive, this isn’t fair… I heard it all. So why explain to someone why you’re scared when that happens? All you have left is greyrocking them. They always love to make it seem like it’s all in your head, you chose this, this is your fault. As if a child would choose to be scared, choose to cry, chooses to dream of being adopted into another family, chooses to dream of running away, hopes it was switched up in the hospital and would find its true family one day. As if the same child, but as an adult, would choose to be diagnosed with ©PTSD for it, change their first name because the original one is too traumatic, and is still scared when they hear keys turn in a lock and someone arriving home. Yeah sure, I was just born defective, born to hate my parents somehow! Nevermind that I wanted to reconcile so bad, gave endless chances, ignored my own needs and wants and tried to just “ accept who they are ” and preferred to endlessly question if I am the problem. I went to years of therapy! Everyone I talked to, mental health professional or not, were shocked of how I grew up and said it’s not normal! And why would I lie? Because it’s so cool to pretend your parents are trash? Sure. I just live for the pity, apparently? Yes, at some point, I changed and created distance. But I still said yes to every request to see me. I always responded to messages. I gave gifts. I reached out to ask how it’s going. I agreed to spend some festivities together. I stayed in contact and agreed to meet more just to make her more comfortable and to do my part as a daughter. I don’t wanna be a bad daughter. I didn’t wanna give up yet. It could get better, right? Maybe she ages out of it, maybe we can find ways to make it work. I do want a family, and it’s hard to cut off the only family you still have. Further in the final conversation, the diversions start. Was this only because ( insert very harmless interaction that would make you look insane if you were truly mad about that )? No, of course not. They know the relationship was bad for most of your life. They know you’re not seriously cutting them off because they cancelled on you when they were sick. It’s all searching for reasons that are not their fault and easy to make you look bad. They also remember those years, and they can reference some of the bullshit they did in rare occurrences (see above) or they can at least suddenly lament all these years where the relationship was bad because of you . They just choose to switch multiple times in the same convo between pretending they believe everything was actually fine and this is out of nowhere, and knowing everything’s bad but it’s yours to fix instead of moving on. Anything but taking accountability or acceptance. Sometimes they can’t even look you in the eye during all of this. It’s like even they are afraid it’ll all just spill out, all the rot they try to ignore. I think deep down they know they fucked up, but thought you forgot or would just continue to bear it. Them acknowledging it out loud first would make it real, would be unbearable, I assume. We’re just all expected to dance around it. You giving up and choosing no longer to keep contact is bringing it all into the open, in a way. You don’t need to actually recount specific situations or times, or summarize all those years. Simply choosing to abandon them, doing the unthinkable for a child, is enough. Even they know realistically it can’t all be you. They have to have done something bad bad . That means it’s all real, it all happened, and it has an effect. It can, for a brief moment, no longer be denied. They lose control over it, and are faced to reckon with it at least in the situation. Of course they’ll run to other people for validation. Leave out info, make you look insane, moody, unreliable, and “always having been difficult”. Maybe they’re proudly telling people that if you’d ever reach out again, they’d just ignore you. You went too far, now you can never go back, etc. As if you’d ever reach back out. It’s funny that their fantasy isn’t about you reaching out again and making up and being a happy family, but about hurting you back, and holding it against you, and it being their turn to refuse contact now. It’s never about love, it’s just about revenge. It’s about who gets to leave first. It’s less about having a good relationship, and more about not being seen as a bad parent by others. She has always hated when she lost control over the narrative. Wanting to sway me into cancelling therapy, screaming at me that I make her look bad, that all I speak about is just bullshit, and wanting to know exactly what I said in the sessions. I planned to cut her off when I moved out. That was 8 years ago. All this time, I wanted to make it work. We had better times that gave me hope. I was scared of having no family anymore, and I felt guilty and sad imagining my mother no longer having her child. I was scared of the harassment and abuse it could cause. I couldn’t go through with it, I always delayed it. I empathized more with her than myself, and put her needs over mine. I tried to mold myself into something she could accept and could always feel her disappointment. I had to keep my own wedding from her so she wouldn’t show up or guilt me into inviting her. Each meeting felt like we were two strangers on a theatre stage, acting out our roles, with zero chemistry or acting skills. It all left me drained and shamed. Ashamed, too, when she told me really bad things, like the fact that she is yet again being the affair of a married man. But it’s over now. I can finally move on. I know I tried. I gave it enough time and chances. Now I have to be comfortable being the villain, the bad daughter, being badmouthed, and being shamed by people who have a great relationship with their parents because “ You can’t do that to your parents! ” Too bad they were never there to step in and say “ You can’t do that to your child! ” Reply via email Published 21 Mar, 2026

0 views

bye bye RTMP

In May 2010 we merged support for the RTMP protocol suite into curl, in our desire to support the world’s internet transfer protocols. The protocol is an example of the spirit of an earlier web: back when we still thought we would have different transfer protocols for different purposes. Before HTTP(S) truly became the one protocol that rules them all. RTMP was done by Adobe, used by Flash applications etc. Remember those? RTMP is an ugly proprietary protocol that simply was never used much in Open Source. The common Open Source implementation of this protocol is done in the rtmpdump project . In that project they produce a library, librtmp , which curl has been using all these years to handle the actual binary bits over the wire. Build curl to use librtmp and it can transfer RTMP:// URLs for you. In our constant pursuit to improve curl, to find spots that are badly tested and to identify areas that could be weak from a security and functionality stand-point, our support of RTMP was singled out. Here I would like to stress that I’m not suggesting that this is the only area in need of attention or improvement, but this was one of them. As I looked into the RTMP situation I realized that we had no (zero!) tests of our own that actually verify RTMP with curl. It could thus easily break when we refactor things. Something we do quite regularly. I mean refactor (but also breaking things). I then took a look upstream into the librtmp code and associated project to investigate what exactly we are leaning on here. What we implicitly tell our users they can use. I quickly discovered that the librtmp project does not have a single test either. They don’t even do releases since many years back, which means that most Linux distros have packaged up their code straight from their repositories. (The project insists that there is nothing to release, which seems contradictory.) Is there perhaps any librtmp tests perhaps in the pipe? There had not been a single commit done in the project within the last twelve months and when I asked one of their leading team members about the situation, I was made clear to me that there is no tests in the pipe for the foreseeable future either. In November 2025 I explicitly asked for RTMP users on the curl-library mailing list, and one person spoke up who uses it for testing. In the 2025 user survey, 2.2% of the respondents said they had used RTMP within the last year. The combination of few users and untested code is a recipe for pending removal from curl unless someone steps up and improves the situation. We therefor announced that we would remove RTMP support six months into the future unless someone cried out and stepped up to improve the RTMP situation. We repeated this we-are-doing-to-drop-RTMP message in every release note and release video done since then, to make sure we do our best to reach out to anyone actually still using RTMP and caring about it. If anyone would come out of the shadows now and beg for its return, we can always discuss it – but that will of course require work and adding test cases before it would be considered. Can we remove support for a protocol and still claim API and ABI backwards compatibility with a clean conscience? This is the first time in modern days we remove support for a URL scheme and we do this without bumping the SONAME. We do not consider this an incompatibility primarily because no one will notice . It is only a break if it actually breaks something. (RTMP in curl actually could be done using six separate URL schemes, all of which are no longer supported: rtmp rtmpe rtmps, rtmpt rtmpte rtmpts.) The offical number of URL schemes supported by curl is now down to 27: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. The commit that actually removed RTMP support has been merged. We had the protocol supported for almost sixteen years. The first curl release without RTMP support will be 8.20.0 planned to ship on April 29, 2026

0 views

Solod: Go can be a better C

I'm working on a new programming language named Solod ( So ). It's a strict subset of Go that translates to C, without hidden memory allocations and with source-level interop. Highlights: So supports structs, methods, interfaces, slices, multiple returns, and defer. To keep things simple, there are no channels, goroutines, closures, or generics. So is for systems programming in C, but with Go's syntax, type safety, and tooling. Hello world • Language tour • Compatibility • Design decisions • FAQ • Final thoughts This Go code in a file : Translates to a header file : Plus an implementation file : In terms of features, So is an intersection between Go and C, making it one of the simplest C-like languages out there — on par with Hare. And since So is a strict subset of Go, you already know it if you know Go. It's pretty handy if you don't want to learn another syntax. Let's briefly go over the language features and see how they translate to C. Variables • Strings • Arrays • Slices • Maps • If/else and for • Functions • Multiple returns • Structs • Methods • Interfaces • Enums • Errors • Defer • C interop • Packages So supports basic Go types and variable declarations: is translated to ( ), to ( ), and to ( ). is not treated as an interface. Instead, it's translated to . This makes handling pointers much easier and removes the need for . is translated to (for pointer types). Strings are represented as type in C: All standard string operations are supported, including indexing, slicing, and iterating with a for-range loop. Converting a string to a byte slice and back is a zero-copy operation: Converting a string to a rune slice and back allocates on the stack with : There's a stdlib package for heap-allocated strings and various string operations. Arrays are represented as plain C arrays ( ): on arrays is emitted as compile-time constant. Slicing an array produces a . Slices are represented as type in C: All standard slice operations are supported, including indexing, slicing, and iterating with a for-range loop. As in Go, a slice is a value type. Unlike in Go, a nil slice and an empty slice are the same thing: allocates a fixed amount of memory on the stack ( ). only works up to the initial capacity and panics if it's exceeded. There's no automatic reallocation; use the stdlib package for heap allocation and dynamic arrays. Maps are fixed-size and stack-allocated, backed by parallel key/value arrays with linear search. They are pointer-based reference types, represented as in C. No delete, no resize. Only use maps when you have a small, fixed number of key-value pairs. For anything else, use heap-allocated maps from the package (planned). Most of the standard map operations are supported, including getting/setting values and iterating with a for-range loop: As in Go, a map is a pointer type. A map emits as in C. If-else and for come in all shapes and sizes, just like in Go. Standard if-else with chaining: Init statement (scoped to the if block): Traditional for loop: While-style loop: Range over an integer: Regular functions translate to C naturally: Named function types become typedefs: Exported functions (capitalized) become public C symbols prefixed with the package name ( ). Unexported functions are . Variadic functions use the standard syntax and translate to passing a slice: Function literals (anonymous functions and closures) are not supported. So supports two-value multiple returns in two patterns: and . Both cases translate to C type: Named return values are not supported. Structs translate to C naturally: works with types and values: Methods are defined on struct types with pointer or value receivers: Pointer receivers pass in C and cast to the struct pointer. Value receivers pass the struct by value, so modifications operate on a copy: Calling methods on values and pointers emits pointers or values as necessary: Methods on named primitive types are also supported. Interfaces in So are like Go interfaces, but they don't include runtime type information. Interface declarations list the required methods: In C, an interface is a struct with a pointer and function pointers for each method (less efficient than using a static method table, but simpler; this might change in the future): Just as in Go, a concrete type implements an interface by providing the necessary methods: Passing a concrete type to functions that accept interfaces: Type assertion works for concrete types ( ), but not for interfaces ( ). Type switch is not supported. Empty interfaces ( and ) are translated to . So supports typed constant groups as enums: Each constant is emitted as a C : is supported for integer-typed constants: Iota values are evaluated at compile time and translated to integer literals: Errors use the type (a pointer): So only supports sentinel errors, which are defined at the package level using (implemented as compiler built-in): Errors are compared using . This is an O(1) operation (compares pointers, not strings): Dynamic errors ( ), local error variables ( inside functions), and error wrapping are not supported. schedules a function or method call to run at the end of the enclosing scope. The scope can be either a function (as in Go): Or a bare block (unlike Go): Deferred calls are emitted inline (before returns, panics, and scope end) in LIFO order: Defer is not supported inside other scopes like or . Include a C header file with : Declare an external C type (excluded from emission) with : Declare an external C function (no body or ): When calling extern functions, and arguments are automatically decayed to their C equivalents: string literals become raw C strings ( ), string values become , and slices become raw pointers. This makes interop cleaner: The decay behavior can be turned off with the flag: The package includes helpers for converting C pointers back to So string and slice types. The package is also available and is implemented as compiler built-ins. Each Go package is translated into a single + pair, regardless of how many files it contains. Multiple files in the same package are merged into one file, separated by comments. Exported symbols (capitalized names) are prefixed with the package name: Unexported symbols (lowercase names) keep their original names and are marked : Exported symbols are declared in the file (with for variables). Unexported symbols only appear in the file. Importing a So package translates to a C : Calling imported symbols uses the package prefix: That's it for the language tour! So generates C11 code that relies on several GCC/Clang extensions: You can use GCC, Clang, or to compile the transpiled C code. MSVC is not supported. Supported operating systems: Linux, macOS, and Windows (partial support). So is highly opinionated. Simplicity is key . Fewer features are always better. Every new feature is strongly discouraged by default and should be added only if there are very convincing real-world use cases to support it. This applies to the standard library too — So tries to export as little of Go's stdlib API as possible while still remaining highly useful for real-world use cases. No heap allocations are allowed in language built-ins (like maps, slices, new, or append). Heap allocations are allowed in the standard library, but they must clearly state when an allocation happens and who owns the allocated data. Fast and easy C interop . Even though So uses Go syntax, it's basically C with its own standard library. Calling C from So, and So from C, should always be simple to write and run efficiently. The So standard library (translated to C) should be easy to add to any C project. Readability . There are several languages that claim they can transpile to readable C code. Unfortunately, the C code they generate is usually unreadable or barely readable at best. So isn't perfect in this area either (though it's arguably better than others), but it aims to produce C code that's as readable as possible. Go compatibility . So code is valid Go code. No exceptions. Raw performance . You can definitely write C code by hand that runs faster than code produced by So. Also, some features in So, like interfaces, are currently implemented in a way that's not very efficient, mainly to keep things simple. Hiding C entirely . So is a cleaner way to write C, not a replacement for it. You should know C to use So effectively. Go feature parity . Less is more. Iterators aren't coming, and neither are generic methods. I have heard these several times, so it's worth answering. Why not Rust/Zig/Odin/other language? Because I like C and Go. Why not TinyGo? TinyGo is lightweight, but it still has a garbage collector, a runtime, and aims to support all Go features. What I'm after is something even simpler, with no runtime at all, source-level C interop, and eventually, Go's standard library ported to plain C so it can be used in regular C projects. How does So handle memory? Everything is stack-allocated by default. There's no garbage collector or reference counting. The standard library provides explicit heap allocation in the package when you need it. Is it safe? So itself has few safeguards other than the default Go type checking. It will panic on out-of-bounds array access, but it won't stop you from returning a dangling pointer or forgetting to free allocated memory. Most memory-related problems can be caught with AddressSanitizer in modern compilers, so I recommend enabling it during development by adding to your . Can I use So code from C (and vice versa)? Yes. So compiles to plain C, therefore calling So from C is just calling C from C. Calling C from So is equally straightforward. Can I compile existing Go packages with So? Not really. Go uses automatic memory management, while So uses manual memory management. So also supports far fewer features than Go. Neither Go's standard library nor third-party packages will work with So without changes. How stable is this? Not for production at the moment. Where's the standard library? There is a growing set of high-level packages ( , , , ...). There are also low-level packages that wrap the libc API ( , , , ...). Check the links below for more details. Even though So isn't ready for production yet, I encourage you to try it out on a hobby project or just keep an eye on it if you like the concept. Further reading: Go in, C out. You write regular Go code and get readable C11 as output. Zero runtime. No garbage collection, no reference counting, no hidden allocations. Everything is stack-allocated by default. Heap is opt-in through the standard library. Native C interop. Call C from So and So from C — no CGO, no overhead. Go tooling works out of the box — syntax highlighting, LSP, linting and "go test". Binary literals ( ) in generated code. Statement expressions ( ) in macros. for package-level initialization. for local type inference in generated code. for type inference in generic macros. for and other dynamic stack allocations. Installation and usage So by example Language description Stdlib description Source code

0 views

My 2-step process for AI-free blogging

Following the 7-step approach and the 1-step approach , and also channelling the spirit of the longstanding tradition of learning how to draw owls on the internet : Thank you for keeping RSS alive. You're awesome. Email me :: Sign my guestbook :: Support for 1$/month :: See my generous supporters :: Subscribe to People and Blogs Think about a subject and then start typing Type the rest of the fucking post and then hit publish

0 views
Ankur Sethi Yesterday

Waiting is fun

I enjoy waiting. I enjoy waiting at the doctor’s office, at the dentist’s, at the hairdresser’s. I enjoy waiting in queue for my airplane to board, and I enjoy sitting in airplanes on long flights where I have nothing to do and nowhere to go. I enjoy long drives across the city. I even enjoy being stuck in traffic. I enjoy all these moments of waiting for something to happen. Yes, they rob me of my agency to do the things I want or need to do, but they are enjoyable for that very reason. When I’m waiting for something to happen, that time is already spoken for. It’s earmarked for sitting in the doctor’s office, or in an airplane, or for the long drive to a friend’s place. I’ve scheduled nothing “productive” in that time, because it’s not possible to get anything useful done during that time. It’s dead time. It’s time where I’m not eating or sleeping or watching TV or working. Where I’m not pressured to be productive, because there’s no way to get anything useful done while I’m in a waiting room and the doctor’s assistant is interrupting me over and over again. And so I slip into a state of simply being . Of observing the people and events around me without feeling a pressing need to do anything about them. It’s when I notice all the little things people do. It’s when I can laugh at and fall in love with our collective humanity. Sometimes I judge people—for wearing Crocs, watching reels on their phones too loudly. Sometimes I notice heartfelt moments—a kid reaching for their parent’s hand, somebody getting a glass of water for their partner, somebody else leaning their head on their parent’s shoulder. I overhear conversations and shelve them away to recount to my friends later. I notice weird labels on machinery, funny signs, wildlife, people falling asleep in chairs, spelling mistakes on forms. But this isn’t just the time for me to observe the world passively. This is also a time to think. I often get lost in reverie while I’m at the dentist’s, thinking about somebody I love, writing projects I’m working on, programming problems I’m trying to solve. Sometimes I get so lost it takes me a few minutes to come back to reality when I’m finally called inside the doctor’s office. This is also a time to read. It’s my second favorite things to do on flights (my favorite is sleeping). Reading is an activity that, for me, is uniquely resilient to constant interruption. I can read a few paragraphs, attend to something else, then come back and continue where I left off. I can’t do that when I’m writing code or working on a blog post. I can’t even do that when I’m playing a video game. Reading is woven so deep into my life that dipping in and out of it doesn’t take much cognitive effort, nor does it bother me that much. In these states of waiting—I’m really trying not to use the word “liminal” in this blog post, I hate how it feels on my tongue—I often come up with new ideas, make new connections, plan for the future, solve problems that had plagued me for weeks. If I allow my brain to roll along with whatever thought flits into it, just maintaining a soft focus on it without trying to guide it into any specific direction, some strange alchemy happens. I think thoughts I’d never thought I could have thunked. When the waiting finally ends, it feels like the end of playtime. Like my grandpa is standing in the verandah, yelling at me to come back indoors from the park because it’s 7pm. It’s time to say goodbye to all my friends, wipe the mud and grass and bugs off my clothes, wash my feet, and go back indoors. It’s time for homework, preparing for the upcoming school day, brushing my teeth, and going to bed. All that is to say that I like being bored. I like waiting. As an adult, it’s one of the few times I allow myself to simply exist without feeling the pressure to do something “useful”.

0 views
Jason Fried Yesterday

The bespoke software revolution? I'm not buying it.

A bespoke software revolution? I don't buy it. It'll exist. It already exists. Small consultants and big consulting firms have made custom software for years. It almost always sucks. It’s bloated, confusing, and because the client pays, it’s built in all the wrong ways. Who’s excited about bespoke software? Software makers! Of course they're excited about building bespoke software — that's what they do. X is full of them. Your feed is full of people who love making software talking about making software. Of course they’re excited about the revolution. Echo, echo, echo... Most people don’t like computers. Nobody in tech wants to say that out loud. People tolerate computers. They use them because they have to. Given the choice, most would rather not think about them at all. So when someone suggests that AI means everyone will build their own custom tools, ask who "everyone" is. The three-person accounting firm drowning in client paperwork? They want the paperwork gone, not a new system to maintain. The regional logistics company with 40 trucks? They want the routes optimized, not Joe spouting off about this new system he’s been messing around with. The law firm billing 70-hour weeks? They want leverage on their time, not a software project to design. They don’t hate technology. But building and maintaining their own critical systems isn’t their wheelhouse, regardless of how much faster and easier it’s become. It's another job on top of the job. Will these people use AI? Absolutely, for all sorts of things. Will some outliers go deep and build real custom systems? Sure,  but they're almost always people who already had some pull toward software. The curiosity was already there. They were dabblers before. Giving everyone access to software building tools doesn't mean everyone becomes a builder. A powerful excavator doesn't turn a homeowner into a contractor. Most people just want the hole dug. They don’t want the responsibility either. -Jason

0 views
Jim Nielsen Yesterday

Re: People Are Not Friction

Dave Rupert puts words to the feeling in the air: the unspoken promise of AI is that you can automate away all the tasks and people who stand in your way. Sometimes I feel like there’s a palpable tension in the air as if we’re waiting to see whether AI will replace designers or engineers first. Designers empowered by AI might feel those pesky nay-saying, opinionated engineers aren’t needed anymore. Engineers empowered with AI might feel like AI creates designs that are good enough for most situations. Backend engineers feel like frontend engineering is a solved problem. Frontend engineers know scaffolding a CRUD app or an entire backend API is simple fodder for the agent. Meanwhile, management cackles in their leather chairs saying “Let them fight…” It reminds me of something Paul Ford said : The most brutal fact of life is that the discipline you love and care for is utterly irrelevant without the other disciplines that you tend to despise. Ah yes, that age-old mindset where you believe your discipline is the only one that really matters. Paradoxically, the promise of AI to every discipline is that it will help bypass the tedious-but-barely-necessary tasks (and people) of the other pesky disciplines. AI whispers in our ears: “everyone else’s job is easy except yours” . But people matter. They always have. Interacting with each other is the whole point! I look forward to a future where, hopefully, decision makers realize: “Shit! The best products come from teams of people across various disciplines who know how to work with each other, instead of trying to obviate each other.” Reply via: Email · Mastodon · Bluesky

0 views
Weakty Yesterday

Pinned

Back in March, I found this book at the back of my bookshelf. I don't know how it got there. I didn't remember ever buying it, much less reading it. It had the most ornate cover, as if someone had done an oil painting on an old hard-cover book. In fact, that seemed to be what it was exactly. Just like an oil painting, it had bumps and ridges, and if I had the heart to do it, I probably could have picked at it and flicked little chips of colour off with my fingers. The cover depicted several different images, but was sufficiently abstract to make me doubt my interpretation. It reminded me of a smouldering firepit set against a twisting whirlwind of leaves and strange debris: splinters of wood, the bits of plastic that connect 6-packs, old shoelaces, chunks of a gilded picture frame, and even something that looked like the severed legs of some poor creature. If you saw it, you’d probably see something else. I spent a fair bit of time staring at that cover. With the book splayed out it made for a beautiful but disturbing landscape. It was actually a few days before I even looked at the pages, I was so taken with the cover. When I finally got around to looking inside , I was surprised to find that the pages were blank. I flipped through them a few times, incredulous. My first thought was, this is a journal, or a sketchbook . But it wasn't. The book had an ISBN number, a bar code, and a bunch of information on the inside page. On the other side of the cover was the following: Of course, there were a few other things on the page. But the thing that shocked me, what made my stomach throw itself down into the basement of my body, was the line Thank you, Acton . It really struck me. Because my name is Acton. I've never met another Acton. What can I tell you about my name? It’s uncommon. It’s usually the first on any list of names. What else? People have a hard time making fun of it. Your standard school-yard bully wasn’t clever enough to come up with a quip for Acton . So, I was surprised to see my name, being thanked from this very personal, empty book. And as you might guess, my next move was to go over to the computer and look this thing up. I searched for the book's title online and plunged into reading all about it. Here's what I learned: That was about it. I found the regular stuff, you know, people sharing their reviews and ratings and whatnot. But here's what was odd. The photos I saw of the book's cover looked different than the one I had before me. And of course, the pages of mine were blank. I re-checked the cover of the book to make sure, yet again, that it wasn't just some kind of wrapper around another book. It wasn't. It was a hardcover book that someone had painted . I ran my fingers over the paint. It was paint, no doubt about it. And open the cover, and there was that first page with my name staring back at me. But I'm rambling at this point. That was back in March. Let’s fast-forward a few weeks to when the book started to talk to me. Things got weird in early April. I had the book open on my desk. I wasn't sure why I opened it. I think I had been admiring the cover in the morning sunlight coming through the wide window above my desk. When I opened the book, the pages smelled of a newness I hadn't noticed before: starchy and pleasingly rough to the touch, like the high-quality pages of paper in an artist's sketchbook. It seemed to hold the promise of possibility. I felt compelled to take a photo of the book. I reached into my pocket and pulled out my phone. Then, with the blank pages before me, in a rush, the book slurped up my phone. It slurped it right out of my hands and collected it onto the first empty page. Don't misunderstand me—this book very literally liquefied my phone, sucking it up and rearranging its physical form into a two-dimensional representation of my phone—right down to the small crack in the bottom-right corner. I stared at the miniature picture on the page: it was a rather painterly depiction, not unlike the cover of the book. I spent some time admiring the rendering. Entranced, I almost moved to take a photo of it but, of course, my phone was gone. That's when things got interesting. It was hard to operate without my phone. I knew I was addicted to it, sure, but I didn't realize how dependent I was on it. It immediately caused a fuss for my job. I worked part-time for a distress hotline for teenagers who are in a bad way. Employees of the hotline have a special application on their phone ensuring the calls can be encrypted and recorded safely while retaining anonymity. So, when I didn't "show-up" online for my job that day not only did I likely miss showing up for people who needed help, but I wasn't going to get my measly pay for the shift. I felt worse about not being there for the teens, of course. I had enough money to get by for the immediate future. But the thought of some youths calling the hotline and being on hold when I could have been there to answer made me feel terrible. But not terrible enough to tear myself away from the strange situation I found myself in. It was through the blank pages that Myriam was able to reach me. It happened a few days after my phone had been slurped up into a page of the book. That morning, I came back to the book at my desk with my morning tea in hand. I sat down, and stared once more at the painted cover, before slowly opening it to the page with the little image of my phone in the corner. Slowly, words began to appear on the left page of the book, beautifully typeset, as if punched in by a typewriter, one letter at a time. I knew in an instant that it was Myriam. In my shock of seeing this happen for the first time, I could barely register that as her writing got to the end of the page, the whole thing cleared and started again. I don't remember the exact words of our first conversation, but I think it went something like this: Then the words began to disappear. I grabbed a scrap of paper and wrote down Hoke Scripter and Able-Archive Pigmented Blue Ink . And then the words were gone. Now I had something else to do. A week passed before I found the ink. Right after I got that message from Myriam, I went online and looked up Able-Archive Pigmented Blue . I wasn't surprised to find that the ink was no longer in production. It would be too easy to click "Add to cart" on a bottle of ink, and wait a few days for it to show up at my door. Instead, I found myself on forums for pen-and-ink fanatics, reading, reading, reading about this ink. Often, I saw that people had inherited a bottle from an older relative (along with some old, fancy pens to boot). Other people wrote posts online to laud this ink as a workhorse ink and that not many people made them like this anymore . I found myself enjoying going through these posts. After a day or two of looking, I found a post of someone selling a bottle of Able-Archive Pigmented Blue . They were across the country but it seemed they would ship it my way. I sent them a direct message and inquired about purchasing the ink: And that was it. Soon I would have some Able-Archival Pigmented Blue ink, along with its contractual-binding-powers. Whatever that meant. Waiting for the ink made for a strange week. I had to pause work entirely. After missing my first shift, I sent an e-mail to my coordinator letting them know I would be taking some time off. I didn't tell them the part about my phone getting sucked into a book, of course. That would be too weird. Instead, I told them I needed to take a break from work—and in this line of work they get it. So I sent off that e-mail, apologizing again for the shift I missed, and saying I would reach out when I was ready to return to work. My schedule was full of empty slots. I almost felt like I had just finished school and was at the beginning of summer vacation. I had all the time in the world to hunt down stationery and whatever other obscure things I felt like searching for. Next up, of course, was a Hoke Scripter — the pen Myriam had requested I use. This turned out to be no trouble at all. There are a few stationary shops in town. I went out to three before I was able to track down the Hoke Scripter over at Infinite Inkwell . I had never been in before. The shop was basically a large stone room. Along the rounded walls were recessed cubbies of various sizes and shapes, holding all kinds of objects. There was one portion of the wall that held rows and rows of inks, while others had glass drawers that pulled out of the cubbies, displaying pens, pencils and other writing implements of all kinds. In the center of the room was a large round table where you could sit, perhaps for testing pens or paper. There was only one person at the table, hunched over. They had a huge stack of paper and they were furiously writing. After finishing a page they would, without looking, add it to the growing stack to their left before pulling a new page from a pile of crisp sheets to their right. I wasn’t sure if they were an employee, another customer, or something more random and bizarre. My staring was interrupted by a staff member, who offered me some assistance. They led me over to the cubbies with the glass drawers, specifically pointing out a row of pens in deep blue, green, and red hues. "These are the Hoke Scripters. They’ve got a classic appeal, perhaps you can see." "I do see a certain classic air to them," I agreed. "And what might you be looking for in a pen, may I ask?" "Oh well," I began, unsure what to say. "I’m looking for a pen that my grandmother mentioned she used to use in her youth. I think it was this one." I felt strange lying to the employee, who was just looking to help me. "Well, The Hoke Scripter is a model from Hoke that has existed for many years. It is likely that your grandmother could have used an earlier incarnation of one of these." "Cool," I said flatly. "Would you like to try it?" the staff asked. "Why not." I said, flatter than flat. Flatter than a pancake. Flat enough to write on. The staff member disappeared for a moment and reappeared with a tester Hoke Scripter. She passed me the pen. I held it in my hand, lifting and lowering it experimentally. It felt pretty sturdy. It certainly wasn’t cheap plastic. Too heavy, and too elegant for plastic. Aluminum? I would have to look it up later. The staff gestured for me to grab a seat at the large round table, to test the pen out. I joined the strange character, still writing furiously at the big table, and I did exactly that. I wrote a few lines. Then a few squiggles. What can I say? The Hoke Scripter moved like a pen does, leaving a trail of itself wherever my hand moved. I suppose I was perhaps expecting something more majestic from a pen with such a history. But there was nothing majestic about it. It was just a pen. It felt sturdy in my hands, and it did have a nice pattern on the barrel, and I supposed a person could customize it with whatever ink they liked. But what else was there to say? "What do you think?" The staff member reappeared after a few minutes of my scribbling and scratching with the pen. "Um, it’s nice." "The scripter can be a bit underwhelming, but there’s more to it than meets the eye. It’s not our most flashy or popular pen, but I think the people who come to buy this pen always have a certain, well, intentionality to them. Let me know if you need any other help or have any other questions." The staff member disappeared, leaving me to write some more. I didn’t spend much more time in the shop. I bought the pen, and it cost me a whopping $55. I could hardly believe it. That price included something called a converter which I was told I needed: it would hold the ink I wanted to use with the pen. I walked away from the shop to get into my car to go home. I grumbled under my breath. Oh, the intentionality of dropping $55 on a pen. The weekend arrived without much fanfare. I was feeling a bit naked and aimless. Without my phone, my fingers fidgeted with the accumulated bits and bobs of things around the kitchen counter and table: a magazine that had been sitting there for weeks, some dirty cutlery, a notepad from the dollar store, and a rubber band. I sat there, with the sun rising around me, spinning that rubber band about my index finger, waiting for life to wake up around me. Eventually, I got up and I poured some cereal into a bowl, made myself a coffee, and sat back down to eat. I grabbed a pen and flipped open the cheap notepad. One of the spiral ones that could fit in a shirt or pants pocket. It had already had a few pages ripped out of it. Then I remembered I had gotten it out when I had a few friends over to play cards last week. I briefly looked at the tally marks of our scores. I ripped out the page and noted that the tally marks had imprinted on the cheap paper below. I turned to my cereal. If I left it any longer it would get soggy. What would I do with my day? It would be another few days before the ink would arrive, and this strange episode in my life was on hiatus until it appeared. I poured myself another cup of coffee and threw myself down on the couch. I stared into the old fireplace in the corner of the room, long since used. Outside, cars were idling in the street, and traffic was already picking up. I could tell by the exhaust rising up to the window. The exhaust of a home fireplace had been replaced with the exhaust of cars. I moved closer to the window and looked at the traffic. They were stuck, too, waiting in line. All of us waiting for some kind of ink, something permanent to arrive. I stood there and took a sip of my coffee. Just watching. I didn’t want to open the book. If I did, there was a chance that Myriam would speak to me again. Perhaps I should say she would write to me again. And if I couldn’t write back without the correct ink, she might lose interest. Perhaps she only had so much strength with which to communicate with the outside world. I figured that if I didn’t open the book, she would stay in some kind of stasis; her life frozen in the permanency of the page. In that sense, I supposed I had time. I sighed, finished my breakfast and got up. I wasn’t going to get anywhere sitting around thinking. My hands reached for my phone, only to find it missing from my pocket for the fiftieth time today. I thought about e-mailing a friend and seeing if they wanted to get together over a coffee, or maybe go for a drink later tonight. I popped open my computer, opened my e-mail and stared at the empty draft. I started to write without addressing the message to anyone yet. I looked at the "To" field of the e-mail. I clicked the "plus" button and a pop-up appeared with a list of some of my most frequent e-mail recipients. I started adding all the people I thought might reach out. Before long I had sent the e-mail to some fourteen people. Some of them I had spoken with as recently as last week and some I had not seen in years. Then, I moved all the e-mail addresses into the BCC field so that the recipients wouldn’t know who else had been e-mailed. That’s the decent way to do it, in case you were wondering how e-mail works. I hit Send , shut the laptop, and started cleaning up. I decided that I should go for a walk. It was still early, and there wouldn’t be many people out. Never mind that it was the dead of winter. I watched the cars on the road from my apartment. They always seemed to be perpetually lined up, exhaust rising into my view. What a view. I always go back and forth in my mind whether I should have taken the apartment at the top of the building. When I moved into this place it was either this, the second floor where I am now, or the top floor. All the units on the first and third floor had been occupied. I eventually chose the second floor because I thought I wouldn’t want to move everything up four floors (there’s no elevator). But from here, I was a bit too close to the action. After having lived here for a year or so, I think being on the fourth floor would have been better. A bit more removed from the commotion, the exhaust, the closeness to the ground. Besides, I figure I could use the exercise of an extra two flights of stairs each day. I pulled on my hoodie and tossed a thin jacket over top, shoved on my boots and stepped into the hall. It would only be a short walk, so I wouldn’t need any more layers. I didn’t even have my gloves. Outside, I stepped between the idling cars with their anonymous drivers, and took the back alley behind Jason’s Grocer out toward Delmont Ave. It was still early and the alley was quiet, as I expected. I passed a few piles of garbage outside the backs of the commercial buildings and kept walking. The alley narrowed past the point cars could reach and I kept walking. I took a left at Montrain and walked the ten minutes to Gaston park. A few more minutes of walking, past the fountains, shut off for the winter, until I was on one of the trails. Despite its confusing mess of criss-crossing trails, it made for a great escape from the city. I walked through the park, listening to my feet occasionally deviate from their regular cadence, kicking and tripping over bits and pieces of trail. A few runners passed, and even one cross-country skiier, although it seemed the snow was a bit thin for it. All these people had headphones in, plugged into a world of their devising. I had nothing to listen to but the sounds of crunching snow, birds in the barren trees, and the far off sounds of cars starting and stopping and occasional honking. I reached the end of the trail and then turned around. I was growing restless and feeling disconnected. I had seen people IRL, sure, but I could feel myself growing increasingly uneasy. I knew this was likely due in part, if not entirely, to my phone being sucked into a book. I knew this because my hands still kept patting at my pants or jacket pocket, thinking my phone was there, within reach and ready to soothe whatever restless thought came my way. I walked back home in a funk. I had not anticipated that I would feel this sort of withdrawal. When my phone had been liquefied and sucked into the page of that book, well, you could say I was somewhere between amused and bemused. But now I was starting to feel agitated. I took a few deep breaths and tried to tune into the sounds of the world again, but, instead, my ears just pounded as if they were trying to tell me to plug something into them, shove anything in: a podcast, some music, anything but this overly-present, disgusting excuse-for-nature around me. I picked up my pace to a point where I was almost running. I exited the trail where I came in. There were more people now: some of them sledding down the large hill facing east, others with their dogs, families with kids running after each other. I walked a few more paces and then looked back at the entrance of the trail. It looked light and entreating. I found a bench to sit down on and looked over at the people in the park. I was sweating underneath my two layers. The sounds of the children laughing ricocheted through the air and slammed into my eardrums. Cars passed by with a roar I had hardly noticed before. I put my face in my hands and pulled at my skin, as if I had a tight mask on that needed to come off. No such luck. Instead, I rested my chin in the palm of my hand, my elbow on my knee. I looked down at the ground before me. There were a few spare bits of garbage before me, empty weed canisters, a pop bottle that someone had peeled the label off of, and a large ribbon that looked like it belonged on a kite. I just didn’t care enough to pick up any of it and throw it away. Why should I, I thought miserably, when I felt like this? When I got home, I immediately threw open my computer to see if anyone had responded to my email. Not a word. I shut it in frustration, slid it away from me on the coffee table, and slumped back into the couch until I was lying horizontally. I didn’t know what time it was, but it was probably close to lunch. My phone was also my watch, like for most people. Without a clock in the room, I resigned myself to not knowing what time it was. I simply closed my eyes and lay there. I imagined the fumes of the cars, still lined up outside waiting for their turn to go somewhere , rising up and lulling me into a noxious sleep. And I did fall asleep. And I started to dream. In my dream, I was walking with someone. Not in the park this time, and not in the city either, really. It seemed we were walking across a bridge. It was foggy all around us. I could not tell if the bridge was going over water, or if it was going over a highway, or something else entirely. Looking over the edge of the bridge, it could be spanning a valley full of turtles, or lava, or a great black emptiness. I walked on, my eyes periodically darting to the side of the bridge, wondering at the mist below. All this time, my walking partner had been talking, but I had not listened to a single word. I turned to look at them. It was Myriam. I knew it immediately, there in the dream. She was exactly as I had pictured her, based on our first conversation. She had a sad wilt to her, like flowers left in the sun on a kitchen table too long. She looked back at me, perhaps wondering if I had heard anything I had said. I said I was sorry, but this didn’t seem to reset anything between us. "Will you ever respond to me? I’ve been wondering this every day, Acton." "I will, I’m just not ready yet," I replied. My words clumsily escaped from me. I watched them tumble over the bridge into the mass of fog. "I hope you do," she said. "You have the ink and the pen, right?" "I do." I said, which was strange because I knew the ink had not yet arrived. We walked in silence for a few minutes. The bridge was the only concrete thing within the fog and seemed to go on forever, disappearing into the misty distance. "I just need some time to get my thoughts into place," I said, facing forward so my words would come out right in front of us, and not get swept away into the abyss. Myriam’s hair was a steely gray, and she wore it loose, down to her shoulders. Every now and then, a muggy breeze would come and push it beyond her shoulders, like the swinging doors of a saloon in an old Western film. I imagined foggy, unseen spectres passing through the doors of her shoulders into a place I couldn’t go. "Whenever you’re ready," I heard her say. We walked some more. Then she began to shrink, and I began to grow. With each step, she got smaller and I got larger. Before long, I was trying to avoid crushing her with my feet. I couldn’t continue walking beside her and instead had to step out of the bridge and into the unknown fog. My first step came down unsteadily, but with such grandiosity that the fog cleared and was swept away, the weight of my footstep pushing it outward. All around my foot, I saw a verdant greenness, twisting vines, lush ferns, and tall grasses. All this I saw for only a moment before the fog returned to surround my foot. I grew larger still, and the following step with my left foot required straddling the bridge. By now, Myriam was long gone, and I was so tall I couldn’t see what the displaced fog would reveal. Despite not being able to see that far down, I knew that my next step would not yield the previously lush green ground; for a hundred, or maybe a thousand years had passed since my previous step, and things had surely changed for the worse. So I stopped in my tracks, afraid of advancing time any farther or growing any larger, of stomping out any other life in my next movements. I knew the next movements I would make would decide the fate of all of life. My next step would be like a thousand atom bombs, and there would be nothing left of this world. I took a step, and I was right. It all ended. And then I woke up. I sat up on the couch and groggily mused over my dream. It was starting to fade already. I didn’t feel like writing it down, but I tried to remain with the feeling of being a giant. Of a being so large that they can’t even see what their giant steps are obliterating, the world so far below them. I made myself a coffee and lay down on the couch, the cup just within my reach. Periodically, I pulled it to my face, and carefully sipped it from my lying down position. A most precarious way of drinking a coffee. I looked at my laptop on the couch. It was calling to me. A silent notification, ringing in my ears. I wanted to hear from someone. Anyone. I set my coffee on the table next to the couch and pulled it onto my lap and opened my e-mail client. Before me was a single unread message in my e-mail inbox: I looked at the e-mail. It took me a moment to register the name. Casey. Casey was a friend from high school. We hadn’t talked in quite some time. The last time we had gotten together, she and I had indeed gone for dinner. It had been a patio brunch in the middle of summer. I looked over the list of people I had sent my original e-mail to. Casey was my oldest friend among the list. The two of us had met in the school wrestling club, two odd ducks who had picked the wrong club to join. We had bonded over discussing mechanical magazines, web forums for Arkendo’s Binding , a game we both loved, and the fact that neither of us actually wanted to be in wrestling club. All this talking we did over the slam of teenage bodies against thinly padded mats. I can almost hear it now. I responded quickly, and effortlessly—the kind of correspondence that happens with people you really just click with. Short and sweet. Save the questions for when we get together. I snapped my laptop closed and thought about this making of plans without a phone. I wouldn’t be able to check in with her leading up to the dinner. I felt a sweet anticipation already growing in me. I got up and busied myself with making some lunch. I chewed my food, staring out the kitchen window. I tidied up. I started putting away dishes that had piled up over the previous few days when the buzzer rang for my apartment. I pressed the intercom and asked who it was. In response I simply heard a muted thump . My apartment not having a camera to watch approaching people, I had no choice but to go see what it was. I clomped down the stairs to the lobby to where people leave packages outside the rickety, old door that served as the gateway to the lobby. I poked my head out and felt a blast of cold wind and snow hit me right in the face. I looked down. There was a small package, clumsily wrapped. I picked it up. It didn’t weigh much. My name was on it. There was no return address, but beside a simple "from:" label I saw a familiar name: NibTuner79. The ink was here. I took the package inside and brought it up to my apartment. I clumsily picked away at several layers of clear tape with my fingernails before giving up and cutting open the brown parcel paper to reveal the ink. The inkwell was round with a square neck, ice blue. It was filled 3/4 full with the ink. I turned it in my hands, taking in its shape and the rich blue colour swirling with the movement of the inkwell. I stopped so that the label faced me: a simple white label with a black border and the serif text: Able-Archive Pigmented Blue. There was no logo, no insignia, no brand to speak of. For all I knew, NibTuner79 could have filled any old empty bottle of ink with some random, cheap blue ink. But it seemed unlikely. I wasn’t exactly a collector of these sorts of things, but as far as I could tell, honesty went fairly far in the world of nerds and gearheads. I chuckled to myself, because I felt quite honest thinking that. I was on my way to becoming one of them. I put the ink down on the desk next to Myriam's Codebreakers and the Hoke Scripter. I had all three. The trifecta. I could crack open the book and write something. I stared down at the book and its painted cover. To my right was a freshly inked pen. To my left, a quickly cooling cup of tea. I drummed my ink-stained fingers on my desk—I had quickly learned that filling a pen could be a very messy job. I wondered how staining archival ink was. I would find out soon enough, I supposed. I picked up the inked pen in my hand. Despite now having just a few millilitres of ink in it, it seemed to feel heavier. Potent. No longer an inert stick, but a poised snake. I could feel my hesitation mounting, but I knew it was time to act. I opened the book with the fingers that had remained unstained by the act of filling the pen. I flipped to the page where Myriam’s text had first appeared and where there was still the image of my phone on the page. I wrote underneath the depiction of my phone: I could feel myself running out of things to say. I looked down at the pen in my hand. I looked down at my writing. It was messy and seemed to switch between cursive and printing at random. I had hoped I would have come up with something more meaningful or interesting to say. I leaned back in my chair. I was uninteresting. I was offline. Were the two interchangeable for me? I was a spectator of myself, watching my events unfold in a terrible synchronicity that had me simultaneously bored and amused. Despite all the separation anxiety of being without my phone, of not working my regular shifts, of what felt like just wandering around aimlessly, I was becoming a subject of my own life. My old life, my digital life, was in the hands of Myriam, a woman, I presumed, in a book by an author named Solah J. Trek. I rotated and twirled the Hoke Scripter in my fingers and stared at my paragraph, re-reading it for the second time. As I read, the words began to disappear into the page. It seemed that as soon as I finished reading a sentence, one by one, the words of it would sink into the nothingness of the page. By the time I got to the end of my second paragraph it was all but gone. I stared in astonishment at the empty page. The painted image of my phone was still there in the corner. I shifted uneasily in my chair, breaking a silence that had settled in the room. Then, a voice appeared in my head, and I realized it was from myself reading words on the page—Myriam was responding. I pounded down the apartment stairs, my messenger bag banging against my back. Every moment an eternity . Every step, the thump of my bag against me—muffled and extinguished by the muted stairwell. I threw open the front door, nearly hitting another resident of the apartment on the way in. I took hardly any notice of them. I was back outside again. I was to meet Casey at 7pm at Deep Blue, a gastrobar about a fifteen minute walk from my apartment. On my wrist: an old watch I had found in my bedside table. In my bag: a strange book, slung on my back. I walked quickly, trying to make sense of things. After seeing Myriam’s message I had stared blankly at it, shut the book, and got up in a daze. At first I felt unsafe, the target of some kind of operation that was beyond my comprehension, beyond my plane of existence, even. The message in the book had disappeared within minutes, maybe seconds after my reading it, and had left me staring at an empty page. Somehow, Myriam had known about my rendezvous with Casey. At first, I was confounded. I walked and mulled. The questions in my mind turned over and over, scratching at an imagined blank page. I turned onto Range Ave and crossed over to the other side, stepping around parked cars and stopped at the curb. I stood on the cobblestone walk that marked the beginning of the old downtown. I studied my shoes against the unevenly placed stones. I stood hunched there, losing my gaze to the ground while the world spun around me. I wasn’t sure why I had stopped. It was as if I was frozen—I couldn’t move my body save for the clenching and unclenching of my hands. All the while that I stood like this, I felt an eerie sixth sense, as if a great wave was going to crash over me. I stood wanting to look back but resolving not to. Eventually, I broke free. I could move again. I didn’t look back. Everything clicked in that first footstep out of that immobile state. My questions answered: Myriam had read the message from Casey through my phone—my phone that was still somehow working in another ethereal realm. It was clear to me now. Myriam was reading my e-mails. She was in a real-time lock-step with me. She was stuck in her own eternity, watching the stream of data of my life move past her, watching and absorbing it as she liked. I continued down the cobblestone path at a reasonable rate, minding my step for the occasional uneven stone, until the sign of Deep Blue came into view. The downtown was bustling with people, despite the cold weather and snow. Half of them could well be tourists, periodically stopping to find their way with maps on their phones, or to send a message to someone out of view, out of picture, someone who might be at the other end of the world—and it seemed they had to do this in the middle of the sidewalk. I found myself grumbling. I had become moodier in the preceding days. I reached the door to Deep Blue and stopped, feeling an impulse to message Casey and say I had arrived. I couldn’t, of course. Instead, one of us would have to go into the restaurant and be there waiting for the other. We hadn’t agreed to stand outside and wait to go in together. But there I was, standing outside, surveying the landscape of downtown, searching for a familiar face in a crowd of strangers. I stood staring for a minute. I wanted to shake myself out of this slump I was sliding into. I hadn’t seen Casey in years and this wasn’t the disposition I wanted to show up with. I had nothing to prove to her, of course, but it would have been nice to let her know that I wasn’t losing my mind. Which I might have been. I headed into Deep Blue. "Acton!" I was stomping through Deep Blue when I heard my name called out. Casey’s voice pulled me out of the mud. You might even say my heart soared at the sound of her voice. That’s what the voice of an old friend can do to you. I had been in my own head too much—and it was only her voice cutting through the bog of my thoughts that made me realize it. I made my way to her table. She had gotten a small booth at the back of the restaurant. I looked at my watch. It was 7:02. The restaurant was bustling. She jumped up, arms outstretched for a hug as I approached. She was wearing a colourful knit sweater, loose and baggy. I sank into her arms and found myself breathing in deeply. In her arms, I felt something stirring in me. In a friend, even one you hadn’t seen in some time: support, meaning, connection, a feeling of being grounded. I could have stood in her arms, in the way of the staff and the customers in the middle of that restaurant for the rest of the night. Instead, I grew self-conscious that I would be the one holding on longer than her. I let go. I sat down, tossing my bag haphazardly (forgetting what was in it) into the corner of my side of the booth. As soon as I sat down we were immediately swarmed by the staff. We both held our tongues, not wishing to begin the business of our catching-up in the immediate presence of others. We put in an order for some appetizers. As promised, Casey put in an order for two drinks, the same for the both of us. Then, we were left to ourselves. I checked my watch again, expecting it to be 8pm already. It was 7:09. "This is a pleasant surprise," I found myself saying. Between us, there was a small center-piece with a lit candle. The flame of it danced under the whims of my opening remarks. "Agreed." Casey took a sip of her water and I watched her. "You’re the only person who e-mailed me back. I didn’t expect anything from anyone, I suppose, but I was surprised that you were up for it." "Why’s that?" "I don’t know, it’s been some time since we got together. People get in their head about that sort of thing," I said. "Which is funny, don’t you think? Maybe you were surprised I was interested, when most people would think old friends from the past make for awkward communications. But I’ve never really felt that way. People weave in and out of each others lives over the years. It’s normal. Something to be grateful for, really." "That’s insightful," I said, pausing to sip my water, "I suppose I’m also a little surprised—I would have thought that the people I had been messaging with over my phone just weeks ago would get back to me when I e-mailed them, but instead it was the opposite." "How many people did you send your message to?" "Thirteen or fourteen," I said. "E-mail is old, now. It’s a dumping ground." "I guess." "So the phone is gone. And it pushed you to reach out to some old friends." I tasted my drink, which had appeared moments ago. I had already forgotten what she had ordered. It definitely had some gin in it, but maybe some lemon and honey, too. "Gone…" I echoed back to her. "Yes, temporarily." "What do you mean?" She asked. "Well, it’s a bit of an odd story," I said. My eyes shot to my bag in the corner. Casey’s look followed my eyes to the bag, slumping in its seat of the booth. "This is a really good drink." I said. "Acton, quit being so vague. What happened to your phone? What’s in your bag?" This is what I liked about Casey. She was to the point, and she sometimes made herself laugh in that way. She wasn’t laughing now, though. "Well, my phone…" I said, trailing off again. How much did I actually want to share about this? I looked at my bag again and reached for it. "Well, it would be easier to just show you." Out of the corner of my eyes, I could see Casey watching me as I opened my messenger bag, and pulled out the book that had started all of this. "What’s that?" "Well, it’s supposed to be a novel, but look—" I opened the page to where the image of my phone resided and passed it over to her. "When I opened this book—" Casey received the book in her hands, when I realized what I had just done. I lurched across the table to take it back, but it was already too late. Myriam, the book, whatever it was in there, had slurped up Casey’s phone too. Before Casey could even cry out, her phone appeared next to mine in the corner of the page in the very same painterly style as mine. "Fuck." Casey looked up at me in disbelief, while simultaneously patting the table where her phone had been seconds ago. "It’s gone," I said flatly. "What the hell, Acton! What just happened?" "I’m sorry, I didn’t realize it was going to happen again. I—I was going to show you. Look—that’s my phone. It slurped up my phone." I paused, "And there’s yours," I pointed dumbly. "I can see that, Acton, now show me the trick to return them back!" "Ah-ha," I laughed weakly. "There isn’t one." Casey lifted herself out of her seat and looked around the restaurant wildly, as if she was expecting to see cameras from a reality TV show pop out of nowhere. She sat back down and took a deep breath, followed by a large gulp of her drink. "Explain yourself." I figured this was not going to turn out to be the dinner I had hoped for. Casey looked at me for a good minute before she spoke. I had just finished explaining everything: from the moment I had picked up the book to right before I had left my apartment after communicating with Myriam for the second time. I hadn’t told her about the dream I had had, though. "This is insane." "It is insane," I confirmed. Her eyes drilled into me. Mostly, she looked furious. But eventually, that fury gave way to an uneasy look. "So, if I were to take this book, walk over to that table over there," she nodded to her right, "and plop it in front of that bald dude, it would slurp up his phone." "I’m pretty sure," I said. "It has only happened twice, and there might be other conditions necessary for it to happen. Maybe the phone needs to be within a certain distance from the page, or maybe the person had to be holding the book open. I don’t know." "Well, I don’t know, either," Casey sounded exasperated. "But I’m really tempted to try." "He might not take it as well as you did," I said uneasily. I looked over at the guy Casey had gestured to. He didn’t look like the thumping type, but who knows, he could probably beat us to kingdom come. "This is fucked up. What about this bitch in the book?" "Hey, I don’t know that you need to call her a bitch." "She certainly seems like a manipulative bitch! She used you to steal all my information. By what you told me, right now she’s scanning all my messages, pictures, and e-mails." "She could be," I said, putting my head into my hands. "Sounds like a real bi–" "—Look, call her what you want," I said, cutting off Casey, "but I believe what she said about being stuck in the book." Casey picked up the book and nervously opened it, as if it might suck her entire self right into its empty pages. Hey, it might as well have. It turned out that the impossible was possible. Or maybe I should say, the very strange and unreal had been made real. "Solah J. Trek," Casey muttered. "That’s the author," I said, just catching Casey’s words. "I know," Casey said, her eyes widening in annoyance. "I’d look her up if I had my phone, " Casey said curtly. "Look—you can be mad about this all you want, but like it or not—huh," I paused. "What?" "I never looked up the author. And she told me to. 'Take it up with my author,' Myriam had said, or something like that. I never did. I must have been too shocked by what had happened." "Or were you too busy cooing over your new love Myriam, " Casey snapped at me. Underneath the anger I could see she was still able to tease me. Maybe she was feeling a bit better. I blushed, thinking about the dream I had in which I had walked, shoulders side by side, with Myriam—until I had grown too big, and her too small. "She’s too old for me," I muttered. "From 1955, by the looks of it," Casey said smartly, and snapped the book shut. She paused and looked at me again. I could see her fingers moving absently across the painted cover of the book. "Let’s go back to your place. You’re still on Hatchet Ave, yeah?" "Yeah." "Well, let’s go look her up. I’m not leaving until we get to the bottom of this. After all, I use my phone to unlock the door to my apartment." "You do?" "And guess what else," she said, tapping the table. "The bill?" "That’s right." "Well, I owed you a dinner anyway, didn’t I?" I asked, as I waved the waiter down to order. We trudged back through the snow to my place. With Casey there, there was none of that walking and stopping to feel like I was about to get hit by an invisible wave. Sure, I felt uneasy, but at least with Casey beside me I had someone to shoot the breeze with. We ended up catching up more on the walk home than we did over dinner. I was surprised she didn’t want to drill me with more questions about Myriam. I patted the book, tucked away in my messenger bag at my side as we walked. It was still there. My compulsive checking to make sure my phone was in my pocket had been replaced by something else. I learned plenty about Casey as we walked. In the years since we had last gotten together, she had gone through some life changes that made my life look as plain and untroubled as a bulletin board in an elementary school. Her Mom had died just months after we had last met up. She had had a terrible job during that time that had treated her like shit while her mother was in the hospital. I had only met her Mom twice—both times at school. I remember her watching in the bleachers at one of our painful intracity wrestling competitions. Her mom actually saw me and called me over to watch Casey wrestle in her first match in the girls tournament. I remember there weren’t many girls into wrestling and so there were only a few matches to get to the top of the ladder. Casey’s mom and I had talked about that a little. I hadn’t stayed to watch Casey’s match to the end. I had come up with some excuse about having to talk to my coach, or something, when really, I was avoiding having to be next to her if Casey lost the match. Something about that had been too painful to imagine, and so I politely excused myself after our brief conversation. With this memory before me, I felt ashamed of my behaviour, hearing that Casey’s mom had since died. I know neither of them would have held it against me, but when you find out someone’s gone, sometimes the first thing your mind does is think about the last dumb thing you did in front of them. It wasn’t just that Casey’s mom had died. She shared a little about trying out a secondary community college program that was a complete miss. Then she went on to say that her high school boyfriend had broken up with her while she was trying to make sense of all these huge life changes. I vaguely remembered the guy. He was one of the quiet, inconspicuous types in high school. I know the type because I had been the type. I probably still was. We walked and talked, though it was more me listening. I hesitate to say much about my life, because it didn’t feel like I had really had a life in comparison to what Casey had been through. On top of that, I was realizing that for me, what was almost a farcical experience of having my phone sucked up into a book, was probably not the same for this other person walking beside me. We stepped through the snow together abreast. I was half-listening now, because I was reminded of my dream where I walked beside Myriam. In it, I had seen myself grow bigger and bigger. But now, beside Casey, that was the last thing I felt. I felt like I wanted to shrink into non-existence with each step. It was with that sense of shame that we arrived at my apartment entry. By this time we had been walking in, what I hoped was, a comfortable silence. We walked up the stairs, gripping the railing: the apartment super still hadn’t set up any anti-slip devices for the winter, and the stairs were as slippery as wet marble (I assure you, there wasn’t a lick of marble anywhere in this dingy old apartment building). We entered my apartment and I put my bag on the kitchen table. I went to the fridge. "Tea? Beer?" "A beer would be great," said Casey’s voice from around the corner. I heard the distinct sounds of my messenger bag’s buckles unbuckling. I leaned around the corner: Casey throwing herself down on the couch with the book. I turned back to the fridge and grabbed the last two beers. I joined Casey on the couch, handing her one. "Thanks," she said absentmindedly. "I hope no one needed to get in touch with you tonight," I said glumly, looking over at the page with our phones on it. Casey was running her thumb over the images. "No, but we’ll solve this tonight." "How do you figure." "Well, you’re going to give me a pen, and I’m going to tear Myriam a new one." I shrugged. I got up and got the pen and the ink and showed them to Casey. She glared at them. "You spent how much on this hokum?" "Don’t worry about it," I said gruffly. I had spent over $50, was the answer, and I wasn’t working right now, thank you very much. Casey pulled the table in front of the couch closer and put the book, the ink, and the pen down in front of her. She took out the pen, and hovered it over the page. "Wait—what are you going to write?" "I don’t think you get to ask me that. Your little book here sucked up my phone without asking, and now I’m going to write. Either get out of the way, or watch quietly." I sighed. She had every right to say that. I inched closer to her on the couch. I could smell the pub on both of us. I watched as she wrote. Her handwriting was far nicer than mine. And that was what Casey wrote. We both sat back on the couch, as if we had done a workout. Then, the words began to slowly disappear in to the page as before. We watched, expectantly. We paused waiting for more words to appear but there were none. "The audacity!" Casey crowed. "This bitch barely acknowledged me!" "Wow," I said, dumbly. "Well, you better write something. At least she’ll talk to you ," Casey pushed the pen into my hands and I received it clumsily. I began to write. "I was thinking more, give us back our phones ," Casey said. My eyes bulged and I held my palms up defensively. "It’s fine it’s fine, she’s writing back," Casey said hurriedly. We both stared dumbly at this response, until it faded away into the page. "We are dealing with a very strange entity, here, Acton." "I know," I said. "What do we do?" "I don’t know." " Know , don’t know , whatever state we’re in, we can’t keep continuing like this. I think she’s on a mission to absorb more information—she probably wants us to expose this book to other people so that it sucks up their phones too." "I suppose," I said slowly. "We need to destroy it!" "Destroy it!" I gasped. "What about our phones?" I cried out feebly. "They’re gone, and everything in them. There’s no way she’s going to give it back," Casey snorted, eyeing the book. I grabbed at the book automatically and clasped it to my chest. "We can’t destroy it!" My heart was racing. I felt the invisible wave about to crash over me again. What had changed in me to make me this way? Why did I want to protect this book, protect Myriam? Casey wanted to destroy her. Burn the book, or rip it to shreds. But she was inside it. I knew I couldn’t let her do it. It was true that something had changed in me the moment Myriam had sucked up my phone. My life had slowed down considerably, but I also was seeing things differently. I looked at the world differently. Everyone around me appeared less real than Myriam! All of them were sucked into their phones, while mine had been sucked away. My relationships with the people of this world were hardly meaningful, I saw that now. They were facile and fragile things—like something a child had made with glue and popsicle sticks: sloppy, brittle, ready to break at a moment’s notice. I felt a warmth in my chest where the book was. Across from me, Casey appeared venemous, her face angular and snake-like—ready to strike. I inched back on the couch. "Acton," my name floated out of her mouth, wrapped in a warning tone. Her lips hardly seemed to move. She moved toward me slowly, her eyes locked on mine. I was stuck, caught in her gaze. She moved closer still, her upper body hovering over the couch where we sat. Then, she pounced. I couldn’t help but release the book: she pounced on me, not it . She struck me like a shot from a cannon and together we fell back into the couch. I heard the book fall from the couch to the floor with a muffled thump. My face was awash in her hair. Behind the smell of the pub was a fragrance from earlier in her day. She reached for the book. I writhed underneath her and rolled off the couch, hitting the floor—slap against the mats. I got up onto my hands and knees and grabbed for the book but she was already behind me. I knew I was done for. Wrestling between boys and girls in high school was forbidden, but it all came back to me the same—and evidently for Casey too. I felt her arm cross under my chin and her other arm snake through my legs. Click , went the padlock of her hands. She pulled me back and we both rolled backward. It was over before it started. "You still wrestle?" I gasped out. "No," she laughed, "but a champion doesn’t forget her moves." A champion doesn’t forget her moves. I had never actually watched Casey’s matches, that day I sat with her Mom. Now it was sounding like she had taken home the trophy. I lay there, pinned by her, her hair brushing into my face. She smelled nice. The promise of spring. She must have sensed that I was giving up whatever fight was in me because I felt her grip loosen. I relaxed into her body, my head unlocked and leaning back into her shoulder. "I thought you hated wrestling." "I did, sometimes," she said distantly. I couldn’t look at her face from where I lay. "Now are you going to stand in the way of burning this book or not?" "No," I sighed. "Get some kindling, then." I wandered through my apartment, grabbing a newspaper from my recycling. I had a wooden box that a few clementines had come in. I moved them to the fridge. I found some matches and brought some rubbing alcohol from the bathroom. I returned to Casey and picked the book off the floor. It felt heavier. I walked over to the fireplace and kneeled down. I looked back at Casey. She stared back at me. My fingers ran back and forth absentmindedly along the strange impasto cover. I turned back to the book, looked at it once more, and then ripped off the cover. I poured the alcohol on it, tossed it in the fireplace, and threw the small crate on top. I lit a match, stepped back, and threw it in. The alcohol burned off quickly with a whoof but the book still caught. It did not take long to burn. There was not much smoke, and what little there was sent some creature who had taken up residence in the chimney scuttling up and out into the night air. I returned to the couch and we watched the book burn until it was no more than a blackened crisp. Neither of us said anything. Finally, when it was over, Casey turned to me. "I still won’t be able to get into my apartment, at least until I can get ahold of the Super." "Right," I said tiredly, "take my bed. I’ll sleep on the couch." "Thanks," she patted me on the leg as she stood up. I remained on the couch to watch the last few embers in the fireplace. I listened as Casey roamed around my apartment, finding whatever she needed to get situated to sleep over. I pulled the couch blanket over me, a comfortable weariness settling over me. I lay there listening to the apartment and the neighbourhood. I imagined Casey pressed against me. She had pinned me fair and square, not that I had had much fight in me in the first place. It had all happened in a matter of seconds. In light of that, I felt a competitive spark growing within me. Something tonight had lit it, and I imagined it would grow just as the embers in the fireplace would diminish into nothing. I fell asleep hoping to dream about a bridge. The book was originally published in 1955 The author had written several books Myriam's Codebreakers was the last book that Solah J. Trek wrote; she died shortly after it was published A plot summary online told me the book was mostly a love story that involved a woman in a post-World-War-Two workplace early computers feature prominently in the book, specifically, ones that were developed based on the machines built and used for war-time decryption.

0 views
Kev Quirk Yesterday

Another ANOTHER New Lick of Paint

So it turns out I didn't like the mustard yellow and steel blue design that I created a couple weeks ago. It just didn't sit well with me, and if I look back over my design history the designs that have stuck over the years are invariably grey with a splash of colour. Problem was, I didn't really know how I was going to redesign the site. Then, one day, I was talking with Sven via email and I visited his blog (also running Pure Blog for the record 🎉), and I immediately knew that was the kind of design I was looking for. It's simplicity is just lovely, and so easy to read. So I set about making my own version of Sven's lovely design. I didn't want it to be exactly the same as his, but I also didn't think my design would turn out quite as close to his as it did - I suppose that goes to show how much I like his site. :-) I've spoken to Sven and he's good with me effectively copying his design. For posterity (as I'm likely to change it again in the future) here's what the design currently looks like: I'm still not 100% sold on the font (but it is growing on me), and I'm not sure about the yellow in the , but blue everywhere else. So I may change a couple of things subtly. Having said all that, overall I'm the happiest with the design I've been since moving to Pure Blog. Finally I'd like to thank Sven for allowing me to steal his wonderful design. What do you guys think? Leave a comment below, or reply by email. 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 days ago

2026.12: Please Listen to My Podcast

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 Sharp Tech video is on Questions about Anthropic vs. the U.S. Government. Everything I Didn’t Write . This was one of those weeks where far more happened than I could write about — and that’s partly my fault for taking a stand on bubbles ! To that end, I highly suggest this week’s episode of Sharp Tech , where we cover: OpenAI’s pivot to enterprise, and why AI might look like the PC in the 1980s Why I think that agents are not only real, but also the reason we are not in a bubble OpenClaw as evidence that my thesis that OpenAI and Anthropic are sustainably differentiated through their integration of harness and model is wrong Nvidia’s inference pivot, and why Nvidia is particularly concerned about a world dominated by OpenAI and Anthropic (and why Microsoft might be in trouble) And, for good measure, why I don’t mind Wisconsin winters I think that each of these points could be another Update, but also, I’m taking a few days off for vacation, so I hope you’ll listen to this episode in particular. — Ben Thompson What Jensen Huang Has In Common with Steve Jobs. I really enjoyed this week’s Dithering covering Nvidia’s announcements at GTC Monday , including a near-perfect inversion of what Jensen Huang was telling the world about Nvidia’s approach to inference workloads just one year ago. In their trademark 15-minute format, Ben explains how and why Nvidia’s inference messaging is now different ( see also : this week’s Stratechery Interview ), while Gruber draws on decades of Apple experience to note the similarities between Huang and Steve Jobs. It’s a great listen that renders legible an easily missed strategic inflection point at the most valuable company in the world .  — Andrew Sharp Trump’s Trip to Beijing, Delayed Indefinitely. As the war in Iran continues, this week’s Sharp China covered the news that President Trump will delay a trip to Beijing that had been scheduled to begin March 31st . Come to hear why both sides are likely relieved by the delay, and stay to hear about a softened Taiwan threat assessments from the U.S. intelligence community and a succession of PLA military scientists who are being purged for reasons that aren’t entirely clear. — AS Agents Over Bubbles — Agents are fundamentally changing the shape of demand for compute, both in terms of how they work and in terms of who will use them. They’re so compelling that I no longer believe we’re in a bubble. An Interview with Nvidia CEO Jensen Huang About Accelerated Computing — An interview with Nvidia CEO Jensen Huang about his GTC 2026 keynote, navigating China and DC, and remembering Nvidia’s true nature. Jensen Huang and Andy Grove, Groq LPUs and Vera CPUs, Hotel California — GTC 2026 marked an important inflection point for Nvidia, as the company is selling multiple architectures, instead of focusing on just one GPU. The motivation is serve all needs and keep all customers. What the NBA Could Be Getting from College Basketball — College basketball is fantastic, and the NBA should take advantage of its success by raising the age limit for the NBA Draft. LLM Paradigm Changes Jensen Huang’s Jobsian Keynote From Fiber to AI: A Laser Giant’s Rebirth Mexico City’s Sinking Lands The War in Iran and the Visit to Beijing; New DNI Assessments on Taiwan; Military Scientists Disappearing From Public View How to Miss a Free Throw, The Biggest Top 100 Disappointments, Expansion is Afoot (Again) How NOT to Miss a Free Throw, Generic Houston Rockets Slander, The Top 100 Pleasant Surprises OpenAI’s Enterprise Pivot, The Rise of Agents and Bubble Counterpoints, Nvidia Changes Its Inference Story

0 views