markjgsmith

2023/08/31

Strange exchange between David Sacks and Jason Calacanis in this week's All-in podcast, centering around a disagreement while talking about geo-politics and BRICS nations. Jason repeatedly miss-hears Sacks, quite clearly purposely trying to put words in his mouth. Saying his opinion was disgusting, when in fact he had been describing the opinion of others (~58:00), not his own. Very weird interaction in an otherwise enjoyable and informative show.

It had a sort of joking-not-joking kind of vibe to it, though Sacks wasn't overly eager to correct the mis-understanding, which makes me think there could be more to it. I think Jason came away from it looking like a power hungry moderator doing a flex. But he also changes his tact right at the end trying to get Sach's opinion on the subject. Seems like a very underhand way to get someone to reveal their cards. Why is he picking a fight, why is he playing a bad guy here? #

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. #

2023/08/30

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

2023/08/29

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. #

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.

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.

2023/08/27

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.

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

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.

2023/08/25

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. #

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. #

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'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. #

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. #

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.

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.

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. #

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. #

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.

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. #

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. #

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 :) #

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. #

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. #

2023/08/15

2023/08/13

2023/08/10

2023/08/09

2023/08/06

2023/08/05

2023/08/04

2023/08/03

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

2023/08/01