A few months back, I took a look at using JSON-LD to turn a recipe web page into pure data: Scraping Recipes Using Node.js, Pipedream, and JSON-LD. This relied on a recipe actually using JSON-LD in the header to describe itself, which is pretty common for SEO purposes. Still, I w … | Continue reading
A week or so ago, I was doing some tests on Google Colab and noticed something interesting. The notebook I was using was one that took one to two minutes to process. Before I'd start the process, the favicon looked like so: After kicking off the workflow, the favicon changed like … | Continue reading
Last week I had the pleasure of presenting at the Mid-Michigan ColdFusion Users Group on the topic of Intl, the web platforms internationalization spec. I gave this presentation again this week at connect.tech as well. I greatly enjoyed working on this deck as I've been using Int … | Continue reading
Yesterday, I gave my presentation on Intl, the browser's built-in support for internationalization. I've been using this for a while now, but while researching the spec for my presentation, I ran into multiple cool aspects of it I wasn't aware of. One feature I thought was partic … | Continue reading
Please take what follows with a Titanic-sized grain of salt and do your best not to do what I did, but despite that, I thought this little hack was interesting and I figured I'd share it anyway. I typically use Reveal.js for my presentations, especially when talking about the web … | Continue reading
The last seven days have been... difficult. I don't think I need to go into why (even for my non-American readers), but I am doing my best, as are a lot of people, to take things day by day. Honestly, as a white hetero man, I'm not so much worried for myself, but I'm deeply conce … | Continue reading
A few days ago, I blogged about using Chrome's built-in generative AI features (which are still super duper too early to even consider for production) to add on-device translation capabilities to a web app. It got me thinking, what if we could do translation automatically via a w … | Continue reading
Hey folks - just a quick warning. This post is kind of a mashup/update of two earlier posts. Back almost two years ago I talked about this process but used Twitter and Mastodon: "Automatically Posting to Mastodon and Twitter on New RSS Items". Earlier this year I first talked abo … | Continue reading
Hey folks - my next will not be this Tuesday as I'll be presenting at API World (assuming American gets me there today) so I've pushed back the livestream till Thursday, November 7th. Usual time - 12PM CST. You can read more about the event here: https://cfe.dev/talkshows/codebr … | Continue reading
I've done a couple blog posts now on Chrome's efforts to bring generative AI to the browser. It's still somewhat of a rough process (remember, you can sign up for access to test and learn more at the intro post from the Chrome engineers), but it's getting better over time. One th … | Continue reading
This post was meant to go out on the weekend, but I got sucked into video games, baking cookies, and, well, watching the Saints suck. I've mentioned this already I think, and I'm pretty sure I talked about it on my stream, but my anxiety which had taken a bit of a back seat for n … | Continue reading
Yesterday I blogged about a change I made to my bots page and in it, I mentioned how the performance wasn't necessarily as good as it could be. I had made the decision to go from server-side and build-time for the page to a purely client-side solution. At the end of the post, I a … | Continue reading
I've got a few pages here that are primarily built for my own use. One of them, my bots page, is a list of all the dumbsuper useful bots I've built for Mastodon (and Bluesky). The idea on this page is to show the latest post from each bot. The bots page makes use of two different … | Continue reading
Just a quick note to my faithful readers out there - tomorrow, October 22nd, at 12PM CST (Cool Standard Time), I'll be hosting my next episode of : https://www.youtube.com/watch?v=EbJuB7irJMw In the previous stream, I talked about charting with JavaScript, specifically using Char … | Continue reading
Yesterday, Elizabeth Siegle, a developer advocate for CLoudflare, showed off a really freaking cool demo making use of Cloudflare's Workers AI support. Her demo made use of WNBA stats to create a beautiful dashboard that's then enhanced with AI. You can find the demo here: https: … | Continue reading
Forgive the somewhat vague title, but I wanted to point folks to a series of articles I've had published on the Frontend Masters blog the past few weeks. I started writing for them recently, and while I note my "external writing" on my About page, I wanted to specifically call ou … | Continue reading
Happy Sunday and Happy Saints Are Winning As I Write this day. Before I get into the links, some administrative. At the bottom of my posts, I've got share links. A few days ago I removed the share to Twitter link as I've gradually removed myself from that platform. I was on there … | Continue reading
A few months ago, I built a little demo that I simply forgot to actually talk about here. A coworker was building something similar and it reminded me to take a look at the code, update it, and actually share it. This is a pretty cool example of integrating multiple different API … | Continue reading
As I continue to dig into Leaflet, I was recently asked about custom markers based on data, so for example, some locations for a store may use one icon while others use another. I did some digging, and while it turns out Leaflet has deep support for customizing markers, it does t … | Continue reading
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 … | Continue reading
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 … | Continue reading
This is just a quick note to let my readers know that Eleventy 3.0 has been released. This is a huge update and folks using it should read the full release notes here: Eleventy v3.0.0: Possums ❤️ ESM. I've been running a beta for a while. You can see the issues I ran into here: U … | Continue reading
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 abo … | Continue reading
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 e … | Continue reading
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 … | Continue reading
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 issu … | Continue reading
Today in my stream (I'll share a link to the video at the bottom), I spent some time digging into Leaflet and worked on a demo that made use of the National Parks Service API. This is a fun API I've used many times in the past, especially at my last job at HERE. For the stream t … | Continue reading
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 Cold … | Continue reading
Happy Half Way Through September... which isn't a thing I guess, but, I'm just in awe at how much faster time goes in the fall compared to summer. With the kids in school, and activities, time just seems to fly by. In roughly two weeks I'll (and my wife) will be in Vegas for the … | Continue reading
Chalk this up as another of my "this is probably not a good idea, but it's fun" blog posts. A few weeks back my buddy and ColdFusion Evangelist Mark Takata shared a fun little thing he did with GenAI - using it to roast himself. That immediately set me off on a quest to see just … | Continue reading
I've looked at Chrome's on-device GenAI development a few times now, and as a feature it is moving pretty fast. In fact, that first post and my follow up both don't work anymore due to the API changing. I'm fine with that as I knew it was a bleeding edge feature, but I just want … | Continue reading
This blog has been around for a while (twenty one years currently) so it isn't too uncommon for me to revisit old topics and demos and rebuild them. I think today's post may be something of an outlier though. Way back in 2010, early 2010, I built a Proof of Content 911 Viewer tha … | Continue reading
Way back in March of this year, I took a look at using Google's Gemini APIs to analyze PDF documents ("Using PDF Content with Google Gemini"). At the time, the Gemini API didn't support PDF documents, so I made use of our (Adobe) PDF Extract service to get the text content out fr … | Continue reading
, and Vote For My AI Demo!
Greetings, programs. This is just a quick note about my 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, … | Continue reading
As I continue to play with, and really freaking enjoy Leaflet, I thought it would be interesting to show a demo of using CSV data with it. This also coincides with an interesting dataset I got from the Data is Plural newsletter, a collection of datasets covering just about any to … | Continue reading
For my American readers, I hope you are able to enjoy a relaxing three day weekend. I've got big plans to do absolutely nothing and do quite a bit of it. My September is going to be busy so I'd like to try my best not to think about that for the next few days. Let's get to the li … | Continue reading
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 … | Continue reading
Way back in June (wait, that's only two months ago?) I wrote up a blog post showing how to use the AWS SDK for Signed URLs: "Quick example using AWS Node.js SDK V3 for Signed URLs". The idea for this was to cover a very specific set of functionality I needed to use along with Ado … | Continue reading
If you missed my episode earlier this week you missed (imo) a great episode. I'll share a link to the video at the end, but I spent the session raving about how great the Leaflet JavaScript library is for maps. I had it on my list to look into for a few months now and while havi … | Continue reading
Earlier this week I was browsing a site that showed a tabular list of data. It initially showed something like ten rows and had a clickable item that showed the rest of the data. I thought I'd whip up a quick web component that mimicked this functionality. My thinking was that yo … | Continue reading
Last week, I took a look at Chrome's GenAI implementation in the browser. What I found was interesting, and rough, but possibly something that could be incredibly useful in the future. I've been thinking about it more the last few days. First off, if this feature interests you, t … | Continue reading
Woot, welcome to football season! Ok, preseason, but I am beyond excited to watch my Saints play later today and, hopefully, look halfway decent. My wife and I are both big football fans and the start of the season is always a happy occasion. This past week I traveled to Atlanta … | Continue reading
It's always a good day when you get pleasantly surprised by JavaScript, even more so when you find that it's a feature that's been around for a while (ES6, which according to Google was standardized in June of 2015). Earlier today I saw some syntax that didn't look quite right to … | Continue reading
Google announced a while back their intent to experiment with generative AI in the browser itself. Personally, I think this could be a really good idea, but I'm really unsure as to how many other vendors would support it. With Edge being a Chromium product, and Microsoft being pr … | Continue reading
As a quick FYI, if you would rather skip reading my text and jump to a video, I've got one at the end of this post. Be my guest to scroll down and watch that instead. One of the most interesting aspects of Adobe Firefly Services is what it enables in the automation space. I think … | Continue reading
Like I assume most of my fellow Eleventy users have been doing, I've been closely following the updates on Eleventy and its progress towards 3.0. As my blog is a fairly large site, I wasn't in a rush to upgrade to an Alpha release, but the recent beta release convinced me it was … | Continue reading
The past few weeks have been a bit crazy, although mostly crazy good. Since the last one of these posts, my family and I went on vacation in San Antonio for a few days, and currently, my wife and I are in New Orleans for a short break. Last night we went to the Postmodern Jukebox … | Continue reading
Yesterday I wrote up my experience in building a simple CRUD interface using Alpine.js, and in doing so, ran into an interesting issue. While it would be best to read the entire previous article, let me try to break down the issue... or at least as how I saw it. My Alpine app had … | Continue reading