Dino’s Journal 📖


During my second digital declutter, I found that I had a lot more time to tinker with my websites. And so I did. Here are some of the updates I've made to this site during that time.

Blazor WASM Search App

I've got a new Search app for this journal. It is a Blazor Web Assembly app. So, basically a .NET app written in C# that runs as a client-side web application. And it loads much faster than my previous Search app hosted on Glitch. That's because it is a static site hosted on Netlify. Which means it's always up and running. There is an initial load where your browser downloads the .NET DLLs. But after that, it should load pretty quickly next time you use it.

You can find the source code for it here.

Removed Random Post Link

I took away the link to get a Random post from this journal. I did so because it had a slot machine feel to it. Watching The Social Dilemma reminded me of the slot machine nature of it. But my main reason for removing it, was because it took so long to load at times. This stood in stark contrast to how fast this Write.as powered site loads. I can redo it as a Blazor Web Assembly app, but that's not a priority right now. Maybe something to tinker with in the future.


In my continued quest to find ways to replace social media with personal websites, I have decided to move my Game Screenshots series to my Micro Journal. There were a couple of developments recently that led me to this decision.

Out of Place

My game screenshots posts always felt out of place on this site. One of my guiding principles for content on this site, is that they come from my bullet journal. Obviously, video game screenshots and clips do not materialize out of my bullet journal.

There are exceptions to this rule of course, like my Bookmarks series. But in general, I try my best to stick to this rule.

No Reader Interaction

My Game Screenshots and Game Clips posts were always an attempt to mimic what I used to post on Instagram. With that comes the expectation of finding like minded readers. Maybe it's the lack of a commenting system, or maybe there's just not much gamers reading the read.write.as feed. Either way, I don't get any interaction whatsoever on my game screenshots posts on this site.

On the other hand, with just a few Game Screenshot posts on my Micro Journal, I've already had a few bloggers talk to me about video games. That's really more of what I'm looking for with these posts. I want to share screenshots of video games I'm playing. And I want my posts to find people who share the same passion for video games.


I went from an Archive Page that used an embedded Glitch app, to a static Archive Page.

Previously, I used an embedded Glitch app to dynamically create the contents for my Archive page. It worked well, but it was also slow. It was slow because every time you visit the page, the Glitch app had to wake up, then pull all my write.as posts and finally display them in a list. The slowness was a stark contrast to other pages on this site — most of which load very quickly. I also didn't like the idea of depending on a third-party service to serve up the contents of my Archive page.

So, I've been wanting to switch to a static Archive page for awhile now. My problem was that I already had over 350 posts on this site. To get me started, I needed a way to quickly generate a list of all posts on this site. For this, I created a .NET Core console app. This app would get all my posts using the write.as API. Then the app would spit out the list of all posts in HTML format. My first pass actually had it spitting out text in Markdown. But I quickly ran into issues with Markdown and <div> elements not playing well together. So, HTML it was. Anyway, once I had the output on a text file, all I had to do was copy over the HTML and paste it into my Archive page.


In Part 1, I covered how I generated links to the Previous and Next post for my “indexed” journal entries. In this post, I'll talk about how I generated the links for non-indexed journal entries.

Handling Old Journal Entries

So, now that I have navigation working for my “indexed” entries. I turned my attention to my precursor journal entries. These entries don't use base 10 numbers as indexes in their slugs/URLs. For example, the post slug for Journal Entry – I ends in “I”, which is a roman numeral. Same goes for Journal Entry – II, III, IV and so on. To further complicate things, I decided to leave the post slugs unchanged for other precursor journal entries. The post slug for Journal Entry – XV for instance is still “decisions-decisions”. I thought about writing JavaScript that would convert roman numerals to base 10 numbers. But then that won't work for non-indexed entries like Journal Entry – XV.

Shot myself in the foot right there, huh? >_<


Update 06/22/2020: Didn't realize that the JavaScript that I talked about in this post, was actually creating a Next link for this post. It thought this was a Journal Entry post, because it found that text in here. That's hilarious, but that is also part of the fun of tinkering. I have fixed it.

Finally got full blog post navigation working for my Journal Entries. If you have JavaScript enabled on your browser, you could effectively navigate from Journal Entry – I up to Journal Entry – XVI, then continue on to Journal Entry – 001, all the way up to the latest one (as of this writing), Journal Entry – 060. You can also navigate from Journal Entry – 060, all the way back down to Journal Entry – I.

Getting Post Slug and Index

To make navigation work between blog posts in a series, I made use of a standard format for post slugs/URLs. I call them “indexed” entries because I added an index to the end of the slug/URL. For example, “journal-entry-001”, “journal-entry-002”, “journal-entry-003” and so on. It's really just a way to help me figure out the sequence of posts.

So, first off, here is the JavaScript for getting the post slug from the URL. Then from there, getting the post index from the slug. Without this code, it will be impossible to automatically generate the links to the Previous and Next posts.

var element = document.querySelector('meta[property="og:url"]');
var content = element && element.getAttribute("content");

// Get post slug
var postSlug = content.split('/').pop();
var postIndex = postSlug.split('-').pop();

For the start of 2020, I wanted to add another pinned page to this site, but I noticed that the existing pinned pages were already starting to crowd the navbar. So I wanted to unpin some of the pages to make way for a new one. I've decided to unpin two pages... for now.

Unpinned the Bookmarks Page

The original intent of the Bookmarks page was to save bookmarks for myself, while at the same time making the links available to others. Lately, I've noticed that I've stopped updating this page with new links, and instead opted to write new posts where I talk a little bit about the content of the article that I'm sharing, while at the same time sharing the link to said article. With the use of a “Bookmarks” hashtag on those posts, I feel like that is a better way to save and share bookmarks as there is some context as to why I thought a certain article/post was interesting in the first place.