Blog Roll
These are some of the posts I’ve written. They are not all up to date or relevant, but I try to keep everything I’ve published around.
These are some of the posts I’ve written. They are not all up to date or relevant, but I try to keep everything I’ve published around.
Just an annoyance with Astro, figuring out paths. I’m not exactly sure who is to blame, but I am blaming Astro anyway :)…
Just wanted to publish my Templater template that I use for creating new posts in the blog/
directory of my Obsidian vault:…
The site works and is in use. It’s looking better and is on a good track. I’ve just recently gotten some kinks out of the Obsidian post creation process. Here is a todo list of what I want to get done still:…
One thing I have been putting some thought into are the “kinds” of content I create and want to create. I have some really short posts that are just brief updates or such. I have medium posts that are a few paragraphs long with a little nugget of value in them. I have long posts that take a while to read and are filled with information. I have other posts still that are not available on the new Astro-based site because I just haven’t gotten there yet.…
The site’s be wonderfully devoid of most styling for the last week or two now. I’ve been meditating on what to do and while I have no clue, I have some broad goals I’d like to achieve with the design:…
No.…
Astro has a feature in beta/testing called “content collection”. It’s actually a really nice feature that lets you create “collections” of markdown files, strictly define their frontmatter, and then query that content. I thought this would be a cool thing to use, and it’s pretty neat, but it’s not going to fit with Obsidian because Obsidian lets you organize your files into directories. This is a problem because collections are flat directories, while there can be subdirectories in a collection, they have no hierarchal meaning and all they really do is let you define different parts of your collection (for…
I’m going to try blogging with Obsidian. Primary reason is that I have used it for a kb in the past and I like it. I also like my blog living with my kb because (if those things are published) I can refer to things in the kb. Writing prose in Obsidian is a more enjoyable experience than using VS Code. VS Code is too clinical and does not do a great job with prose-writing.…
Just wanted to point out that I have removed the ‘loci’ and the ‘projects’ links from the navbar. I am likely going to also remove configs eventually since those are all literate configs and I am no longer using emacs. I have that up still for the time being because it has valuable content. The loci and projects sections had little to no content of value, so I have removed them. The very few pages are still present, however you can only reach them if you have a link, there is no way of getting to them from this blog…
I did it. This morning I mentioned that I was going to be leaving Emacs land and moving to VS Code and this afternoon I moved the blog over. It was very easy actually. I already had a test Hugo blog running on Neocities.org, so all I had to do was port the few new posts since that effort, and then update my DNS to point to the Neocities site. I suspect that I will eventually be moving from Hugo to Astro, like I had previously mentioned, however this is a great stop-gap and will let me have a blog…
At least for a while, my time with Emacs has once again come to an end. It is not exactly the fault of Emacs, but the tooling at work is new and niche and there is no or nearly no userbase within the Emacs community that uses this tooling, which makes for a distinct lack of support in the Emacs ecosystem. As a result, I am going to take a Sabbatical from the world of Emacs and try something completely new to me, VS Code. A few reasons for this, but the primary one is that it is the tooling…
Hey! I’m back after a two-ish week paternity leave. We had a baby girl on October 6th and I’ve been more or less offline since then. Our baby girl is named Penelope. Mother and baby are both doing just fine, and we are working on adjusting to the change. The most notable adjustment is that things take longer. After three children, number four really is not that much more difficult.…
I have spent the last couple days hacking away at AstroJS. I think it might provide what I want in a framework. It produces static sites with no, to minimal client-side JS, and it is itself a JS framework. SSG is important mostly at a philosophical level for me, Lightscores aside, the overhead of SSR or CSR for a blog is minimal and likely unnoticeable, but I enjoy the idea of SSG. I do really like that Astro makes a significant effort to pre-render as much of the content as possible and deliver as little client-side rendering JS as possible,…
I’ve been playing with ox-hugo for a few days now. I do like a lot about it. One thing I like a lot is how it is focused on getting out of the way and just turning org files into well crafted HTML. I am rather unpleased with ox-hugo’s path for deployment, it’s a bit more manual than I like. I tried to automate it but hit a roadblock. I’ll definitely be trying this again later because the current solution isn’t acceptable to me. This is going to sound weird, but ox-hugo expects you to know all the files you…
I am giving ox-hugo
another try. A few reasons, primarily, my NextJS efforts started feeling like holding water in my hands, and second ox-hugo is just closer to the metal, so to speak. The site will probably change apperance for a while but I hope to get it back to a close approximation of what I have style-wise currently. This post will likely be shown on the NextJS version of the blog for a while and then once I’ve gotten a deployment process setup I’ll switch to the Hugo site.…
To me the idea of “sylvan” is a tool meant to easily create beautiful sites with org-mode, while remaining unintrusive. For that reason, I am exploring some alternative, non-NextJS options for Sylvan. There’s a few reasons for this:…
We may or may not have a new baby in the next few days. My wife has been laboring since yesterday. The midwife and I think it won’t be much longer now. What makes this awkward is I just accepted a new job and while the new job is going to throw paternity time at me from day one, I have to get to day one first, which isn’t until October 3rd.…
You might not know it since we’re going on almost a week since a content update to the site, but I have been doing some refactoring work on the sylvan project. I’ve cut build times in half by updating the build-api. An added benefit of this rebuild is that I can now properly use rehype plugins (retext too!). Currently I’ve got rehype-raw working which means I can add begin-export html
blocks to my org files and they will populate on the site as actual HTML (and I think react, but I have not tried this yet so I do not…
You’ll notice that my site has some nice new styles going on. I was playing with a fork of Sylvan that used Chakra-UI, however I have since trashed that because I couldn’t get the layout I wanted (after giving up on the route I then updated how my site is laid out and this ended up meaning that Chakra or Mantine or really any other components library would have actually worked…). But that sparked some renewed effort into fixing the styles. Initially I was just looking for better heading font sizes and I found a way to do that, so…
In a previous post I talked about a function I wrote that allowed me to stub out a few of the properties required for working with Sylvan. I have since updated that function a little. It’s still not ideal and I have one or two issues with it still, but I wanted to share the updated function nonetheless.…
My experience with Emacs can be split into two parts:…
For those who do not know Sylvan is my NextJS app that org files and creates webpages. It’s not a static-site generator technically since it’s doing server-side rendering, but I currently do not have it setup so that the org files are updated on the fly either (ie content only gets updated when a deployment runs). Fixing this is on the roadmap, but first I want to get it setup to be configurable so that I can, for example, change the header, the favicon, the overall title, etc. from my org repo. This will do two things, first and foremost…
At the time of this writing, my blog is still hosted with Vercel, however I think I will eventually move it to my VM. However, all the other sites and services I host have been migrated to my new VM (at the time of writing, only Nextcloud hasn’t been migrated, but it never made it into Kubernetes anyway). Why the switch? Well, I started using kubernetes after I took a job as a consultant doing SRE work. I wanted to have my personal infrastructure mirror the work I was doing professionally. Now that I am not doing that kind of…
I am migrating from Kubernetes to a VM. The tl;dr on the VM is that it’s an Ubuntu machine, serving my various sites and services with Caddy. The sites and services are all running in docker containers and the Caddy server proxies traffic to the specific containers. I am migrating from Kubernetes because it is expensive to run a cluster and it’s far more than I need. I had migrated to Kubernetes when I was doing consulting work as an SRE however, I am now very focused on being a developer, and while I don’t wish to lose my SRE…
Me, the jury of one, is still out on whether I will continue with the Uniorg+NextJS or attempt to find a different solution. The current trouble? Parsing of Orgmode verse blocks results in a <pre>
, which is not at all what I want. I could make most of the verse blocks, most of the time, look good. But what if it contains superscript text? In Org that looks like a ^{I am superscript}
or a ^superscript
. But when that translates to HTML it ends up being wrapped as <sup>I am superscript</sup>
which doesn’t work with the <pre>
block…
So, I’m thinking about the concept of digital gardens, the ideas behind Zettelkasten, and my own interpretation of that I am calling “Grok”. I was reading on another digital garden about this historic concept called ”commonplace books” or “commonplaces”. The idea goes back further to this Latin term called locus communis, and it goes back even further to the Greek idea of “τόπος κοινός” (topos koinos) or ”literary topos”. John Locke even wrote a book on this idea called A New Method of Making Common-Place-Books. I’m interested in this for a couple reasons; first it’s interesting to see that my…
While looking further into ox-hugo I decided to also look further into just bog-standard org-publish. I already had some elisp to build out my org files to html and I decided to break that elisp down into a literate program that is then compiled into a build directory which contains all the shell, elisp, CSS, and Dockerfiles I need to build and deploy a website built with org-publish. I am not currently using this to deploy this or any other website, but I was pretty happy with the result and wanted to share. I think I could quickly get a…
[!update]…
So I’ve spent some time playing with Hugo and more specifically, I’ve been playing with ox-hugo
which is a way of exporting Org files to Markdown that plays nicely with Hugo. I’m not happy with my current blog setup. I like the Sylvan site and NextJS, but blogging with it is cumbersome, in part because of the Org parser I am using. In JavaScript land there are two Org parsers, one is mostly abondonware and the other is called Uniorg. It’s great for what it is, but it’s not refined, it has a very poor way of interacting with it,…
Well… it has happened again. The last time it was because of the YAML format interpreting timestamps as UTC unless explicitly set otherwise. And I fixed that issue… but that won’t help this, since I gave up on using Contentlayer like two days later 😭.…
Vercel is the company behind Nextjs and also a hosting platform that works with static site generates (Huga, Jekyll, Zola, etc.) and server side generators (Nextjs). I’ve been using them to host my new blog since it’s inception because they promise — and mostly make good on the promise — easy deployments. Well… ian.ist is a little different because it’s two different repos. There is the Sylvan repo which contains the Nextjs code that parses org files and displays the content and there is my private org repo which holds the content. Because I’m using a private repo I can’t…
The Indie Web is basically an attempt at providing standards and tooling to create websites that are federated and connected to one another. Some of the things they have include IndieAuth, Webmentions, h-cards, h-entries, and syndication with POSSE. Almost all of these things are just standards that you can implement on your site, like the h-* stuff, and allow for other sites and tools to interact with your own website. Some neat things that this allows for are mostly automatic “webmentions”, which are anything from comments on a post, to response posts, and “shares”. An h-card is basically a business…
At the new job (Jack Henry) we’re using a JavaScript framework called Lit. It’s a Google project that makes working with the native Web Component API a bit less painful. Because Lit is merely some syntactic sugar around the native vanilla JS API for working with WCs it doesn’t have fancy stuff like JSX (as opposed to the other WC library, Stencil, which does). Instead Lit uses the native JavaScript template strings ie:…
I had mentioned tangling all the things yesterday, and I’ve gone ahead and gotten a literate Zsh config up and running this morning. I’ve also created a new repo for it here.…
So I’d like to keep some content in my org repo private — things like todos, journals, and unfinished posts. Ultimately I’d like to put this sort of stuff behind a login, but as a stop-gap I’m thinking to go the brute-force way and rm
it. My stop-gap is to delete any file containing the line :PRIVATE: t
. I’m going with the property route so that in the future I can update my solution to be a bit more elegant without having to do any additional work to alter my files.…
It’s actually kind of hard to use a template to create a new file. Apparently this is part of Doom, but I couldn’t figure out how to get the file-templates
to work in Doom. My dirty hack to get this working was to create a function that calls a new buffer, inserts some heading info into that new buffer, and then tells the buffer use the major mode of org-mode.…
So I had this idea last night, and like with all great ideas I googled it see if anyone else had come up with it first. To my dismay, I was far from the first person to have this awesome idea. The idea? Literate dotfiles! …
Currently, ian.ist is hosted with Vercel. I am using Vercel and not my Bitranchlabs Infra because it was easier, and I am also not sure if I am going to keep my Kubernetes stuff running — it’s $50+ / month for something I really don’t need. Vercel is great, I have no real reason to leave, except that my website’s content is in my private org repo, while the rest of the site is in the Sylvan repo, and the org content must be mounted into the Sylvan repo in order to build this site.…
I am back to (doom)emacs+org-mode, again… again… again……
I noticed a funny thing happening, the dates for my posts were wrong. The source of the post would contain the correct value in the frontmatter, for example the date of my first post was 2022-07-25
but when that was rendered by NextJS and spit out on the website it was coming in a whole day /earlier_, ie 2022-07-24
. At first I thought the culprit was the date library, date-fns
, so I dropped into a node shell to see if that was the case……
This is just an example of some code blocks for testing rehype prism.…
I’ve been using contentlayer with this new NextJS blog/digital-garden/website/thing and so far I’m really liking it. Content Layer is basically a way of reading MD and MDX files and then turning them into JSON that JavaScript can then process. In addition to reading markdown into data, Content Layer also does a few other things that other libraries aren’t offering. With Content Layer I can not only turn MD into data, but it also creates TypeScript typing for that data and allows you to extrapolate and generate metadata on the fly to go with that JSONified markdown.…
That’s right, it’s yet another blog from me. Another blog that, let’s face it, I won’t probably use very much, and is really just an excuse to doing something creative and learning a bit at the same time. Nonethesless, I am going to create YAB and promise to update it.…