Quarkus and Camel in bites: REST endpoints

Learning things a teensy bit at a time. While my ultimate goal is to do pretty much anything other than REST, I still have this nice shiny svelte front-end that needs to pull some things from the co-resident Quarkus app. I could, of course, provide that information in "the usual way", but I'm exploring Camel here, which means I should try doing it that way, instead.

Using Quarkus and Camel together is a bit of a brain-bender, as you're overlapping two environments that are totally independent and overlapping, but it does work, and I can see some glimmers of why, but if you've grown up thinking about things as RestTemplates or JAX-RS resources, it's... very different.

more

Iterative development with Quarkus and Svelte, care of Quinoa

Another conference is coming up, and I'm writing another ridiculous frankenstein app for it.

For this revision, I am going to add a local-only Web UI for a few reasons:

  • This app is still mostly command-line driven, but some configuration options are awkward to set as arguments, and manually editing a config file is ... meh.
  • I haven't done any serious front-end UI work in a really long time. The UI for Game On! Text adventure is overdue for an overhaul, it's an Angular 1 app. I know, I know. Don't judge me.

Between one thing and another, I've been doing more TypeScript alongside my Java and because of some collaboration on plugins for Obsidian.md, I've been bumping up against Svelte. I'm going to use this little project to actually figure out how Svelte works.

This project will then have:

  • Quarkus as the main CLI driver that will sometimes wait around for awhile while you fuss around with a Web UI.
  • Svelte to create a UI that feels nice to use.
  • Maven for building Java things
  • Node + Vite for TypeScript tooling

On the surface, the above sounds like a big mess, right? I'm installing double the tools, having to do this build in two steps, and then do the fancy dance to get the Node stuff in the right place in the Java stuff, and deal with making native images happy, and... gross 🤢.

Thankfully, Andy Damevin has already come to provide the rescue I didn't know I would need. He created the Quinoa extension, and I am a fan! 🎉

The Quinoa extension manages building and packaging the embedded Web UI with its preferred tools. So the outer Maven build can carry on doing its thing, and the Quinoa extension will invoke the appropriate node scripts to build and package the Web UI, and tuck them in the right place for serving with an uber jar or native binary. Not only that, but it integrates Quarkus dev mode with the web framework's live coding support, which means you just keep coding and the entire web app evolves as you go. Holy cow, it's awesome.

more

Signing git commits

Color me inspired by Kelsey Hightower's talk at the Craft Conference this year, I've decided to do that basic thing and start signing my commits. There were some helpful articles out in the etherverse for how to do that, but they didn't work for me, so I'm sharing what did.

I wanted to use my SSH key to sign my commits. I only commit code from a few places, and I already use SSH for github access, so this seemed the least invasive approach to attempt. That said, I use specific keys for github, and generally don't use the ssh-agent, which means a few things functioned a little differently than most of the walkthroughs showed.

more

DevNexus 2022: Take a walk on the cient side

A new talk! I have two recorded versions, but few charts, as this one was mostly code.

My daughter figured out how to text me in the middle of it. The notifications appeared on my ipad, so I could see them while the audience couldn't, but I'd like to know if you would have been able to keep a straight face as the notifications arrived: "mom"... "mom"..."mom"...

The subject of the talk is a little command line application called "Pockets", and it lives here: