diff options
| author | Henry Webster <hwebs@hwebs.info> | 2026-07-22 14:46:05 -0500 |
|---|---|---|
| committer | Henry Webster <hwebs@hwebs.info> | 2026-07-22 14:46:05 -0500 |
| commit | e21587eca6c8ac56c24929e5210f05da2ca8865d (patch) | |
| tree | f600daf32d5ee20935b056a56868a161992b7e66 | |
| parent | acdfa23c19901947e17709442f79eb00a900375c (diff) | |
backfill blog posts
| -rw-r--r-- | images/building.webp | bin | 0 -> 147176 bytes | |||
| -rw-r--r-- | images/james-bond-duck.webp | bin | 0 -> 21130 bytes | |||
| -rw-r--r-- | images/magical-light.webp | bin | 0 -> 28824 bytes | |||
| -rw-r--r-- | images/running.webp | bin | 0 -> 56736 bytes | |||
| -rw-r--r-- | images/skywalker.webp | bin | 0 -> 16900 bytes | |||
| -rw-r--r-- | images/venus-theory.webp | bin | 0 -> 18010 bytes | |||
| -rw-r--r-- | pages/index.md | 12 | ||||
| -rw-r--r-- | posts/2023-06-19_starting-a-blog.md | 128 | ||||
| -rw-r--r-- | posts/2024-10-05_yet-another-website.md | 88 | ||||
| -rw-r--r-- | posts/2025-10-20_man-meets-expectations.md | 18 | ||||
| -rw-r--r-- | posts/2025-10-27_personal-code.md | 109 | ||||
| -rw-r--r-- | posts/2026-01-31_time-and-place.md | 70 | ||||
| -rw-r--r-- | posts/2026-02-21_data-entry.md (renamed from posts/data-entry.md) | 2 | ||||
| -rw-r--r-- | style.css | 16 | ||||
| -rw-r--r-- | theme.scm | 4 |
15 files changed, 439 insertions, 8 deletions
diff --git a/images/building.webp b/images/building.webp Binary files differnew file mode 100644 index 0000000..1f03c98 --- /dev/null +++ b/images/building.webp diff --git a/images/james-bond-duck.webp b/images/james-bond-duck.webp Binary files differnew file mode 100644 index 0000000..2c09f23 --- /dev/null +++ b/images/james-bond-duck.webp diff --git a/images/magical-light.webp b/images/magical-light.webp Binary files differnew file mode 100644 index 0000000..0807717 --- /dev/null +++ b/images/magical-light.webp diff --git a/images/running.webp b/images/running.webp Binary files differnew file mode 100644 index 0000000..8deb65d --- /dev/null +++ b/images/running.webp diff --git a/images/skywalker.webp b/images/skywalker.webp Binary files differnew file mode 100644 index 0000000..c926d1f --- /dev/null +++ b/images/skywalker.webp diff --git a/images/venus-theory.webp b/images/venus-theory.webp Binary files differnew file mode 100644 index 0000000..492cb5d --- /dev/null +++ b/images/venus-theory.webp diff --git a/pages/index.md b/pages/index.md index c878f8b..816c08a 100644 --- a/pages/index.md +++ b/pages/index.md @@ -1,9 +1,7 @@ title: About Me --- -My name is Henry J. Webster. - -I work in technology and live in the great American city. -I'm an avid do-it-yourself-er and aspiring "hacker with a beautiful yet whimsical technique." +My name is Henry. I work in technology and live in the great American city. +I'm an avid do-it-yourself-er and aspiring "hacker with a beautiful yet whimsical technique."<sup>1</sup> Enthusiast of: physical media; black coffee; the library; the Chicago 'Bears|Cubs|Bulls'. @@ -11,4 +9,8 @@ Skeptic of: high-polygon 3D models; "double-clicking on that"; turnstile enclosu ## Links - [LinkedIn](https://www.linkedin.com/in/hwebs/) -- [Code](https://git.hwebs.info/)
\ No newline at end of file +- [Code](https://git.hwebs.info/) + +<ol class="footnotes"> + <li>"Jamming with Edward", <cite>Cowboy Bebop</cite>. S1E9.</li> +</ol> diff --git a/posts/2023-06-19_starting-a-blog.md b/posts/2023-06-19_starting-a-blog.md new file mode 100644 index 0000000..29735db --- /dev/null +++ b/posts/2023-06-19_starting-a-blog.md @@ -0,0 +1,128 @@ +title: Bond, Skywalker, and Why I Started a Blog +date: 2023-06-19 00:00 +--- +I have not made a habit of sharing online. +When I started using social media as a kid, it was an era of unfiltered day-to-day. +I could understand it more because there was no thought behind it. +I would share what I was doing, freely jettisoning content into a void without any idea of what could come back. +Eventually this gave way to the ultra-manicured platforms of today, and I shrunk from the light. +I did not enjoy the pressure of social media suddenly becoming my résumé, diary, photo album, and meeting place. + +So have I done better avoiding it as much as possible? +I don't think so. +It is a problem I have been grappling with. +There used to be a massive distinction between regular media and the bottom-up world of social networking sites. +As that distinction disintegrated, I threw in the towel instead of figuring out how to adapt. +The fact is I do feel stifled in my work by not engaging at all. +It's been hard to focus on long-term projects. +I'm not seeing enough of even my own friends' work. +I'm not discovering interesting creators. +I'm not getting trickles of satisfaction from small wins. +The longer I hole up, I can feel my hole getting smaller. + +I watched [a video from Venus Theory](https://youtu.be/bQDudbp-pag) and caught a glimpse of Austin Kleon's [_Show Your Work_](https://austinkleon.com/show-your-work/). +I had never heard of it but got the eBook and read it in a sprint. +This book convinced me my lack of engagement with my process and the outside is hindering my ability to finish. +I enjoyed the take-some-and-leave-some attitude of the advice. +As a huge consumer of the metawork genre it was refreshing to get quotations from the likes of Steve Albini and Robert Pollard. +The tone reminded me of Michael Pollan's [_Food Rules_](https://michaelpollan.com/books/food-rules/). +Both authors don't pretend to have invented the perfect regimen, but give simple, flexible actions distilled from numerous examples. +I felt inspired enough to get thinking about ways I could pick up some of what Kleon puts down. + +<figure> + <img src="/images/venus-theory.webp" alt="The fateful freeze frame, Venus Theory, Is Spotify Making Music Worse?"/> + <figcaption>The fateful freeze frame, Venus Theory, <em>Is Spotify Making Music Worse?</em></figcaption> +</figure> + + +## Write The Docs + +> "Whether you share it or not, documenting and recording your process as you go along has its own rewards: You'll start to see the world you're doing more clearly and feel like you're making progress. And when you're ready to share, you'll have a surplus of material to choose from."<sup>1</sup> + +I am both aware of the power of reflection and remain painfully inadequate at carrying it out. +It came on my radar after reading David Robson's [_The Intelligence Trap_](https://davidrobson.me/books/the-intelligence-trap/). +The book journeys through history to explain how experts become victims of their own knowledge. +I'm amazed at the explanation for their failures being they knew too much. +I'm horrified because having mastery is supposed to mean you're better. +The idea all that effort would eventually narrow your understanding and effectiveness felt like changing the laws of physics overnight. +Gracefully, the book provides a solution: reflection. + +Robson explains how writing about what you're doing and how you're feeling gives “deeper introspection and the differentiation of your feelings” as well as helping “learn and remember what worked and what didn't.”<sup>2</sup> +I love the idea of acknowledging that creative works take effort and recording that. Sometimes I'm able to power through over weeks and forget what it took. Sometimes I can get a solid week in and end up running out of energy. Not only is the lack of a tangible output disheartening, but the lack of evidence for how and why I was doing it makes it difficult to pick back up in the future. Kleon's encouragement to record the process is engaging in creative reflection. By documenting my own process, I'm able to see more tangible output and stay motivated. I'm also leaving breadcrumbs for times that life gets in the way so I can get back on track. It's a reflective practice that will hone my process. + +Coming to terms with this feels like the difference between James Bond and Luke Skywalker. +[Charlie Houpert makes a great point in his analysis of Bond and the masculine ideal](https://youtu.be/THwTUsF0yQQ) that although Bond has a bevy of abilities, we never see him practice. +This takes away an entire dimension of Bond's intrigue. +While it is entirely possible this is taking place off-screen, there are cases it is clear we are supposed to believe he can just do anything. +Not long after getting his tricked-out ride in _Goldfinger_, he effortlessly deploys the gadgets against enemies despite only getting a brief rundown from Q. +To make it more befuddling, the switches are not even labelled. +His world believes the polished output is the only thing worth valuing and complete competency at first contact is realistic. As consciously as I would deny idealizing the MI6 agent, unconsciously I was stuck in this world. I undervalued the process and my own work as not good enough. I wasn't going back and figuring out what worked and what didn't. + +A protagonist we observe practice is Luke Skywalker. +In _Empire Strikes Back_, Skywalker spends a grueling season in the jungles of Dagobah with Yoda training in the ways of the Force. +We watch him whining, failing, and making the small victories that characterize practice in the real world. +The most compelling aspect is in _Return of the Jedi_, when Skywalker returns to his mentor. +He asks to complete his training, but Yoda refuses and says he is already ready. +Skywalker doesn't believe it, but there's nothing he can do. +This is the reality of creative work. +It is difficult. +We get stuck in the loop that there's always more we can do. +The hardest part is acknowledging we're ready to let it go. +While Skywalker is pressed by the events of the galaxy to go forth anyway, we don't always have the same scenario. +Sometimes there are hard deadlines or economic concerns. +Sometimes, however, there's nothing forcing us to complete the project. + +So now I want to document my work to remind myself that, at least in this area, the world is more Lucas than Flemming. +I never get an idea that instantly turns to gold. +I don't come across a new tool and wield it masterfully at once. +I get underwhelmed and stuck. +I scour tutorials and struggle to make what's in my head appear. +I don't think I'm ready when a very well could be. +By being reflective, I am more in tune with myself and able to make the deliberate progress needed to finish. + +<figure> + <img src="/images/skywalker.webp" alt="Yoda tells Luke his training is complete, Return of the Jedi"/> + <figcaption>Yoda tells Luke his training is complete, <em>Return of the Jedi</em></figcaption> +</figure> + +## Not a Solo Mission + +> "Make stuff you love and talk about stuff you love and you'll attract people who love that kind of stuff. It's that simple."<sup>3</sup> + +Now that I've made a case for myself to be more cognizant of how I work, I have to explain why I started a blog. +While this could have been done in a private space, Kleon's entire point is that it should be public. +I haven't been very collaborative in recent years. +A big reason is that I haven't been engaging with any communities on the internet. +I'm hoping that by writing these posts, be they analyses or tutorials or journals, I can contribute to a greater scene. +Robson also mentions teaching as a tool to improve understanding because “the act of explanation forces us to process the material more deeply.” +When the blog is framed that others are going to see it, I'm being more deliberate in how I gather and organize information. +Whether it's through direct cooperation or getting recommendations and feedback, being part of a community is a creative force-multiplier. + +Coming back to our two heroes, James Bond is one of the least collaborative characters. +In Goldfinger, every possible supporting role is almost instantly offed. +Bond is left to fend for himself in increasingly elaborate ways. +His American counterparts are woefully ignorant of his precarious situation and figure he's got it taken care of. +He doesn't seem to mind, but it doesn't have to be that hard. +This isn't a desirable way to get things done, even if we had the cunning and cool head of 007. + +Luke Skywalker, however, is a part of a larger group and is put in situations he can't complete without aid. +Despite his powers, in Return of the Jedi Skywalker is dependent upon his many co-conspirators to destroy the Death Star. +As the operation starts in disaster, Skywalker has to watch as the Sith taunt him. +When Sidious nearly kills him, it's up to Vader to save his life. +This is the reality of creativity. +There is nothing honorable about not asking for advice or pretending that everything we make has as little influence of others as possible. +It's high time to be more Jedi than secret agent. + +<figure> + <img src="/images/james-bond-duck.webp" alt="Bond as the lone wolf (or bird), Goldfinger"/> + <figcaption>Bond as the lone wolf (or bird), <em>Goldfinger</em></figcaption> +</figure> + + +## References + +<ol class="footnotes"> + <li>Kleon, Austin. <cite>Show Your Work</cite>, 2014. <a href="https://austinkleon.com/show-your-work/">https://austinkleon.com/show-your-work/</a>. 27-28</li> + <li>Robson, David. <cite>The Intelligence Trap: Why Smart People Make Stupid Mistakes - And How to Make Wiser Decisions</cite>, 2019. <a href="https://davidrobson.me/books/the-intelligence-trap/">https://davidrobson.me/books/the-intelligence-trap/</a>. 130</li> + <li>Kleon, <cite>Show Your Work</cite>, 78</li> +</ol> diff --git a/posts/2024-10-05_yet-another-website.md b/posts/2024-10-05_yet-another-website.md new file mode 100644 index 0000000..52fab11 --- /dev/null +++ b/posts/2024-10-05_yet-another-website.md @@ -0,0 +1,88 @@ +title: Making a Personal Website Yet Again +date: 2024-10-05 00:00 +--- + +## Feeling Insane +The seasons change; the sun rises in the east; I'm making another version of my personal website. +It's embarrassing to admit. +Not so much the frequency, but the way I'm always convinced _this_ will be the one to rule them all. +Then, I inevitably scrap it all and start again. +This time I'm writing down my thoughts, so if nothing else, I can laugh at myself later. + +## Problems In Past Iterations +A personal website has some clear functions: +- talk a bit about myself +- show off work +- have a list of other places on the net +- mix some magic into it all + +Even though the objective is clear, there are many ways to do it, and thus many causes for consternation. + +Before 2019, all of my personal websites were handwritten HTML. +Steve Krug rightfully said "...even a site that doesn't need regular visitors needs some signs of life... +to signal to me that it's not abandoned or hopelessly outdated."<sup>1</sup> After some time as a back-end programmer, I understood how websites pull from data sources and generate HTML. +By using that rather than handwritten HTML, it would be easy to keep the website fresh. +I used a static site generator, which grabs the data and outputs files that can be hosted standalone on the web. +[The code can be found on Github](https://github.com/henrywebster/hwebs-info/tree/gatsby-website) for those interested. + +The main problem with this approach was needing to manually enter in items and then publish for the changes to show. +Even though it was much better than copy-pasting HTML, it turns out I still never wanted to do it. + +Fast-forward to earlier this year and I began to consider the "links in bio"-style site as a role model. +I realized if I couldn't update the site myself, I could at least link out to other places that would update from me living my life. +As I worked on it, I decided to ditch the static site concept. +Rather than serving dusty HTML files, there's a server constantly running and ready to return an HTML response with potentially brand new information. +I was hesitant, because the big two reasons to use a static site are that it's faster and cheaper. +Speed I realized didn't matter if the site wasn't interesting. +For cost, I was starting to experiment with "scale-to-zero" hosts. +These services will stop running your server when it isn't getting traffic and (hopefully) quickly turn it on to respond if needed. +No traffic means no cost! Abandoning the static paradigm to get any sign of life, I figured I could show custom-formatted updates from the microblogging platform Mastodon. +By using my phone, or linking certain platforms through a bot to make posts, pulses of activity would appear on the home page. + +Alas, the same problem cropped up. +I was much happier with the structure of the site, and the server hosting cost next to nothing, but the stale data remained. +I don't microblog anyway! No dynamism here. +On top of that, even though I was emphasizing external sites, it wasn't satisfying. +It didn't feel personalized to have to go to my Github page, and then my Itch.io page, and then my Spotify page, and so on to get the tiniest bit of information. + +## Why He's Different +As I was desperately working out how to connect various wells of my personality for bots to microblog, I eventually realized what should have been obvious the whole time: whatever platform I'm using for reading, code, music, etc. +already has the means to grab that data! By utilizing something like Goodreads as I normally do it can show up on the site with just a small transformation. +Suddenly there's a huge repository I can pull from in real time to make the site uniquely my own. + +This latest iteration of my personal site revolves around leveraging the data I'm already creating and displaying it in an up-to-date, individualized way. +What makes this possible is APIs and formats like RSS. +Using these, computers easily talk to one another. +Whereas a human using a browser is going to get all sorts of extra functionality, navigation, and styling, a computer only needs specific bare data. +When someone visits my home page, rather than link to my Goodreads profile, I can request my current reading list from Goodreads and format a response for a section of my own website. + +RSS feeds are collections of updates, but only contain minimal data about a specific topic (e.g. +the titles of the books I'm reading, but not the genres). +It's somewhat an ancient method of the web and has stuck around because it's simple and it works. +On the other hand, APIs usually have a wider ability to get more general data (such as the genres of a specific book), and even create or update data, although I don't need that. +By and large, platforms always have an API, because the platform itself is getting that data somehow and then integrating it with the user functionality and styling. +However, it's not always the case that people can use a platform's API directly. +In fact, it's getting rarer and rarer. +[Tom Scott has an excellent video on this subject](https://youtu.be/BxV14h0kFs0?si=KJyJTfikJwVttkQh). +Goodreads had an API and [dropped support in December 2020](https://help.goodreads.com/s/article/Does-Goodreads-support-the-use-of-APIs). +The Letterboxd process for requesting API access states a list of non-approved uses that as far as I can tell [encompasses every possible use](https://letterboxd.com/api-beta/). +Four years after Scott's video, the rise of LLM companies engaging in [No-Face-magnitude](https://youtu.be/uahfu3NYrVo?si=6I7u-CTwKEZFn6oM) data ingestion will likely make the situation even worse. +Platforms seem more willing to provide RSS feeds, which have been working well enough when there's no API. + +While I was researching using RSS in 2024, I discovered the ["Web Revival"](https://thoughts.melonking.net/guides/introduction-to-the-web-revival-1-what-is-the-web-revival). +After coming to understand the joy of an interoperable web through this personal site project, I find Web Revival extremely compelling. +As the walls close in on major platforms, this movement is a glimmer of hope for the type of web I want to see. + +I'm having a great time building out the site. +Seeing it update in real time as I go about my life makes it feel so much more alive than any past iterations. +I want to thank jae kaplan for showing how easy it is to use [HTMX on bearblog](https://jkap.io/using-htmx-on-bear) and having an excellent example of a social-update-aggregation feature. +I'd also like to thank Christian for showing me bearblog and the aforementioned blog post. +My focus for the code is a hacky attempt to get the ball rolling, but maybe in the future I can make a generalized tool out of it. +The [source code](https://git.sr.ht/~henz/chainmail) is being developed in public, even if it's not publicly useful out of the box. +Fingers crossed this one sticks! + +## References + +<ol class="footnotes"> + <li>Krug, Steve. <cite>Don't Make Me Think, Revisited</cite>. (New Riders, 2014), 86</li> +</ol> diff --git a/posts/2025-10-20_man-meets-expectations.md b/posts/2025-10-20_man-meets-expectations.md new file mode 100644 index 0000000..f1ecd11 --- /dev/null +++ b/posts/2025-10-20_man-meets-expectations.md @@ -0,0 +1,18 @@ +title: Man Meets Expectations at Half Marathon +date: 2025-10-20 00:00 +--- + +<figure> + <img src="/images/running.webp" alt="The author"/> + <figcaption>The author.</figcaption> +</figure> + +If failure is the key to learning, this man is locked out, politely buzzing the neighbors in the hopes they’ll let him back into their apartment building. + +On Sunday, September 28th, 2025, Chicago resident and first-time half-marathoner Henry Webster, 29, ran in the Chicago Half-Marathon and performed exactly how he planned. After training for two months to run 13.1 miles in two hours, what another half-marathon sign-up form called perfectly average, he crossed the finish line with two minutes to spare. + +While he is a hobbyist 5K runner, this was Mr. Webster’s first time attempting runs at longer distances. When asked how he came up with the target number, he said, “I added a bit of a buffer to my 5K pace and it came out to around two hours. I figured that’s a nice, round number.” + +In his reaction to the performance, he was uncomplicated, if uncompelling. “I said to myself I was going to do something, and then I did it. I don’t feel any strong emotions.” After being reminded that this is prime content for a social media post about personal improvement, he dug slightly deeper. “My splits were tight, even slightly negative. Maybe that means I made it too easy on myself. I should have pushed harder. On the other hand, I had a target and drilled that nine minute-per-mile pace into my head over two months. I did exactly what I thought I was going to do, so what more could I possibly want?” + +The ambiguous sentiment hasn’t deterred him from participating in more half-marathons. He went home and signed up for another one in six months. Asked if there was a new target, he finally had an air of excitement. “One hour and forty-five minutes. Quarter clock turn. Eight minutes-per-mile. I like round numbers.” diff --git a/posts/2025-10-27_personal-code.md b/posts/2025-10-27_personal-code.md new file mode 100644 index 0000000..f038814 --- /dev/null +++ b/posts/2025-10-27_personal-code.md @@ -0,0 +1,109 @@ +title: Rules for Personal Code +date: 2025-10-27 00:00 +--- + +Writing code in my free time can feel like battling with myself. +I do it because I enjoy it, but I often get in my own way. +The main issue is treating personal code similarly to what I write professionally. +Some instincts that are important for professional work bring personal projects to a halt. +I'm working to reorient myself to viewing code written in my own time differently. +This way I can do, learn, and finish more. + +## Definitions +_personal code_ - software projects for satisfying an individual's urge to create, for whatever reason + +_professional code_ - software projects for a large audience, often worked on by multiple people, that provide some value to end-users + +## Rules + +### 1. Assume no one else will ever see the code +This doesn't mean the code is unintelligible. +I still might have to understand code I wrote a week or a month or a year ago. +Like any kind of writing, we're going to change our approach depending on the audience. + +Writing code professionally is like working on a textbook. +Everything should be spelled out and documented. +Newcomers can open a textbook to any section and be able to retrace information to understand. +In programming we do this with docs, comments, and logs. +These help a teammember who might have to change a part of the code they haven't touched yet. +While we get explainability and traceability, we also get heft. +Textbooks are big and tediously constructed. +Big and tedious is the enemy of personal code. + +Writing personal code is like taking good notes. +It should be organized and thoughtful, but it shouldn't worry about the full context. +Shortcuts can be taken that wouldn't pass a textbook review board or a code review, and they should be used as much as possible. +The goal is to bring it to life, not to make its implementation understandable to everyone. + +### 2. Assume no one else will ever use the code +Some common dangers: + +* Supporting multiple + * operating systems + * databases + * cloud providers +* Environment variables +* Command line arguments +* UI customization +* Nitpicking functionality + +These can enable great usability, but they're often overkill for personal code. +Hardcode, hardcode, hardcode until there's no choice but to add that command line argument. +Professional code often has lots of optionality, because it's used by a diverse group that wants to work with a lot of knobs. +Personal code is likely only being used by one person, so we only add the knobs we absolutely need. +That frees time to work on core functionality and keeps code simple. + +I almost named this rule "Don't think like a product owner." +Sometimes I get stuck spending time on "sharp edges" and minor annoyances that a product owner would bring up. +By assuming the only user is me, I don't lose focus and energy on productization side quests. + +### 3. Don't worry about originality +"Don't reinvent the wheel" does not apply to personal code. + +With professional code, we're expected to balance buying from a vendor vs. building ourselves. +Personal code has no such economic considersations. + +I think the current culture is too prone to "yet another" critiques and pointing out how to do something in as few steps as possible. +It's powerful to be able to quickly and cheaply tie together off-the-shelf tech into something compelling, but we should still be able to do things the hard way and build what's already been built somewhere else. + +It's a great way to practice and learn. +Writers get better by writing but also by analyzing other work. +Recreating tech is like mapping out our favorite stories to understand how the author did their magic. +There might not be a market for our knock-off, but that isn't the point. + +### 4. Don't spend more than 5 seconds on the name +The first name that comes to mind is probably the right one. + +It's fun to think of names, but with personal code it's a waste of time. + +## Closing Thoughts + +These rules are coming from my own experience, which I'm not sure is very universal. +Plenty of folks only write professional code or personal code. +I'm a bit jealous of those only writing personal code, as I'm sure they get a lot more done. +Professional code is how I make a living, so I have to keep switching hats. +That being said, there's plenty I learn from professional code I can apply to personal code, and vice-versa. +Others might not have as hard a time moving between the two worlds. + +### Should any personal code be public? +A common trigger for me professional-izing is when I make a git repo. +That generally means I'll be pushing it to GitHub. +Even though they've made private repos free, I still default to public so I can show people how much I'm coding. +In the end, it's a vain signal that doesn't mean much of anything. +Just because I'm writing code, shouldn't mean I have to share it to prove anything. + +Still, personal code *can* be public without breaking the rules. +That's why I said "assume" no one will read it or use it. +Looking at each other's code is fun, especially when the project isn't commerical-grade. +It's one of the reasons I enjoy the folk art section of art museums. +Keeping in the back of my mind somebody might look at it is hard without clouding my judgement when coding, which is why I need the rules. + +### Can personal code become professional code? +Plenty of software starts out to solve one person's needs and ends up solving a bunch of people's needs. +I don't think we should remotely assume this will be the case for our personal code. +If it ends up being so useful, it will probably need to be rewritten with this new goal in mind. +That shouldn't be difficult because personal code is by neccessity bare-bones. + +It's possible a toy project can turn into a company or the next great open source tool, but try not to think about it too much! + + diff --git a/posts/2026-01-31_time-and-place.md b/posts/2026-01-31_time-and-place.md new file mode 100644 index 0000000..ef4343f --- /dev/null +++ b/posts/2026-01-31_time-and-place.md @@ -0,0 +1,70 @@ +title: A Time and Place +date: 2026-01-31 00:00 +--- + +In my last year of high school, I had to take graduation photos. +We were told to bring some props that showcased our interests. +I loved playing music, so an instrument would be a natural choice. +Being the cranky teenager I was, I thought the whole exercise was _corny_. +Rather than my beloved black Fender Strat, I brought a toy keyboard I found at a thrift store. +There was a questionnaire to fill out before the shoot. +When asked to describe my personal style, I put: 'Manchester, 1980s.' + +<figure> + <img src="/images/magical-light.webp" alt="One of my graduation photos."/> + <figcaption>One of my graduation photos.</figcaption> +</figure> + +When I wrote that answer, I was thinking of Factory Records and people like New Order's bassist Peter Hook. +Reading his book _[The Haçienda: How Not to Run a Club](https://factoryrecords.org/cerysmatic/the_hacienda_how_not_to_run_a_club.php)_, we get a front-row seat to the life of the club at the center of it all. +I hadn't read the book at the time, but I had a love for everything they were doing: the sounds, the looks, the graphics, the atmosphere. + +Why did a suburban Chicago kid think post-industrial, austerity-era Northern England was the place to be? +The eye-popping schedules provided by Hook are the strongest evidence. +From Manchester alone: The Smiths, The Duratti Column, Pete Shelley, and (of course) New Order. +From out-of-town: Tears for Fears, Alan Vega, Cocteau Twins, The Cramps, The Pogues. +These musicians make up a sizable portion of my attention for the past 15 years and counting. +To have them playing in once place, in such a small span of time, is astounding. +Brian Eno coined "scenius" to describe this phenomenon: + +> I became (and still am) more and more convinced that the important changes in cultural history were actually the product of very large numbers of people and circumstances conspiring to make something new. I call this ‘scenius’ — it means ‘the intelligence and intuition of a whole cultural scene’. It is the communal form of the concept of genius.<sup>1</sup> + +Factory Records and the broader Manchester scene fit this description perfectly, with the club becoming a physical locus for that collective energy. + +The closest experience I've had to the Haçienda is Knockdown Center in Brooklyn. +I lived within walking distance most of my time in New York and it was one of the first places I went to. +It has the cavernous, industrial setting and the wide array of musical styles. +Over the years I've seen acts from Turnstile, to SOPHIE, to Godspeed You! Black Emperor there. +Knockdown Center grew on me because it catered to a variety of artistic voices, just like the Haçienda. + +At the same time, it never felt like it was building a scene like the Haç. +There were some NYC acts I saw, like Parquet Courts and Avalon Emerson, but it was more artists who had already honed their craft, rather than a primordial hot tub. +It could be due to how differently scenes are shaped with the internet. +Another point of contrast: Knockdown is very well run, and I always felt safe. +In the end, the lengths the Haçienda went to experiment were unsustainable, even if culturally valuable. +It's not surprising future club owners wouldn't want to replicate its formula. +It's also possible I simply wasn't paying enough attention during my time there to notice a developing network. + +Looking back on when I took that graduation photo, I was being spiteful. +After a couple of years, I felt bad about being such a brat. +Now, I can't help but laugh and appreciate the memory. +If I had gotten what I wanted at the time, there wouldn't be any photo. +I wouldn't have any story to tell. +Whatever I've learned since then, I can't go back to that period and do it differently. +For that time, at that place, that was _me_, and anything else couldn't have been. + +Running the club took a huge toll on everyone involved, financially and personally. +Despite all the suffering, I know why Hook is wistful. +So much grew out of that club, even if it never went according to plan. +They created a place so peculiar it inspired me across decades and across an ocean. +It was messy, but a reflection of that time and place, and if it played out any other way it couldn't have been the Haçienda. + +_This was written for the [IndieWeb Book Club](https://indieweb.org/IndieWeb_Book_Club), January 2026. Special thanks to [Mark](https://marksuth.dev/posts/2026/01/indieweb-book-club-january-2025-the-hacienda-how-not-to-run-a-club) for hosting and bringing this book on my radar._ + +_While I was reading, I broke out my copy of_ [Factory Records: The Complete Graphic Album](https://factoryrecords.org/cerysmatic/fac461_factory_records_the_complete_graphic_album.php) _by Matthew Robertson. It ended up being an excellent companion with plenty of Haçienda ephemera to pore over with new insight._ + +## References + +<ol class="footnotes"> + <li>Eno, Brian. <cite>A Year with Swollen Appendencies</cite> (Faber and Faber, 1996), 354</li> +</ol> diff --git a/posts/data-entry.md b/posts/2026-02-21_data-entry.md index 0a0ed66..4065c46 100644 --- a/posts/data-entry.md +++ b/posts/2026-02-21_data-entry.md @@ -1,5 +1,5 @@ title: The Joy of Data Entry -date: 2026-02-21 12:13 +date: 2026-02-21 00:00 --- <figure> <img src="/images/data-entry.webp" alt="The setup"/> @@ -25,6 +25,9 @@ header nav { header span { margin-right: 10px; } +section header { + font-style: italic; +} nav ul { list-style-type: none; border-left: 1px solid ButtonText; @@ -48,6 +51,13 @@ p { margin: 1rem 0; line-height: 1.5rem; } +sup { + font-size: .75rem; + line-height: 0; + position: relative; + vertical-align: baseline; + top: -0.5em; +} img { width: 100%; height: auto; @@ -55,3 +65,9 @@ img { figure { margin: 1rem 4rem; } +.footnotes { + font-size: smaller; +} +.footnotes li { + margin-left: 0; +} @@ -90,7 +90,7 @@ (define items (rss-items post)) (if (member "feed" (post-tags post)) - ;; TODO use dates from the feed for these as well? + ;; TODO use dates from the feed for these as well? - most recent pubDate? ;; TODO combine structure between the two types `(section (h2 ,(post-ref post 'title)) ,(rss-items-template @@ -100,6 +100,6 @@ (a (@ (href ,(post-uri post site prefix))) "See more.")) `(section (h2 ,(post-ref post 'title)) ;; TODO fill in datetime correctly - ((time ,(date->string*(post-date post))) + ((header "updated " (time ,(date->string*(post-date post)))) ,(post-sxml post))))) posts))))) |
