Coming Up for Air
OKC JUG Logo

Last night, I had the opportunity to present at my local jug, the Oklahoma City Java User Group. My topic was building applications Kotlin/Compose Multiplatform. For the most part, it was awesome. More on that in a moment.

The presentation was an introduction to the technologies that I’ve found helpful in building cross-platform applications. I tried to be clear that what I was presenting is my current architecture and that things might change, and that I was learning some of these things as I go. I find it helpful to present on things that I’m learning, as it helps solidify things in my own mind, and it might be useful for others to travel along with me, so to speak. I won’t recap here everything in the presentation, so if you’d like details, you can flip through the slides.

The demo app is one I’ve called (because I’m a sucker for puns), "Giftbook" — like "Facebook", but for gifts. The inspiration for the app (which is in part intended to serve as an architectural reference app for my younger son as he builds a mobile app for a high school class, as well as for a project my wife and I are working on together) came from my wife. She typically handles the bulk of our gift shopping, and she uses an app to help keep track of that. The app is great and helpful, but it has shortcomings, and in the course of discussing those, we did what any good geek would do: we decided to build our own. It’s still a work in progress, but you can follow along (and contribute if you want) over at Github.

I said the meeting was awesome "for the most part" earlier. I had hoped to have a video of the presentation to post the OKC JUG YouTube channel, but…​ there were problems. Since I was presenting, I couldn’t run the recording device, so I conscripted my beautiful and brilliant wife to do handle that, and she did great, but the forces against us were greater. :) A big part of the problem is OBS. I spent part of the morning yesterday making sure everything was set up and working, but when we got to the venue, OBS had forgotten input devices, microphone levels were messed up, etc., so we had to hastily try to reconfigure things moments before the session started. Neither of us know OBS well, and we mostly got it working, but the audio in the video we ended up actually getting was great, then silent, then really low. Not sure what was going on there.

The coup de grâce for the recording, though, happened when the laptop died. :P What we didn’t notice was that the power strip was not turned on, so the laptop was running on battery until it wasn’t. We did manage to record about two-thirds of the presentation before things completely fell over, but the audio is next to useless, making the video a bit of a waste.

I learned (or had reinforced) a few things, though: I need to learn OBS better (or find a simpler replacement), and I need to conscript more dedicated help. I had a million plates spinning last night, and I wouldn’t have been able to pull of the meeting if it hadn’t been for my amazing wife (I’ve said this directly to her, but I’ll say it again here: A HUGE thanks for the help. You’re awesome. :)

Given all of that, there’s a chance I’ll make a recording of the presentation from my office so I can have something to upload. I need to tweak the presentation a bit (including replacing that super dumb and boring title, something my wife and older son have been helping me brainstorm), so if I can find some time, I’ll make those changes and try to put a recording.

Despite the technical woes, I had a great time seeing old friends at the JUG, and even got to meet a few new people, which is always great. Having part of my family there was big bonus, as well.

{/asciidoc}

I’ve been working on a side project that includes both a backend (Quarkus-based, of course) and a mobile app (I’m using Kotlin Multiplatform, but that’s a topic for another time). In this project, I need to display an image (think profile picture), but the link is secured, meaning I need to authenticate with the server to get it. I couldn’t find anything in the Coil docs explaining directly how to do that, but I was finally able to piece it together, and I’d like to share that here in case it helps someone else.

This year was a very light year in blogging for me — even by my recent standards —  for a lot of reasons that probably aren’t of much interest to others. That said, I want to close the year out as I have for years with a Christmas post. I realize that many of you may not celebrate Christmas, and for others it’s just another holiday plus lights and gifts and family. I would be remiss, though, if I didn’t close the year sharing the real, historical meaning of Christmas: the birth of a baby sent to atone for the sins of the world. There’s a lot of theology there that I won’t unpack here, but, if you’d like to hear more — or try to convince me that I’m wrong :) — I’m here for you.

Here’s a beautiful setting from Evan Wickham of some of that theology. I hope it blesses you as it did me.

Merry Christmas!

Breaking heaven’s silence we heard a human cry
Light into our darkness the Savior has arrived
Healing all the broken and teaching us to love
The Son of heaven’s glory now clothed in flesh and blood

Begotten not created from the Father before time
Virgin born Messiah both human and divine
Crucified and risen forever You will reign
We join with all the church from every age
Singing worthy is Lamb that was slain

{/asciidoc}

I recently found myself in need of having two different Testcontainers communicate with each other. To someone more familiar with Docker, the solution might have been more obvious, but, alas, I am not that man. :P After asking in the Testcontainer Slack, I got a pointer, so I thought I’d share it here in case it might help someone else.

As 2023 comes to a close, I want to take a slightly different approach to my Christmas greetings. I’d like to share with you a Christmas carol, and the story behind it.

The poem, written by Henry Wadsworth Longfellow, explores the contrasting despair in his heart against the hope of Christmas. Having lost his wife to a fire, and having his son critically wounded in the Civil War, Longfellow struggled with his faith which spoke of "peace on earth, goodwill to man" while he watched the injustice and violence in the country at war around him. At the end of the poem, written on Christmas day in 1863, he concludes with the confession that, while things seem bleak,“God is not dead, nor doth He sleep; The Wrong shall fail,The Right prevail, With peace on earth, good-will to men.”

With wars and violence all over the globe, that statement is still true today. One day two thousand years ago, Jesus became a human, in the form of a tiny infant, as the final step in righting wrongs and prevailing over evil finally and fully. Christmas, then, points to Easter, and should serve as a reminder that, while evil does seem prevalent now, the day is coming when God finally says "Enough!" and declares judgment. My prayer, as it is every Christmas season (and, indeed, every day) is that this year will be the year you see Christmas as more than a chance for time off and getting and receiving gifts, but as the offering of the greatest gift of all: salvation through Jesus Christ.

Merry Christmas!

{/asciidoc}

Search

Quotes

Sample quote

Quote source

About

My name is Jason Lee. I am a software developer living in the middle of Oklahoma. I’ve been a professional developer since 1997, using a variety of languages, including Java, Javascript, PHP, Python, Delphi, and even a bit of C#. I currently work for Red Hat on the WildFly/EAP team, where, among other things, I maintain integrations for some MicroProfile specs, OpenTelemetry, Micrometer, Jakarta Faces, and Bean Validation. (Full resume here. LinkedIn profile)

I am the president of the Oklahoma City JUG, and an occasional speaker at the JUG and a variety of technical conferences.

On the personal side, I’m active in my church, and enjoy bass guitar, running, fishing, and a variety of martial arts. I’m also married to a beautiful woman, and have two boys, who, thankfully, look like their mother.

My Links

Publications