惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
Microsoft Security Blog
Microsoft Security Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
T
Tailwind CSS Blog
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
WordPress大学
WordPress大学
H
Help Net Security
Apple Machine Learning Research
Apple Machine Learning Research
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
腾讯CDC
V
V2EX
Jina AI
Jina AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
B
Blog
M
MIT News - Artificial intelligence
宝玉的分享
宝玉的分享

kmcd.dev

Joining Buf Let The Gravity of Ashburn, Virginia The CPU Cost of Protobuf Varints in Go It Beating Go gRPC-Web Should Have Fixed gRPC Making Dynamic Protobuf Fast in Go Proxy, Record, and Mock gRPC APIs with FauxRPC Exploring Protocol Buffers Interactively Introducing ProtoDocs Ghost in the Shell: The Manga Behind the Anime The Hidden Cost of google.protobuf.Value Why Networking Built Its Own Data Modeling Language Zero-Friction Demos with WASM Let's Learn About BGP ConnectRPC: Where is it now? Building APIs with Contracts The Case for Greppable Code Unknown Fields in Protobuf IRC Log: Reactionary Faking protobuf data in Go Y'all are Sleeping on Mise-en-Place IRC Log: Standup 2 HTTP/2 From Scratch: Part 4 IRC Log: rm -rf /var/opt/gitlab/postgresql/data HTTP/2 From Scratch: Part 3 Building a Live BGP Map HTTP/2 From Scratch: Part 2 IRC Log: The Cloud Scale Incident
Blog Update
2024-05-14 · via kmcd.dev

Hello! This will be a lighter update for this blog. I’m going to recap some of the changes I’ve made to it over the last couple of months, the technologies that power it, and my plans for the future.

Schedule

I’ve been keeping up a one-post-a-week cadence. This has started pretty well because I was in a hyper-productive mode and built up a fairly sizable backlog but I’m now in a less productive phase. Therefore, some weeks in the future may be “softer” than others and I may resort to link posts, commenting about recent events, and other lower-effort ways of getting more words onto the website. This post is one of the lower-effort posts since it doesn’t require research!

Importing mastodon posts

Mastodon posts are automatically downloaded and re-hosted on this website. This serves a few purposes:

  • At the bottom of every blog post, the corresponding mastodon post is referenced. I hope this will be a good way to point readers who want to make a comment on the article or to give me a thumbs up.
  • Allows me to reference Mastodon posts inside of blog posts (without relying on an external service or iframes). I haven’t used this yet, but it may come in handy.
  • It also just acts as my personal mastodon archive. Because I have this history, I don’t need some other mechanism to back up my public Mastodon posts. I strongly believe in content ownership, which is the whole reason I don’t use many of the existing blog publishing platforms except for syndication.

Prompt of the day

I’ve started posting a daily writing prompt every day on my Mastodon account. This is automatically posted from a combination of future-dated pages in Hugo, scheduled Github Actions and Echofeed. I feel like these prompts help me write SOMETHING every day. I typically just respond to the mastodon post. There’s been an encouraging amount of participation from others with this. It was fun to come up with the first month’s worth of questions. Follow me on Mastodon to participate in these prompts!

RSS

I’ve made some improvements to how RSS feeds are generated so that links and images use absolute paths in all cases, which allows you to see these images in your RSS feed if your reader supports that. It’s strange how awful the “out of the box” experience is with Hugo and RSS. I feel like at least some of my issues should be handled automatically.

Small Refinements

I originally used the Hello Friend 4s3ti theme for my blog. I’ve slowly made small adjustments, moving more and more layouts away from the theme into the main blog section. At some point, I may copy over the rest of the resources and use a completely custom theme which will allow me to delete features I don’t ever plan on using and more easily customize. But anyway, I like the style that I’ve settled on. It fits me.

Projects Page

I updated the projects page to be more… clear. The image gallery format just wasn’t working to show what I worked on. I’m not an artist and I should come to terms with that! See the page here.

I have become a fan of the “small web” and I feel like link pages bring some of that small web feeling back. See mine, here.

Technologies

Some may be interested to know how this blog is built. The source code is available here on GitHub at sudorandom/kmcd.dev. An enterprising reader could get sneak-peaks by watching this repo 👀

Cloudflare

As you may be able to tell from DNS, I use Cloudflare as a CDN, DNS, and firewall. Cloudflare has an incredibly generous free tier, which I use extensively.

GitHub Pages

The actual website is hosted on Github Pages. GitHub also has a generous free tier here, but because of Cloudflare, I’m not sure it actually gets a lot of non-cached traffic. I think I could easily switch to using Cloudflare R2 if I needed to. The killer feature for GitHub pages is having easy integration with GitHub Actions, which I use to build and deploy the website. I simply push to my main branch and the process is handled from there. I also rely on GitHub Actions to publish scheduled content for me and to import Mastodon post updates for me.

Hugo

I use Hugo for my static website generator. I prefer it due to the Go templating style that I was already very familiar with along with the ease of use. With Hugo, I don’t need to download 100 different npm packages to build my website. It does have its quirks, though and some things I do get frustrated about.

EchoFeed

EchoFeed is a new but welcome addition to my tech stack. This service consumes my RSS/Atom/jsonfeed feeds and makes corresponding posts to… somewhere. Currently, it supports Mastodon, bluesky, discord, Github, webmentions, webhooks, and a few others. Here’s how I use the service:

  • updating mastodon when there is a new post
  • updating mastodon with a new prompt of the day
  • updating the github repo with new mastodon posts from myself

Until Next Time

I’m always looking for ways to improve this blog, so let me know on Mastodon what you think! In the meantime, I’m planning to work on the gRPC From Scratch series in the coming weeks. Thanks for reading!

01110011 01100101 01100101 00100000
01111001 01101111 01110101 00100000
01110011 01110000 01100001 01100011 01100101 00100000
01100011 01101111 01110111 01100010 01101111 01111001