markjgsmith

2023/08/31 #

  • Unblocking myself - I've been listening to quite a few podcasts the past 48 hours, yet for whatever reason, no major interesting thoughts have been arising to explore via notes. I'm not sure what it is, perhaps it's because I'm not thinking about code, or maybe the topics covered are too distant for me to have any strong opnions. Or maybe the very notion that I'm blocked from coding is causing me to be blocked in my writting too. So I'm writing this note to see if it unblocks me. #

  • That ambient stagnation feeling - I'm reading this Verge piece about Google and search and how AI is changing all the dynamics of the web. It's part historical, looking at the past, but also very much about the future, yet for some reason I'm reading and reading and it just feels like I'm watching paint dry. I don't think it's terrible writting, it's the sort of article I usually am really into.

    I'm reading it in Pocket so all the website styles have been removed. The article looks very dull, black text on white background. That seems like a plausible explanation, though I do often read articles in Pocket where that doesn't occur. Am I just in a bad mood? I'm feeling quite chill, but I have an ambient sense of stagnation that's difficult to shake. I kind of know already before I start anything that it won't get resolved. So why bother?

    Well I managed this note didn't I? Take that stagnation.

    What is that and where does it come from? #

  • Remember to listen to music more often - Sometimes no matter what you do life just feels flat. The weather today has been particularly lousy, just grey and an on/off drisley rain, that won't make it's mind up. I decided to stop listening to tech podcasts, for some reason most episodes in my podcatcher look to be bitcoin and crypto related and I'm feeling like I have reached digital money podcast saturation.

    Decided to change track completely abd listened to the latest Rest is History podcast about Sixties Fashion. Interesting, fun, colorful and such a fascinating period culturally. The Teenage Revolution and Swinging London definitely worth a listen. Cheered me up a bit.

    Continuing on in the same anything-but-tech approach to the day, now I'm listening to A History of Rock Music in 500 Songs podcast. I'd already listenned to the start of the Dark Star by the Grateful Dead episode week before last. It's epically long so not likely to get through it all today, but it's nice to get out of tech and programming for a little while and into music. I have to remember to listen to music more often. #

Today’s links:

  • CSS Nesting just landed in Firefox 117 - Wes Bos Twitter thread where he gives 11 examples of the new CSS nesting feature which is now implemented in all browsers. This is awesome. Having a nesting feature in native CSS will make things so much easier to organize. twitter.com #

  • Bézier curves - Richard Ekwonye did a deep dive on this topic and created this article which containts some excellent interactive examples illustrating how Bézier curves are used in animation easing, but also in adding curves to simple and complex shapes found in fonts, icons, illustrations, data visualization charts, 3d objects and other visual elements. blog.richardekwonye.com #

  • The new economics of Twitter outrage - The twisted economics that are playing out on Twitter with Elon Musk's new rules. It has changed the "main character" dynamic from something that could benefit people that fitted into existing structured of business, politics and media to one where "you’re just paid directly by a billionaire -- though only if you can afford to pay him first". I'm not sure what it is exactly but some things in this article ring true to real life for me. www.garbageday.email #

  • Should you use AsyncLocalStorage? - I've read through this a couple of times now and though I do understand most of the code, I feel like I'm missing something crucial. It looks like it might be a very useful nodejs API but I'm not seeing yet exactly what type of use cases it could br relevant. Hopefully I'll get some more time later to find more examples. eytanmanor.medium.com #

2023/08/30 #

  • What if it was no longer possible to distinguish between WMD and CND? #

Today’s links:

  • Applying SRE Principles to CI/CD - An interesting metrics based methodology to ensure an acceptable service level for your CI/CD system. It's the sort of approach that many of the larger engineering teams use with Service Level Objectives (SLOs), Service Level Indicators (SLIs), and Error budgets. I like the sound of this approach, as long as it doesn't drain the life out of the team, you have to leave room to enjoy yourselves a bit. buildkite.com #

2023/08/29 #

  • Very long timescales

    We are enterring a new era where the timescales we have to consider for practical purposes when we build our software systems are much much longer than anything previously. And this is going to be very strange. Lots of narly edge cases and counter intuitive situations. The new Wordpress 100-year plan is an example of this. Long term nuclear waste storage is also an example that is related.

    From the linkblog 2023-08-27:

    Wordpress: The 100-Year Plan - "The 100-Year Plan ensures that your stories, achievements, and memories are preserved for generations to come. One payment. One hundred years of legacy. US$38,000." - It just so happens to be $1 per day, which means even if you only had 1 customer you might just be able to pull it off. What a curious price, don't you think?

    With that in mind the lastest Duncan Trussell Podcast with Mitch Horowitz is very interesting. Of course it's quite far out there in a lot of places, but like it or not, this stuff is the prior art and we should consider it in some way, because these questions that we need solves for are very challenging indeed. Much more challenging than we realise at this point. Being practical at timescales that approach a human lifespan is very difficult indeed.

    You have to start thinking generationally, and we haven't really even started building tools and processes for that. This is especially the case for free and open source software, which doesn't really have many parallels in our past. You might think that it's not that relevant, that these are outliers, but when you look at the technologies we are developing in the biology and life sciences sector for example, IMO these types of dilemas are going to start cropping up much more frequently.

    Update: I just listenned to the latest Bankess podcast. Not much else to add at this point, but it's clearly very relevant. This stuff is very complicated even before considering the very long timescale implications.

    It's like we are all climbing a cliff together. It's potentially very dangerous but with the right process and equipment many of the dangers can be mitigated.

  • How much worse? - Quite a lot of people are worried about the prospect of the metaverse, where we spend all day with a mask strapped to our faces. I wonder whether the lesson here is that that's not far off what we are already doing. How much worse is it than staring at a monitor / laptop screen all day long? It can literally be measured in centimeters. #

  • I've had this quote going around in my head that I heard David Sachs mention on the All-in podcast last week.

    "We know they are lying, they know they are lying, they know we know they are lying, we know they know we know they are lying, but they are still lying." – Attributed to Aleksandr Isayevich Solzhenitsyn

    It's heck of a quote, made all the more viceral by the picture of a Solzhenitsyn juxtaposed. #

Today’s links:

  • 🚀 New Post: Very long timescales - A new era is begining where we need to consider very long timescales when building software. Lots of strange things to consider, especially in free and open source software. markjgsmith.com #

2023/08/28 #

  • Double meanings across cultures and languages - This is my first attempt at writing about this so it might not make a lot of sense. Mixing cultures is complicated, especially when there is a language barrier. One thing that makes it very confusing for everybody is double meanings. Double meanings are just part of a language, sort of unavoidable, but as well as causing confusion they can create amusing situations, but also arguments. The point is it’s important to be aware of them, which isn’t easy, but over the course of a lifetime your brain gets better at it.

    This note birthed the blog post: Double meanings across cultures and languages. #

  • Double meanings across cultures and languages

    This is my first attempt at writing about this so it might not make a lot of sense. Mixing cultures is complicated, especially when there is a language barrier. One thing that makes it very confusing for everybody is double meanings. Double meanings are just part of a language, sort of unavoidable, but as well as causing confusion they can create amusing situations, but also arguments. The point is it’s important to be aware of them, which isn’t easy, but over the course of a lifetime your brain gets better at it.

    The other thing to remember is that in any interaction where people are at different levels of understanding of a language, the focus of attention and comprehension of those involved will often be at different levels of abstraction. When traveling in Asia, I notice again and again that people here understand many english words but they often concentrate on syllables and sounds of the words. This makes sense because they are not writing the words so the word boundaries aren’t so obvious.

    Anyway what happens is confusion much of the time but actually you also end up learning double meanings in your own language(s) that you had never noticed before. It's unbelievable how many of these you miss when growing up, how often this happens. Much of the time this is in fact interesting, though it does sometimes get rather annoying being stuck right at the lowest level of abstraction. I'm constantly amazed at how often in english the meaning at high levels ofabstraction is so very different from the meaning of the individual words. It's often the exact opposite!

    No doubt there is some technical reason why this happens, due to how languages evolve, cultures shift, meanings change, even get reversed. If you know two or more languages, especially of neighboring countries that have historically been at war a lot, you'll notice lots of oddities that can't possibly be entirely by chance.

    Something else to remember is that the way some other languages are structured will affect how people interact with the language. The sounds you make have totally different meanings in other languages, and it’s difficult to not see those other meanings, which can lead to people being offended. Also you have troublemakers (on all sides!) that think it’s absolutely hilarious to play tricks with these language double meanings. Others that will use it as an infinite source of metaphorical things to hit you with.

    In short it’s quite a minefield but can be a source of joy and fun and learning, especially when there is some trust and a little understanding that these dynamics exist.

    Update: As I was converting the note that started this thought into this blog post, an elderly, somewhat beligerant, vietnamese chap in his mid seventies sat next to me. I mived my bags so tgere was room for him. He was going for his morning walk, exercising what looked to be a leg injury, but perhaps brought about by a stroke.

    We had a nice chat in english, even if it was short sentences, with some ideas that went nowhere, disapearing into the void. Some very long pauses, which isn't so bad, sometimes it's actually a good thing, gives you time to sense each other's presence. His son is a doctor, working in a hospital, which I think is nearby. Also vietnam is #1. He was pretty clear about that :)

    Eventually a couple of elderly ladies passed by and picked him up, helping him on his way to his next destination. Quite fitting such an encounter should happen as I'm blogging about cultures and language.

Today’s links:

  • Ex-Meta Researchers Have Raised $40 Million From Lux Capital For An AI Biotech Startup - Much of the hype in the recent LLM boom has centered around generation and processing of various digital media, whether that's text, audio, video, image etc. It seems like the next wave is going to be a big level up as the technologies are deployed into the science industries that seek to make very futuristic discoveries in areas like biology and material science. There is a lot more money in these areas an the scope of is enormous because the possibilities space is so mind bogglingly large and relatively untouched by current methods. Lots of interesting detail in this article including companies that are having an impact. www.forbes.com #

  • Giving up the iPad-only travel dream - Long term Apple user Jason Snell goes into some detail as to why, at least for now, he has given up trying to use his iPad as his main device. The critical thing for him is the terrible experience recording podcasts, but he also goes into more broader problems some face. People that need to be able to adapt their workflows in dynamic environments run into issues, because the iPad's top down committee based development approach is just not flexible enough in an acceptable timeframe. sixcolors.com #

  • Patterns for Reactivity with Modern Vanilla JavaScript - I haven't done a huge amount of frontend javascript recently, so this was a very refreshing and enlightening piece. It collects together the main patterns used to implement reactivity in the browser using plain old vanilla javascript. Patterns like PubSub, Observer, Proxies, Signals and Observables as well as using Object.defineProperty. Also covers using classes, async and native browser APIs such as MutationObserver, Web Components, IntersectionObserver, requestAnimationFrame and the Web Animations API. Some great examples such as reactively rendering a simple HTML UI listing pizzas, interactive scrolling, animation and game loops, reactive animations, and reactive CSS. Monster article packed with awesome stuff. frontendmasters.com #

2023/08/27 #

Today’s links:

  • Notes from a Mastodon migration - This is a must read if you are trying out Mastodon, especially if, like me, the main draw was that it's an open system and you can move server at anytime. I thought it was as easy as packing your virtual bag and venturing over to your new online home. In reality you will lose several things. Replies to your old threads won't reach you, your old posts remain in the old location, DMs received from people can't be exported, and lists you got added to won't point to your new username. That's quite a lot of important stuff! Definitely worth testing the process before you get too comfortable. erinkissane.com #

  • Get NIP-05 verified - For Nostr verification badically you have to add a json file on your website located at /.well-known/nostr.json. What you put in this file is a bit condusing imo. nostr.how #

  • Wordpress: The 100-Year Plan - "The 100-Year Plan ensures that your stories, achievements, and memories are preserved for generations to come. One payment. One hundred years of legacy. US$38,000." - It just so happens to be $1 per day, which means even if you only had 1 customer you might just be able to pull it off. What a curious price, don't you think? wordpress.com #

2023/08/26 #

  • UK politics cognitive disonance

    I was listening to the US politics discussion on the latest All-in Podcast earlier, it's very good you should give it a listen, and I was struck with how much more grandiose US politics is than UK politics. It makes sense because they are the world super power so everything they do is in that context.

    The slightly odd thing about UK politics is that because we used to be the world super power, all the places where politics happen still have the grandiose vibe, yet the politics isn't in comparison. It's sort of commical in a way. All these politicians acting out their careers on this incredible stage, yet the plays they perform are children's plays. I wonder how that affects their ability to govern. Are they out of touch with the people?

    And yet perhaps it is still important to be on a big stage. When we were participating in the European Parliament, would we have been able to have a big impact had the politicians not been trained on the world class british political stage? At the EU level, politics is a much bigger game so to speak. I'm not sure how to square the circle, or indeed what I'm trying to say. I worry british politics is the wrong shape, bigger on the inside than on the outside.

  • UK politics cognitive disonance - I was listening to the US politics discussion on the latest All-in Podcast earlier, it's very good you should give it a listen, and I was struck with how much more grandiose US politics is than UK politics. It makes sense because they are the world super power so everything they do is in that context.

    This note birthed the blog post: UK politics cognitive disonance. #

Today’s links:

  • Create A CI/CD Pipeline For Front End Projects - Good article to read if you are looking to get a high level overview of continuous integration / continuous delivery (CI/CD). Lists the major tools used and some example configuration files cli commands and scripts to get a sense how all the pieces fit together. Falls short of presenting a fully working repo though, you'll need to do that yourself, but it's a good article to get situated. blog.openreplay.com #

  • France to spend €200m destroying wine as demand falls - Interesting data point. The wine industry appears to have been particularly badly wrong footed by the COVID supply shock. Consumption has fallen in double digit % while production rose by 4%. The emergency measures are to ensure there isn't a collapse in prices. www.bbc.com #

  • 🚀 Latest Newsletter: Bingeing the Past and Building the Future (Issue #129) markjgsmith.com #

  • Web Scraping for Me, But Not for Thee - There have been a lot of web scraping court cases over the years, and the courts don't seem to have a firm handle on the situation. Add to that the recent surge in companies looking for data to train their AI models. It's a hot topic that looks likely to see some controversy as companies take contradictory and hypocritical stances when it comes to web scraping. blog.ericgoldman.org #

  • The EU's war on behavioral advertising - Lots more detail about the new regulations in this article. Maybe they just averted a future apocalypse. The at infiniti situation with all this behavioural advertising is pretty scary in my opinion. At some point it ceses to be advertising. What does it become? Probably unpleasant and very confusing causality bugs in spacetime. I'm only half joking. I'm not sure it's a good idea to find out. thisisunpacked.substack.com #

2023/08/25 #

Today’s links:

  • Use web components for what they’re good at - Nolan Lawson continues the discussion started by Dave Rupert a few days ago. A lot of his points make sense. For me though the big downside of web components is the fact that serverside rendering doesn't really work. That means web component based websites are poor at working offline. I think websites, especially content focussed ones, should be able to work offline by default, fancy javascript stuff should be a progressive enhancement. IMO many folks are too quick to build fancy stuff that falls over on the basics. nolanlawson.com #

2023/08/24 #

  • Nostr is fancy RSS - Instead of static files over HTTP, it's JSON messages over web sockets with added public key cryptography. So you get realtime and much better authenticity guarenties. But it's basically RSS. #

  • Hardware product idea: Portable cloud native in a box - I'd like to be able to do cloud native web development completely offline. I think this could be achieved with a special developer device that creates a minimal dev environment, with mock web services, all accessible over wifi.

    Physical description:

    • Device size of a mobile phone chargeable battery
    • Can run off power outlet or connected to rechargeable battery
    • WIFI hub

    Software features:

    • Browser / mobile app interface
    • One click install of apps
    • Github actions style CI/CD
    • Mocks of all popular cloud services (S3, Dynamo DB, Queues etc)
    • Security / IAM / firewalls

    Changelog did an interesting homelab episode, somewhat related, included a section on raspberry pie running proxmox. #

Today’s links:

2023/08/23 #

  • It's quite frustrating not being able to publish new content to the website because of not having any build minutes. Of course this happens both as I'm starting to use the new notes feature that I added, which is leading to me writting a lot more, and as I'm coming up with lots of new ideas for code improvements. I don't want to code until I have build minutes otherwise I'll end up in another feature branch merge extravaganza.

    The other thing that is absolutely typical is that now that I'm not coding, everything around me is relatively quiet. It's so odd, when I'm coding things are chaotic and problematic. This happens literally everytine, it can't possibly be random. I mention this because maybe some day it will become obvious what has been going on and perhaps this data point will be useful in getting to that place. #

  • AI progressive enhancement - Politico Tech has an interview with Google's Kent Walker where they discuss how providers of critical infrastructure should deal with AI. They mention an AI off switch. That got me wondering whether this is similar in some way to progressive enhancement that we use in modern web development. Perhaps a similar approach is necessary for designing these large systems. It should be possible to remove AI and the system should continue to function, though perhaps in a degraded state. #

Today’s links:

2023/08/22 #

  • I ran out of build minutes, so that's the end of new content on the website until next month. It's the same thing that happened last month. Last month I ended up going on a bit of a coding frenzy. Of course I couldn't test any of the code so I ended up with around 25 feature branches that I then had to merge in once the new billing cycle started and I had a fresh set of build minutes. That merge extravaganza was in a way what led to me running out of build minutes this month.

    This note birthed the blog post: I ran out of build minutes. #

  • I ran out of build minutes

    I ran out of build minutes, so that's the end of new content on the website until next month. It's the same thing that happened last month. Last month I ended up going on a bit of a coding frenzy. Of course I couldn't test any of the code so I ended up with around 25 feature branches that I then had to merge in once the new billing cycle started and I had a fresh set of build minutes. That merge extravaganza was in a way what led to me running out of build minutes this month.

    The silver lining in all this is that I have the new notes feature, which I'm finding really useful. It's also raising lots of questions in my head about frictionless publishing workflows. This month I'm going to try not to write any code while build minuteless. That's harder than you might imagine. The impulse to code is quite strong.

    I'm going to keep publishing links, notes and blog posts though. They will be quite easy to merge back in because you don't tend to get bugs or merge conflicts with prose. There will probably be an increase in spelling mistakes though, as I won't have the opportunity to read back what I've written after publishing.

    These two incidents have highlighted a downside to the current website architecture. Namely that if the build system is blocked for whatever reason, then that not only affects coding new features, but it directly affects adding new content. I spent a while thinking of ways to mitigate that but I haven't managed to come up with a full solution.

    The limited build minutes was the reason why I batch all content updates to once per day. That way the number of build minutes needed is predictable. I'm also looking to optimize the deploy workflow. The npm cache I added hasn't worked for some reason, but I'm confident I'll find a way to speed things up.

    Having said that, the build system could go down for other reasons too. Ideally there would still be a way to publish even if the build system was down, even if it was a slower method. I'm not sure how I could achieve that short of rendering the markdown on the client, and I'd rather not do that. Something to think about I suppose.

  • I've been meaning to write a blog post about the Vision Pro for several weeks now. It keeps getting relegated on my various todo lists in favour of other more pressing items. I was reminded of this by a Dave Rupert piece that explores why his initial Vision Pro entusiasm is now wanning.

    I'm still kind of excited about the device, but I was always somewhat puzzled by the expectation that this is going to be a mainstream device. A device that folks not on a plane are going to be using to to watch movies and have video conferences. This just seems plain ridiculus to me, especially given the price.

    This note birthed the blog post: The real Vision Pro opportunity. #

  • The real Vision Pro opportunity

    I've been meaning to write a blog post about the Vision Pro for several weeks now. It keeps getting relegated on my various todo lists in favour of other more pressing items. I was reminded of this by a Dave Rupert piece that explores why his initial Vision Pro entusiasm is now wanning.

    I'm still kind of excited about the device, but I was always somewhat puzzled by the expectation that this is going to be a mainstream device. A device that folks not on a plane are going to be using to to watch movies and have video conferences. This just seems plain ridiculus to me, especially given the price.

    I think we are on the cusp of many industries being revolutionized by AI, LLMs, cloud computing, cheap sensors and there is going to be a need for powerful visualisation tools. For these types of industries the price isn't an issue. Traditionally these areas of the econony have not been 'cool'.

    Perhaps the opportunity with the Vision Pro isn't with consumer apps, but with industrial apps. Sectors like construction, interior design, synthetic biology, materials science, big pharma, supply chain management and many others, have money to spend and a need to process large amounts of data in new ways. I see the Vision Pro less as a way to watch movies and more like a welding mask, a speciality device that you use in specific parts of your workflow to accomplish previously impossible data analysis and manipulation tasks.

    Remember there's this other product called the Mac Pro that was introduced quite recently. Top of the line, very powerful. Also very expensive. I bet it would look quite nice as a package with the Vision Pro. They are going to have to figure out some way to make it more attractive given that even high end visual effects artists are happy just using their Mac Books.

  • Multi-paragraph posts - It occurs to me, having spent much of the week thinking about post length, and whether posts should have titles, that a big change in social media was allowing posts to be multi-paragraph. I'm not sure when it happened exactly. My recollection was that Twitter didn't initially allow multi-paragraph. I'm fairly sure in the first few years I was always posting single paragraphs.

    I'm finding I really like the ability to post multi-paragraphs. It's like that on Mastodon, and Threads too. It makes a big difference in the shape of the thought you can express. It's a small detail, but I think it makes a big difference. #

Today’s links:

2023/08/21 #

  • Having a template engine should be standard in all operating systems. It should be possible no matter where you are located or what you are doing to render out a template and get back the resulting string of text in a way that you can use it to accomplish the task you are doing. #

  • Text template rendering should be standard in all operating systems

    It should be possible no matter where you are located or what you are doing to render out a template and get back the resulting string of text in a way that you can use it to accomplish the task you are doing.

    Seems like an easy ask, but it's actually quite tricky because the UI is different depending on where you are and what you are doing. What that means is that it's not obvious how you get or provide the required inputs to the template rendering, but also how you use the resulting string.

    Are you on the command line in a shell? Or on the Desktop? Or maybe you are in an app?

    Where are the inputs you need to insert into the template? How are you going to get those? Manually type them? Auto generate them by running a script?

    What are you going to do with the rendered string? Copy and paste it? Stick it in a file? Perhaps insert it into a form?

    Once you stop to think about it for a few minutes, it's not at all obvious how to implement a system wide feature like template rendering.

    The most obvious way might be to make it an enhancement to the standard copy / paste feature of the operating system. Have a way to run a script to fetch data, pass it into a template you select, and get back the rendered output on the clipboard ready to do with it as you please.

    That would be really useful to me right now. I already have a title for this post. It's right there in the frontmatter. What I want to be able to do is select the title using the standard operating system copy feature, then run it through a template that would transform it as follows:

    Text template rendering should be standard in all operating systems

    would get transformed to:

    text-template-rendering-should-be-standard-in-all-operating-systems

    That would give me the text slug which I could use in the filename of this blog post's markdown file.

    2023-08-21-081100-text-template-rendering-should-be-standard-in-all-operating-systems.md

    You would probably need to have a library of utility functions you could use in your templates. In this case we would need some sort of slugify utility function as well as datetime manipulation functions.

    I could continue using whatever editor I was using as normal, using it's 'Save As' feature, but no need to mess about getting the filename correct. In a couple of clicks it would be correct every time. It's small features like this that have the potential to remove huge bariers.

  • I think that maybe I've found the solution to the notes shouldn't have titles, but actually sometimes they need titles problem. Instead of a full on title, which looks weird next to a bullet point, just use bold text for the start of the sentence.

    I noticed Politico does this in their newsletters and I think it looks quite nice. Sort of breaks up the wall of text, giving your eye something to focus on as you skim. I did it with the previous note. That one actually turned into a blog post. So that was quite nice. #

  • The thing that's very silly about all this overthinking of notes and titles and blog posts is that although it's definitely freeing to just start writting without worrying about a title, I do sort of end up creating a title anyway when I commit the file to the git repo.

    For example the previous note item had commit message "Just use bold" and I'll probably call this one "Overthink silliness". So perhaps having to come up with a title isn't so difficult. Or maybe it's just that since the emphasis isn't on the title, it ceases to be a problem. If I really get stuck I could just not enter a commit message. No big deal. #

Today’s links:

2023/08/20 #

  • I'm thinking that I need a way to turn a note into a blog post. Reason being that short notes should definitely just be notes, but often the note gets long and is effectively at that point a blog post. Once it has a title it's definitely a blog post at that point.

    I should be able to create a special component that inserts a blog post into a note. That way I can move a long note over to the blog, so it's a proper blog post, but still have it appear within the notes. I'll have to think about this a bit.

    I'm really liking the fact that the notes feature is enabling me to write more freely but I need to figute out the note to blog post transition. Blog posts are less ephimeral than notes and have additional meta data. Hopefully I'll figure this out. Still feels a bit awkward at the minute. #

Today’s links:

2023/08/19 #

  • Automation and scripting on iOS sucks

    If there is one thing that could speed up my workflow right now it's having some sort of scripting / automation on iOS. I waste so much time copying and pasting templates and manually replacing text tokens every week. It's so error prone. It's so frustrating. It's so ridiculous.

    One would think that, given how much time I'm wasting, that I would have figured out the Shortcuts app. Well that's how bad the Shortcuts app is in my opinion. There's no disernable philosophy to it. Each time I need to create a workflow I'm completely stumped.

    I can't fugure out how to get input into the workflow. I can't figure out how to trigger the darn workflow outside of Shortcuts. The components all seem to nearly do what I want, but not quite. And so I spend 30 minutes futzing around and eventually give up. Sod it I'll just keep doing the stupid copy pasta dance of doom for another week.

    I just want a fucking bash shell for christ sake, not this god darn fisher price automation bullshit. And actually maybe that's the answer. Technically with iSH I do have a bash shell. The problem though is that eventually I'll need to interface with the other apps. And the only way to do that is through Shortcuts. #

  • I just tried to npm install the frontmatter, ejs and uuid libraries on iSH. They all error out. I don't know if anything changed, last time I tried to install npm modules on iSH at least some of them installed.

    I just need to create:

    1. Markdown files with frontmatter automatically written
    2. My weekly newsletter template
    3. My weekly newsletter promo template

    It can't be that difficult.

    It's basically a basic template rendering. With Shortcuts there is no way to generate a v4 uuid, which I need in the frontmatter. Or at least there is no component for that, and as far as I can tell, no way to create custom components. #

Today’s links:

  • 🚀 Latest Newsletter: Make Things, Take Notes, Profit (Issue #128) markjgsmith.com #

  • JSX without React - Chris Coyier comments on the nice fit and possible usefulness of NakedJSX as a templating library. Basically enables you to write your templates in JSX, but doesn't require React. I thought pretty much the same thing when I saw this a few weeks ago. Being able to build your static pages using components is a big draw. When I have some time I might very well try integrating this library into my static site generator.chriscoyier.net #

2023/08/18 #

  • It's the 3rd day using the new notes feature. I think I'm finding it useful, though it's been a very busy few days so difficult to evaluate. The ease of posting is the big draw for me. I don't need to worry about a title or a url or keeping the length down. I just create a new markdown file and start writting.

    There were several issues:

    • Markdown and ejs not rendering
    • Incorrect day items ordering on main page
    • Incorrect day items ordering on archive pages
    • Daily auto-merge of new items via PR
    • Combine links, blog, podcast, newsletter, notes auto-merge workflows
    • Duplicate code paths in all plugins
    • Fix links auto posts to Twitter
    • Setup notes auto posts to Twitter
    • Setup links auto posts to Mastodon
    • Setup notes auto posts to Mastodon

    At the minute all website updates are done via git, which is a little clunky. Eventually I'll have a better way, but I want it to always be possible to do via git. You'll always be able tobat least use git.

    Hopefully there will be an API, web interface, maybe even a mobile and desktop app. That's a long way off though. I'm concentrating on getting it as smooth as possible with git.

    I'm undecided on whether I like using titles in posts. I have to figure out the flow that feels comfortable. I want to be able to start writing without friction, and if a post is develiping into something substantial, have a way to easily convert it into a blog post.

    One thing that would make posting via git a lot easier is to use something like the iOS Shortcuts app to create empty markdown files with uuid and date added to the file's frontmatter section. Unfortunately I have a major mental block with the Shortcuts app, I literally cant even do basic things, I find it so unintuitive, so that feels a long way off. #

  • I'm still undecided about using titles in notes posts. On the one hand they look a little odd with the bullet points, but I quite like the visual seperation of each note with a bullet. On the other hand, without any titles at all, the whole notes turns into a wall of text. I should probably not worry about it too much. Short notes like this one don't need one, but the previous note ended up becoming quite long and perhaps a title such as 'Notes, day 3' would have been good. #

  • It's friday today, and that means another newsletter deadline is looming. Some weeks by this stage I have all sorts of themes and ideas. Thehose weeks are great, I can see the light at the end of the tunnel. It's not a slog, in fact it's quite fun, feels like riding a bike downhill. This is not one of those week's. I've got basically nothing, feels like I have to hand in some homework tomorrow that I haven't started. Not quite as fun.

    I find that in these uphill climb weeks, the best course of action is to force myself to just start compiling the list of podcasts. I start by copying across the saved episode titles to the newsletter template. Usually as I'm doing that a theme emerges. I then do the same for the links. And try to come up with a title. It's not rocket science.

    I already compiled the list earlier this morning. Nothing really jumped out at me. I'm also a bit distracted by the new notes feature, that's what I'm thinking about. So I might just make that the theme. It's a bit self indulgeant, but I don't create new major features all that often, plus it's probably the most honest thing to do, after all that is what's predominantly on my mind.

    Sometimes it's best to not fight the tides. #

  • Notes origin story

    I was just listening to the latest What Bitcoin Did podcast episode. It's an interview with Doomberg, a bloke that appears to put his voice through a modifier of some type. I guess he's a bit paranoid about privacy. I think he's the front of some sort of bitcoin policy advocat group. Interesting interview. Anyway right at the end they talk about Twitter, or X as it's now called.

    He speaks about his decision to stop posting on X because of the way the platform has been discriminating against Substack, and other X competitors. The Doomberg (collective?) have a popular Substack newsletter. I wasn't aware that the situation was that bad. That's not good. I've got a Substack too! Nowhere near as popular, but still, it feels gross to be contributing to a platform that is trying to hurt me.

    He has decided to only post on Substack, newsletters but also on their Notes app. It totally hadn't occurred to me that Substack had a Notes app as I was creating my latest feature. I did hear about Substack Notes when it was released, but I didn't look at it much. It didn't really catch my attention. I don't know what it is exactly.

    For me the idea of a Notes app goes back much further. When I first started my career in tech, for the first 10 years or so I kept notebooks. Propper ringbound paper notebooks. Everyday I would write down the date at the top of a new page and write a todo list. I'd port the previous days unfinished todos, get rid of unneeded items, and add a few new items. As I went about my day, below the todos I'd write notes. Notes about stuff I was doing, or things I was planning, meetings I'd have etc. I ended up with many many of these notebooks, which I kept in boxes ordered by year. It was quite a collection.

    Anyway, all that to say that when I created my recent Notes feature, I had those notebooks in mind. I also took inspiration from others online that work in the open. Absolutely nothing to do with Substack at all. I like Substack, I hope their Notes app is successful. #

  • I finally found this week's newsletter title. For a second there I nearly wrote the title, but I just remembered these notes will get published about 12 hours before the newsletter. I don't want to ruin the suprise :) #

Today’s links:

  • Open Circuits - Cory Doctorow writes about his recent trip to Defcon, the famous hacker conference in Las Vegas. Sounds like a cool conference, though personally I think I'd be too worried about getting hacked to enjoy myself. He mentions a cool new book about the tiny electronics that power the computers of the modern world. What's cool is that the book, which is educational, reframes these marvelous tiny inventions, highlighting them as beautiful art. I love this. Take something that seems boring and show why it's actually amazing. It's maker culture at it's best. pluralistic.net #

2023/08/17 #

  • Well the notes from yesterday, which was the first day of notes, got published, and there are quite a few issues. Most of which I think are fixable.

    The markdown isn't getting rendered. That's because the stock generic component I used to create the NotesItem component, doesn't support that. That's easy to add. I can copy it from ond of my other components.

    The bullets are making stuff look a little weird, but it's hard to tell until the markdown is rendering so I'll revisit this issue later.

    The most notable isdue is that date items are nit rendering in chronological order. I have re-read through the code and can't find a bug or misconfiguration. I'll need to run the render with debug enabled so I can see the items getting pulled out of the data source and ordered. Should be quite easy to discover what's going on. I'll probably need to comment out all template rendering apart from the notes template so as not to br bogged down in a deluge of debug log output. #

  • The other thing that went wrong was the linkblog links from yesterday didn't get merged. Or at least they didn't make it through to Twitter. I expect there was some sort of merge conflict that blocked the merge.

    Hard to say what that could be. I would have thought there wouldn't be a conflict since the notes and linkblog markdown files are in seperate folders in the repo. Evidently though something is blocking. #

  • One thing these notes might be useful for is rudamentory documentation. If I describe a few debug sessions as I triangulate bugs, I'll have something I can point to later, which could be useful even if they aren't the most polished prose. #

Today’s links:

2023/08/16 #

  • Testing the new notes plugin #

  • Another notes test... #

  • I quietly announced the website's new Notes feature on Twitter earlier. So what it is?

    I've noticed recently that

    1. I'm not writting as many blog posts as I'd like
    2. Linkblog links tend to become quite lengthy

    It's not just me, readers of the newsletter commented about it recently too. It had crossed my mind but the feedback is really useful. Thanks @HackHackHack!

    The notes feature is intended as a sort of working space where it's as easy to add content as the linkblog, but without the contraint of having to associate a link to a post item.

    The other big difference is that notes are chronologically ordered rather than reverse chronologically ordered. The idea being that as you read through them you get a view on what I was thinking about as I went through my day.

    That's in contrast to the linkblog which lists the last link posted at the top of the page. In a sense though both linkblogs and notes are reverse chronological at the date level. They both display the very last day at the top of the page. However they differ in ordering at the item level. Notes are chrono, links are reverse chrono at the item level. That probably makes it sound very complicated, but it's quite obvious once you start reading them.

    I expect what might happen as I use the notes feature, that linkblog links get shorter, and I'm able to write down thoughts more easily. That will hopefully lead to more blog posts.

    Let's wait and see though, it could also just turn out to be extra overhead, and not worth the effort. #

  • There are all sorts of very subtle things to consider, that I'm discovering as I write.

    For example, how do I name the markdown files now that there isn't a url donain, which I use in linkblog link filenames.

    Also should posts have titles? Probably not. One of the things that is nice about linkblog links is that you don't need to think about titles. It's suprising how much friction titles introduce. #

  • One of the things at the back of my mind is the issues I've been facing with the number of files in the repo. There are so many files that my code editor is not able to process changes, often getting stuck, which causes no end of problems. It also takes 10 times longer to post items than it should. At times that ammounts to hours when it really should take minutes.

    I'm finding the ease of posting notes very useful. I've already posted 3 notes! And I think the posting process could be improved further too. #

  • What are notes titles like?

    Just testing what a title looks like in a note. I expect it will look weird because of the bullets on each item. In fact the bullets are likely going to make some of the other posts look odd too.

    I'll find out tomorrow when today's notes get merged. I setup the same workflow as for the linkblog. Every evening the latest notes get merged into the repo main branch via an automatically created PR, and the site then gets rebuilt. That saves on build minutes, but it also avoids issues with RSS feed generation. That can get tricky when you make edits. #

  • I've added an RSS feed for new notes that get added. It's listed on the feeds page.

    The cool thing about my static site generator is that it's at the point now where adding new features is quite easy. Once I had developed the main feature, adding archive pages, a tagcloud page and an RSS feed was as easy as copying a few markdown templates and updating some frontmatter variables.

    Also if any of you were subscribed to the feeds suscription list opml then you wouldn't even have had to update your RSS reader. I actually changed the urls of some of the existing feeds. They changed when I rewrite all my RSS generation code a few weeks back. In had redirects setup so notmally speaking there shouldn't have been any breakages. Sorry if there were though. Kind if unnavoidable.

    I'd be interested to hear from anyboby that is subscribed to the opml file, as unlikely as it might be, because unfortunetly very few readers support this excellent feature. #

  • Improving Github Actions build times

    Since I keep running out of Github build minutes I was thinking about ways to optimise the build. Looking at the github action logs, the obvious place that can be improved is getting nodejs installed and setup. The entire build/deploy/backup workflow takes approx 7 minutes. Installing nodejs takes around 3 minutes, and because I run seperate jobs for build, deploy and backup, I actually end up installing nodejs twice.

    My first thought was that maybe there was a way to create a custom runner. i.e. instead of running the stock ubuntu image, create an image (docker?) with nodejs and perhaps all the modules I use in the static site generator, then use that to run the build. After doing about 30 minutes of googling it seems that's only possible if you are self hosting your own runners. I might be wrong about this, I'll beed to do some more research. Currently I'm stuck using hosted Github runners.

    I noticed while searching that there are some caching actions that enable you to cache build artifacts between runs. The most popular of which appears to be cache. I'm already using setup-node which uses the cache action. There appear to be some caching options I could try, but doesn't seem like caching will improve things much because as far as I can tell it's already downloading a pre built nodejs version. I could be wrong.

    Ideally I want the build to be under a couple of minutes. The actual website build of 17000 markdown files only takes around 45 seconds, so it's a bit ridiculous that the whole build and deploy takes 7 minutes. There has to be a way to optimise. #

Today’s links:

2023/08/15 #

Today’s links:

  • A blog post with every HTML element - One for all the web development nerds out there. A few weeks ago I updated all the HTML tags on the website so I found this post mostly fascinating. However I'm reading offline on iOS, so no way to open up devtools to have a look at the page HTML, which made the post a bit tedious. Great reference article, there are so many details to consider. It's amazing how much thought has gone into even just HTML, nevermind CSS and Javascript. www.patrickweaver.net #

  • Running a Mainstream Linux Distro Natively on Apple Silicon: Fedora Asahi Remix First Impressions - I've been following at a distance the progress being made by the Asahi team. It's super cool that there's a Linux distro that runs on Apple Silicon. I wish Apple would make it easier though. It's strange to me that they are so scared of Linux. I mean they don't seriously think that regular users are going to switch do they? As far as I can tell this would only ever be used by power users and developers. OSX is a tremendous OS for most users, they should be more confident in their creation imho. I also wonder what the Asahi team think of the recent controversy with Red Hat becoming hostile to Fedora. I'd feel better if Ubuntu ran on Apple Silicon. jasoneckert.github.io #

  • The Exploding World of ETFs - I was mildly interested in the this just because it's become the hot topic in bitcoin circles. About 1/2 way through the article though, where he paints the picture of how broad ETFs can get, the thing that sparked my attention was the similarity with content curration. They are like currated content feeds but for stocks. It got me wondering about communities. If you and your friends wanted to invest in the communities that surrounded you, how could you do that? Wouldn't an ETF type model be worth considering? You wouldn't necesarily make money, though you might, maybe the value you got back would be in a more vibrant community that had currents of activity that alligned with your interests. The currator in me thinks hyperlocal ETFs might be interesting as a vehicle for improving the places we live in. Of course there could be downsides too, getting the balance between mainstream and fringe might be a challenge. jameslavish.substack.com #

2023/08/13 #

Today’s links:

2023/08/11 #

Today’s links:

  • @markjgsmith: "It’s one of the strangest things about writing software is that when you are creating something for the first time, it’s totally not obvious how it needs to be.

    Then when you finally get it working the way it should be, you just can’t even remember how it wasn’t totally obvious." #

  • sahat/hackathon-starter - A boilerplate for Node.js web applications - I find it useful to checkout some of these boilerplate style repos occasionally to see the latest trendy services and techniques. I wouldn't necessarily use these outside of a hackathon context because you'll end up with a lot of unnecessary code for your use case. Still this looks on the surface to contain a lot of interesting node / javascript / css / 3rd party stuff. github.com #

  • Jamstack is dead, long live Jamstack! - This week's Bytes newsletter was all about the recent announcement of the demise of the popular webdev architecture / abstract feeling / lifestyle choice. There's something very interesting going on here. It's dead, but it's also quite not dead. In fact it seems to be somewhat benefitting from the recent turmoil's Streisand effect, and I'm ok with that. It feels like something cool might emerge from all this carfuffle. More jamstack stuff here here and here. And also this very pro dynamic database websites piece, which I mostly agree with too, authoring experience is currently very bad for Jamstack sites. bytes.dev #

2023/08/09 #

Today’s links:

2023/08/06 #

Today’s links:

  • Bram Moolenaar has died - Bram created the vim text editor. It was one of the reasons I decided to get more into programing 20 years ago. As a young sysadmin in a VFX shop, I would watch the tools guys effortlessly do things with vim that were pure magic, and at some point I just thought, "that's what I want to be able to do". I got pretty good at vim over the years but never reached vim wizard status. Maybe that will happen some day if the world ever decides to allow me to have another laptop. Strange timing given the latest newsletter, kind of adds to the far out notion that the entire tech industry is fake imo. I mean seriously, what are the chances? Anyway RIP Bram, thanks for vim, Mark. news.ycombinator.com #

2023/08/05 #

Today’s links:

2023/08/04 #

Today’s links:

  • Pixar, Adobe, Apple, Autodesk, and NVIDIA form Alliance for OpenUSD to drive open standards for 3D content - I took a look at some examples that I found in an HN thread discussing OpenUSD and I have to admit it doesn't make much sense to me. It just looks like Python subroutines. Still it's good to see that open standards in this space are being developped, because it appears as though 3D content is going to start appearing in many more places in the next few years, especially with the introduction of the Vision Pro from Apple next year. And Pixar have the most experience working with 3D assets at scale. It will be interesting to see if the 3D workflows they have built translate well to other types of content creators.www.apple.com #

  • Apple have released a Vision OS developer kit. Looks like you can apply and if they like your project they'll send you a free Vision Pro headset. Kind of cool. developer.apple.com #

2023/08/03 #

Today’s links:

  • Yesterday's posts were created by an automated process. I had been building this the week running up to running out of build minutes.

    It's the first time it fully worked. I post the links to a feature branch with a special prefix during the day, and push the branch to the remote. At midnight a Github action runs, creating a PR with the latest links, then auto-merges them into main. That merge triggers a rebuild of the site. When I wake up all the links from the previous day have been published to the website. They have also been automatically posted to Twitter.

    That for me is why Jamstack sites are awesome, it opens up a entire world of workflow possibilities. I know the Jamstack term is going out of favour, but I'm going to keep using it for now. #

2023/08/02 #

Today’s links:

  • What are "Rollups" in crypto? - I've been hearing the term mentioned a lot recently, so I wanted to know how they differ from side chains, and layer2's. I'm still slightly unclear, but it appears layer2's are parallel blockchains to main chains like Bitcoin and Etherium. They take some transaction load off of the main chain, process them, then eventually record them back to the main chain. Rollups are a popular type of Etherium layer2 that aim to help scale the overall network. Arbitrum and Optimism are popular optimistic rollups, whereas Starknet and Loopring are popular ZK rollups. In Bitcoin instead of rollups, the layer2 is Lightning. I've heard some people make the analogy that Lightning is to Bitcoin as the IP protocol is to the internet. www.coinbase.com #

  • WordPress Playground lets you run WordPress entirely in your browser - I guess this is cool. I mean the fact that you can run a serverside program entirely on the client, suggests clientside tech has made some serious progress. I'm having a little trouble conceptualising what it actually means though. It's a little confusing. Having said that, one of the long term goals of my static site generator, which I haven't made much progress on so far, was to be able to run it entirely in the browser. To me THAT makes a lot of sense. And I suppose that if that ever does happen, having Wordpress also be runnable in that environment might be useful, because you could theoretically integrate it into the build process. How about some other serverside programs, like a queue, scheduler, s3 storage, and to go full on kitchen sink, how about a github actions ci/cd in the browser? Why not have an entire cloud dev stack running in the browser? techcrunch.com #

  • Repying to the latest Changelog homelab episode on Mastodon: "What I want in order to be more mobile is a device about the size of a portable battery that can host a Github actions equivalent and some cloud provider api fake endpoints so I can do cloud dev even without an internet connection. Then quickly sync when I am back online." mastodon.social #

2023/08/01 #

Today’s links:

  • The World’s Last Internet Cafes - I featured this article in last week's newsletter issue #125. In some ways it's strange that the internet cafe era is coming to an end because it feels like only yesterday to me that the trend had started. In reality though it's been a while since mobile phones have become pervasive. I hope we find a way to carry on the community aspect of these spaces. I know there are co-working spaces, but we also need spaces that aren't specifically for work, where the vibe is more casual. restofworld.org #

  • The U.K. Government Is Very Close To Eroding Encryption Worldwide - There is a related argument in bitcoin that the base layer should be completely open so that you can see inflation bugs being exploited. With full privacy, the argument goes, you would never be able to discover the bad stuff going on. I'm undecided on this topic, I can see reasons for both. I'd like to know which would be better in a scenario where people needed to escape enslavement? If you were enslaved by people who were using encryption, would you want backdoors? Also isn't it a moot point if it's possible to enslave people in the open? Isn't the at infiniti scenerio for allowing encryption backdoors something like that bizare film where people are secretly inhabiting John Malcovich's consciousness? Except with AI it would happen to everyone all at once, and then who knows, like a massive consciousness traffic jam apocalypse of race conditions. What is the one thing that absolutely has to be solved by this technological decision? I would have thought averting enslavement, but are there even worse scenarios? It's such a difficult problem.www.eff.org #

  • Is Jamstack Officially Finished? - Brian Rinaldi looks at the current state of the Jamstack movement. The thing I liked about the Jamstack movement was that it gave a name to static file websites, but made it a bit grander, so you could imagine a whole ecosystem of futuristic technologies. The important thing was no longer the database it was the code repository. It seems to me that repos are a more stable building block, because ultimately it's just files. That doesn't mean databases are bad, and actually it's a great idea to use databases in your setup, but the focus is on the repo. Around the repo you can build a whole lot more than just the website. It would be great if there was a term that communicated this idea, because 'static sites' doesn't really do that, whereas 'Jamstack', even though it's imperfect, sort of kind of vaguely does. remotesynthesis.com #

  • My Journey Away from the JAMstack - Jared White replies to Brian's piece. He goes into a lot of detail, highlighting that the term Jamstack became so broad as to not mean anything. It just got way too confusing. This part rings true to me - "What Netlify gave us originally was a vision of how to deploy HTML-first websites easily via git commits and pushes". It's about git, files and repos everything else flows from that. The database is an enhancenent. www.spicyweb.dev #

For enquiries about my consulting, development, training and writing services, aswell as sponsorship opportunities contact me directly via email. More details about me here.