~hedy's blogroll - BlogFlock The blogroll listed on my website. https://home.hedy.dev/blogroll/ 2026-04-02T00:14:59.398Z BlogFlock Seirdy, erock, James' Coffee Blog, Manuel Moreale RSS Feed, Sloum, Protesilaos Stavrou: Master feed with all updates, Ploum.net, ~hedy, Baty.net Slash AI - Manuel Moreale RSS Feed https://manuelmoreale.com/@/page/e0ssfccsawcv1utc 2026-04-01T09:00:00.000Z <p>I’ve seen <code>/ai</code> <a href="https://www.bydamo.la/p/ai-manifesto">pages</a> popping up here and there on <a href="https://cassidoo.co/ai/">other people’s blogs</a>. The idea for these pages is, and I quote, «promote trust and transparency». Trust, in the context of 2026 internet—and society in general—is quite the complex topic. Dishing out trust willy-nilly is no longer a reasonable thing to do, and I also think we’re getting to the point where the “benefit of the doubt” is no longer worth considering.</p> <p>If I were to write on this /ai page that I don’t let these tools touch anything I post on this blog, would you trust me? Would that change the perception you have of me? And if you did trust me, why are you doing it? After all, you have no way to actually know for sure. But that is precisely what trust is, isn’t it? Trust is not based on knowledge, but on instinct, on intuitions, on feelings, and on prior experience.</p> <p>Personally, I couldn’t care less what you write on your /ai page. The same way I couldn’t care less if you use em-dashed. Words are cheap, easy to write, and they mean less and less. But your history, all the baggage you carry with you, all you have written and said, that is harder to fake, building it is time-consuming, but destroying it takes a second. If you start posting AI slop, my trust in you is gone in an instant, and no matter how you’ll try to justify it, that trust will not come back.</p> <hr> <p>Thank you for keeping RSS alive. You're awesome.</p> <p><a href="mailto:hello@manuelmoreale.com">Email me</a> :: <a href="https://manuelmoreale.com/guestbook">Sign my guestbook</a> :: <a href="https://ko-fi.com/manuelmoreale">Support for 1$/month</a> :: <a href="https://manuelmoreale.com/supporters">See my generous supporters</a> :: <a href="https://buttondown.email/peopleandblogs">Subscribe to People and Blogs</a></p> Museum Memories: Roundup - James' Coffee Blog https://jamesg.blog/2026/04/01/museum-memories-roundup 2026-04-01T00:00:00.000Z <p>This month I had the pleasure of hosting the March 2026 IndieWeb Carnival on the topic of “<a href="https://jamesg.blog/2026/03/01/indieweb-carnival-museum-memories">Museum memories</a>”, in which I invited participants to write about a memory of a museum. To everyone who participated – we had over 30 participants this month! – thank you. It was a delight to read everyone’s stories.</p><p>Reading the contributions to this month’s Carnival will take you around the world, covering everywhere from Canada to Japan to Goa to Cairo. There are a breadth of perspectives, covering everything from a behind-the-scenes look at writing for museums (<a href="https://vhbelvadi.com/museums" rel="noreferrer">V.H. Belvadi</a>), to cities themselves as museums (<a href="https://paultibbetts.uk/2026/03/17/museum-memories/">Paul</a>), to the role of context in understanding art exhibits (<a href="https://littledigitalplumgarden.vercel.app/indie-web-carnival/a-museum-reflections-march-2026-the-wag-qaumajuq/" rel="noreferrer">Ginny</a>).</p><p>In this post I briefly summarise the contributions, drawing attention to one point that stood out to me as I read each blog post. I invite you to read the round-up and follow the links to any post that interests you.</p><p>While the "Museum memories" Carnival is now over, I am still accepting contributions. Feel free to email me at readers [at] jamesg [dot] blog and I will make sure your post is represented in the round-up. In addition, if I have missed your blog post in the round-up, please email me so I can add your post.</p><p>The Carnival for April is on the topic of "<a href="https://lifeofpablo.com/blog/indieweb-carnival-2026-adventure" rel="noreferrer">Adventure</a>", hosted by Pablo.</p><h2 id="submissions">Submissions</h2><p><a href="https://robida.net/entries/2026/03/02/museum-memories">Beto</a> walks the reader through his experiences with modern art, starting with the Centre Pompidou in Paris. He notes the extent to which modern art opened his eyes, to the extent of reflecting on the very nature of what art could be:</p><blockquote>My earliest memory of being in love with a museum was when I visited the <a href="https://en.wikipedia.org/wiki/Centre_Pompidou">Centre Pompidou</a>, in Paris, with my dad. I was 15, and we were traveling from Brazil through France, Italy, and Spain. This was my first contact with modern art, and I was deeply affected by everything I saw. It changed my perception of art, and of what art <em>could be</em>.</blockquote><p>⁂</p><p><a href="https://artlung.com/blog/2026/03/03/two-museum-memories/">Joe</a> starts by reflecting on how thought-provoking the topic of museum memories was: “As I thought about what that prompt brought to mind, I was flooded with memory.” He then goes on to share two memories of museums: the first, seeing WIRED magazine in a museum; the second, in the pride he felt seeing an exhibition run by his sister at the Smithsonian in Washington, D.C.</p><blockquote>What a wonder it is to remember the totality of my sister’s life and experience that kind of accomplishment. I mean, I remember the day when my sister was born. I remember her first step. That I can hold those memories in my head along with the memory of the day she earned her Master’s Degree and the day she shared her exhibit with me and our Dad.</blockquote><p>⁂</p><p><a href="https://jeffbridgforth.com/two-museum-memories">Jeff</a> followed in Joe’s footsteps of exploring two museum memories: his time in the Design Museum of Barcelona and the Salvador Dalí Museum in St. Petersburg, Florida. Reflecting on visiting the design museum in Barcelona, Jeff shares how the visit was brought to life by being accompanied by family:</p><blockquote>This visit stands out because of the shared experience with my son. The museum was focused on design, which we are both involved in. […] So the exhibits touched something deep inside of who we are as designers/creatives. I am so glad that I got to be with him when he visited this museum. </blockquote><p>⁂</p><p>Like Joe, I was flooded with memories when I started to think about writing <a href="https://jamesg.blog/2026/03/05/museum-memories">my entry to the Carnival</a> for this month. I shared my experience visiting the National Museum of Flight with my grandparents when I as a kid. I am still in awe of the scale and grandeur of the museum, and have many fond memories of the trip:</p><blockquote>I feel that same sense of awe now in art galleries when I look at large paintings: the scale of the thing in front of me can be so grand – or indeed small and extensively detailed – that, for a moment, I can’t help but think “wow!” That feeling never gets old.</blockquote><p>⁂</p><p><a href="https://shellsharks.com/notes/2026/03/06/museum-memories">Mike</a> shared his excitement of visiting the Steven F. Udvar-Hazy Center (Air &amp; Space Museum) in Northern Virginia and the wonders of seeing a real-life spaceship in person:</p><blockquote>Sure, if you’re a flight geek, or a war buff, you’re going to be in heaven there. But as neither of those really, I can attest to how really cool it is to walk around there regardless of your interests. I mean, how can you not gaze in wonderment at an actual spaceship, imagining the many stellar voyages it took. <em>Wondrous</em>.</blockquote><p>⁂</p><p><a href="https://www.zinzy.website/2026/03/06/museum-memories/">Zinzy</a> then takes us to London to the National Gallery, where she reflects on how the words on a plaque next to an artwork in the National Portrait Gallery changed her perception of a work. I will leave this quotation as your invitation to read the post in full:</p><blockquote>Picture me entering the National Portrait Gallery for a photo exhibit, and walking heart-first into a room with an enormous print of a woman in complete disarray. Cheeks red from hours of crisis, a frown pressed into her forehead, shoulders held up as if tenseness were the only form of comfort she had left to know</blockquote><p>Zinzy’s experiences match my own in seeing paintings in museums: the plaques help us understand a piece, but our initial impressions still stick with us.</p><p>⁂</p><p>We’re now leaving London to explore the Museum of Possibilities in Chennai with <a href="https://thoughts.jatan.space/posts/the-museum-of-possibilities">Jatan</a>. The museum has a range of exhibits on assistive technologies, a few of which Jatan explores in the post both in words and with images. At the start of the post, Jatan shares a wonderful tool:</p><blockquote>One of the display themes was tech tools which bridge accessibility gaps for people. These tools were in working states. I particularly loved this e-pen which reads text out loud as you slide it over any page with words. It can even save said text as a file.</blockquote><p>⁂</p><p><a href="https://xn--ri8hp8b.ws/blog/the-200-year-old-roti-maker/">twitu</a> then takes us to the Goa Chitra Museum, which displays “many daily use tools and equipment by the people of Goa in the 19th and early 20th century.” twitu reflects on the experience of seeing tools used over a hundred years ago, noting:</p><blockquote>I find it fascinating to know what occupied the lives of people 100+ years ago. The tiresome beat of daily chores and tools to automate them. And some of them have stayed fundamentally the same for the pass 100 years!!</blockquote><p>⁂</p><p><a href="https://lastencore.org/posts/museum-memories/">Last Encore</a> takes us to Japan to explore how the architecture of museums impacts our experience as visitors, reflecting on the tension between interior design, architectural visions, and function:</p><blockquote>In such establishments, one is bombarded with buzzwords like “immersive” or “free-flowing,” where the layout is intentionally ambiguous. Under the guise of “exploring in any order you like,” I find myself pacing the same gallery over and over, muttering, “I am quite certain I have seen this room already.” Finding the exit becomes a genuine struggle.</blockquote><p>Last Encore’s experiences brought back my own memories of museums that feel almost labyrinthine: full of wonderful art, but hard to navigate.</p><p>⁂</p><p><a href="https://littledigitalplumgarden.vercel.app/indie-web-carnival/a-museum-reflections-march-2026-the-wag-qaumajuq/">Ginny</a> takes us to the WAG-Qaumajuq museum in Winnipeg:</p><blockquote>The WAG-Qaumajuq is home to the largest collection of Inuit art pieces in Canada. Qaumajuq (pronounced KOW-ma-yourk) means "it is lit, it is bright" in Inuktitut.</blockquote><p>Ginny’s post introduces her post through the lens of context, which she considers an essential part of art galleries:</p><blockquote>The most important part of an art gallery for me is context. Why was this piece created, what was the artist's inspirations, what part of their history informed the art?</blockquote><p>Full of fascinating facts about Inuit and Indigenous culture, Ginny’s post is a wonderful read.</p><p>⁂</p><p>Next, <a href="https://zl4bv.com/posts/2026-03-10-power-museum-memories/">Ben</a> explores the power of museum memories through the lens of exhibitions on power generation. Ben starts with a concise history of how humans generated power, and then shares several experiences of getting up close with power generation machines of all kinds in several museums. In his post, he reflects on how one display case can display the chronology of a technology over a century:</p><blockquote>Something that stood out to me is a <a href="https://collections.museumsvictoria.com.au/items/1219473">display case</a> with functioning models of industrial-era steam machines all connected together by belts to overhead drive shafts. […] The evolution of the display case over 100 years shows the versatility of rotational energy: networks of power distribution can be built with interchangeable power generators and power consumers.</blockquote><p>⁂</p><p><a href="https://vhbelvadi.com/museums">V.H. Belvadi</a> invites us behind the scenes to see what it is like to work with a museum. V.H. explores what museums could be if they had more support, the role everyday objects play in museums, the intricacies of communicating to the public through exhibit plaques, and more. I especially appreciated his eye-opening perspective on what museums could be with more support:</p><blockquote>Speaking to multiple curators a common confession I have heard is that if only the museum could afford floor space for everything they own, they would love to display all of it. For many museums that might mean an extra room or storey. For the likes of the British Museum it probably means several additional buildings.</blockquote><p>⁂</p><p><a href="https://www.nicksimson.com/posts/2026-lost-in-the-met.html">Nick</a> then takes us to the Metropolitan Museum of Art in New York through the lens of his visit as a seventh grader. Nick reflects on, among other things, the grandeur of the building and how it felt to be visit:</p><blockquote>What I can recall most vividly is the feeling of wandering through this enormous museum on my own. Stepping into the grand entrances of the Met is akin to visiting the world’s great cathedrals. High ceilings, marble floors, brilliant lighting. I was still naive in my art education at this point, but these art works felt so important, so elevated in that remarkable space. I did not actually get lost in the Met, but I did lose track of time.</blockquote><p>Nick wraps up his post with a delightful conclusion: “I may have gotten a little lost in the Met, but I found a part of myself too.”</p><p>⁂</p><p><a href="https://sammieland.neocities.org/posts/2026-03_IndieWeb-Blog-Carnival_Museum-Memories">Sammie</a> brings a new perspective to what we consider to be a museum, inviting us to think of museums not only as a discrete physical location but as any place in the world that sparks your curiosity:</p><blockquote>Similarly, seeing things physically in general. Watching train cars drive by and seeing all the art on the sides of them displayed, or watching the wheels and considering how they fit in the tracks. Questioning how wires connect and following them from one machine to the next. Studying walls and furniture, paintings on the walls of waiting rooms. There are so many things that you get to see and question and wonder. </blockquote><p>⁂</p><p><a href="https://blog.virek.net/2026/03/11/growing-up-around-a-museum.html">Matthew</a> tells us the story of his experience growing up near the Blists Hill outdoor museum complex, and the lasting influence the space had on his life. Matthew notes how the museum allowed him to “smell and really feel the past”:</p><blockquote>Once onsite, I was given a lot of freedom to roam around and look at the various shops and interests of the site, and then we’d go home for lunch. The site, it is a reproduction victorian village, with shops, banks, and other artefacts that faithfully recreate the era. It was fairly rudimentary in those days, having not long opened, but quickly developed into one of those rare but popular destinations where you get to not only see, but touch, smell and really feel the past.</blockquote><p>⁂</p><p>Andrei made two contributions to the Carnival this month: first exploring the relationship between art and wealth in “<a href="https://andrei.xyz/post/exit-through-the-gift-shopthe-fine-line-between-culture-and-ostentation/">Exit through the gift shop &gt; The fine line between culture and ostentation</a>”, and then documenting several museums he has visited in “<a href="https://andrei.xyz/post/museums-along-the-road/">Museums along the Road</a>”.</p><p>Andrei invites readers to seek a slower experience in museums by visiting an exhibition that really appeals to us:</p><blockquote>So instead of going for the huge art and history museums where you spend tens if not hundreds of euros for the tickets, go for the slow experience. Stay away from the Louvres and MOMAs and Tates of the world, they’re usually filled with stolen shit taken from oppressed people so rich people can get richer. Instead, search an exhibition of an artist that you like, or visit something special.</blockquote><p>⁂</p><p><a href="https://davidmeissner.com/blog/museum-memories">David</a> starts his post by talking about the variety of museums that he enjoys, from art institutions like the Louvre to rural historical museums. He then explores how there is nothing like seeing a piece of art in person:</p><blockquote>I learned early on that there is no substitute for seeing actual works of art whenever possible. It’s a wonderful experience to finally see a painting that you are familiar with through reproductions. A painting is alive in a way that even a high quality reproduction is not. The colors are true, but it’s more than that. It’s the life, the physicality, the hand of the artist, sometimes obscured but always present. A reproduction can show you how something looks, but it can’t capture any of that life.</blockquote><p>⁂</p><p><a href="https://noahie.xyz/blog/cogito/03-2026/museums/">Noahie</a> documents how our relationship with museums can transform with time. Starting by mentioning how he explored the Dallas Museum of Art with an “irreverent attitude” as a kid, he now sees museums as a place to have a “peaceful and interesting day.” Noahie then reflects on the increased accessibility to art in the modern day, and the lasting influence art has had on his life:</p><blockquote>Overall, I think that museums have become a more humble institution despite their aristocratic beginnings. These days, good art is accessible to everyone, and I think that's important. The influence it has had on my life is vast, and these days, it's one of the things I most look forward to in life.</blockquote><p>⁂</p><p><a href="https://web.archive.org/web/20260308150224/https://bix.blog/posts/2026-03-01-on-museum-memories-daniels-story/">Bix</a> shares his experience visiting a travelling exhibit from the United States Holocaust Memorial Museum at the time of the Bosnian War, which left them with a chilling impression:</p><blockquote>Mostly, I just remember that even as the exhibition itself eschewed showing images of the camps from one war, we daily were seeing images of camps from the latest war.</blockquote><p>⁂</p><p><a href="https://theresmiling.eu/blog/2026/03/museum-memories">Elena</a> begins her blog post with a story of a museum guard who had particular expectations of how someone should and should not appreciate art:</p><blockquote>I still had my ticket in my hand and used that to point to all the cool parts. I admit, I was also very close to the glass, but I didn't touch anything. Anyway, it didn't take long and a guard came literally stomping towards us. He then said in a very upset tone: "This is great art you're looking at. Do not use your ticket to point at it! One does not point at great art with a ticket!"</blockquote><p>This museum did not deter Elena from enjoying the rest of the museum with her colleagues, thankfully. Instead, she took it in her stride:</p><blockquote>But when it had finally sunken in, we quoted him at every other artwork to remind one another to please absolutely not use our tickets to point at this great art that's exhibited here.</blockquote><p>⁂</p><p><a href="https://z1nz0l1n.com/26w11/">Anthony</a> puts museums at the heart of his holidays. When visiting, he is “looking for, over anything else, is evidence of how things were made”, connecting the marks of how art is made to his love of analog writing tools:</p><blockquote>My love of fountain pens, typewriters and block printing isn’t rooted in nostalgia, but in the fact that they leave their mark on my work. The nib, the slug and the carvings literally imprint every decision, every mistake and every happy accident into the paper. They prove that i was here. At their best, museums do the same thing on a much larger scale. They prove that people were there.</blockquote><p>⁂</p><p><a href="https://kiko.io/post/IndieWeb-Carnival-Museum-Memories/">Kristof</a> shares three memories of museums: the Deutsches Museum in Munich, exploring various museums in Sweden, and his experience at Yad Vashem, the World Holocaust Remembrance centre. Kristof’s reflections of Yad Vashem from the perspective of someone who grew up in Germany are stark:</p><blockquote>This museum leaves no one unmoved, but what struck me deeply in retrospect is the fact that my language and my familiar culture were visible in the pictures. Beautiful facades of German cities… with corpses lying in the streets in front of them. Beautiful German landscapes… with barbed wire, half-dead people, and the headline “Arbeit macht frei”. The culture of my ancestors was visible everywhere. MY damn culture! I felt shame because my people were the perpetrators. I felt anger because my people were the victims.</blockquote><p>⁂</p><p><a href="https://reillyspitzfaden.com/posts/2026/03/the-antique-telecommunications-museum/">Reilly</a> documents his experience visiting the Communication Technologies Museum, where he was able to get up close to – and even try – some technologies. Reilly’s experience illuminates how interactive exhibits add a new dimension to museums: from being an observer who reads and studies an exhibit to an active participant:</p><blockquote>One of my favorite exhibits was a set of teletype machines, all linked together. A teletype is similar to a typewriter, but keypresses can be transmitted and received. Typing on one of these machines sends a code for each character — traditionally the 5-bit Baudot code. When a teletype on the other end of the line receives Baudot code, it types out the same character as the unit sending the code. The museum as kind enough to let visitors type on one of the teletypes, and it was extremely cool to see them communicate with each other, with another unit duplicating what we typed.</blockquote><p>⁂</p><p><a href="https://paultibbetts.uk/2026/03/17/museum-memories/">Paul</a> takes us to the biggest museum we have seen yet in submissions to the Carnival by positing that the city of Barcelona itself is a museum:</p><blockquote>I mention all of this because the city itself is a giant museum. You can step back in time, in design, and urban planning, and wander through the narrow cobbled streets of the Old Quarter, then walk ten minutes to Eixample to see an extension, started two hundred years ago, that’s still celebrated for how modern it is.</blockquote><p>Paul’s blog post is almost a web-based walking tour of Barcelona, covering ancient building foundations, the city planning of the Eixample neighbourhood, the Castell de Montjuïc, street art, the Sagrada Família, and more.</p><p>⁂</p><p>We’re now off to Philadelphia to explore the Franklin Institute with <a href="https://miksimum.com/2026/03/18/the-franklin-institutes-rhythmic-machines/">Jesse</a>. In his post, Jesse walks through the architecture of the building, its striking exhibits, and the personal resonance of the health exhibits in the museum. The pendulum in the museum inspires Jesse to ask us to consider the role of rhythm in our own lives:</p><blockquote>And we are also rhythmic machines, aren’t we? — rhythm being the way nature imposes order on her own chaos. The body’s algorithms, circulation and respiration, and the mind as well. Inhale, exhale. Sleep, wake, sleep.</blockquote><p>⁂</p><p><a href="https://loreleice.net/notebook/iwc-mar2026.html">Loreleice</a> takes readers through an exhibition in Museo Sugbo, which documents the history of the Cebu area in the Philippines. Loreleice describes photos of both a “baro't saya, a traditional costume for Filipina women”, and “pots and bowls, which seem to come from the pre-colonial era.” I feel like Loreleice is my tour guide while I read this post.</p><p>Toward the end of the blog post, Loreleice notes the potential of museums to deepen our knowledge of a subject:</p><blockquote>Since I only get surface-level knowledge about the Philippine history from textbooks (and possibly the Internet world), I feel like museum visits could deepen that.</blockquote><p>⁂</p><p><a href="https://theoo.dev/notes/30">Theo</a>, inspired by the range of memories he has in museums, prepared a list of moments spent in museums. The list covers everything from seeing his grandfather “‘ice-skating’ for the first time in like 20 years” to “running around in an ancient Roman villa, making bread and visiting the herbs garden; Twice”.</p><p>Theo’s post ends with the central role people play in their memories of museums:</p><blockquote>I think I realised that what made museums so special to me is the people I shared these moments with. Some of these people I'll never see again, others I could but won't. People I miss, people I love.</blockquote><p>⁂</p><p>For <a href="https://darthmall.net/2026/museum-people/">Evan</a>, museums are woven through his life, from visiting the National Museum of Natural History as a kid, to exploring the museums of Paris with family, to going to the Carnegie Museum of Art in Pittsburgh on a first date with the woman who became his wife. Evan introduces his post with a label I might have to start using myself: being a Museum Person:</p><blockquote>I think of myself as a Museum Person. I come from a family of Museum People. I married a Museum Person. I take my kid to museums. We’ve been going to museums for longer than I can remember.</blockquote><p>⁂</p><p><a href="https://khleedril.org/blog/2026-03-22--museum-memories.html">Dale</a> discusses the delightful surprise of encountering the Spirit Museum in Stockholm. His blog post makes me think about how many “gems” there are to discover outside of the headline museums in cities:</p><blockquote>Honestly, in a city with lots of really good museums, the Spirit Museum is a real gem, and maybe the best ‘accidental’ discovery Iʼve made. Despite that it is small by capital museum standards, they seem to have a knack of attracting really interesting visiting exhibitors and punch above their weight in variety and entertainment value.</blockquote><p>⁂</p><p><a href="https://britthub.co.uk/dinosaurs-and-bees/">Britt</a> recalls moments from childhood spent in museums run by North East Museums in England, including the “Hancock Museum (natural history) and Discovery Museum (science and local history)”. The memories span from a close encounter with an animatronic triceratops to seeing a beehive at work through the glass in a museum staircase.</p><p>Britt notes that museums have had a lasting influence on her passion for learning:</p><blockquote>My many childhood visits to museums are part of why I love learning things and sharing what I learn with other people. </blockquote><p>⁂</p><p>Next, we’re off to Egypt with <a href="https://jeremycherfas.net/blog/cairo-diary-4">Jeremy</a> to explore the Cairo Museum. Jeremy submitted a post from 2005 for this month’s Carnival, which I accepted with great delight owing to its vividness. Jeremy’s post walks through several exhibits and his reactions to them. He also discusses how the information available in museums builds over time: </p><blockquote>OK, there are still fabulous gaps in my knowledge. Like, what is the relationship between Dunmutef the jackal and Anubis the jackal? But I feel that I have made something of a breakthrough, all on my own. Bits of information, scattered observations, have come together in something that resembles coherence.</blockquote><p>⁂</p><p><a href="https://sarajaksa.eu/2026/03/indieweb-carnival-march-202-the-museum-of-my-childhood-and-the-museums-of-the-community/">Sara</a> starts by sharing a childhood memory of the Technological Museum of Bistra, and then goes on to discuss the everyday role that museums have in our lives, with a particular focus on museums in Ljubljana. Sara’s conclusion reminds us that museums are for everyone:</p><blockquote>While I know a lot of people here dismiss museums and galleries as something that only intellectual and pretentious people do, I do think that the museums and galleries do have their role in our everyday life as well and I am seeing that in my everyday life. They deserve the support they are getting and more. </blockquote><p>⁂</p><p><a href="https://francescrossley.com/museum-memories/">Frances</a> shares a memory of visiting the British Museum at the age of ten or eleven during which they took many photos. Reflecting on the one of the pictures, Frances connects their childhood museum visit to their current field of study:</p><blockquote>Here we have Mithras slaying a bull. Apparently I was already intending to study ancient and mediaeval history at university.<br/><br/>It does not appear my interests have changed all that much.</blockquote><p>⁂</p><p>By way of the 21_21 DESIGN SIGHT exhibit, <a href="https://pinewind.bearblog.dev/museum-memories-wild-untamed-mind/">kwist</a> reflects on how all the parts of an exhibition come together to build an impression:</p><blockquote>Instead, an exhibition's concept, selection of exhibits, their arrangement in relation to each other, and even things like the use of the museum space and its soundscape come together to offer a unique experience, and a view at the world from a different perspective.</blockquote><p>kwist also shares the moment when the exhibit, which was about the concept of “wildness”, came to life:</p><blockquote>But at least for me, it also just ... worked. Somewhere along the way, I decided to go along with it, and started thinking about this more abstract concept of "wildness" the exhibition was trying to convey - and it <em>clicked</em> somehow. It was an almost meditative experience that had a strong impact on how I view museums, and deepened my appreciation of them.</blockquote><p>⁂</p><p>Moving on, <a href="https://ken.fyi/hirshhorn">Ken’s post</a> takes us back to Washington, D.C., this time to the Hirshhorn Museum. Ken notes that the building was “One of the first times modern architecture seriously captured my curiosity.” Describing the building and his experiences visiting the museum, he says:</p><blockquote>On the inside, it’s all post-WWII modern and contemporary visual art, each floor a continuous loop of gallery space. And then on the top (publicly-accessible) floor, one of the galleries has a balcony overlooking the National Mall.<br/><br/>Something about the novelty of the subject matter and my malleable state of mind at the time, but certain exhibitions are just seared into my being.</blockquote><p>⁂</p><p>Next, we are visiting <a href="https://michaelkupietz.com/blog-post/indieweb-carnival-march-2026-museum-memories/">Michael’s blog</a>, in which he shares five stories from museums across the United States, from Philadelphia to San Francisco. Michael’s post reflects on the nature of life and time, museums near and far, using poetry to describe an exhibition, and more.</p><p>Reflecting on his visit to the Exploratorium in San Francisco, Michael explores how what seemed far away as a child became close as an adult as he stood inside the museum 20 years after reading about it in a magazine:</p><blockquote>Sure thing, kid. It's amusing now, having lived here for 30 years, to remember just how far away San Francisco was to a suburban 9-year-old growing up on Long Island.</blockquote><p>This has me thinking that, indeed, museums themselves bring what may be so far away a little bit closer to us.</p><p>⁂</p><p>Thomas takes us to the heart of Paris to explore a specific exhibit at Musee d’Orsay that left a lasting impression: the Three Mixed-media Arabs. Thomas shares his reaction to the sculptures, studying them in close detail from many angles:</p><blockquote>Part of what struck me was the movement of the alabaster cloth. But, with the cloaked sculpture and a hood, I couldn’t sort out how the hood, face, and head worked. Each angle and time I’d look I was see another detail of the sculpture that drew me in and distracted me from the static mechanics of how it was done. Whomever I’m with often nudges me onward, but my mind is stuck and enrapt with the hooded in hard alabaster bronze face that seems to have the alabaster moving freely like cloth captured and frozen in an instance (yet crafted over much time).</blockquote><p>Thomas shares his impression that the works do not get as much attention as others, noting:</p><blockquote>When I am there and taking in the three pieces I am usually the only one around it looking at them for anything more than a few seconds or passing glance. It feels like they are hidden in plain sight. </blockquote><p>⁂</p><p>Thank you again to everyone who contributed to the Carnival, and to all readers who have followed along with the Carnival this month!</p> <!--kg-card-begin: html--> <p>This post was <a class="u-syndication" href="https://news.indieweb.org/en">syndicated to IndieNews</a>.</p> <!--kg-card-end: html--> <a class="tag" href="https://andrei.xyz/post/exit-through-the-gift-shopthe-fine-line-between-culture-and-ostentation/">Exit through the gift shop &gt; The fine line between culture and ostentation</a> <a class="tag" href="https://andrei.xyz/post/museums-along-the-road/">Museums along the Road</a> <a class="tag" href="https://artlung.com/blog/2026/03/03/two-museum-memories/">Joe</a> <a class="tag" href="https://blog.virek.net/2026/03/11/growing-up-around-a-museum.html">Matthew</a> <a class="tag" href="https://britthub.co.uk/dinosaurs-and-bees/">Britt</a> <a class="tag" href="https://collections.museumsvictoria.com.au/items/1219473">display case</a> <a class="tag" href="https://darthmall.net/2026/museum-people/">Evan</a> <a class="tag" href="https://davidmeissner.com/blog/museum-memories">David</a> <a class="tag" href="https://en.wikipedia.org/wiki/Centre_Pompidou">Centre Pompidou</a> <a class="tag" href="https://francescrossley.com/museum-memories/">Frances</a> <a class="tag" href="https://jamesg.blog/2026/03/01/indieweb-carnival-museum-memories">Museum memories</a> <a class="tag" href="https://jamesg.blog/2026/03/05/museum-memories">my entry to the Carnival</a> <a class="tag" href="https://jeffbridgforth.com/two-museum-memories">Jeff</a> <a class="tag" href="https://jeremycherfas.net/blog/cairo-diary-4">Jeremy</a> <a class="tag" href="https://ken.fyi/hirshhorn">Ken’s post</a> <a class="tag" href="https://khleedril.org/blog/2026-03-22--museum-memories.html">Dale</a> <a class="tag" href="https://kiko.io/post/IndieWeb-Carnival-Museum-Memories/">Kristof</a> <a class="tag" href="https://lastencore.org/posts/museum-memories/">Last Encore</a> <a class="tag" href="https://lifeofpablo.com/blog/indieweb-carnival-2026-adventure">Adventure</a> <a class="tag" href="https://littledigitalplumgarden.vercel.app/indie-web-carnival/a-museum-reflections-march-2026-the-wag-qaumajuq/">Ginny</a> <a class="tag" href="https://loreleice.net/notebook/iwc-mar2026.html">Loreleice</a> <a class="tag" href="https://michaelkupietz.com/blog-post/indieweb-carnival-march-2026-museum-memories/">Michael’s blog</a> <a class="tag" href="https://miksimum.com/2026/03/18/the-franklin-institutes-rhythmic-machines/">Jesse</a> <a class="tag" href="https://news.indieweb.org/en">syndicated to IndieNews</a> <a class="tag" href="https://noahie.xyz/blog/cogito/03-2026/museums/">Noahie</a> <a class="tag" href="https://paultibbetts.uk/2026/03/17/museum-memories/">Paul</a> <a class="tag" href="https://pinewind.bearblog.dev/museum-memories-wild-untamed-mind/">kwist</a> <a class="tag" href="https://reillyspitzfaden.com/posts/2026/03/the-antique-telecommunications-museum/">Reilly</a> <a class="tag" href="https://robida.net/entries/2026/03/02/museum-memories">Beto</a> <a class="tag" href="https://sammieland.neocities.org/posts/2026-03_IndieWeb-Blog-Carnival_Museum-Memories">Sammie</a> <a class="tag" href="https://sarajaksa.eu/2026/03/indieweb-carnival-march-202-the-museum-of-my-childhood-and-the-museums-of-the-community/">Sara</a> <a class="tag" href="https://shellsharks.com/notes/2026/03/06/museum-memories">Mike</a> <a class="tag" href="https://theoo.dev/notes/30">Theo</a> <a class="tag" href="https://theresmiling.eu/blog/2026/03/museum-memories">Elena</a> <a class="tag" href="https://thoughts.jatan.space/posts/the-museum-of-possibilities">Jatan</a> <a class="tag" href="https://vhbelvadi.com/museums">V.H. Belvadi</a> <a class="tag" href="https://web.archive.org/web/20260308150224/https://bix.blog/posts/2026-03-01-on-museum-memories-daniels-story/">Bix</a> <a class="tag" href="https://www.nicksimson.com/posts/2026-lost-in-the-met.html">Nick</a> <a class="tag" href="https://www.zinzy.website/2026/03/06/museum-memories/">Zinzy</a> <a class="tag" href="https://xn--ri8hp8b.ws/blog/the-200-year-old-roti-maker/">twitu</a> <a class="tag" href="https://z1nz0l1n.com/26w11/">Anthony</a> <a class="tag" href="https://zl4bv.com/posts/2026-03-10-power-museum-memories/">Ben</a> Nesting social posts under blog posts in Artemis - James' Coffee Blog https://jamesg.blog/2026/04/01/artemis-nesting-social-posts 2026-04-01T00:00:00.000Z <style media="(prefers-color-scheme: dark)">pre { line-height: 125%; } td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #49483e } .highlight { background: #272822; color: #F8F8F2 } .highlight .c { color: #959077 } /* Comment */ .highlight .err { color: #ED007E; background-color: #1E0010 } /* Error */ .highlight .esc { color: #F8F8F2 } /* Escape */ .highlight .g { color: #F8F8F2 } /* Generic */ .highlight .k { color: #66D9EF } /* Keyword */ .highlight .l { color: #AE81FF } /* Literal */ .highlight .n { color: #F8F8F2 } /* Name */ .highlight .o { color: #FF4689 } /* Operator */ .highlight .x { color: #F8F8F2 } /* Other */ .highlight .p { color: #F8F8F2 } /* Punctuation */ .highlight .ch { color: #959077 } /* Comment.Hashbang */ .highlight .cm { color: #959077 } /* Comment.Multiline */ .highlight .cp { color: #959077 } /* Comment.Preproc */ .highlight .cpf { color: #959077 } /* Comment.PreprocFile */ .highlight .c1 { color: #959077 } /* Comment.Single */ .highlight .cs { color: #959077 } /* Comment.Special */ .highlight .gd { color: #FF4689 } /* Generic.Deleted */ .highlight .ge { color: #F8F8F2; font-style: italic } /* Generic.Emph */ .highlight .ges { color: #F8F8F2; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #F8F8F2 } /* Generic.Error */ .highlight .gh { color: #F8F8F2 } /* Generic.Heading */ .highlight .gi { color: #A6E22E } /* Generic.Inserted */ .highlight .go { color: #66D9EF } /* Generic.Output */ .highlight .gp { color: #FF4689; font-weight: bold } /* Generic.Prompt */ .highlight .gs { color: #F8F8F2; font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #959077 } /* Generic.Subheading */ .highlight .gt { color: #F8F8F2 } /* Generic.Traceback */ .highlight .kc { color: #66D9EF } /* Keyword.Constant */ .highlight .kd { color: #66D9EF } /* Keyword.Declaration */ .highlight .kn { color: #FF4689 } /* Keyword.Namespace */ .highlight .kp { color: #66D9EF } /* Keyword.Pseudo */ .highlight .kr { color: #66D9EF } /* Keyword.Reserved */ .highlight .kt { color: #66D9EF } /* Keyword.Type */ .highlight .ld { color: #E6DB74 } /* Literal.Date */ .highlight .m { color: #AE81FF } /* Literal.Number */ .highlight .s { color: #E6DB74 } /* Literal.String */ .highlight .na { color: #A6E22E } /* Name.Attribute */ .highlight .nb { color: #F8F8F2 } /* Name.Builtin */ .highlight .nc { color: #A6E22E } /* Name.Class */ .highlight .no { color: #66D9EF } /* Name.Constant */ .highlight .nd { color: #A6E22E } /* Name.Decorator */ .highlight .ni { color: #F8F8F2 } /* Name.Entity */ .highlight .ne { color: #A6E22E } /* Name.Exception */ .highlight .nf { color: #A6E22E } /* Name.Function */ .highlight .nl { color: #F8F8F2 } /* Name.Label */ .highlight .nn { color: #F8F8F2 } /* Name.Namespace */ .highlight .nx { color: #A6E22E } /* Name.Other */ .highlight .py { color: #F8F8F2 } /* Name.Property */ .highlight .nt { color: #FF4689 } /* Name.Tag */ .highlight .nv { color: #F8F8F2 } /* Name.Variable */ .highlight .ow { color: #FF4689 } /* Operator.Word */ .highlight .pm { color: #F8F8F2 } /* Punctuation.Marker */ .highlight .w { color: #F8F8F2 } /* Text.Whitespace */ .highlight .mb { color: #AE81FF } /* Literal.Number.Bin */ .highlight .mf { color: #AE81FF } /* Literal.Number.Float */ .highlight .mh { color: #AE81FF } /* Literal.Number.Hex */ .highlight .mi { color: #AE81FF } /* Literal.Number.Integer */ .highlight .mo { color: #AE81FF } /* Literal.Number.Oct */ .highlight .sa { color: #E6DB74 } /* Literal.String.Affix */ .highlight .sb { color: #E6DB74 } /* Literal.String.Backtick */ .highlight .sc { color: #E6DB74 } /* Literal.String.Char */ .highlight .dl { color: #E6DB74 } /* Literal.String.Delimiter */ .highlight .sd { color: #E6DB74 } /* Literal.String.Doc */ .highlight .s2 { color: #E6DB74 } /* Literal.String.Double */ .highlight .se { color: #AE81FF } /* Literal.String.Escape */ .highlight .sh { color: #E6DB74 } /* Literal.String.Heredoc */ .highlight .si { color: #E6DB74 } /* Literal.String.Interpol */ .highlight .sx { color: #E6DB74 } /* Literal.String.Other */ .highlight .sr { color: #E6DB74 } /* Literal.String.Regex */ .highlight .s1 { color: #E6DB74 } /* Literal.String.Single */ .highlight .ss { color: #E6DB74 } /* Literal.String.Symbol */ .highlight .bp { color: #F8F8F2 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #A6E22E } /* Name.Function.Magic */ .highlight .vc { color: #F8F8F2 } /* Name.Variable.Class */ .highlight .vg { color: #F8F8F2 } /* Name.Variable.Global */ .highlight .vi { color: #F8F8F2 } /* Name.Variable.Instance */ .highlight .vm { color: #F8F8F2 } /* Name.Variable.Magic */ .highlight .il { color: #AE81FF } /* Literal.Number.Integer.Long */ .highlight .nn, .highlight .n{color: light-dark(black, var(--dark-foreground-color)) }</style><style media="(prefers-color-scheme: light)">pre { line-height: 125%; } td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } .highlight { background: #f8f8f8; } .highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ .highlight .err { border: 1px solid #F00 } /* Error */ .highlight .k { color: #008000; font-weight: bold } /* Keyword */ .highlight .o { color: #666 } /* Operator */ .highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ .highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ .highlight .cp { color: #9C6500 } /* Comment.Preproc */ .highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ .highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ .highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ .highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #E40000 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #008400 } /* Generic.Inserted */ .highlight .go { color: #717171 } /* Generic.Output */ .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ .highlight .gt { color: #04D } /* Generic.Traceback */ .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008000 } /* Keyword.Pseudo */ .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #B00040 } /* Keyword.Type */ .highlight .m { color: #666 } /* Literal.Number */ .highlight .s { color: #BA2121 } /* Literal.String */ .highlight .na { color: #687822 } /* Name.Attribute */ .highlight .nb { color: #008000 } /* Name.Builtin */ .highlight .nc { color: #00F; font-weight: bold } /* Name.Class */ .highlight .no { color: #800 } /* Name.Constant */ .highlight .nd { color: #A2F } /* Name.Decorator */ .highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ .highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #00F } /* Name.Function */ .highlight .nl { color: #767600 } /* Name.Label */ .highlight .nn { color: #00F; font-weight: bold } /* Name.Namespace */ .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #19177C } /* Name.Variable */ .highlight .ow { color: #A2F; font-weight: bold } /* Operator.Word */ .highlight .w { color: #BBB } /* Text.Whitespace */ .highlight .mb { color: #666 } /* Literal.Number.Bin */ .highlight .mf { color: #666 } /* Literal.Number.Float */ .highlight .mh { color: #666 } /* Literal.Number.Hex */ .highlight .mi { color: #666 } /* Literal.Number.Integer */ .highlight .mo { color: #666 } /* Literal.Number.Oct */ .highlight .sa { color: #BA2121 } /* Literal.String.Affix */ .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ .highlight .sc { color: #BA2121 } /* Literal.String.Char */ .highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ .highlight .s2 { color: #BA2121 } /* Literal.String.Double */ .highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ .highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ .highlight .sx { color: #008000 } /* Literal.String.Other */ .highlight .sr { color: #A45A77 } /* Literal.String.Regex */ .highlight .s1 { color: #BA2121 } /* Literal.String.Single */ .highlight .ss { color: #19177C } /* Literal.String.Symbol */ .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #00F } /* Name.Function.Magic */ .highlight .vc { color: #19177C } /* Name.Variable.Class */ .highlight .vg { color: #19177C } /* Name.Variable.Global */ .highlight .vi { color: #19177C } /* Name.Variable.Instance */ .highlight .vm { color: #19177C } /* Name.Variable.Magic */ .highlight .il { color: #666 } /* Literal.Number.Integer.Long */</style> <style> @font-face { font-family: 'MonaspaceArgon'; src: url('/assets/fonts/MonaspaceArgon-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; } pre, code { font-family: 'MonaspaceArgon', ui-monospace, monospace; } </style> <p>In <a href="https://jamesg.blog/2025/03/03/grouping-link-posts-in-a-web-reader">Grouping link posts in a web reader</a>, I described a feature in Artemis to show when someone whose website you are following has bookmarked a post by an author you also follow. The motivation for this feature was to reduce clutter in a user’s reader by grouping shares of a post under the original post.</p><p>Whether an entry should be nested was determined by the URL of an entry in a feed, which meant that the feature triggered only for people who publish bookmarks feeds that link directly to other websites.</p><p>Yesterday, I started working on an expansion to this feature to cover another case: when someone you follow publishes a blog post, then announces that post on another account like Mastodon whose feed you also follow. I have seen this happen a few times since there are a few people whose blog and Mastodon account I follow. Ideally, the Mastodon post would be grouped under the main post. </p><p>Here is an example of the new feature in action:</p><figure><picture><img alt='The Artemis web reader showing three posts. The first post has one post nested under it that says "Shared as a link by Thomas Vander Wal."' loading="lazy" src="https://editor.jamesg.blog/content/images/2026/04/artemis_nesting_social.png" style=" max-width: 130%;"/></picture><div class="alt"><label><input aria-label="Toggle image alt text on screen" type="checkbox"/>ALT</label><div class="content">The Artemis web reader showing three posts. The first post has one post nested under it that says "Shared as a link by Thomas Vander Wal."</div></div></figure><p>Above, vanderwal.net’s <a href="https://www.vanderwal.net/random/entrysel.php?blog=2141">Musee d’Orsay and the Three Mixed-media Arabs</a> blog post is the main entry. Below the entry is the text “Shared as a link by Thomas Vander Wal”, which links to the <a href="https://mastodon.social/users/vanderwal/statuses/116326375105168555">Mastodon post</a> announcing the blog post.</p><p>When a post is retrieved by the Artemis polling system, all outgoing links are saved in a list. Then, when a user’s reader is being displayed, any post that links to another post will appear nested under the post to which it links. This feature only triggers if the feed that contains the link is a Mastodon account <sup id="f-1">1</sup>. This prevents a scenario where someone writes a <em>blog post</em> that links to another blog post, where, with the logic above, the blog post that links to another post would be hidden.</p><p><em>(Note for users: This feature works if you are subscribed to a feed using the ActivityPub syntax like <code>@jamesg.blog@jamesg.blog</code>; if you follow the RSS feed for a Mastodon account this will not work. This feature may work for Bluesky replies too, although I haven’t yet tested it on Bluesky accounts).</em></p><p>While a relatively small change, this feature helps to create focus on blog posts as opposed to presenting both a blog post and an announcement post in the same way.</p><p>[<strong>1</strong>]  This feature may also work with other ActivityPub-based systems, although I haven’t tested it yet.</p> <a class="tag" href="https://jamesg.blog/2025/03/03/grouping-link-posts-in-a-web-reader">Grouping link posts in a web reader</a> <a class="tag" href="https://mastodon.social/users/vanderwal/statuses/116326375105168555">Mastodon post</a> <a class="tag" href="https://www.vanderwal.net/random/entrysel.php?blog=2141">Musee d’Orsay and the Three Mixed-media Arabs</a> When knowing it all does not matter - Protesilaos Stavrou: Master feed with all updates https://protesilaos.com/commentary/2026-04-01-when-knowing-it-all-does-not-matter/ 2026-04-01T00:00:00.000Z <p>This is an excerpt from my journal. I express the connection with my surroundings and how I do not need all the answers.</p> <hr /> <p>Minutes to eleven. Another rainy day comes to a close. I just came back from my nightly hike with the dogs. We walk around the mountains for several hours per day. This is basically paradise for dogs. It is equally benign for me as well. I remain as fit as ever. I always have energy to do what I like. My mental state is stable, my thoughts are clear, my presence focused. The mountains empower me. I forgot how it is to live with perennial stress. Everything is easier when you have a good connection with your environment and your inner world.</p> <p>There is nothing grand happening. This note describes the present moment, though it also applies to what I was feeling yesterday, and the year before, and, probably what I will experience in the future. Stability sounds boring to someone who is used to trying new things all the time. Though it actually is not. Once you get used to this reality, you develop a finer appreciation of the phenomena. It is a little bit like conditioning yourself to eat unsalted salads: at first it is bland until it eventually becomes a combination of natural flavours that were once obscured by the salt.</p> <p>I keep treading the same paths. Though I always notice something different. The environment is alive. Every form of life in it is in motion. It is working towards some end. The grass tries to be taller and wider, in order to maximise its exposure to the sun and access to soil plus water. The acorn proceeds towards becoming an oak tree over the course of centuries. Even the land itself is transforming. Every single rainfall takes some hard matter from the higher parts and moves it downstream. Where there was once solid ground one now finds signs of flowing water. In the geological time frame, the earth itself becomes something other than what it was.</p> <p>I lack the depth of conscience to communicate with the earth the way I do with my dogs or other people. Though I can already sense that it is an organism. I discern the manifestations of life all around me. And I am aware that there are strata of emergence to each phenomenon. What I understand as myself, a unit of human, Protesilaos the one and only, is a system of systems. To describe even a single part of my body, I would need to spend a lifetime studying all the technicalities. I am ignorant about the full extent of knowledge that is embedded in the making of the eye, for example, or the interplay between the brain and the gut. Yet there is a sense in which I know myself. I operate at a certain stratum of emergence. What happens at the strata below or above is not at the centre of my conscious world, although it is a precondition for it.</p> <p>The reason I am content with the little things is because I have understood that they are actually not insignificant. They are subtle, yes. It is as if they are hiding in plain sight, testing our capacity for mindfulness. Many of the world’s religions promise an escape from this world. I do not resonate with their teachings. I was listening to some monk the other day talk about how suffering is innate to the present experience and how we must not feel moved by what is around us. How so? I feel calm. To be moved is to be, for all presences are in motion. I keep finding reasons to smile: they are all around me.</p> <p>What I did wish to escape from was the expectation of knowing it all. The idea that there has to be a beginning, middle, and end to this story, and that I should be aware of it. I do not feel entitled to know everything. I do not prey for the universe to conspire in my favour. I do not ask for an opt out clause, some derogation from the rules that govern the mechanics of the system of systems. I love what is and am thankful for what I have for as long as it is beside me on my path.</p> <p>The gods offer hints but no explanations. We can only work with what we have. Even if they did tell us explicitly, we lack the means to definitively know: are they being truthful or trying to test us? If, for example, Jesus performed all those miracles and got resurrected, those all prove that he did perform these very miracles and did get resurrected. There is nothing in those events, in isolation or in combination, that necessarily proves everything else that Christians claim to know about God: agentic, triadic, benevolent, omniscient, omnipotent, ubiquitous. The leap of faith is unavoidable.</p> <p>We deal with what is germane to the human condition, recognising that it is an amalgamation of joy and sorrow, of enthusiasm and disappointment, of tension and release. We suffer when we are unable to connect with that which is immanent; that which is so close to us at all times; that which we underestimate, take for granted, or altogether ignore. Giving it a name, telling a story about it, is useful insofar as we do not forget that this is an artistic device. We do it for the fun of it, to have something to talk about with other people, and to contribute to the workings of our social reproduction.</p> <p>God dies in the naming of god, in the framing of it as only one instead of the multitude and the monad, in the stories we take too seriously as we turn them into inflexible doctrines. God is lost once the dogma we impose on our psyche forbids us from reaching out to the source, to the singing spring whose waters always flow.</p> <p>When I sense the cold rain on my face, as I close my eyes and turn skyward, I find peace in the knowledge that I am not special in my need for water and air. Just as I require them, so do the plants and other animals all around me. This is not merely about surviving, but feeling the connection with that which envelops and underpins me. From my constitutive subsystems to the supersystems I partake in, there is life ever-lasting, ever-transfiguring.</p> <p>The rainy days will continue until the first third of April. I do not have someone to tell this to, so I am putting it in the present bottle and tossing it to the sea. Not having all the answers does not bother me. I am like that bottled note, moving wherever the current takes me. That there even is an ocean is astonishing. I cannot fathom the full extent of the factors whose interplay contributes to there being an ocean. Can we even draw clear delineations in the cosmic continuum? Is there an in vitro expression of anything to be studied in isolation from totality?</p> <p>I will go to bed now. Tomorrow morning I will get the chance to continue with my projects around my house. Well, unless there is heavy rainfall. Every yard here contains hours of my labour. Though no matter how much sweat I spill, I can never make the land an extension of myself. It belongs to me just as it belongs to the grass and the insects below of it. We are all together. Admitting as much keeps things in perspective and makes everything simpler.</p> Tuesday, March 31, 2026 - Baty.net https://baty.net/journal/31mar26/ 2026-03-31T10:29:07.000Z <p>Today has been a whirlwind of indecision. It started with wanting to write a daily post (you&rsquo;re soaking in it), but I couldn&rsquo;t decide which blog to post it on. There are three good candidates. I&rsquo;m choosing this one.</p> <p>And then there&rsquo;s Emacs. I&rsquo;ve spent a lot of time tidying up my config and it&rsquo;s still kind of a mess. It&rsquo;s starting to wear on me. Sometimes I want things to be clever and cool, but sometimes I just want it to be easier. I launched Obsidian yesterday, if that tells you how bad it is. Thankfully, I&rsquo;ve come to my senses and I am typing this in Emacs. Phew!</p> <div id="reply-by-email"> <a class="reply-by-email" href="mailto:jack@baty.net?subject=[baty.net] Re: Tuesday%2c%20March%2031%2c%202026" data-meta="46736254466c76526e706a664549624e455d711469636e4c406c4f51464972146e706a634717724d4549724e4067715e76626e486e706a666e706d5377777262694d7110696771116b735c576e706d537d497148694e6617457c764b7e6c6e4c401648517e5d715d69637e5d46161448694e665e46166a547d735348694e66507e7376547d77715d755d715d69637e52474d715d69636148694e6617456348577e77715d755d715d69677262694d7110696772666a431919" >✍️ Reply by email</a > </div> Emacs coaching with Sacha Chua - Protesilaos Stavrou: Master feed with all updates https://protesilaos.com/codelog/2026-03-31-emacs-coaching-with-sacha-chua/ 2026-03-31T00:00:00.000Z <p>Sacha Chua contacted me to schedule a coaching session later this week. She wrote about it here: <a href="https://sachachua.com/blog/2026/03/thinking-about-coaching-goals-with-prot/">https://sachachua.com/blog/2026/03/thinking-about-coaching-goals-with-prot/</a>.</p> <p>I maintain a strict privacy policy with everyone I meet. Specifically, I do not say anything about our meeting. But since Sacha has already published this information, I am happy to do this in the open.</p> <p>What follows are some comments on her post.</p> <h2>Testing interactive functions</h2> <blockquote> <p>writing tests, especially for things that are more interactive</p> </blockquote> <p>What helps here is to think of the interactive part as the way to get the arguments. If the interactivity is more involved, then you want to think how it can be broken down into smaller routines. Each routine should eventually be reduced to a function that can be called non-interactively with a certain argument. This way, your tests are easier to reason about.</p> <p>Consider this example:</p> <div class="language-elisp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">(</span><span class="nb">defun</span> <span class="nv">my-greet-person</span> <span class="p">(</span><span class="nv">name</span><span class="p">)</span> <span class="s">"Return Hello string to person with NAME."</span> <span class="p">(</span><span class="nb">format</span> <span class="s">"Hello %s"</span> <span class="nv">name</span><span class="p">))</span> </code></pre></div></div> <p>The substantive part of the test would be something like this:</p> <div class="language-elisp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">(</span><span class="k">let</span> <span class="p">((</span><span class="nv">name</span> <span class="s">"Sacha"</span><span class="p">))</span> <span class="p">(</span><span class="nb">string=</span> <span class="p">(</span><span class="nv">my-greet-person</span> <span class="nv">name</span><span class="p">)</span> <span class="s">"Hello Sacha"</span><span class="p">))</span> </code></pre></div></div> <p>Now add interactivity to the function:</p> <div class="language-elisp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">(</span><span class="nb">defun</span> <span class="nv">my-greet-person</span> <span class="p">(</span><span class="nv">name</span><span class="p">)</span> <span class="s">"Return Hello string to person with NAME. When called interactively, prompt for NAME. Else NAME is a string."</span> <span class="p">(</span><span class="nv">interactive</span> <span class="p">(</span><span class="nb">list</span> <span class="p">(</span><span class="nv">read-string</span> <span class="s">"Whom to greet: "</span><span class="p">)))</span> <span class="p">(</span><span class="nb">format</span> <span class="s">"Hello %s"</span> <span class="nv">name</span><span class="p">))</span> </code></pre></div></div> <p>Even though this function can be called interactively, the test is the same because the <code class="language-plaintext highlighter-rouge">interactive</code> simply sets the value of <code class="language-plaintext highlighter-rouge">name</code>.</p> <p>There will, of course, be more complex scenaria. We can think how best to approach them. Though this is the general idea.</p> <h2>Navigating Lisp code across many files</h2> <blockquote> <p>navigating code that might be scattered in literate config files or in Emacs Lisp files</p> </blockquote> <p>What I find helpful:</p> <ul> <li>Use the Emacs bookmarking system. I add a bookmark for anything I visit frequently. Then I can find what I need with <code class="language-plaintext highlighter-rouge">bookmark-jump</code> or <code class="language-plaintext highlighter-rouge">consult-buffer</code> (from Daniel Mendler’s <code class="language-plaintext highlighter-rouge">consult</code> package).</li> <li>Have a single root for all your programming projects. In my case this is <code class="language-plaintext highlighter-rouge">~/Git/</code>.</li> <li>In that directory, create subdirectories with areas of interest. One of them should be specific to the projects you maintain. For example, I have <code class="language-plaintext highlighter-rouge">~/Git/emacs-community/</code> and <code class="language-plaintext highlighter-rouge">~/Git/Projects/</code>. The latter consists of everything I develop/maintain.</li> <li>With these directories in place, you can always rely on a recursive Grep to find what you need.</li> <li>Otherwise, we have <code class="language-plaintext highlighter-rouge">xref-find-definitions</code> as well as all the help functions like <code class="language-plaintext highlighter-rouge">describe-function</code> which normally link to the file where the definition is.</li> </ul> <h2>Sharing with others</h2> <blockquote> <p>If I get better at sharing what I’m working on, I might be able to connect with more people and bounce ideas around.</p> </blockquote> <p>Getting better is nice. I think here the goal is to structure what you are sharing in a certain way. Then people can use it more easily. Once that happens, you will receive more feedback.</p> <blockquote> <p>Also, accountability might help me nudge this over the threshold.</p> </blockquote> <p>This is key. When we make a promise in earnest, we are motivated to deliver on it. The fact that you have published this adds to the effectiveness of it.</p> <blockquote> <p>I’m curious about other people’s workflows for sharing. I like joining meetups, but I tend to share stuff only if no one else has anything planned, because I have my blog and my YouTube channel in case I want to share anything with a wider group of people. I just have to actually post things.</p> </blockquote> <p>Each person is different and there is no one answer to rule them all. What I do, as someone who publishes on a number of topics, is to reach a point that is an honest representation of my current level. This point is not approaching perfection, as that is a trap. If it were about perfection, I would never publish anything!</p> <p>Once I do what is within my current level, I am casual about it. In other words, I do not need to prove that I am worthy of it—I am already there and this is my current normal state. This makes the process of writing less emotionally challenging (well, not challenging at all). It also opens me to learn more. I am not defensive or argumentative because, fundamentally, I feel secure with what I have: I am not hiding something and do not worry about what others may think.</p> <p>About your case, I get the impression that you are already improving your content. It starts by recognising that there is improvement to be had. Then, you write blog posts such as the one I am now commenting on, which show that you have put thought into your processes. In other words, you are mindful of your current state. Whatever I may point out during our meeting will thus be easier for you to incorporate in your thinking. Why? Because you already know the space, as it were, and so you will have a good intuition of where to put the new thing.</p> <h2>Getting used to streaming</h2> <blockquote> <p>Streaming: Still need to get the hang of talking to myself or having half-conversations with chat: can be worked around by scheduling a session with Prot and opening it to the public</p> </blockquote> <p>I am happy to do this in public. Either as a coaching session or some collaborative live stream. We can discuss the details.</p> <p>At any rate, “practice makes perfect”. The only way to get used to talking to the camera is to do it enough times. I can talk at length, though I still find it hard to laugh when I am by myself, so I look dead serious in all of my monologues. Whereas, say, in the “Prot Asks” series I often laugh. This is because I have a natural response towards someone. Talking to the selfie camera does not create in me the same friendly emotions.</p> <h2>Sharing code</h2> <blockquote> <p>renaming things when I want to move them to a library</p> </blockquote> <p>Before finding a name, you need to have a clear vision for the package: what is it meant to do. Then try to think about words that describe either the goal or the workflow. Use phrases, like what you have with “speech input”. Those work fine.</p> <p>Come up with placeholder names if you are not sure. Then, once you are ready to share the package, do a final round of thinking to check if you can think of a more suitable name. Otherwise just use some descriptive phrase.</p> <p>This concerns the prefix for the entire package. Though your code may still consist of different areas of focus. For example, in my <code class="language-plaintext highlighter-rouge">denote</code> package there is a subset of functionality related to “rename” operations. All of those share a compound prefix of the name of the package plus the name of the area they are specialising in like this helper function: <code class="language-plaintext highlighter-rouge">denote-rename-buffer--format</code>. By the name alone, I can tell that it relates to the “rename” operation and, specifically, is ancillary to <code class="language-plaintext highlighter-rouge">denote-rename-buffer</code>.</p> <p>I can provide concrete suggestions for your code.</p> <blockquote> <p>duplicating small functions (ex: simplify string)</p> </blockquote> <p>You may choose to put those in their own package. Though I personally do not mind a little bit of duplication/repetition when that is easier to maintain. The principle of not repeating yourself is good in general, though there are cases where trying to avoid it is not worth the effort.</p> <blockquote> <p>figuring out how to make it possible for someone else to start using my stuff</p> </blockquote> <p>For any non-trivial code you write, you want to treat it like its own “package”. In other words, it exists in a file of its own, it has all the <code class="language-plaintext highlighter-rouge">require</code> calls for its dependencies, defines <code class="language-plaintext highlighter-rouge">defcustom</code> variables if it must, uses <code class="language-plaintext highlighter-rouge">autoload</code> where relevant, and has a <code class="language-plaintext highlighter-rouge">provide</code> call at the end. Even if you never move it out of your configuration, you have already done the work of clearing up your thoughts/code. Others will already benefit from that, as they can now copy the file with greater confidence in its utility.</p> <h2>Questions for Prot</h2> <blockquote> <p>Meta: what are people finding useful for coaching and behaviour change, like learning new keyboard shortcuts or workflows?</p> </blockquote> <p>Each person has their own goals. Some enjoy a pair programming session. Others like me to check on their progress and to provide feedback. Plus, there is more than the purely Emacs component: I make comments about matters of perspective, whether it is about some piece of code or life in general.</p> <p>Those granted, I do not collect any data about the people I meet. I do not ask them for testimonials or feedback. I prefer not to do that because I do not wish to ever have to handle private information. I like my meetings to be nice and simple. Plus, I do not want to manipulate or influence the behaviour of people.</p> <blockquote> <p>Your literate config exports to individual .el files. I could probably do something similar to separate my functions from my personal config in order to make it easier for people to reuse parts of my config. Is it worth doing so? Do people tell you that they use those private Emacs Lisp files by loading them, or do they mostly rely on your published packages?</p> </blockquote> <p>Most rely on my packages. I design those to be as flexible as possible and maintain them accordingly.</p> <p>The individual <code class="language-plaintext highlighter-rouge">.el</code> files of my configuration are helpful to me. I stay in the flow of designing my code in a package-ready way. If anybody needs to use it, then they already have something that is close to an actual package.</p> <blockquote> <p>Do you have some tweaks to make it easier to jump to function definitions considering a literate configuration?</p> </blockquote> <p>No, I have not had a need for this. When I choose to work on some part of my configuration, I navigate to the relevant heading (with something like <code class="language-plaintext highlighter-rouge">consult-outline</code>) and then use <code class="language-plaintext highlighter-rouge">org-edit-special</code> to edit the source block.</p> <p>You will show me what you have been doing, which may give me some ideas.</p> <blockquote> <p>What’s your general process for migrating things from your config to a repository or package?</p> </blockquote> <p>It all starts with splitting the code into many <code class="language-plaintext highlighter-rouge">.el</code> files. Make sure one file is not entangled with other files. Or, at least, put in the effort to list every other file as a dependency and write the necessary <code class="language-plaintext highlighter-rouge">require</code> for it.</p> <p>Have one such file for each area of focus. This way you can reason about what you have and what may be missing. A clear initial idea will determine the direction of the package long-term. The reason is that it establishes boundaries: what to do and what not to do.</p> <p>From there, you can decide if some file is of value to other users. If you think it is, then start implementing <code class="language-plaintext highlighter-rouge">defcustom</code> variables for it, define the commands that users would want, and have <code class="language-plaintext highlighter-rouge">autoload</code> directives for them if they are meant as points of entry.</p> Sacrifice in the era of the adultchild - Protesilaos Stavrou: Master feed with all updates https://protesilaos.com/commentary/2026-03-30-sacrifice-era-adultchild/ 2026-03-30T00:00:00.000Z <p>This is an essay from my journal. It is a commentary on the prevailing norms in my culture and, probably, that of other cultures around the world.</p> <hr /> <p>Strong cold winds this evening. Apparent temperatures are hovering slightly above zero degrees Celsius. The days remain cloudy. We have gotten plenty of rainfall, with much more to come. It has been an exceptionally dark five months since early November. Once October is over, the days get noticeably shorter until the winter solstice. After that we gain roughly a minute of sunlight each day. Though it does not feel that way until around the spring equinox because winter coincides with the rainy season.</p> <p>Dark days and brights days are practically the same here. It is not like those busy places where people congregate some square to enjoy the sunshine. I live outside any built-up area. Though, generally, there are few residents in the Cypriot hinterlands. Three of them died recently of old age. Many more will follow soon. Nobody is taking their stead. The local communities are vanishing. I cannot remember the last time I met a local who is younger than me.</p> <p>I am part of the problem. I do not have a family. Never got the chance. Nor do most of my relatives. Not even any of my friends back in Greece. Were it just me, I would blithely admit to my shortcomings. I do not have a fragile ego, anyway, and have no problem acknowledging that I am a loser. Such is the world. Not all can be winners. I am sure I could be doing things differently and trying to be an even better version of myself. Though I refuse to accept that everyone I know well is just defective. There are systemic issues at play.</p> <p>The economic situation is the obvious explanation, though I find it wanting. The generations of my grandparents and their grandparents had 5+ children each. They were dirt pour, dealt with wars at home, while they had to work long hours for every sort of activity we now take for granted. Try to wash the clothes by hand, for example. Make your own bread for the family. Prepare sausages, cheese, pickles, jams, et cetera to understand how it is to not throw anything away. Carry the harvest with the donkeys under the beating sun. Work the fields with limited equipment while it is raining. Mend your shoes and patch your own clothes, as you will not get new ones. And so on. Every task was labour intensive and punishing. Their diet was strictly seasonal. They would eat whatever was available at the given time of the year. They could not afford to be picky: a life of austerity beats any capricious wants out of you.</p> <p>Their communities were thriving though. There was vitality all around. The village closest to my house used to have a few thousand residents only a few decades ago. Most of them were young. Today there are only tens of them registered with the local authorities and none of them is brimming with zest. Nobody is curious to learn something new or try new experiences. Although they are still around, they have effectively checked out, waiting for their inevitable demise.</p> <p>There is a trend among men to blame women for this state of affairs. I do not share that worldview, even though I acknowledge the excesses of toxic expressions of feminism. To me, what we are experiencing is a crisis of values; a crisis of perspective. We have forgotten how to make sacrifices. We have been conditioned by a brief period of relative affluence and its attendant technological arrangements to operate like children, as we demand immediate gratification in increasingly more areas of life. This is the era of the person who ages without growing mentally: the manchild or womanchild, else the adultchild.</p> <p>Fundamentally, our culture has lost respect, indeed awareness, for magnitudes beyond one’s ego. The individual’s outlook is self-centred and self-aggrandising: to get what one desires instantly and in quantities that cannot possibly be exhausted, to prioritise one’s wants above everything else, and to treat personal feelings as the ironclad truth that the world must not assail.</p> <p>From art to food, everything we experience as a stimulus is optimised to keep us hooked. There is no more watching a movie: you binge watch an entire series. You do not read the news, you doomscroll in search for the next ragebait or lewd material. What we eat is turbocharged in being salty, creamy, greasy, sugary, spicy, often most of those at once. Fine art is abandoning its finesse and subtlety in pursuit of intense colours and sharp sounds. Perhaps the want for gore is a matter of necessity to catch the attention of those whose baseline of stimulation is intensity as such.</p> <p>This is a crisis of character. It cannot be addressed with a mere edict from the government. People need to change their ways to rediscover what always worked reasonably well. At the heart of such a pivot to sustainability is sacrifice. To give up something you want dearly. Sacrifice need not be bloody or, indeed, all that costly. It can consist of virtually inconsequential rituals and practices that introduce delayed gratification in everyday life. The goal is to depose the child within from the throne it should never be occupying. In other words, to train oneself to seek ever fewer of those easy-to-get-easy-to-lose rushes of excitement.</p> <p>Thinking back to my grandparents, they knew how to incorporate sacrifice in their quotidian affairs. It empowered them to be patient throughout and to gracefully adapt to all the hardships. One ritual my grandmother, the matriarch of the family, would observe involved the slicing of the New Year’s cake. While everyone, including little boy me, was sitting at the table without making any noise, she would slowly create pieces out of the delicacy. Child me wanted the first piece and was being impatient. Grandma told me to remain silent and show respect. “The first piece belongs to God”, she said. “The second piece is for Jesus and the third for the Holy Spirit”. Then came all the relatives who were not with us and only then would we be assigned to a small piece of the cake.</p> <p>Those two minutes of waiting were enough to teach me a valuable lesson for life. I could overcome my immediate urge to devour the dish. I had control over my self. I would do it for the common good. To recognise that there are others at the table who are also waiting patiently to be served. To further realise that I must extend my respect to potential participants, the relatives who were not present, and then the divine at-large. This was not a religious ceremony. My grandparents were secular people who held an amalgamation of beliefs drawing from the Greek religion, from Christianity, astrology, and all sorts of magic. Yet their routines were underpinned by wisdom, the kind of spirituality that one develops by dealing with the world, not by trying to escape from it.</p> <p>Same principle for when I would ask my grandfather for a new toy. We would walk past a store and something flashy would capture my childish attention. Grandpa would calmly respond “sure, my child, I will buy it for you”, then he would pause for a second, “I will buy it on your birthday”. I knew that my birthday was months away and would protest. He taught me to wait and to measure my options. “A promise is a promise”, he pointed out. Ultimately, I learnt to know what I want, instead of falling for tricks and gimmicks. And I also developed the same attitude of treating my word as sacrosanct, which is why I do not talk big. When I state something, it is because I do it.</p> <p>Those sacrifices were always small in scale. They did not constitute any kind of devastating loss. That cake was all ours in the end. We just had to go through that initial ritual. I now am at a point where I appreciate that dedicating the first pieces to the gods is of paramount importance. Not because the divine needs anything from us. No. Not even because I necessarily believe in it the way major religions preach. Again, no. God exists only when we act as if God exists. This is because the divine inspires us to pursue our highest as we think of the bigger picture. As such, our deeds will be of a better sort, to the extent possible. And, conversely, God does not exist when we behave as if God does not exist. For it is then that our affairs are defined by that which is most pernicious.</p> <p>This is not a matter of religiosity. There are plenty of believers I have met who operate without respect for others or, indeed, themselves. Theirs is a godless modus operandi, in the aforementioned sense. It is religion in its tokenistic manifestation. Nothing but a series of rites without substance; idolatry in essence. Respect is towards all. It is inward and outward. And there are no exceptions to it: it happens at home, in the workplace, the temple, and the great outdoors. In short, it consists in recognising that there is a whole world out there that does not revolved around one’s volition.</p> <p>Perhaps the most pernicious, albeit well-meaning, claim in the mainstream is how “God loves you the way you are”. While there is a kernel of hope there, it teaches us to be complacent, to indulge in our voracious wants, and then to maintain a transactional relationship with the cosmos. All because of how special and entitled we think we are.</p> <p>In my world, the gods love nobody because they tend to the wellness of all. Theirs is a cosmic reach. There can be no exception therein, no special treatments, no shortcuts for the royalty, the parvenu middle class, and the modest workers. All are exposed to the vicissitudes that bring joy and grief. And all have to deal with the consequences of actions, whether it is their own or those of people in their milieu. There is no escape from the consequences, no matter how valuable you think you are, sweetheart.</p> <p>As such, we have to persevere through the troubles and take what comes our way with grace. Only when we rediscover the spirit of sacrifice and its concomitant grit, will we start seeing vibrant communities again. Else we are moving towards our collective death. This is how nature gets rid of unsustainable arrangements, after all.</p> <p>In the era of the adultchild, I am reminded of the Greek concept of «φυγοπονία» (feegoponia or feegopony), which literally means “flight from pain/hardship”. Feegopony is the defining quality of the adultchild and the midpoint of the modern society. It is up to each of us to put forward the best version of ourselves, to pursue excellence, and to do it with integrity. Maybe then we will remember how to appreciate the little things.</p> <p>But I have no hope of this happening anytime soon. The mountains are being deserted because the adultchildren cannot tolerate the living conditions here. They have it all, yet complain about how much they are suffering. This is too cold, that is too dark, the other is too difficult, and so on. We get what we deserve. It saddens me to know that such an avoidable calamity seems inevitable.</p> thinking slow, writing fast - erock's devlog https://bower.sh/thinking-slow-writing-fast 2026-03-29T00:00:00.000Z <div role="list"> <div role="listitem"> <div class="listitem-bullet">•</div> <div class="listitem-text">I noticed a strange phenomenon after I had kids, something that continues to yield positive results. There are huge parts of the day where I don&#39;t have access to a computer or unlimited time to write code. During those moments, when I&#39;m preoccupied with the kids or life, I catch myself spending more time thinking about problems and how to solve them. Within this limitation, I find that I&#39;m spending more time thinking about code and less time writing it.</div> </div> <div role="listitem"> <div class="listitem-bullet">•</div> <div class="listitem-text">As a result, my coding time is more deliberate. I can spend more time researching, thinking about api design, and how I plan to organize the code. This has been a fantastic boost to my productivity, which feels almost counter-intuitive: why am I more productive when writing less? I think this plays well into the growing adoption of code agents that our role as a swe is not purely about writing code; some of us just really enjoy that part.</div> </div> <div role="listitem"> <div class="listitem-bullet">•</div> <div class="listitem-text">This translates into another realization as I advance in my career: I&#39;m spending more of my day validating code works as expected. To me, it&#39;s clear that my role as a staff swe is quality control. As I talk to friends about my code review workflow, they all seem so surprised that every PR I review is pulled down and read in my editor. It doesn&#39;t matter how well the git diff webview is designed, it&#39;ll never replace my editor and since I need to qa during code review, there&#39;s no reason to skip this part of the process. And guess what? I almost always find something that I would have otherwise missed, sometimes major bugs in impl.</div> </div> <div role="listitem"> <div class="listitem-bullet">•</div> <blockquote class="listitem-text"> Don&#39;t trust, validate</blockquote> </div> <div role="listitem"> <div class="listitem-bullet">•</div> <div class="listitem-text">This leads into another idea that has always been important but is growing in necessity: you can&#39;t trust any code contribution. The reality is people often don&#39;t run main and when they do they get stuck in their own validation loop that can miss important use cases. This is simply a fundamental reality, it doesn&#39;t matter what pr template checklist you add, people can be npcs and are literally npcs when code agents are involved.</div> </div> <div role="listitem"> <div class="listitem-bullet">•</div> <div class="listitem-text">Now that I&#39;ve adjusted to thinking slow and writing fast, I&#39;m enjoying it. Before bed, instead of cranking through code that is not well formed in my head, I&#39;ll do something else. Instead I get into bed, turn the lights off, put my blindfold on, listen to music, and just think about code. I&#39;ll spend hours in the dark just thinking slow.</div> </div> </div> Spending time over at Coping Mechanism - Baty.net https://baty.net/posts/2026/03/spending-time-over-at-coping-mechanism/ 2026-03-28T16:26:40.000Z <p>Sometimes I like to use Ghost, okay?! Yes, I know, I know, but I&rsquo;ve been doing it anyway.</p> <p>See <a href="https://copingmechanism.com">copingmechanism.com</a>.</p> <p>Sorry not sorry.</p> <div id="reply-by-email"> <a class="reply-by-email" href="mailto:jack@baty.net?subject=[baty.net] Re: Spending%20time%20over%20at%20Coping%20Mechanism" data-meta="46736254466c76526e706a664549624e455d711469636e4c406c4f51464972146e706a634717724d4549724e4067715e76626e486e706a666e706d5377777262694d7110696771116b735c576e706d537d497148694e6617457c764b7e6c6e4c401648517e5d715d69637e5d46161448694e665e46166a547d735348694e66507e7376547d77715d755d715d69637e52474d715d69636148694e6617456348577e77715d755d715d69677262694d7110696772666a431919" >✍️ Reply by email</a > </div> Philosophy: about the God of war, anger, and nuance - Protesilaos Stavrou: Master feed with all updates https://protesilaos.com/books/2026-03-28-god-of-war-anger-nuance/ 2026-03-28T00:00:00.000Z <p>In this 30-minute video I talk about the Greek god of war, Ares. I note how the very concept of “god of war” can make us feel uncomfortable because (i) we associate the divine with something noble and (ii) we consider war ignoble.</p> <p>I explain how we can appreciate the nuances by incorporating in our thinking the notion that there is no pure instantiation of good or evil. All that we are dealing with is in a state of admixture. What makes something “good” or “bad” is a matter of degree, relative to an inertial frame of reference.</p> <p>Couched in those terms, I discuss the mechanics of conflict: it breaks a given status quo. As such, it has in it the potential to undo a given state of affairs which, in turn, may give way to something new.</p> <p>By interpreting the world through its nuances, we move from the mode of judging to the mode of describing and of adapting accordingly. There is no opt-out from the things we do not like in this world.</p> <p>As part of the presentation, I elaborate on why the Greeks think that the concept of “god of war” is appropriately descriptive. Though I also note that this is not a religious matter, but a view to how we make sense of phenomena.</p> Warm tea - James' Coffee Blog https://jamesg.blog/2026/03/28/warm-tea 2026-03-28T00:00:00.000Z <p>I like to put my hands over the top of a cup of warm tea. I enjoy the warmth, and want to hold onto it for as long as possible.</p><p>Whether I am holding a textbook or exploring blogs, if I have a cup of tea by my side I want to feel its warmth. As I write, I am sitting next to a warm cup of tea, resting on the arm of my chair. The vibration of movement as I type creates a gentle ripple on the water, a ripple that reminds me of the calm river where I spent time last weekend. It is amazing what there is to see in the ordinary.</p> Inventor, dreaming - James' Coffee Blog https://jamesg.blog/2026/03/28/inventor-dreaming 2026-03-28T00:00:00.000Z <p>This week I joined a session at school on the topic of career planning. I had an hour of time to work through a series of questions designed to help me make progress on a goal. The goal I chose for the session was to think about my career goals. What do I want to do in my career? What is my dream?</p><p>I love technical writing and communication, which I did professionally before starting my degree, but I wanted to think beyond areas where I have already worked. In the careers session, I made progress but I was still on similar tracks to my previous thinking. But tonight I had a new idea.</p><p>When I was a kid, I briefly dreamed of being an inventor. I loved making things It is perhaps then little surprise that computers, followed by programming, eventually caught my attention. I could make new things and share them with people!</p><p>This evening, I thought about how I could keep that dream alive, if only in the form of an idea in the back of my mind. I came up with a way to connect the dots: what if I worked in a place where I was designing new technologies? </p><p>Over the last year I have been thinking a lot about the intersection of technology, design, and how we use technology. Learning about the history of art has helped give me a new toolkit through which to look at the world, too. I think I would love to work in a place that lets me ask big-picture questions about the future of technology, and to help design new technologies.</p><p>I would love to be able to make prototypes of new tools with a team of people, all looking to solve the same problem. I want to work on technology that helps people. I want to cover new ground, using prior art as inspiration but not necessarily as a direction. We have problems to solve that need novel solutions. I want to build technology where ethics is a central part of the discussion.</p><p>I would also love to use my technical writing skills to take notes of what I was helping to build. I’d love a prototype made in this hypothetical lab to eventually become something that people can use. I love making things people can use. </p><p>Whether or not this is a dream I end up pursuing, I am not sure. But I did want to write it down. Until this evening, I had not yet made the connection between my childhood interest in becoming an inventor and the fact that there are people out there who design technology.</p><p>If anyone can help me connect the dots further between the aspiration to prototype new technologies and what this looks like in the real world, please feel free to send me an email!</p><p>It’s almost like I’d love to work at a modern-day Bell Labs :)</p> Nikhil Anand - Manuel Moreale RSS Feed https://manuelmoreale.com/@/page/f6wq7ozgy2mejui4 2026-03-27T12:00:00.000Z <p>This week on the People and Blogs series we have an interview with Nikhil Anand, whose blog can be found at <a href="https://nikhil.io">nikhil.io</a>.</p> <p>Tired of RSS? <a href="https://manuelmoreale.com/interview/nikhil-anand">Read this in your browser</a> or <a href="https://buttondown.com/peopleandblogs">sign up for the newsletter</a>.</p> <p>People and Blogs is supported by the <em>"One a Month"</em> club members.</p> <p>If you enjoy P&B, <a href="https://ko-fi.com/manuelmoreale">consider becoming one</a> for as little as 1 dollar a month.</p> <hr> <h2>Let's start from the basics: can you introduce yourself?</h2> <p>Hi I'm Nikhil! I grew up the UAE and came to the United States for college and graduated with a degree in biomedical engineering. I worked in <a href="https://ivr.uiowa.edu/">academia</a> and <a href="https://www.corteva.com/">industry</a> for about 15 years before deciding to turn my attention and energies towards problems in healthcare. I'm now a graduate student at Columbia University's Medical Center and am studying clinical informatics and loving the magnificent beehive that is New York City. With the time I have, I love going to art museums, practicing calligraphy, reading short stories and graphic novels, and watching every suspense/mystery show or movie I can (huge fan of the genre; for example I've watched all of <em>Columbo</em> at least three times). I'm also trying to learn CAD and have 3D printed several small abominations.</p> <h2>What's the story behind your blog?</h2> <p>I started blogging around 2003 after discovering blogs like Kottke.org, <a href="https://zeldman.com/">Jeffrey Zeldman's blog</a>, Greg Storey's <a href="https://web.archive.org/web/20040610104158/http://www.airbag.ca/">Airbag.ca</a>, and Todd Dominey's <a href="https://web.archive.org/web/20050829190109/http://www.whatdoiknow.org/">WhatDoIKnow.org</a>. My first blog was at <a href="https://freeorange.net/">freeorange.net</a> which I now use as a placeholder for my tiny LLC's future site.</p> <p>I used to live in Ames, Iowa at the time and decided to and blog what I knew, about stuff going on in the town: gossip, lectures and shows I'd attended, photos of random scenes and events, and so on. That last part proved to be great: I'd hear from a quite a few alumni or former residents who'd have photo requests for nostalgia and I'd gladly oblige, especially since I was super excited to use my first digital camera, a whopping 5 megapixel Sony DSC-F717 😊</p> <p>I then stopped blogging for about 10 or so years and resumed in 2018. My current blog is essentially a freeform dump: just this mélange of stuff I find interesting and/or may want to reference later. There's really no audience in mind. I use a lot of tags on my posts and am often delighted by exploring them a while later. I moved all my <a href="https://nikhil.io/bookmarks/">bookmarks</a> over from PinBoard (an excellent service) and am trying to <a href="https://nikhil.io/photos/">get off Instagram</a>. I'm also trying to be better about making and sharing things (photos, calligraphy, art) no matter how terrible they are and not just consuming them.</p> <p>As for the name, I really wanted a domain hack, <code>www.nikh.il</code>, but this sadly required permission from the Israeli government I was pretty sure I wouldn't get 😅 So I went with the shortest and 'coolest' TLD I could find and ended up with nikhil.io. I also have <a href="https://nikhil.fish/">nikhil.fish</a> as an alias for no reason.</p> <h2>What does your creative process look like when it comes to blogging?</h2> <p>I think half my site's half a <a href="https://en.wiktionary.org/wiki/tumblelog">a tumblelog</a>. As for the other half, I have a Markdown file called <code>log.md</code> in my iCloud Drive that I dump inchoate thoughts into (it's at about half a meg right now). I also use the excellent <a href="https://culturedcode.com/things/">Things</a> app on my phone to save blog posts, names, recommendations, articles, and media of interest to peruse later. When I have time, I look at these two sources to post and comment on something I think is beautiful, interesting, or funny.</p> <h2>Do you have an ideal creative environment? Also do you believe the physical space influences your creativity?</h2> <p>All professional creatives I know personally have a space that they attend to do their work and they have told me that this matters immensely to them. In my case, I have <a href="https://nikhil.io/uses/">a setup</a> I've used reliably over many years and love it. I especially love my sit-to-stand desk (on wheels), giant display, and clickity-clack keyboard. I always listen to ambient music or white noise while working on anything (<a href="https://en.wikipedia.org/wiki/Loscil">Loscil</a>'s works are a favorite).</p> <p>I've found that I just cannot focus in coffeehouses or libraries. And I absolutely cannot work or think in harsh "cool white" lighting (3000K or lower; if you need me to divulge secrets, just put me in a room with two tubelights for thirty seconds). I know a lot of people (like <a href="https://catherineknepper.com/">my wife</a>, a writer) who can work anywhere and may be a bit envious. I am also in the habit of pacing around and muttering things to myself while working and these are not nice things to do at coffeehouses or libraries.</p> <h2>A question for the techie readers: can you run us through your tech stack?</h2> <p>I write all my posts in Markdown and use an old and heavily modded version of <a href="https://www.11ty.dev/">11ty.js</a> with several <a href="https://github.com/markdown-it/markdown-it">Markdown-it</a> plugins and supported by quite a few <code>bash</code> and Node scripts to generate the HTML pages. Images are processed with <a href="https://sharp.pixelplumbing.com/">Sharp</a>. The blog theme is a mess of TSX and SASS files. All posts and code are in <code>git</code> and Github. I build everything on my laptop and sync all the files to an S3 bucket that serves my blog through CloudFront.</p> <h2>Given your experience, if you were to start a blog today, would you do anything differently?</h2> <p>Not really. I've spent enough time monkeying with the design/structure and code where my setup fits my needs like a bespoke suit. You can always nerd out over tooling, and it's a lot of fun, but I've suspended that in favor of using the tools. For the time being at least 😅</p> <p>Now if my wife or a friend were starting a blog, I would absolutely recommend a platform like <a href="https://bearblog.dev/">Bear</a>. Anything simple, hosted, not creepy, and not run by greedy and/or awful people.</p> <h2>Financial question since the Web is obsessed with money: how much does it cost to run your blog? Is it just a cost, or does it generate some revenue? And what's your position on people monetising personal blogs?</h2> <p>It costs ~$5 a month. A giant part of that cost is the domain name. Zero revenue. No plans on 'growing' it or whatever; it's just my little garden on the internet.</p> <p>I have no problem with people monetising their blogs as long as the strategy they employ is respectful to visitors' privacy and unobtrusive to their experience. Patronage/memberships aside, <a href="https://techcrunch.com/2017/03/29/r-i-p-the-deck/">The Deck</a> comes to mind as an ad platform that achieved both these things very well.</p> <p>I do have my problems with platforms like Substack and might write a blog post about this later.</p> <h2>Time for some recommendations: any blog you think is worth checking out? And also, who do you think I should be interviewing next?</h2> <p>Please interview <a href="https://chrisglass.com/">Chris Glass</a>! His lovely and popular blog is a huge inspiration for mine, layout and content, and he's been at it since at least 2003 IIRC. Another old favorite is <a href="https://www.witoldriedel.com/">Witold Riedel's log</a>. I'm also really digging <a href="https://マリウス.com/">this blog</a> I discovered recently.</p> <h2>Final question: is there anything you want to share with us?</h2> <p>I just put up <a href="https://nikhil.io/art/">a small project</a> I've wanted to do for a while, my own little curated digital gallery of art I've loved over the years. It was mostly a design exercise but I thought I might use some LLM to discover some themes in why I love these works (or maybe you just love looking at things and don't really need to understand why).</p> <p>Other than that, I am so happy with what feels to me like a resurgence in personal blogging (here's <a href="https://hnpwd.github.io/">a recent index</a> of personal blogs from readers of HackerNews). Thank you for having me in your beautiful space and featuring several other lovely and interesting people! This is a fantastic project Manu 🤗</p> <hr> <h3>Keep exploring</h3> <p>Now that you're done reading the interview, <a href='https://nikhil.io'>go check the blog</a> and <a href='https://nikhil.io/feed.xml'>subscribe to the RSS feed</a>.</p> <p>If you're looking for more content, go read one of the previous <a href='https://peopleandblogs.com' target='_blank'>134 interviews</a>.</p> <p>People and Blogs is possible because kind people support it.</p> Single-file web applications - James' Coffee Blog https://jamesg.blog/2026/03/27/single-file-web-applications 2026-03-27T00:00:00.000Z <style media="(prefers-color-scheme: dark)">pre { line-height: 125%; } td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #49483e } .highlight { background: #272822; color: #F8F8F2 } .highlight .c { color: #959077 } /* Comment */ .highlight .err { color: #ED007E; background-color: #1E0010 } /* Error */ .highlight .esc { color: #F8F8F2 } /* Escape */ .highlight .g { color: #F8F8F2 } /* Generic */ .highlight .k { color: #66D9EF } /* Keyword */ .highlight .l { color: #AE81FF } /* Literal */ .highlight .n { color: #F8F8F2 } /* Name */ .highlight .o { color: #FF4689 } /* Operator */ .highlight .x { color: #F8F8F2 } /* Other */ .highlight .p { color: #F8F8F2 } /* Punctuation */ .highlight .ch { color: #959077 } /* Comment.Hashbang */ .highlight .cm { color: #959077 } /* Comment.Multiline */ .highlight .cp { color: #959077 } /* Comment.Preproc */ .highlight .cpf { color: #959077 } /* Comment.PreprocFile */ .highlight .c1 { color: #959077 } /* Comment.Single */ .highlight .cs { color: #959077 } /* Comment.Special */ .highlight .gd { color: #FF4689 } /* Generic.Deleted */ .highlight .ge { color: #F8F8F2; font-style: italic } /* Generic.Emph */ .highlight .ges { color: #F8F8F2; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #F8F8F2 } /* Generic.Error */ .highlight .gh { color: #F8F8F2 } /* Generic.Heading */ .highlight .gi { color: #A6E22E } /* Generic.Inserted */ .highlight .go { color: #66D9EF } /* Generic.Output */ .highlight .gp { color: #FF4689; font-weight: bold } /* Generic.Prompt */ .highlight .gs { color: #F8F8F2; font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #959077 } /* Generic.Subheading */ .highlight .gt { color: #F8F8F2 } /* Generic.Traceback */ .highlight .kc { color: #66D9EF } /* Keyword.Constant */ .highlight .kd { color: #66D9EF } /* Keyword.Declaration */ .highlight .kn { color: #FF4689 } /* Keyword.Namespace */ .highlight .kp { color: #66D9EF } /* Keyword.Pseudo */ .highlight .kr { color: #66D9EF } /* Keyword.Reserved */ .highlight .kt { color: #66D9EF } /* Keyword.Type */ .highlight .ld { color: #E6DB74 } /* Literal.Date */ .highlight .m { color: #AE81FF } /* Literal.Number */ .highlight .s { color: #E6DB74 } /* Literal.String */ .highlight .na { color: #A6E22E } /* Name.Attribute */ .highlight .nb { color: #F8F8F2 } /* Name.Builtin */ .highlight .nc { color: #A6E22E } /* Name.Class */ .highlight .no { color: #66D9EF } /* Name.Constant */ .highlight .nd { color: #A6E22E } /* Name.Decorator */ .highlight .ni { color: #F8F8F2 } /* Name.Entity */ .highlight .ne { color: #A6E22E } /* Name.Exception */ .highlight .nf { color: #A6E22E } /* Name.Function */ .highlight .nl { color: #F8F8F2 } /* Name.Label */ .highlight .nn { color: #F8F8F2 } /* Name.Namespace */ .highlight .nx { color: #A6E22E } /* Name.Other */ .highlight .py { color: #F8F8F2 } /* Name.Property */ .highlight .nt { color: #FF4689 } /* Name.Tag */ .highlight .nv { color: #F8F8F2 } /* Name.Variable */ .highlight .ow { color: #FF4689 } /* Operator.Word */ .highlight .pm { color: #F8F8F2 } /* Punctuation.Marker */ .highlight .w { color: #F8F8F2 } /* Text.Whitespace */ .highlight .mb { color: #AE81FF } /* Literal.Number.Bin */ .highlight .mf { color: #AE81FF } /* Literal.Number.Float */ .highlight .mh { color: #AE81FF } /* Literal.Number.Hex */ .highlight .mi { color: #AE81FF } /* Literal.Number.Integer */ .highlight .mo { color: #AE81FF } /* Literal.Number.Oct */ .highlight .sa { color: #E6DB74 } /* Literal.String.Affix */ .highlight .sb { color: #E6DB74 } /* Literal.String.Backtick */ .highlight .sc { color: #E6DB74 } /* Literal.String.Char */ .highlight .dl { color: #E6DB74 } /* Literal.String.Delimiter */ .highlight .sd { color: #E6DB74 } /* Literal.String.Doc */ .highlight .s2 { color: #E6DB74 } /* Literal.String.Double */ .highlight .se { color: #AE81FF } /* Literal.String.Escape */ .highlight .sh { color: #E6DB74 } /* Literal.String.Heredoc */ .highlight .si { color: #E6DB74 } /* Literal.String.Interpol */ .highlight .sx { color: #E6DB74 } /* Literal.String.Other */ .highlight .sr { color: #E6DB74 } /* Literal.String.Regex */ .highlight .s1 { color: #E6DB74 } /* Literal.String.Single */ .highlight .ss { color: #E6DB74 } /* Literal.String.Symbol */ .highlight .bp { color: #F8F8F2 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #A6E22E } /* Name.Function.Magic */ .highlight .vc { color: #F8F8F2 } /* Name.Variable.Class */ .highlight .vg { color: #F8F8F2 } /* Name.Variable.Global */ .highlight .vi { color: #F8F8F2 } /* Name.Variable.Instance */ .highlight .vm { color: #F8F8F2 } /* Name.Variable.Magic */ .highlight .il { color: #AE81FF } /* Literal.Number.Integer.Long */ .highlight .nn, .highlight .n{color: light-dark(black, var(--dark-foreground-color)) }</style><style media="(prefers-color-scheme: light)">pre { line-height: 125%; } td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } .highlight { background: #f8f8f8; } .highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ .highlight .err { border: 1px solid #F00 } /* Error */ .highlight .k { color: #008000; font-weight: bold } /* Keyword */ .highlight .o { color: #666 } /* Operator */ .highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ .highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ .highlight .cp { color: #9C6500 } /* Comment.Preproc */ .highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ .highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ .highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ .highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #E40000 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #008400 } /* Generic.Inserted */ .highlight .go { color: #717171 } /* Generic.Output */ .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ .highlight .gt { color: #04D } /* Generic.Traceback */ .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008000 } /* Keyword.Pseudo */ .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #B00040 } /* Keyword.Type */ .highlight .m { color: #666 } /* Literal.Number */ .highlight .s { color: #BA2121 } /* Literal.String */ .highlight .na { color: #687822 } /* Name.Attribute */ .highlight .nb { color: #008000 } /* Name.Builtin */ .highlight .nc { color: #00F; font-weight: bold } /* Name.Class */ .highlight .no { color: #800 } /* Name.Constant */ .highlight .nd { color: #A2F } /* Name.Decorator */ .highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ .highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #00F } /* Name.Function */ .highlight .nl { color: #767600 } /* Name.Label */ .highlight .nn { color: #00F; font-weight: bold } /* Name.Namespace */ .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #19177C } /* Name.Variable */ .highlight .ow { color: #A2F; font-weight: bold } /* Operator.Word */ .highlight .w { color: #BBB } /* Text.Whitespace */ .highlight .mb { color: #666 } /* Literal.Number.Bin */ .highlight .mf { color: #666 } /* Literal.Number.Float */ .highlight .mh { color: #666 } /* Literal.Number.Hex */ .highlight .mi { color: #666 } /* Literal.Number.Integer */ .highlight .mo { color: #666 } /* Literal.Number.Oct */ .highlight .sa { color: #BA2121 } /* Literal.String.Affix */ .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ .highlight .sc { color: #BA2121 } /* Literal.String.Char */ .highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ .highlight .s2 { color: #BA2121 } /* Literal.String.Double */ .highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ .highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ .highlight .sx { color: #008000 } /* Literal.String.Other */ .highlight .sr { color: #A45A77 } /* Literal.String.Regex */ .highlight .s1 { color: #BA2121 } /* Literal.String.Single */ .highlight .ss { color: #19177C } /* Literal.String.Symbol */ .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #00F } /* Name.Function.Magic */ .highlight .vc { color: #19177C } /* Name.Variable.Class */ .highlight .vg { color: #19177C } /* Name.Variable.Global */ .highlight .vi { color: #19177C } /* Name.Variable.Instance */ .highlight .vm { color: #19177C } /* Name.Variable.Magic */ .highlight .il { color: #666 } /* Literal.Number.Integer.Long */</style> <style> @font-face { font-family: 'MonaspaceArgon'; src: url('/assets/fonts/MonaspaceArgon-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; } pre, code { font-family: 'MonaspaceArgon', ui-monospace, monospace; } </style> <p>A few weeks ago I made <a href="https://amie.jamesg.blog/">Amie</a>, an application for keeping track of who you meet at conferences. Amie lets you create an event, then add people by name and/or domain, Mastodon, or BlueSky handle. <sup id="f-1">1</sup></p><p>I was inspired to build Amie because I went to a web meetup a few months ago where I met many people with websites. I wanted a better way to keep track of the sites people shared with me than to leave browser tabs open on my phone, which I may accidentally close or otherwise lose track of. I haven’t used Amie at an event yet, but I plan to!</p><p>When I built Amie, an architectural question came to mind: can I build all of this in a single file using HTML, CSS, and JavaScript? The advantage of this approach would be: (i) I wouldn’t need to maintain a back-end (note: the kind of back-end I would want to build for an application storing contacts would involve significant privacy and security planning), and; (ii) a single file would mean that I could share the application with others. All data would be local. </p><p>With a single-file application, anyone could save the source of Amie, put it on their website, and their your own instance that works on their device. With this flexibility, people could add their own features, change the colour scheme of the application to make it their own, and make any other changes they want. If someone sees Amie and wants it to be pink, they can make a copy of the source code and make it pink!</p><p>This is related to my thoughts around how to promote a remix culture for the web. I am interested in tools built on, of, and for the web that people can copy, remix, and use for themselves. While Amie does not come with a license, I will at some point make sure it is under a public domain-compatible license like MIT 0 such that people have confidence all the code is theirs to play with and share.</p><p>I have another example of a time when I applied this single-file application pattern. Last year I built <a href="https://github.com/capjamesg/athena">Athena</a> (<a href="https://athena.jamesg.blog">see live version</a>), an experimental HTML editor for mobile devices, on a similar principle. I wanted all the code to be in a single file so that the application could be more easily shared. I was able to achieve that goal, so anyone could copy the source and have their own version of Athena. (Note: Athena is <em>really</em> experimental. I don’t recommend using it, but it is fun to play around with.)</p><p>The idea of a single-file application introduces difficulties around updates. If I update Amie to fix a bug, for example, how can I share those changes with everyone else? There could be some kind of email list to which people could subscribe for significant updates. People could do a diff to see what has been changed and decide what to keep in their version of the code. I don’t have a solution for update notifications for this kind of remixed software, but I thought I’d document this point anyway.</p><p>I also see a potential downfall of a single-page web application that is huge just so that it is in a single page. I would consider that an anti-pattern. The goal is not to compress an application into a page, but to consider what could be built as a small, shareable web page like Amie or Athena or my <a href="https://jamesg.blog/ratio-embed" rel="noreferrer">coffee/water ratio calculator page</a>.</p><p>Technically, Amie is a few files: it has a service worker and manifest, for example, to support offline mode and a progressive web application mode, as well as a font that is used. But, the bulk of the application is in a single file and so I consider it in the spirit of the idea I am discussing here.</p><p>[<strong>1</strong>]  Amie doesn’t make any requests to validate profiles: it just saves them in a list; <code>@example@example.com</code> is, for example, enough to know that a handle is for Mastodon, without having to do any validation.</p> <a class="tag" href="https://amie.jamesg.blog/">Amie</a> <a class="tag" href="https://athena.jamesg.blog">see live version</a> <a class="tag" href="https://github.com/capjamesg/athena">Athena</a> <a class="tag" href="https://jamesg.blog/ratio-embed">coffee/water ratio calculator page</a> Interface stability - James' Coffee Blog https://jamesg.blog/2026/03/27/interface-stability 2026-03-27T00:00:00.000Z <p>The main Artemis interface has remained largely the same since I made the software available for others to use. <a href="https://artemis.jamesg.blog/assets/demo_dark.webp">Here is the interface in December 2024</a>. Here is the interface in 2026 [^1] [^2]:</p><figure><picture><img alt='The Artemis web reader showing a list of posts under the heading "Friday, March 27th".' loading="lazy" src="https://editor.jamesg.blog/content/images/2026/03/ui.png" style=" max-width: 130%;"/></picture><div class="alt"><label><input aria-label="Toggle image alt text on screen" type="checkbox"/>ALT</label><div class="content">The Artemis web reader showing a list of posts under the heading "Friday, March 27th".</div></div></figure><p>The main change that I have made is that the navigation bar now has a “search” link, now that search is supported.</p><p>When I added the search link, I spent quite a bit of time thinking about whether I should make it opt-in via a settings toggle [^3]. I knew that adding the search link in the place where I wanted it to be – after the “add” link used to add an author to one’s reader – would shift other links, which would mean that two navigation links that had been there for months would now be in different places.</p><p>After some thought, I ultimately opted to add the link in for everyone. I thought the search feature was sufficiently useful that it should be in the navigation bar.</p><p>Aside from that, the interface now has supported for “nested” posts, which appear in certain contexts (mostly: when you are subscribed to a Mastodon account, you replies that make up a thread of posts by the same author in lighter grey text and nested below the main post, to preserve space). This is an enhancement; it doesn’t disrupt the core functionality of showing the list of posts.</p><p>I haven’t had any impulse to redesign the software. I like the way things are. The software feels visually stable. It works, and doesn’t change much. I have added a few new layouts, but those layouts co-exist – users can choose what layout they want to use from their account settings.</p><p>I was thinking about this today after reflecting on all the times when a redesign has been jarring for me. I am cognisant of redesigns in software I have used that still, sometimes years on, don’t do essential things as easily as was possible before their redesign.</p><p>Of note, there are areas where the interface has changed more substantially. Such changes primarily pertain to settings or subscription management. Indeed, software changes: Artemis does a lot more than it did two years ago. The interface reflects that. For example, the account settings page started to grow significantly, so I broke it up into several sub-pages. This reorganisation felt better than the alternative of continuing to add more options to a single page.</p><p>As software changes, so too might a UI; there is no part of me that can reasonably make any blanket statement about how redesigns are not a good idea, or that redesigns are essential, or that UI stability should be prioritised over another design principle. Context matters. Rather, I aim to document that UI stability should be a design consideration. It feels good when everything is in roughly the same place.</p><p>[^1]:  The colours are different because I have since set a custom colour theme in my account settings.</p><p>[^2]: You may notice that the 2024 version had an "invite" button. This was something I had enabled only for my account if I remember correctly so that I could manage invite codes.</p><p>[^3]: Another thought that crossed my mind was to make the link opt-in, but on by default for new users. This would have been substantially more engineering so I didn’t do it, but I still love this idea.</p> <a class="tag" href="https://artemis.jamesg.blog/assets/demo_dark.webp">Here is the interface in December 2024</a> Gardening - James' Coffee Blog https://jamesg.blog/2026/03/27/gardening 2026-03-27T00:00:00.000Z <p>At <a href="https://indieweb.org/events/2026-03-26-front-end-study-hall">Front End Study Hall yesterday</a> there was a discussion about what endeavours are similar to web development. There was a particularly rich discussion (documented in the afore-linked notes) related to gardening and web development. My takeaway from the discussion was that building for the web has more in common with other tasks than I had thought about before.</p><p>I have been thinking about one-off pages on my website that I use to document different ideas, like my <a href="https://jamesg.blog/ideas-list">ideas list</a> or my <a href="https://jamesg.blog/patte">patterns list</a>. I keep thinking about how I should present these. Should I have a page that lists all of the pages? But what if a page isn’t ready yet? The benefit of the current way I share these pages – either directly with friends or, more commonly, by linking to them in a blog post when they are relevant – seems to work well. With the current system, I share when I am ready.</p><p>I sometimes think of these one-off pages as “wiki-like pages”, in the sense that they are updated over time – they grow. I don’t consider these pages a digital garden because they aren’t heavily linked. Many of my one-off pages stem from some notes I have taken in Apple Notes that I think, after reaching some point of maturity, should have a URL. You could call them “slash pages”, but I am not a fan of that term.</p><p>The reason I think about all these words is that they have a certain weight to them. A wiki implies something different than a digital garden, just as a page implies something different to a blog post. While “wiki-like pages” made sense to me for one-off, growing pages, “page” may be the best way for me to think of these for now.</p><p>When I consider how I want to share these pages, the best system is the one I have right now – the one where I link to pages in a blog post every so often, when I am ready. The one where I can put a URL on something without the pressure of it showing up on a list of all the pages I garden. My system is a bit inefficient, but it is maybe good enough? It is good enough for now, at least.</p><p>On reflection, there is something joyful about being able to casually share a new page in a blog post, where the page is most appropriate. The one-off pages I garden aren’t a notebook so much as they are an amalgamation of bullet points, a potential starting point – a place with more information. In blogs, I refine and define and synthesise and reflect. In pages, I often want to get the notes down so they have a home. So that I can build on the idea later.</p><p>Indeed, building on things feels very much in the spirit of having a website. We’re always building on what we have. I garden where I can. As Jeremy said in the aforementioned <a href="https://indieweb.org/events/2026-03-26-front-end-study-hall" rel="noreferrer">Front End Study Hall discussion</a> about gardening and web development: “the joy of the thing is in the development - you cannot plan for it.”</p><p><em>In the spirit of talking about one-off pages, this may be a fun time to share I have a page on this website that lists </em><a href="https://jamesg.blog/rhubarb"><em>songs that are related to rhubarb pie</em></a><em>. If you have any suggestions that I can add to the list, please do let me know!</em></p> <a class="tag" href="https://indieweb.org/events/2026-03-26-front-end-study-hall">Front End Study Hall discussion</a> <a class="tag" href="https://indieweb.org/events/2026-03-26-front-end-study-hall">Front End Study Hall yesterday</a> <a class="tag" href="https://jamesg.blog/ideas-list">ideas list</a> <a class="tag" href="https://jamesg.blog/patte">patterns list</a> <a class="tag" href="https://jamesg.blog/rhubarb">_songs that are related to rhubarb pie_</a> Brainstorming web guides - James' Coffee Blog https://jamesg.blog/2026/03/27/brainstorming-web-guides 2026-03-27T00:00:00.000Z <p>I am interested in the field of <a href="https://contentdesign.london/blog/what-is-content-design">content design</a>, which thinks of information as not only what it represents (i.e. facts) but how that information is represented. The UK Government <a href="https://www.gov.uk/guidance/content-design/what-is-content-design">says</a>:</p><blockquote>Good content design allows people to find out what they need to know or do quickly.</blockquote><p>When I am navigating the UK Government website, I feel like I can find what I am looking for. I feel the same way when I am looking through the NHS website, too.</p><p>This week I had an idea: what would a gov.uk-style website look like for getting people set up on the web?</p><p>This idea was explored in the <a href="https://indieweb.org/IndieWebGuides">IndieWebGuides</a> project in 2017, although the project covered more of the technical aspects of setting up a website. I think such a resource would still be incredibly valuable today, but the lens through which I was thinking about the idea was more about helping people make informed choices about how to use the web.</p><p>I thought about a website that would cover things like:</p><ul><li>How to choose a browser (and why it matters)</li><li>How to set up a web presence for a community (and why social media isn’t enough)</li><li>How to use web readers like RSS readers (and why they are useful)</li><li>How to choose a search engine (and why it matters)</li><li>What does it mean for information to be online? (talk about public vs. private, how web pages can be archived, and more)</li></ul><p>One piece of motivation was to have a place on the web that helps highlight why things like browser choice, search engine choice, and using open web technology matters, in as few words as possible, and written for an audience that doesn’t have a technical background.</p><p><a href="https://yourweb.guide/browser.html">I wrote a little sample of what such a guide might look like for choosing a web browser</a>.</p><p>I thought it would be nice to have a site where information is concise, consistent, and where every word is scrutinised for its relevance and necessity. I also thought it would be nice for such a site to not take a position against a technology (i.e. social media) and instead show the benefits, downsides, and alternatives that are more of the spirit of the web.</p><p>I’m sure my idea needs more development; I registered a domain name for this project – yourweb.guide – <em>way</em> too early. This is not a project I plan to build right now. It may be the case that short, well-designed guides exist for all my ideas above; if so, perhaps a site that aggregates them would be nice. In any case, despite having no intentions to bring this idea to life right now, it is an idea I wanted to write down in case anyone else sees something in the idea and is inspired.</p> <a class="tag" href="https://contentdesign.london/blog/what-is-content-design">content design</a> <a class="tag" href="https://indieweb.org/IndieWebGuides">IndieWebGuides</a> <a class="tag" href="https://www.gov.uk/guidance/content-design/what-is-content-design">says</a> <a class="tag" href="https://yourweb.guide/browser.html">I wrote a little sample of what such a guide might look like for choosing a web browser</a> Successful products - Manuel Moreale RSS Feed https://manuelmoreale.com/@/page/gdifxwzeuszh7fxf 2026-03-26T14:25:00.000Z <p>Every time I stumble on articles or posts discussing tech products, I’m perplexed when someone uses the word “successful” to describe a product with a lot of users. There’s a better word for products like that, and that’s “popular”. Maybe I’m the odd one here, but I don’t think the popularity of a product is what we should use to evaluate if it’s also a successful one.</p> <p>If I were given 50 billion to spend, and I used it to open a restaurant where everyone could come and eat for free, every day, no strings attached, I am confident my restaurant would become instantly very popular, and it would be fully booked, all the time. Would you consider that a successful restaurant? I’d say no because, unless someone keeps giving me money to burn, at some point, I’d have to shut everything down or I’d have to completely change my business model and stop giving away meals for free, which is what made my restaurant popular in the first place.</p> <p>Now, if I were to run a tech strategy on my restaurant, I’d keep burning enough money until all the other restaurants in my area are out of business because the obviously can’t compete against free, and once that happens I’d start charging people money since now they have no choice but to come to my restaurant if they want to eat out.</p> <p>Or, option B, I’d start doing something insanely shady, like sprinkling crack cocaine on my dishes to make people addicted to my restaurant. Both options are atrocious, and if you disagree, well, fuck you.</p> <p>A product being popular is an indication of a lot of people using it. Doesn’t necessarily mean that the product is good. Doesn’t necessarily mean it’s successful. And if you want proof of that, just browse the <a href="https://killedbygoogle.com">Google graveyard</a>. Or pay attention to whatever the fuck Open AI is doing or not doing these days, since it seems to me that they’re killing products left and right.</p> <hr> <p>Thank you for keeping RSS alive. You're awesome.</p> <p><a href="mailto:hello@manuelmoreale.com">Email me</a> :: <a href="https://manuelmoreale.com/guestbook">Sign my guestbook</a> :: <a href="https://ko-fi.com/manuelmoreale">Support for 1$/month</a> :: <a href="https://manuelmoreale.com/supporters">See my generous supporters</a> :: <a href="https://buttondown.email/peopleandblogs">Subscribe to People and Blogs</a></p> Maintaining projects long-term - Protesilaos Stavrou: Master feed with all updates https://protesilaos.com/commentary/2026-03-26-maintaining-projects-long-term/ 2026-03-26T00:00:00.000Z <p>This is an excerpt from my journal. I explain how long-term projects help me stay focused.</p> <hr /> <p>Local time is 23:00. I spent a combined total of five hours today doing manual labour by the stream. Half of that was in the morning and the remainder early in the afternoon, with a meal and then some computer work in between and afterwards.</p> <p>What I am doing outdoors these days is reinforcing my already robust flood-control infrastructure. This has been an especially rainy winter, coming off the back of two years of drought. As expected, soil erosion occurs everywhere. I see it in the flowing waters downstream at the base of the valley where I live: the waters are muddy and carry with them gravel.</p> <p>I collect all the coarse earth I can find. From gravel to small stones and even large rocks that I can barely lift off the ground. Everything is useful to me. Wherever there is a slippery spot in my land, I apply gravel on top to improve traction. Depending on the specifics, I will even make small holes to place stones in and then add soil on top. In effect, I am making parts of the surface harder. Rocks are useful to stairs and to reinforce all the edge from where water could flow.</p> <p>The idea is to have soft terrain everywhere that I plant vegetables and solid ground on all the pathways as well as the perimeter. Part of this is my commitment to not fill the place up with concrete or make it look like the walled garden of some mansion. I want it to remain natural, even though it clearly is a largely controlled environment.</p> <p>There is no pressing reason to do all of this project now. I could wait for the rainy days to pass and commit to it during the summer. Though this is not how I operate. My principle is to not postpone things. If I can do something, I do it. When I say something, it is the law. There are no excuses. In the summer there will be something else to do or, maybe, I will just want to sunbathe and enjoy my day.</p> <p>Maintaining projects long-term requires a certain level of enthusiasm. You have to enjoy what you are doing. I wake up every morning with the same zeal to carry out what I have committed to. I like that I have an impact on my immediate environment and that I experience the feedback loop between my actions and their consequences.</p> <p>By discerning the results of my deeds, I have a better appreciation of my power as well as its limitations. I am powerful, in the sense of having the means to make certain things happen. Though I understand I am not omnipotent. Everything requires a considerable amount of physically taxing work. Those five hours today are barely noticeable in terms of changes to the surroundings. There is a little bit here and a little bit there. Nothing fancy.</p> <p>Because I have been doing such work for long enough, I can estimate how many workhours some initiative will take. I do not feel the pressure to quit abruptly, as I never get frustrated with my progress. I also do not set lofty targets: whatever I commit to will be done when it is ready. The process is organic. If I need to stop, I do it without feeling guilty about it. Though, generally, I work for long hours. The point is that I do not turn myself into a servant of my own standards. I remain in control, since I interpret my rules mindfully. If the circumstances demand that I suspend their application, I do it without hesitation. Otherwise, I would be reckless.</p> <p>The immediate feedback loop of what I do informs my situational awareness. I know what kind of initiative is viable and what is impractical. I have an intuitive understanding of the economics of my time. I will intentionally settle for a makeshift solution, if it buys me enough time to collect money in pursuit of an improved arrangement. Or, simply, if it allows me to prioritise another task in the meantime. I do not expect perfection, because I am aware of my limited resources. I love the little things, the nuances, those details that are otherwise easy to miss. I do not need much to feel happy.</p> <p>People sometimes tell me something along the lines of “I like your life there and wish I could do the same”. It is one of those cases where the adage “be careful what you wish for” applies fully. What most fellas usually mean is that they would like to retain the life they have and combine it with the serenity of a rural setting. This is not how it is in my world though.</p> <p>My life is one of austerity. Only a small part of that is my choice. There are inherent constraints to a life in a sparsely populated region that I cannot overcome. For example, I do not have any friends here. I know most of the locals, but we merely are on good terms. I do not have a deep connection with anybody. Nobody knows what I did today, whether I created something or not, if I have any intellectual pursuits… If I were to disappear tomorrow, nobody would lose anything. I am an individual in what effectively is an alien world.</p> <p>When there are few people around, people who are considerably older than you, you do not get to choose who you spend your time with. Either you pick the one option for socialisation or you just spend your days alone. I do the latter. The good thing is that I can either work on my projects without interruptions or go for hikes with my dogs. So I am always doing something I enjoy. Though the point is that I can tolerate this state of affairs because I do not ask for much. Another person, especially someone who thinks that my life is cool but has never lived this way before, will probably not have the same tolerance for uneventfulness.</p> <p>Against this backdrop, maintaining projects for years is a reliable way to remain focused and to not be disheartened. I tend to the work that requires my input. Its results benefit my life in a tangible way. I remain at the peak of my powers, as sharp and active as ever, largely because what I do does not take a toll on my state of mind. I will continue to quietly do my thing in this little corner. Nobody will notice, though I always take stock of the progress, which is all that matters.</p> <p>It is time to go to bed now. The dogs have been sleeping for a couple of hours already. We will all be up at sunrise, ready to start our morning with the same decisiveness that defined this day.</p> My 2-step process for AI-free blogging - Manuel Moreale RSS Feed https://manuelmoreale.com/@/page/2qh0ae65axgdtljy 2026-03-21T13:25:00.000Z <p>Following the <a href="https://blog.dougbelshaw.com/authentic-ai-assistance/">7-step approach</a> and the <a href="https://cogdogblog.com/2026/03/1-step-approach/">1-step approach</a>, and also channelling the spirit of the longstanding tradition of <a href="https://commons.wikimedia.org/wiki/File:How_to_draw_an_owl_meme.png">learning how to draw owls on the internet</a>:</p> <ol> <li>Think about a subject and then start typing</li> <li>Type the rest of the fucking post and then hit publish</li> </ol> <hr> <p>Thank you for keeping RSS alive. You're awesome.</p> <p><a href="mailto:hello@manuelmoreale.com">Email me</a> :: <a href="https://manuelmoreale.com/guestbook">Sign my guestbook</a> :: <a href="https://ko-fi.com/manuelmoreale">Support for 1$/month</a> :: <a href="https://manuelmoreale.com/supporters">See my generous supporters</a> :: <a href="https://buttondown.email/peopleandblogs">Subscribe to People and Blogs</a></p>