Creating Human-Readable Summaries of Data with Google PaLM Generative AI

Like a lot of folks, I've been spending a lot of time thinking about generative AI, and AI, in general, and oddly (well for me), trying to focus on productive uses for it when working with APIs. A few weeks ago I shared my initial impressions of Google's PaLM 2 API, and today I c … | Continue reading


@raymondcamden.com | 1 year ago

Links For You

Happy Sunday, and as I'm currently watching the Saints lose (to be fair, I'm an hour behind, watching it recorded), I figured why not go ahead and share some links that will be more winning than my poor team. As of now, I'm completely done with presentations and travel for the re … | Continue reading


@raymondcamden.com | 1 year ago

Building a Generic RSS Parser Service with Cloudflare Workers

About once every three months I'll write a quick JavaScript demo and attempt to fetch someone's RSS feed... and then remember that the vast majority of RSS feeds don't specify a CORS header to allow remote scripts to load them. I know this - and yet I still tend to forget. I thou … | Continue reading


@raymondcamden.com | 1 year ago

Using Cloudflare's AI Workers to Add Translations to PDFs

Late last month, Cloudflare announced new AI features in their (already quite stellar)Workers platform. I've been a big fan of their serverless feature (see my earlier posts) so I was quite excited to give this a try myself. Before I begin, I'll repeat what the Cloudflare folks s … | Continue reading


@raymondcamden.com | 1 year ago

Links For You

Hello friends and welcome to another post of links I hope you find interesting. In a few days, I'll be heading out to API World for my last trip of the year and my last in-person event. (I'll be giving the same talk for API World again later this month in their virtual event.) I … | Continue reading


@raymondcamden.com | 1 year ago

Using Google PaLM to Gather Sentiment Analysis on a Forum

I've really been enjoying working with Google's PaLM 2 AI API and this week I used it to build a pretty interesting demo I think. What if we could use the generative AI features of PaLM to determine the 'sentiment' or general health of a forum? I was able to do so and I think the … | Continue reading


@raymondcamden.com | 1 year ago

Texting Email Summaries using Google PaLM AI and Twilio

Yesterday I shared my initial impressions of working with Google's PaLM 2 AI API. If you didn't read that article, the tldr is that it's incredibly easy to work with and I was able to get some Node.js code running in minutes. Exactly the kind of experience you want new developers … | Continue reading


@raymondcamden.com | 1 year ago

A Look at Google's PaLM API

Like, I assume, every single developer on the planet, I've been somewhat innudated with GenAI over the past year or so. I find it as fascinating as most folks (ask me about the number of times I've had cat-related conversions with ChatGPT) but while it's fun to play with, I've al … | Continue reading


@raymondcamden.com | 1 year ago

Automating Mastodon Postings with ColdFusion

I've had a lot of fun building Mastodon bots (see my list of super-important business critical bots as an example), typically using the Pipedream platform, and more recently, Cloudflare Workers. The Mastodon API is kinda stupid easy and with "The Other Network" going to hell in a … | Continue reading


@raymondcamden.com | 1 year ago

Links For You

Hello from lovely Las Vegas, where, believe it or not, it is actually cooler (temperature-wise) than where I flew in from. This week I'll be speaking at the Adobe ColdFusion Summit and I can't wait to see some old familiar faces. I've got a speaker dinner in a few minutes so this … | Continue reading


@raymondcamden.com | 1 year ago

Taking a Look at Pipedream's GitHub Integration

It's been a little while since I've blogged about Pipedream. I'm still a very happy user of the service, I just hadn't had anything to write about recently. That changed earlier this month when they announced GitHub support on thier blog. I decided to test it out and here's what … | Continue reading


@raymondcamden.com | 1 year ago

Guess the (Marvel) Decade

Many years ago, I first wrote up my experience working with the Marvel API. I find myself returning to it again and again, and this weekend I built a fun little game I think you may enjoy. It's called "Guess the Decade".Marvel's art style has changed drastically over its long his … | Continue reading


@raymondcamden.com | 1 year ago

Testing Out the Alpine.js Intersect Plugin

A few weeks ago, I finally got around to looking at the official plugins Alpine.js supports and built a little demo that integrated the Intl spec with the Mask plugin. (You can read the post here: Integrating Intl with Alpine.js Mask). Today I thought I'd take a look at another p … | Continue reading


@raymondcamden.com | 1 year ago

Links For You

Another weekend and another set of links for yall to enjoy. Yesterday my wife and I drove our eldest to NOLA and the airport there as he begins a ten-month excursion teaching in Germany. I'm so incredibly excited for him and I know he is going to do incredible. Meanwhile, we're s … | Continue reading


@raymondcamden.com | 1 year ago

Building a QR Coder Web Component

It's been a hot minute or so since I played with web components, mainly because I've been re-evaluating when I think it best makes sense to use them. One idea I've been chewing over lately is that progressive enhancement could really be the sweet spot for components, something I … | Continue reading


@raymondcamden.com | 1 year ago

Fun With Front Matter: Part 4 - Featured Posts

It's been a few days since my last post in this series. I'd like to blame something in specific but honestly, it's just life. Today's tip will - again - be short and sweet but hopefully helpful. The idea of a "featured" post is that there may be content that, no matter the age or … | Continue reading


@raymondcamden.com | 1 year ago

Integrating Intl with Alpine.js Mask

I've been using Alpine.js for quite a while now (although I still make silly mistakes, see the p.s. at the end) but haven't yet looked at the "official" plugins. Listed in the docs, those plugins include:Intersect - a simple hook to recognize when an element is visible (I plan on … | Continue reading


@raymondcamden.com | 1 year ago

Links For You

Welcome to another collection of links, and for today, a very "component" flavored set of links. I've been really interested in web components the past few months (you can peruse my articles on the topic) and lately there's been a lot of writing on the topic. That's been tied to … | Continue reading


@raymondcamden.com | 1 year ago

Join Us at The Undefined Show!

On September 11th, Todd Sharp, Scott Stroz, and myself will be launching a new livestream called The Undefined Show. Every Monday at 8 PM EST, we'll be hosting a session on different topics, including development, languages, developer relations, and most likely quite a bit of non … | Continue reading


@raymondcamden.com | 1 year ago

Fun With Front Matter: Part 3 - Handling Edits

I hope by now that folks are getting that the point of this series isn't so much technical but inspirational. I think a lot of people approaching front matter tend to keep it rather simple - title, date, tags or categories, and when I envisioned this series I really wanted to exp … | Continue reading


@raymondcamden.com | 1 year ago

Fun With Front Matter: Part 2 - Follow-ups

Today I'm following up (heh, get it) on the series I started yesterday on interesting use cases for your Jamstack site's front matter. In yesterday's post, I described how to use front matter to define a list of "related posts" to a blog post. Today's post is a natural follow-up … | Continue reading


@raymondcamden.com | 1 year ago

Fun With Frontmatter: Part 1 - Related Posts

I'm kicking off a little series of tips today that's been sitting in my "Blog Ideas" queue for some time. The idea, "Fun with Frontmatter", was based on the idea of taking a look at some of the fun/interesting/hopefully useful things you could include in your Jamstack site's fron … | Continue reading


@raymondcamden.com | 1 year ago

Working with the Storage API

Earlier this year at WWDC, Apple announced a whole set of new features coming to Safari in version 17. While that is not out yet, it's still a pretty large set of updates. I've not been shy about my view that Safari has been holding the web back for a while, but I'm happy for any … | Continue reading


@raymondcamden.com | 1 year ago

Debugging Cloudflare Workers with Logs

As with some of my previous Cloudflare posts, I've got a video version of this content so if you would rather watch that than read, just jump to the bottom. For the rest of you, here's a look at how to do some basic debugging with your Cloudflare Workers.The Worker #Before I get … | Continue reading


@raymondcamden.com | 1 year ago

Links For You

Looks like I was a bit late in doing my links post this month. Like most of the country, my kids went back to school over the past week or so and I think the prep time ahead of that just made the month fly by. Last week was incredibly rough for me. I'm not going to get into why, … | Continue reading


@raymondcamden.com | 1 year ago

ColdFusion Component for Adobe Acrobat Services

Last month, I wrote up a post demonstrating how to use Adobe Acrobat Services with ColdFusion. This week I took some of the code I had written for that post and turned it into a proper GitHub project. You can find the latest code here: https://github.com/cfjedimaster/coldfusion-c … | Continue reading


@raymondcamden.com | 1 year ago

Building a Mastodon Bot with Cloudflare Workers

I can't go a day (or two) without building a bot of some sort, and last week was no exception. I've been a fan of the Marvel API for nearly a decade now and one of my favorite examples of it is my random comic book cover bot. I thought I'd use the Marvel API as a way to build ano … | Continue reading


@raymondcamden.com | 1 year ago

Connecting Cloudflare Workers with Service Bindings

I'll warn you ahead of time and say this post isn't too much more than what you can find in the documentation, but I wanted to see it work for myself so I had to setup a test locally. Cloudflare Service bindings are a way for one Worker to connect to another. That seems simple en … | Continue reading


@raymondcamden.com | 1 year ago

Adding Form Fields Character Counters With Alpine.js

Nearly three years ago I shared a Vue.js tip on adding "counters" to your form fields. The idea is, if you have a max length on a text area, as an example, it would be nice to let the user know as they type exactly how many characters they've already entered. You can read that ol … | Continue reading


@raymondcamden.com | 1 year ago

JavaScript Syntax Sugar for Shorter Stuff

Please forgive the somewhat alliterative title of this post. I promise I wasn't going for clickbait! Recently I was looking at some code from a friend of mine and saw something I had not seen in JavaScript before. It obviously worked (and I confirmed myself of course) but I wante … | Continue reading


@raymondcamden.com | 1 year ago

Adding Caching to a Cloudflare Worker

Last week I blogged about my first experience building a Cloudflare Worker serverless function. In that post, I built a simple serverless function that wrapped calls to the Pirate Weather API, a free and simple-to-use API for getting weather information. For today's post, I thoug … | Continue reading


@raymondcamden.com | 1 year ago

I Know What You Did Last Summer (With Glitch and Cloudflare)

Every now and then I get a dumb little idea, and too often, I turn those dumb ideas into little web toys. About five years ago, I discoveredMarkov chains, which in my limited understanding is a deterministic way to guess what would come after some input. A bit like autocomplete f … | Continue reading


@raymondcamden.com | 1 year ago

Learn about the Photoshop API Next Week

Next week, Tuesday August 8 at 11AM CST, I'll be giving a free, online presentation at CFE.dev on "Automating Image Workflows with Photoshop APIs". Here's more information from the event description:Inarguably, Photoshop dominates the professional image editing software world. Bu … | Continue reading


@raymondcamden.com | 1 year ago

Building a Basic (Pirate) API Wrapper with Cloudflare Workers

I've been playing with Cloudflare Workers the past few weeks, and while I've had a few technical issues here and there, I've been really impressed with the developer experience overall and just how powerful the platform is. I thought I'd share a quick demo of a simple "API wrappe … | Continue reading


@raymondcamden.com | 1 year ago

Update for My Subscribers

Hey folks, forgive the quick note. Today I migrated my newsletter from Mailchimp to Buttondown. As I mentioned here before, I had hit the free tier limit on Mailchimp and while I truly liked their service, this site doesn't really bring in any money so I wanted a cheaper solution … | Continue reading


@raymondcamden.com | 1 year ago

Links For You

A quick links post today as I'm on vacation with my family in Saint Louis. I grew up here but haven't been back in some time. STL is a great city with some really cool things to do. My favorite stop so far has been the Arch. I visited the Arch many times growing up but I forgot h … | Continue reading


@raymondcamden.com | 1 year ago

Integrating Acrobat Services with ColdFusion

Last week I shared a look at how to integrate the Adobe Photoshop API with ColdFusion, and that got me itching to see how difficult it would be to do the same with our Acrobat Services. While ColdFusion has native PDF features built-in, I think there are aspects of the platform t … | Continue reading


@raymondcamden.com | 1 year ago

Alpine.js and Form Fields

A few years back, I wrote up a detailed blog post on how Vue.js handled form field bindings: "Vue and Form Fields". The idea behind the post was that even though we knew things "just worked", it might be helpful to see different form fields in action and show the bindings between … | Continue reading


@raymondcamden.com | 1 year ago

Links For You

Hello readers. Today I'm writing this post in lovely Natchez, Mississippi as my mother-in-law gives my wife and I a quick break out of town. Natchez is one of our favorite "getaway" destinations as it's a short drive, a nice drive (mostly backroads), and a great mall town. Withou … | Continue reading


@raymondcamden.com | 1 year ago

Using the Adobe Photoshop API with ColdFusion

So yeah, I used to blog quite a bit on ColdFusion (if you want, you can peruse the three thousand posts here), but it's been a while since I've really written any CFML. That being said, I've been working with Adobe's Photoshop API recently at work and I thought it would be fun to … | Continue reading


@raymondcamden.com | 1 year ago

Using PDFs with Algolia and Adobe PDF Extract API

Over two years ago, I wrote an example of how to add PDF search to your Jamstack site, "Using PDFS with the Jamstack - Adding Search with Text Extraction". In that post, I used the Adobe PDF Extract API to get the text from a set of PDF files. This was done in an Eleventy data fi … | Continue reading


@raymondcamden.com | 1 year ago

Want to learn Alpine.js?

For the past two weeks or so, I've been releasing videos on YouTube all about learning Alpine.js. Each video is relatively short (although longer than a Tiktok video) and can be quickly consumed, with the entire playlist coming in under an hour. Each video has links to CodePens t … | Continue reading


@raymondcamden.com | 1 year ago

Creating a Blackjack Game with Alpine.js and the Deck of Cards API

Some time ago I ran across a pretty fascinating service, the Deck of Cards API. This API handles everything imaginable related to working with decks of cards. It handles creating a shuffled set of cards (containing one or more decks), dealing out a card (or cards), and even reshu … | Continue reading


@raymondcamden.com | 1 year ago

Links For You

So yeah, I know my last post was just a link, but I promise the post after this will be actual new content, not just me sharing stuff. Then again, it's my blog, so who knows what I'll do. ;) Happy July, and for those of you suffering with me in the South (heat and multiple other … | Continue reading


@raymondcamden.com | 1 year ago

Algolia DevCon 2023 Videos

Normally I save links for the "Links for You" post I do a few times a month, but as I've been a bit quiet here recently (most of my side work has been on my Alpine.js video series), I thought I'd share this quick note. This week, Algolia held an online conference (DevCon) with tw … | Continue reading


@raymondcamden.com | 1 year ago

Creating Bootstrap WebC Components in Eleventy

For some time now as I've explored web components, it's occurred to me that web components could be a great way to make working with Bootstrap simpler. Not that Bootstrap is necessarily difficult, but I've always thought it would be cool to take something like so: Card title C … | Continue reading


@raymondcamden.com | 1 year ago

Links For You

Happy Almost Father's Day. I'm the proud father of eight kids and being a father makes me incredibly happy. Also scared, stressed, worried, and anxious, but all worth it. This week was pretty rough for me. Both my wife and I got sick early in the week (not Covid), and while I got … | Continue reading


@raymondcamden.com | 1 year ago

Quick example using AWS Node.js SDK V3 for Signed URLs

This probably falls into the "it was easy for everyone else in the world but me" bucket, but I really struggled to find good search results for this and figured I'd better write it down so when I google for it again in a few months, I'll find my own blog. Specifically - today I w … | Continue reading


@raymondcamden.com | 1 year ago