Blog

You can use Lucene queries like : content: "paris" AND title:"2019"

The world changes, even if your build doesn't

I've been working around the clock - like 20 hours in two days so far! - to move my various online properties (like joshlong.com and bootifulpodcast.fm) to a new Kubernetes cluster and it has been.. painful. The code still runs fine but so much of the work of getting the thing onlioe in the first place is made more difficult by the fact that, basically, the world's changed. There are externalities that have made moving to a new platform shall we say interesting? Things like the older beta APIs no longer being available on the managed Kubernetes cluster, or the default branch on Github changing from master to main. Things change, and perhaps I should've been practicing a more chaos-monkey like approach of forcing myself to redeploy everything every few months. Sigh. This exercise has been painful, but valuable because I;ve realized some services can be turned off and retired, or their functionality has since been superseded and things can consolidate on the new superseding approach. Also, I've got a very strong urge to write a Kubernetes CRD and a new Github Action, as so much of the work of getting things into production is boiletplate and could be templatized and reused. This is obvious now as I'm scrutinizing every application all at once, but not so clear as I was deploying things sporadically.

Using your own custom domain for your username in the new Bluesky social networking application

So, I'm on the new, much-coveted, probably nothing, Bluesky social network. Long story short: in 2019 Twitter spun out a research group to investigate creating a decentralized, distributed protocol for social media, which - one day - Twitter would then become a client of. Here's Jack Dorsey's tweet. Little did anyone know that less than four short years later, Twitter would fall to Elon Musk's predatory hostile takeover and the spinout would end up representing not just an alternate path forward, but one of the only good paths forward, for Twitter users.

A Simple HTML 5 Page for Later Reference

I spent more than 10 seconds Googling for this and another 20 seconds trying to find it within a single page, so I am sparing myself the agony of this search in the future.

Converting Asciidoctor documents to Microsoft Word

You know, I love Asciidoctor! It's an amazing way to author and publish. I even built up a publishing pipeline called Bootiful Asciidoctor. That's a story for another day. In the meantime, I put together a, let's say pamphlet, or a particularly long article, using Asciidoctor. Not a full e-book. And, in order to move the process forward, I need to turn the output into a Microsoft Word document. So what's an awesome Asciidoctor author to do? Automate, obviously!

Blog comments, brought to you by Talkyard

I've always wanted a decent commenting system in my blog, but have been so very lazy in building it. But it's 2023! We've got self driving cars (see this tweet where I caught a Cruise vehicle driving around San Francisco without anybody in the front seats), AI-generated TV shows and YouTube videos (but not my content, no sirree! My content is crappy through good old fashioned elbow grease, and not of the synthetic crap variety...), targeted CRISPR-enabled genetic cures for stage 4 cancers, perpetual energy engines, and more! So, surely, there's an easy way to add comments to a fairly typical Vue.js application talking to a typical Spring Boot backend? Yes. Yes there is.

Adventures in Maven Dependency Conflict Resolution

So, last week I wanted to build a Spring Boot starter for the Esper complex event processing engine. I love Esper, it seems like a natural solution for a common problem. So I built (and published!) the integration (it's com.joshlong:esper-spring-boot-starter:0.0.1, by the way), but you wouldn't believe the pain I experienced getting there. So, I don't know that most people will learn much from this blog but I'm going to put it out there, anyway. Here is a retrospective of the things I learned and what I did to address the issues I encountered.

Complex Event Processing with Esper and Spring Boot

How intelligent is your application? No, not every application has to use GPT4 to do its work. A little intelligence goes a long way! Just ask my dog. Not very smart, relative to Chat GPT or your average human, but plenty intelligent enough to get the job done. For example, does your application know the difference between discrete and complex events? No? Then it's not nearly smart enough!

Page 5 of 57