Building a Jira Search Tool in BoxLang

Developers seem to have a love/hate (or perhaps hate/despise) relationship with Jira. I’ve never minded it, but the biggest issue for me is that if I haven’t used it in a while, it can be overwhelming. Yesterday I was thinking about this and wondering if perhaps I could build my own tooling to interact with Jira via an API, if it even had one. Turns out, of course they have an API and it’s not terribly difficult to use. With that in mind, I whipped up a quick tool to search Jira via the command line with BoxLang. Jira API Basics The docs for Jira’s API are pretty good and cover the huge set of operations you can perform with it. Your root API url will be based on your... more →
Posted in: JavaScript

Building a File Search Script in BoxLang

My initial blog post on BoxLang used a simple script example to demonstrate how the language can be used to build shell script type utilities and it got me thinking about other ways I could use BoxLang for my own personal tools. A little over three years ago, I blogged about a Python script I built to perform searches, locally, against my blog. My blog content comes from near seven thousand Markdown files and while I’ve got a good client-side search feature, I was curious what I could from the terminal. That script did two things: Index each of the thousands of Markdown files by reading in the content and parsing the filename into a date and path value Taking search input and checking... more →
Posted in: JavaScript

Building a Web App with BoxLang

I’ve been building web apps for thirty years now, which frankly is kind of scary to see explicitly spelled out. For a large chunk of that time I built web apps using an application server, ColdFusion, where my templates would dynamically output HTML (or other formats like JSON) to return to the browser. For my non-ColdFusion readers out there, you can just replace ColdFusion with PHP or ASP and you get the basic idea. Most recently, I’ve spent a lot less time on the server and more on the front-end, but I kept coming back from time to time. Earlier this year I looked at building a simple blog in the Python-based Flask framework. I thought it would be a good exercise to try something... more →
Posted in: JavaScript

Building Serverless Lambda Functions with BoxLang

I’ve been a fan of serverless for quite some time. My introduction to it was OpenWhisk, way back in 2016. It’s been appealing to me for a long time as an easy way to deploy lightweight services quickly. As much as I’ve been a fan of the technology, I’ve yet to really embrace Amazon’s Lambda product. I’ve played with it a bit off and on in the past, but it always felt incredibly overwhelming. Netlify Functions, Pipedream, and Cloudflare Workers have been my main tools for serverless just because of how simple they are. That being said, the last few days I’ve been playing with BoxLang on AWS and thought I’d share my experience. The Basics So let’s... more →
Posted in: JavaScript

Building a Resume Review and Revise System with Generative AI and Flask

The last two sessions of my live stream, Code Break, have been really interesting, at least to me anyway. I’ve been discussing generative AI with Google Gemini and building a relatively simple example while doing so – a resume review and revisement system. This started off pretty simply with a Python script and then iterated into a proper Flask app. I thought it would be fun to document the code here a bit and share it with those who couldn’t make the streams. If you would rather just watch the recordings, I’ve got them embedded at the bottom. Feel free to skip to that. Step One – The Script For my first iteration, I built a simple Python script that: Uploaded the... more →
Posted in: JavaScript

Building a Bluesky AI Sentiment Analysis Dashboard

As the "Great Social Network Wars" carry on (my term, not anyone else), I’m finding myself more and more enjoying Bluesky. I do more posting on Mastodon, but Bluesky reminds me a lot more of early Twitter. Threads is… ok, but has felt too corporate. I can’t even remember the last time I checked it. Earlier this week, I was poking around the Bluesky API and was incredibly happy to discover that their Search API does not require a key and supports CORS, which means a simple client-side application could make use of it. In the past I had built similar tools for Twitter, back when it had a decent API, and I thought it might be fun to build something for Bluesky, specifically,... more →
Posted in: JavaScript

Building a General Purpose GeoJSON Viewer with Leaflet

Last week I shared my initial experiences with Leaflet and I thought I’d share a small demo I built with it – a general purpose GeoJSON viewer. GeoJSON and Leaflet As I mentioned at the end of my last post, GeoJSON is a specification for encoding ad hoc geographic data. Here’s an example: { "type": "FeatureCollection", "features": [ { "type": "Feature", "id": 0, "properties": { "Code": "FRLA", "Name": "Frederick Law Olmsted National Historic Site" }, "geometry":... more →
Posted in: JavaScript

Building a CRUD Web App with Alpine.js

One of the things I try to encourage here is for my readers to reach out with their questions. That rarely happens, but when it does, I try my best to answer as soon as possible. In this case, I got a great question from a reader back in May and then… life happened. Sorry, Nicholas, but hopefully this isn’t too late. His question was pretty simple – could I build an example of using Alpine.js for a CRUD interface? For folks who may not know the term, CRUD refers to: (C)reate (R)read (U)pdate (D)elete You’ve probably seen a hundred interfaces like this. You have a list of content with links to edit one, delete one, and a link to add a new instance of that content. When... more →
Posted in: JavaScript
1 2 3