Using Geocoding with Leaflet

When I first started talking about Leaftlet, I mentioned how it was "only" a map library, and by that I mean, only able to present a view/wrapper around tiles representing map data. There’s a heck of a lot of services that Google Maps, HERE, and so forth, add on top that won’t be present, things like routing, geocoding, and more. Considering the fact that Leaflet is, again, "only" a client-side JavaScript library, that’s just a fact of life. But I’ve been thinking about how I could integrate Leaflet with such services, and I thought I’d share a demo of just that – adding geocoding to Leaflet. WTF is Geocoding? Simply put, geocoding is converting... more →
Posted in: JavaScript

ColdFusion Component for Google Gemini

This week I had the pleasure to present on Google Gemini at the ColdFusion Summit. If you weren’t able to make it, I do plan on giving the talk again on the ColdFusion Meetup sometime later this year. After the presentation, I took my ‘rough and ugly’ code that called Gemini and decided to wrap it up in a nice ColdFusion component. This allows for (hopefully) easier use. For example: gemini = new gemini(key="your key", model="gemini-1.5-pro");result = gemini.prompt('why is the sky blue?'); And that’s it. The result variable will contain two keys, a raw value that is exactly what Gemini returned, and a text value that narrows down into the text response. Multimodal... more →
Posted in: JavaScript

Links For You (9/28/24)

Hello dear readers. I wish I could say I’ve got a restful weekend in front of me, but today we’re driving to New Orleans to pick up our eldest who has been in Germany for a year, and tomorrow we fly to Las Vegas for the Adobe ColdFusion Summit. Both are things I’m quite happy about, but it’s going to be a lot. I’m currently sitting, drinking coffee, and watching "Grey’s Anatomy", a good guilty-pleasure show. Before we get into the links, a few quick reminders. If you aren’t already a subscriber, use the form below or here to sign up for my mailing list. Right now it’s just tied to my posts and as a subscriber, you’ll get an email... more →
Posted in: JavaScript

Using Chrome AI to Rewrite Text

Earlier this month, I discussed how Chrome’s upcoming built-in AI support was adding new features specifically tailored to certain use-cases. In that post, I looked at the Summarizer API. For today, I decided to take a look at the rewriter API. As a quick reminder, this is very early on, and if you want to try this yourself, you should hit the sign-up form and read the intro post from the Chrome folks first. Obviously, everything I’m going to show below probably will, almost certainly will, change before shipping. Ok, with that out of the way, let’s talk rewriting, specifically, how the Chrome API operates. Given a set of source input, the API can shorten, or lengthen the input,... more →
Posted in: JavaScript

Dynamically Showing and Hiding Markers in Leaflet

This was originally going to be an example of using Leaflet with Alpine.js, but while working on that demo I discovered an interesting aspect of Leaflet that was a bit more difficult than I thought it would be – hiding and showing markers. Here’s how I approached the problem, and as always, if you know of a better way, leave me a comment below and share! Approach One For my first demo, I decided to start simple. First, I built a function to return a static set of data: async function getStores() { return new Promise(resolve => { let stores = [ { name: "Lafayette Store", open24Hours:true, location: { lat:30.216, lng: -92.033 }}, { name: "Baton Rouge Store",... more →
Posted in: JavaScript

Using Google Gemini’s File API with ColdFusion

I promise, I’m not turning this back into a ColdFusion blog, but as I prepare my presentation next week at Summit and update my Google Gemini code for some ColdFusion demos, I ran into a particularly gnarly bit that I wanted to share in a post. For the most part, I’ve had no issues using Gemini’s REST APIs in ColdFusion, but the File API ended up being more difficult. If you go the documentation for uploading, and use the ‘Shell’ language tab, you can see an example like so: MIME_TYPE=$ (file -b --mime-type "$ {IMG_PATH_2}")NUM_BYTES=$ (wc -c < "$ {IMG_PATH_2}")DISPLAY_NAME=TEXTtmp_header_file=upload-header.tmp# Initial resumable request... more →
Posted in: JavaScript

Next , and Vote For My AI Demo!

Greetings, programs. This is just a quick note about my <Code><Br> show. Usually the show goes on every two weeks, but with the holiday this week I pushed it off to September 17th. You can find the details and RSVP here: "Parks and Recreation – Using Leaflet and the NPS" As the link says, this will be another stream involving Leaflet, which I’ve been having a hell of a lot of fun with the last few weeks. I hope to see you there! And then on a completely different topic, I’ve entered the Gemini API Developer Competition and honestly, I’ve probably got no chance to actually win, but I’d love for you to take a look at my entry, Content Assistant,... more →
Posted in: JavaScript

Parsing Markdown in ColdFusion

Welcome to my third, yes, third, ColdFusion post in 2024. Is it a trend? Who knows. That being said, I’m doing some prep work to update my presentation on Google Gemini in preparation for my talk at Adobe’s ColdFusion Summit later this month, I’m updating my Node.js demos to ColdFusion and ran into an interesting issue – converting Markdown responses from Gemini to HTML. Edit: I realized I gave my function at the bottom a dumb name. I updated the code to reflect a better name on 9/18/2024 My first quick Google searches didn’t really mesh well with what I expected, so I asked on the CFML Slack and James Moberg pointed out a few options, but suggested I focus on Flexmark... more →
Posted in: JavaScript
1 10 11 12 13 14 95