Raymond Camden

Code and Cats

  • Home
  • About
  • Speaking
  • Stuff

Javascript (891 Posts)

  • Using Intl.DurationFormat for Localized Durations β€” February 13, 2025
  • Automatically Posting to Bluesky on New RSS Items β€” November 5, 2024
  • Using PDF Content with Google Gemini - An Update β€” September 5, 2024
  • Help Me Solve an Alpine.js Mystery β€” August 1, 2024
  • Building a CRUD Web App with Alpine.js β€” July 31, 2024
  • (Don't) Add BASIC Support to Eleventy β€” July 7, 2024
  • Add Squirrelly Support to Eleventy β€” July 6, 2024
  • Building a Web Version of Your Mastodon Archive with Eleventy β€” July 4, 2024
  • PDF Embed Web Component Available Via NPM β€” June 19, 2024
  • Table-Sorter Available Via NPM β€” June 10, 2024
  • Super Useful NPM Module - Open β€” May 3, 2024
  • Using Generative AI to Check for Spam β€” March 28, 2024
  • Using PDF Content with Google Gemini β€” March 22, 2024
  • Three Cool (to me) Node.js Features β€” March 20, 2024
  • Alpine.js Workshop this Friday β€” March 19, 2024
  • Responding to HTML Changes in a Web Component β€” March 13, 2024
  • Using Intl.RelativeTimeFormat for Localized Relative Timings β€” March 7, 2024
  • Converting a Vue 2 App to Alpine.js β€” March 4, 2024
  • TIL - submit() versus requestSubmit() β€” March 1, 2024
  • Testing Multiple Variations of Generative AI Prompts β€” February 26, 2024
  • Using Generative AI to Organize Video Game Screenshots β€” February 19, 2024
  • Google Gemini as Your Dungeon Master β€” February 16, 2024
  • Google Gemini 1.5 Announced (and more new features) β€” February 15, 2024
  • Testing Temperature Settings with Generative AI β€” February 14, 2024
  • Looking at the JavaScript Promise Collection Methods β€” February 12, 2024
  • Using the Bluesky API β€” February 9, 2024
  • Using Generative AI to Improve Image Filenames β€” January 26, 2024
  • Using GenAI to Classify an Image as a Photo, Screenshot, or Meme β€” January 18, 2024
  • Using Drag/Drop in Alpine.js with PDF Embed β€” January 16, 2024
  • Using AI and PDF Services to Automate Document Summaries β€” January 8, 2024
  • Function Calling and GenAI β€” January 3, 2024
  • Using Generative AI to Detect Cat Breeds β€” December 18, 2023
  • Google Gemini and AI Studio Launch β€” December 14, 2023
  • An Image Dialog Web Component β€” December 13, 2023
  • Adding Music Previews to My Now Page β€” November 29, 2023
  • Using IndexedDB with Alpine.js β€” November 26, 2023
  • Adding Simple Routing to Cloudflare Workers β€” November 17, 2023
  • Building a Generic RSS Parser Service with Cloudflare Workers β€” October 31, 2023
  • Using Cloudflare's AI Workers to Add Translations to PDFs β€” October 24, 2023
  • Guess the (Marvel) Decade β€” September 26, 2023
  • Testing Out the Alpine.js Intersect Plugin β€” September 20, 2023
  • Building a QR Coder Web Component β€” September 13, 2023
  • Integrating Intl with Alpine.js Mask β€” September 6, 2023
  • Working with the Storage API β€” August 25, 2023
  • Adding Form Fields Character Counters With Alpine.js β€” August 9, 2023
  • JavaScript Syntax Sugar for Shorter Stuff β€” August 8, 2023
  • I Know What You Did Last Summer (With Glitch and Cloudflare) β€” August 4, 2023
  • Alpine.js and Form Fields β€” July 18, 2023
  • Want to learn Alpine.js? β€” July 7, 2023
  • Creating a Blackjack Game with Alpine.js and the Deck of Cards API β€” July 4, 2023
  • Quick example using AWS Node.js SDK V3 for Signed URLs β€” June 9, 2023
  • Using Web Components in Alpine.js β€” June 2, 2023
  • Adding Form Participation Support to Web Components β€” May 24, 2023
  • Handling Web Component Removal with disconnectedCallback β€” May 17, 2023
  • My First Web Components Presentation - May 30 β€” May 15, 2023
  • Updating and Supporting URL Parameters in Alpine.js β€” May 12, 2023
  • Updating and Supporting URL Parameters in JavaScript β€” April 27, 2023
  • Testing the Web Share API β€” April 20, 2023
  • Using the Cookie Store API β€” April 12, 2023
  • Using Speech Synthesis and Recognition with Alpine.js β€” April 10, 2023
  • Reminder about Web Components and Attributes β€” March 9, 2023
  • Interesting Caveat with Web Components and the Event Lifecycle β€” March 8, 2023
  • Progressively Enhancing a Form with Web Components β€” February 10, 2023
  • Another Update to my Slideshow Web Component - JavaScript Support β€” February 8, 2023
  • My town sure seems to have a lot of... β€” February 2, 2023
  • Update to My Slideshow Web Component - by Ε ime Vidas β€” January 24, 2023
  • A Simple Slideshow Web Component β€” January 20, 2023
  • Followup to My Intl Short Number Post β€” January 10, 2023
  • Using Intl for Short Number Formatting β€” January 4, 2023
  • Converting Markdown Code Blocks to Gists β€” September 28, 2022
  • JavaScript Quickie - Add Days But Prefer Business Days β€” September 23, 2022
  • Building a Web View of a Public Google Drive Folder β€” September 17, 2022
  • Using Google Maps with Alpine.js β€” September 9, 2022
  • Building a Web-Based Badge Scanner β€” August 11, 2022
  • Building Related Selects in Alpine.js β€” July 29, 2022
  • An example of Algolia Search with Alpine.js β€” July 19, 2022
  • Using Auth0 Login with JavaScript - Some Tips β€” July 11, 2022
  • Image Upload Preview in Alpine.js β€” June 3, 2022
  • Building Table Sorting and Pagination in Alpine.js β€” May 2, 2022
  • A Snippet for Getting DZone Article Stats β€” March 30, 2022
  • Saving Form Data in Client-Side Storage β€” March 27, 2022
  • Building Table Sorting and Pagination in JavaScript β€” March 14, 2022
  • Adding QR Codes to Your Jamstack Site β€” February 11, 2022
  • A Google Static Maps Eleventy Plugin β€” February 2, 2022
  • Using a Google Photos Album in your Eleventy Site with Pipedream β€” January 28, 2022
  • Accessing Google Photos with Pipedream β€” January 26, 2022
  • Review: Make 7 Apps With Vue 2 β€” January 16, 2022
  • Building my First Idle Clicker Game in Vue.js β€” January 13, 2022
  • Using Google Analytics 4 for Blog Stats β€” December 17, 2021
  • Fun (Scary?) Webcam Demo β€” December 8, 2021
  • Building the PlacePlaceHolder Service with Pipedream β€” September 28, 2021
  • Building an App with the StackOverflow API β€” September 16, 2021
  • Making Monsters Fight for Fun and Profit (minus the profit) β€” September 6, 2021
  • Uploading Multiple Files with Fetch β€” August 8, 2021
  • An Adobe PDF Embed Plugin for Eleventy β€” August 2, 2021
  • Page Level URL Fetching with Eleventy β€” July 30, 2021
  • Integrating Eleventy with GitHub Flat Data β€” July 14, 2021
  • Creating an Additive Capture Shortcode in Eleventy β€” July 12, 2021
  • Graphing Movie Rating Distribution For No Good Reason β€” July 9, 2021
  • Dynamic Short URLs with Eleventy β€” June 22, 2021
  • Using PDFs with the Jamstack - Adding Search with Text Extraction β€” June 18, 2021
  • Using Lunr with Eleventy via Netlify Serverless Functions - Part Two β€” June 6, 2021
  • Using Lunr with Eleventy via Netlify Serverless Functions β€” June 2, 2021
  • Recreating Breaking Bad Credits with JavaScript (and a bit of CSS) β€” May 31, 2021
  • Updating (and Supporting) URL Parameters with Vue.js β€” May 8, 2021
  • Proof of Concept - Dynamically Filtering a Large Select β€” April 12, 2021
  • Load a PDF Embed when Visible β€” April 9, 2021
  • Using PDFs with the Jamstack - Now with Thumbnails β€” March 16, 2021
  • Adding Filtering to my Vue.js Table Sorting and Pagination Demo β€” March 11, 2021
  • Using the Adobe PDF Tools API to Generate Thumbnails β€” March 2, 2021
  • Using PDFs with the Jamstack β€” February 25, 2021
  • Keeping Count of User Visits β€” February 23, 2021
  • Integrating Navigation Search with Lunr and Eleventy β€” February 22, 2021
  • A Vue Component for Handling Loading State β€” January 15, 2021
  • Remembering (and Restoring) a Route with Vue Router β€” January 12, 2021
  • Building Generic Workflows in Pipedream β€” January 3, 2021
  • Vue Quick Shot - Downloading Data as a File β€” December 15, 2020
  • Adding Google Calendar to Your Jamstack - with Pipedream β€” December 8, 2020
  • Building a Web App Powered by Google Forms and Sheets β€” November 20, 2020
  • Vue Quick Shot - Preventing Multiple Form Submissions β€” November 17, 2020
  • Vue Quick Shot - Warn Before Leaving a Form β€” October 15, 2020
  • Vue Quick Shot - Uploading a File β€” September 20, 2020
  • Vue Quick Shot - Form Field Character Counters β€” September 14, 2020
  • Vue Quick Shot - Fullscreen API β€” September 4, 2020
  • Vue Quick Shot - Using Page Visibility β€” September 3, 2020
  • An Experiment with Vue Components β€” August 28, 2020
  • Designing Random Encounters for my Vue RPG β€” August 19, 2020
  • Migrating from Node and Express to the Jamstack - Part 3 β€” August 16, 2020
  • Migrating from Node and Express to the Jamstack - Part 2 β€” August 15, 2020
  • Migrating from Filters in Vue 3 β€” August 13, 2020
  • Migrating from Node and Express to the Jamstack - Part 1 β€” August 6, 2020
  • Sharing Your Movies with Pipedream and Letterboxd β€” August 4, 2020
  • Building a Twitter Scheduling System with Pipedream and Google Sheets β€” July 28, 2020
  • Making Monsters with JavaScript β€” July 19, 2020
  • Testing Vue.js Application Files That Aren't Components β€” July 17, 2020
  • Building a Vue Application with Serverless on Netlify β€” July 7, 2020
  • Determining Food Popularity By Location β€” June 23, 2020
  • Building a Dual Selects Control in Vue.js β€” June 8, 2020
  • Integrating Google Analytics with Eleventy β€” May 21, 2020
  • Updating my Reddit Workflow with Pipedream β€” May 19, 2020
  • Integrating Netlify Analytics and Eleventy β€” May 18, 2020
  • Let's Make Everyone a Queen! β€” May 15, 2020
  • Want to Learn Vue.js? β€” May 14, 2020
  • Playing with QuickChart and Vue.js β€” May 3, 2020
  • MadLibs with Vue.js β€” April 8, 2020
  • Quick Tip on Using Vue with Eleventy β€” April 3, 2020
  • Vue Quick Shot - Links, Links, and More Links β€” March 6, 2020
  • Vue Quick Shot - Image Upload Previews β€” March 5, 2020
  • Vue Quick Shot - Copy to the Clipboard β€” March 4, 2020
  • Vue Quick Shot - Using a Loading Message β€” March 4, 2020
  • A Voicemail Assistant with Vue and RingCentral β€” March 2, 2020
  • Vue Quick Shot - Disabling a Submit Button While Waiting for an Ajax Call β€” March 2, 2020
  • Working with RingCentral Webhooks β€” February 26, 2020
  • Sending SMS Messages for Form Data with RingCentral and Netlify β€” February 25, 2020
  • Adding a SMS Alert for Netlify Builds with RingCentral β€” February 22, 2020
  • Adding Another Template Language to Eleventy β€” February 19, 2020
  • Ionicons in Vue.js β€” February 17, 2020
  • Checking (and Upgrading) Template Engines in Eleventy β€” February 7, 2020
  • Adding a Last Edited Field to Eleventy β€” February 6, 2020
  • Building Table Sorting and Pagination in Vue.js - with Async Data β€” February 1, 2020
  • Vue and Form Fields β€” January 27, 2020
  • The Last Damn Vue ToDo App β€” January 19, 2020
  • Yet Another Damn ToDo App in Vue.js β€” January 8, 2020
  • Another Damn ToDo App in Vue.js β€” January 3, 2020
  • Another Vue Game Demo - Hangman β€” December 26, 2019
  • Building Sudoku in Vue.js - Part 2 β€” December 19, 2019
  • Building Sudoku in Vue.js - Part 1 β€” December 16, 2019
  • Using Bearer for Easier OAuth and API Calls β€” December 11, 2019
  • Sunday Quick Hack - Eliza in Vue.js β€” December 8, 2019
  • Sanitizing HTML in Vue.js β€” November 26, 2019
  • Adding Google Calendar to your JAMStack β€” November 18, 2019
  • Serverless JAMStack AndCats Demo β€” November 14, 2019
  • Building a Custom Sound Board with Vue and IndexedDB β€” November 12, 2019
  • Adding Search to your Eleventy Static Site with Lunr β€” October 20, 2019
  • Using IndexedDB with Vue.js β€” October 16, 2019
  • Why I'm Digging Eleventy β€” October 12, 2019
  • Building a Netlify Stats Viewer in Vue.js β€” October 5, 2019
  • Using OAuth and Vue.js to Build an Untappd Stats Page β€” September 28, 2019
  • An iTunes Audio Enabled Search Built in Vue.js β€” September 18, 2019
  • A National Parks Service API Demo with Vue.js β€” September 9, 2019
  • Using Geolocation with Vue.js β€” September 1, 2019
  • Sailing the Seas with Vue - My Take on Taipan β€” August 19, 2019
  • Working with the Keyboard in your Vue App β€” August 12, 2019
  • Drag and Drop File Upload in Vue.js β€” August 8, 2019
  • Playing with Vue and Vuex - Lemonade Stand β€” August 1, 2019
  • Replacing a Dynamic Regex Match with the Same Number of Spaces β€” July 5, 2019
  • Random Pictures of Beauty with Azure Functions and the NPS β€” July 1, 2019
  • My Podcast on Views with Vue β€” June 28, 2019
  • Vue Components FTW - vue-country-flag β€” June 21, 2019
  • Two Tips for NativeScript and Vue Development on the Playground β€” June 19, 2019
  • Reading Image Sizes and Dimensions with Vue.js β€” June 13, 2019
  • Using NativeScript and Vue.js to Turn Your Friends into Cats β€” June 11, 2019
  • Reading Client-Side Files for Validation with Vue.js β€” May 21, 2019
  • Using HTML Form Validation without a Form (Kinda) β€” May 15, 2019
  • Building a Plex Server Duration Search with Vue.js β€” May 14, 2019
  • Handling Errors in Vue.js β€” May 1, 2019
  • Working with Audio in NativeScript - Part Two β€” April 30, 2019
  • Working with Audio in NativeScript - Part One β€” April 25, 2019
  • Vue Components FTW - VGauge (and a love letter to CodeSandbox) β€” April 19, 2019
  • Getting Location in NativeScript - Part 2 β€” April 14, 2019
  • Getting Location in NativeScript β€” April 10, 2019
  • Adding Visual Feedback to an Alexa Skill β€” April 1, 2019
  • An Example of Nuxt.js with a Custom Generator β€” March 12, 2019
  • Assets and Stuff from My Vue.js Presentations β€” March 9, 2019
  • What is $nextTick in Vue and When You Need It β€” February 22, 2019
  • Vue Components FTW - vue-pure-lightbox β€” February 20, 2019
  • Vue Components FTW - Toasted β€” February 6, 2019
  • Creating a Live Time Duration Component in Vue.js β€” January 7, 2019
  • Review of NativeScripting's Vue Intro Course β€” November 26, 2018
  • Working with the Camera in a NativeScript Vue App β€” November 15, 2018
  • Using NativeScript DataForm with Vue.js - Some Tips β€” November 7, 2018
  • Using Azure Functions and the Marvel API to Visualize Character History β€” November 4, 2018
  • Working with Dynamic Components in Vue.js β€” October 31, 2018
  • Creating a Slide Show for Pinterest Boards in Vue.js β€” October 9, 2018
  • Storing (and Retrieving) Photos in IndexedDB β€” October 5, 2018
  • Node.js for the Non-Node.js Developer β€” August 10, 2018
  • Adding Your YouTube Videos to Your Static Site on Netlify β€” August 8, 2018
  • Adding Your YouTube Videos to Your Static Site with Vue.js β€” August 1, 2018
  • My Vue.js Course is Coming Soon! β€” June 11, 2018
  • Getting Up to Speed with Vue.js β€” April 20, 2018
  • An Example of the Async Clipboard API with Vue.js β€” April 19, 2018
  • Missed VueConfUS? Watch (Parts) Online! β€” April 16, 2018
  • Datalists with Vue.js β€” April 12, 2018
  • TIL - Vue.js and Non-Prop Attributes β€” April 3, 2018
  • Building Three Common Form Interfaces in Vue.js β€” April 2, 2018
  • Reminder on File Inputs, JavaScript, and Read Access β€” March 29, 2018
  • Building a Customizable Weather App in Vue - 2 β€” March 27, 2018
  • Building a Customizable Weather App in Vue.js β€” March 19, 2018
  • Building a Text-Based Adventure in Vue.js (3) β€” March 13, 2018
  • Learn JavaScript Fundamentals at KnowJS β€” March 6, 2018
  • An Example of Ajax Searching with Vue.js β€” March 1, 2018
  • Building an HTML5 Comic Book Reader - in 2018 β€” February 28, 2018
  • Getting Happy with Vue.js β€” February 26, 2018
  • Slides and Assets from My Vue.js Talk β€” February 23, 2018
  • New PWA Series β€” February 21, 2018
  • Building a Text-Based Adventure in Vue.js (2) β€” February 15, 2018
  • Building a Text-Based Adventure in Vue.js β€” February 14, 2018
  • Building Table Sorting and Pagination in Vue.js β€” February 8, 2018
  • A Multi-Step Form in Vue.js β€” January 29, 2018
  • Building a Progressive Color Thief β€” January 25, 2018
  • Building a Quiz with Vue.js β€” January 22, 2018
  • An Example of Vue.js DevTools β€” January 18, 2018
  • My New Lynda Course - Building APIs with LoopBack β€” January 10, 2018
  • A Great Tutorial for Webpack β€” November 7, 2017
  • My NCDevCon Progressive Web App Talk β€” October 31, 2017
  • DevTools Tips for Progressive Web Apps β€” October 17, 2017
  • Review: Building Progressive Web Apps β€” October 16, 2017
  • Some Progressive Web App Tips β€” October 13, 2017
  • Turning My No Man's Sky App Into a PWA β€” October 12, 2017
  • Update to My Image Recognition Service Tester - Amazon Rekognition Support β€” September 4, 2017
  • Why I Hated (and Now Love) Arrow Functions β€” August 25, 2017
  • Online Presentation - Developing in JavaScript in 2017 β€” July 31, 2017
  • Google Analytics and RSS Report - Version 2 β€” July 6, 2017
  • Testing Multiple Image Recognition Services at Once β€” June 15, 2017
  • Updating NodeJS on Windows - Some Tips β€” May 31, 2017
  • An Example of How I Dig Into Your Code β€” April 27, 2017
  • Using Device Motion on the Web β€” April 25, 2017
  • Artificially Delaying Providers with Observable.Delay β€” April 19, 2017
  • Quick console script for O'Reilly Authors β€” March 14, 2017
  • Using Social Login with Passport and Node β€” February 8, 2017
  • New Camera Hotness from Chrome β€” January 24, 2017
  • LoopBack now has a CLI! β€” January 23, 2017
  • LoopBack 3.0 Released β€” December 21, 2016
  • Working with Ionic Native - Contact Fixer β€” December 12, 2016
  • Scraping a web page in Node with Cheerio β€” November 30, 2016
  • Online Pug Testing Tool β€” November 18, 2016
  • Ionic Example: Slides β€” October 24, 2016
  • Using HTML Form Validation in Pure JavaScript β€” October 19, 2016
  • Working with SOAP in a Node App β€” October 12, 2016
  • Chrome Network Emulation and Change Events β€” September 15, 2016
  • Pagination and IndexedDB β€” September 2, 2016
  • My NodeSummit LoopBack Presentation β€” August 31, 2016
  • Working with the Disqus API - Deeper Stats (2) β€” August 25, 2016
  • Working with Ionic Native - Shake, Rattle, and Roll (Follow Up) β€” August 22, 2016
  • Working with the Disqus API - Deeper Stats β€” August 19, 2016
  • Working with the Disqus API - Comment Count β€” August 18, 2016
  • Working with Ionic Native - Using Secure Storage β€” August 16, 2016
  • How Many Days Since the Last JavaScript Framework? β€” August 11, 2016
  • Working with Ionic Native - Using the Diagnostics Plugin β€” August 2, 2016
  • Scraping URLs from a Sitemap File β€” July 16, 2016
  • Deciding what client-side storage system to use β€” July 8, 2016
  • Working with Ionic Native - Shake, Rattle, and Roll β€” July 7, 2016
  • New POC - DailyReddit β€” July 5, 2016
  • An Ionic 1 and 2 app side by side β€” June 30, 2016
  • No back button in your Ionic header? β€” June 29, 2016
  • Linking to PDFs in Cordova apps β€” June 26, 2016
  • Some quick tips for Passport β€” June 23, 2016
  • Ionic 2 Weather Application β€” June 17, 2016
  • Assets and slides from my JS Templating Presentation β€” June 16, 2016
  • Building an AJAX-based form for Formspree β€” May 25, 2016
  • Uploading multiple files at once - with Fetch β€” May 10, 2016
  • Uploading multiple files at once - for Cordova β€” May 6, 2016
  • Uploading multiple files at once with Ajax and XHR2 β€” May 5, 2016
  • An example of virtualScroll and Infinite Scroll in Ionic 2 β€” April 25, 2016
  • GET vs POST for Ajax Requests β€” April 21, 2016
  • Getting Images from a Twitter Account β€” March 25, 2016
  • JSONPath for parsing JSON β€” March 15, 2016
  • Performing sentiment analysis of Twitter data β€” February 25, 2016
  • Building a Twitter bot to display random comic book covers β€” February 22, 2016
  • Displaying Google Street View images β€” February 13, 2016
  • Playing with StrongLoop - Building a Blog - Part Three β€” February 3, 2016
  • Article on Improving Your JavaScript Skills β€” February 1, 2016
  • Survey Results for Rebecca Murphey's Learning JavaScript Survey β€” January 26, 2016
  • Dynamic Subjects with Formspree β€” January 22, 2016
  • What happens when you screw up an Ionic Deployment? β€” January 20, 2016
  • DefinitelyTyped project for IBM MobileFirst and Hybrid Mobile Apps β€” January 19, 2016
  • Time for Angular 2? β€” January 18, 2016
  • Going from static to dynamic with Ionic Creator β€” January 11, 2016
  • Playing with StrongLoop - Building a Blog - Part Two β€” January 7, 2016
  • Seeding data for a StrongLoop app β€” January 6, 2016
  • My first O'Reilly Book: Client-Side Data Storage β€” January 6, 2016
  • Playing with StrongLoop - Building a Blog - Part One β€” January 5, 2016
  • Article: A Review of JavaScript Error Monitoring Services β€” December 21, 2015
  • Is your Ionic View title not updating? β€” December 18, 2015
  • A quick example of the Ionic Loading Widget β€” December 17, 2015
  • Deals on my Cordova book and JavaScript videos β€” December 16, 2015
  • Parsing RSS Feeds in JavaScript - Options β€” December 8, 2015
  • Ionic/Cordova Demo: Where did I take that picture? β€” December 3, 2015
  • How to tell if a Cordova application is running in the simulator β€” November 30, 2015
  • Where I want to go with Node next... β€” November 30, 2015
  • Using the Meetup API in Client-Side Applications β€” November 20, 2015
  • Using Authorization Tokens for IBM Watson services β€” November 13, 2015
  • Working with the Clipboard in Cordova apps β€” November 11, 2015
  • Article: Advanced Image Editing in the Browser β€” November 11, 2015
  • Cordova Demo - Apple TV HD Video Viewer β€” November 5, 2015
  • Quick Tip - Ionic apps and touch events β€” November 2, 2015
  • Building a hybrid mobile app? Avoid using CDNs for your libraries β€” October 30, 2015
  • StrongLoop, Ionic, and IBM Bluemix β€” October 29, 2015
  • A quick look at debugging Node.js with StrongLoop and Visual Studio Code β€” October 28, 2015
  • NodeSchool for IBM Bluemix and Node.js β€” October 27, 2015
  • Working with StrongLoop (Part Four) - Locking down the API β€” October 21, 2015
  • Building my own iPhone Availability Web App β€” October 20, 2015
  • Working with StrongLoop (Part Three) β€” October 15, 2015
  • Adding localization to your Ionic application with IBM Bluemix β€” October 14, 2015
  • Working with StrongLoop (Part Two) β€” October 13, 2015
  • Working with StrongLoop (Part One) β€” October 12, 2015
  • Testing Ionic Push Webhooks with IBM Bluemix β€” October 7, 2015
  • Learn about Ionic at Appcamp β€” October 2, 2015
  • Proof of Concept: Validating an HTML Snippet in a Form β€” October 1, 2015
  • Ionic 1.6.5 and updates to Services β€” September 30, 2015
  • "Beginning JavaScript" β€” September 23, 2015
  • Another Cordova Mashup - Pixelatize β€” September 22, 2015
  • Integrating the Calendar into your Ionic App β€” September 18, 2015
  • Creating a custom display for Google's Analytics Embed Library β€” September 17, 2015
  • Ionic Example: ion-slide-box β€” September 16, 2015
  • Want to learn about client-side storage? β€” September 15, 2015
  • Working around Ionic's cached views β€” September 7, 2015
  • Calling remote services from Ionic Serve β€” September 1, 2015
  • Using Generators with Harp β€” August 24, 2015
  • Chrome, console, and URLs - watch out β€” August 20, 2015
  • Developing Ionic Apps with MobileFirst 7.1 β€” August 19, 2015
  • A quick Pokemon demo, because, Pokemon β€” August 15, 2015
  • Processing multiple simultaneous uploads with Cordova β€” August 10, 2015
  • A real world app with IBM Bluemix, Node, Cordova, and Ionic β€” August 5, 2015
  • Cordova/Ionic Sample App: My Sound Board β€” July 30, 2015
  • SauceDB: Writing data back β€” July 29, 2015
  • Recording and saving audio in Cordova applications β€” July 27, 2015
  • SauceDB - Handling the Sauce view β€” July 24, 2015
  • Some initial thoughts on building desktop apps with Ionic and Electron β€” July 23, 2015
  • Using JavaScript to integrate with the EventBrite API β€” July 22, 2015
  • SauceDB - Building the back end with IBM Bluemix β€” July 20, 2015
  • Using JavaScript, IndexedDB to cheat at WordBrain β€” July 17, 2015
  • Safari and HTTP Caching β€” July 16, 2015
  • SauceDB - Working on the front end β€” July 15, 2015
  • FYI - Cordova events must be run after deviceReady β€” July 15, 2015
  • Quick Tip: Navigating in Ionic without History β€” July 14, 2015
  • New Demo Project: SauceDB β€” July 14, 2015
  • Combining client-side social login and server-side authorization with Cordova and Node β€” July 10, 2015
  • Using the Google Analytics Embed API to Build a Dashboard β€” July 7, 2015
  • Using Angular and a Content Security Policy? Watch out for this... β€” July 3, 2015
  • Ionic Push example supporting State Changes β€” July 2, 2015
  • Working with Ionic, Box, and IBM MobileFirst β€” June 24, 2015
  • An update to my RSS Reader built with Ionic β€” June 22, 2015
  • Presentation: Leveling Up at JavaScript β€” June 16, 2015
  • Quick example of the Google Analytics Embed API β€” June 10, 2015
  • Using Cloud Code, Mobile Application Security, Node.js and Bluemix β€” June 9, 2015
  • Speaking at Ionic Dallas next month β€” June 9, 2015
  • Google Analytics and RSS Report β€” June 8, 2015
  • Cordova Sample: Capture and Display Video β€” June 5, 2015
  • Online presentation next week - How to Become An "Intermediate" JavaScript Programmer β€” June 4, 2015
  • A look at New Relic Browser β€” May 30, 2015
  • Using the Marvel API with IBM Watson β€” May 26, 2015
  • Looking at the JavaScript API in Hybrid MobileFirst Apps (2) β€” May 19, 2015
  • Working with the new PhoneGap/Cordova ContentSync Plugin β€” May 19, 2015
  • Tracking and notifying geolocation status with Ionic β€” May 18, 2015
  • Ionic hits 1.0 β€” May 12, 2015
  • Fluent 2015 β€” May 11, 2015
  • Working with MP3s, ID3, and PhoneGap/Cordova - Adding IBM MobileFirst β€” May 6, 2015
  • Article: The Epic, Awesome & Supremely Useful Data Attribute β€” May 5, 2015
  • Working with MP3s, ID3, and PhoneGap/Cordova β€” April 29, 2015
  • Looking at the JavaScript API in Hybrid MobileFirst Apps β€” April 28, 2015
  • Testing Camera Quality Settings and PhoneGap/Cordova β€” April 27, 2015
  • Connecting PouchDB to Cloudant on IBM Bluemix β€” April 24, 2015
  • IndexedDB and Limits - IE β€” April 24, 2015
  • Big updates to Apache Cordova β€” April 21, 2015
  • Ionic adds a new State feature β€” April 20, 2015
  • IndexedDB and Limits β€” April 17, 2015
  • Speaking on Ionic next week at FluentConf β€” April 15, 2015
  • Blowing up LocalStorage (or what happens when you exceed quota) β€” April 14, 2015
  • Chaining multiple Cordova File Transfers with ngCordova β€” April 13, 2015
  • Front-End Interview Questions – Part 5 β€” April 10, 2015
  • Using MobileFirst HTTP Adapters with an Ionic Application β€” April 8, 2015
  • Some tips for writing JavaScript adapters for IBM MobileFirst β€” April 6, 2015
  • Strategies for dealing with multiple Ajax calls β€” April 3, 2015
  • Using MobileFirst SQL Adapters with an Ionic Application β€” April 2, 2015
  • Working with IBM MobileFirst and Ionic - Bootstrapping β€” March 24, 2015
  • Working with IBM MobileFirst and the Ionic Framework β€” March 23, 2015
  • Creating simple comparative bars with JavaScript and CSS β€” March 19, 2015
  • Quick Handlebars tip concerning precompilation β€” March 14, 2015
  • Testing MetaCert's Security API Service β€” March 13, 2015
  • Selecting multiple images in a PhoneGap/Cordova app β€” March 12, 2015
  • Example of Ionic's Updating Feature β€” March 11, 2015
  • Warning a user before they leave a form β€” March 6, 2015
  • Using the MobileFirst Mobile Browser Simulator β€” February 20, 2015
  • Apache Cordova in Action MEAP Updated β€” February 18, 2015
  • Adding keyboard navigation to a client-side application β€” February 16, 2015
  • Working with hybrid applications and IBM MobileFirst β€” February 16, 2015
  • Interesting error reporting difference in Chrome and Firefox β€” February 14, 2015
  • Possible Cordova FileSystem Resource β€” February 10, 2015
  • Using the new Bluemix Visual Recognition service in Cordova β€” February 6, 2015
  • Suggestions for learning JSON? β€” January 29, 2015
  • ColdFusion Bloggers migrated to Node.js β€” January 26, 2015
  • Front-End Interview Questions β€” January 22, 2015
  • PhoneGap/Cordova Tip: Working with files under www and Android β€” January 21, 2015
  • Lame, client-side 404 handling with Amazon S3 β€” January 17, 2015
  • PhoneGap Online/Offline Tip (2) β€” January 13, 2015
  • Dropdown to Ajax call to ColdFusion example β€” January 9, 2015
  • Article: A Case Study in JavaScript Code Improvement β€” January 8, 2015
  • CFLib moves to Node.js β€” January 5, 2015
  • Using Grunt and Jasmine and having issues with XHR? Read this. β€” January 2, 2015
  • Looking to learn Node and Express? β€” December 29, 2014
  • Avoid the minified AngularJS library in development β€” December 26, 2014
  • Cordova Demo - Viewing all Contacts β€” December 23, 2014
  • Introduction to jQuery β€” December 19, 2014
  • Get jQuery Mobile Web Development Essentials for Five Dollars! β€” December 18, 2014
  • Cordova Example - Sending SMS Messages β€” December 11, 2014
  • Really useful Chrome Dev Tools tip β€” December 10, 2014
  • Selecting a random record from an IndexedDB Object Store β€” November 30, 2014
  • Early Access to My Next Book - Apache Cordova in Action β€” November 25, 2014
  • Check out FormKeep, another option for static sites β€” November 21, 2014
  • Determining installed plugins at runtime for Cordova and PhoneGap applications β€” November 19, 2014
  • Using the autodivider feature in jQuery Mobile (take two) β€” November 18, 2014
  • ColdFusion Example: Using jQuery UI Accordion with a ColdFusion query β€” November 12, 2014
  • Random code I'm sharing for no good reason β€” November 9, 2014
  • Cordova and Asset Downloads β€” November 7, 2014
  • List auto-dividers in Ionic β€” November 6, 2014
  • Cordova Example: Writing to a file β€” November 5, 2014
  • My Modern Web Conference presentation is now available online β€” October 29, 2014
  • Thoughts on Integrating Ionic into an Existing Application β€” October 16, 2014
  • Nunjucks templating by Mozilla β€” October 15, 2014
  • Delaying an Edge Animate asset until visible - Part 6 β€” October 14, 2014
  • My review of Ionic's Visual Application Builder β€” October 10, 2014
  • Cordova, the Camera plugin, AngularJS, and Ninja Cats. β€” October 10, 2014
  • Ionic has a CDN (use with caution) β€” October 2, 2014
  • Syncing Edge Animate with Window Scroll β€” September 29, 2014
  • Another IndexedDB Bug - Possibly β€” September 26, 2014
  • IndexedDB on iOS 8 - Broken Bad β€” September 25, 2014
  • Browser as a platform for your PhoneGap/Cordova apps β€” September 24, 2014
  • Safari Remote Debug and IndexedDB β€” September 24, 2014
  • Tip: Using Ionic - without Ionic β€” September 23, 2014
  • Simple photo filters with VintageJS and Cordova β€” September 23, 2014
  • Using the New York Times API to Chart Occurrences in Headlines β€” September 15, 2014
  • Video: Building Hybrid Applications with Ionic β€” September 13, 2014
  • Proof of Concept: Live HTML checking for a textarea β€” September 8, 2014
  • RSS Reader Cordova demo updated with Ionic β€” September 5, 2014
  • Ionic 1.2.0 Released β€” September 4, 2014
  • Speaking at NCDevCon 2014 β€” September 3, 2014
  • My weekend experiment - PebbleJS β€” August 24, 2014
  • IndexedDB - On the move... β€” August 22, 2014
  • PhoneGap/Cordova Example - Getting File Metadata (and an update to the FAQ) β€” August 18, 2014
  • Ionic and Cordova's DeviceReady - My Solution β€” August 16, 2014
  • Eventbrite API Demos β€” August 15, 2014
  • Review: Code School's JavaScript Best Practices β€” August 13, 2014
  • Presentation tonight on Apache Cordova β€” August 12, 2014
  • Centering a Google Map on America β€” August 9, 2014
  • Keep your DOM from shifting around... β€” August 5, 2014
  • Check out CodeSchool's Angular course β€” July 29, 2014
  • My perspective of working with the Ionic Framework β€” July 28, 2014
  • Updated/Relaunched site - Popular Followers β€” July 24, 2014
  • Cordova Sample: Reading a text file β€” July 15, 2014
  • Video example: collection-repeat performance in Ionic β€” July 10, 2014
  • Proof of Concept Cordova integration with Brackets β€” July 8, 2014
  • GapDebug, a new mobile debugging tool β€” July 2, 2014
  • Cordova Media API Example β€” June 23, 2014
  • Using the Gamepad API β€” June 20, 2014
  • Building a Car Safety Inspection Finder (the good, ugly, and more ugly) β€” June 17, 2014
  • Date Fields, JavaScript, and the things that make me go crazy... β€” June 10, 2014
  • Delaying an Edge Animate asset until visible - Part 5 β€” June 9, 2014
  • Quick FYI: XHR, Cross Domain Requests, and Sessions β€” June 5, 2014
  • ngCordova Released β€” June 4, 2014
  • Related selects with multiple options β€” May 30, 2014
  • Cordova 3.5 and the "What's Next" Guide β€” May 27, 2014
  • PhoneGap Tip: Temporarily changing orientation for video in a portrait only application β€” May 24, 2014
  • Article: Working with Intl β€” May 13, 2014
  • ColdFusion 11's new Struct format for JSON (and how to use it in ColdFusion 10) β€” May 8, 2014
  • Mimicking the GMail Delayed Message Load UX β€” May 7, 2014
  • Example of Async Linting support in Brackets Sprint 38 β€” April 15, 2014
  • Multi-File Uploads and Multiple Selects (Part 2) β€” April 14, 2014
  • Update to my JavaScript Behance API β€” April 11, 2014
  • Dynamically Creating CSV Files on the Client β€” April 3, 2014
  • AngularJS Tip - Avoid Multiple Variables in ng-src β€” March 29, 2014
  • Example of a JavaScript Disqus Recent Comment Widget β€” March 21, 2014
  • Reprint: What in the heck is JSONP and why would you use it? β€” March 12, 2014
  • My ColdFusion Bugs - visualized β€” February 28, 2014
  • Interesting discovery with CasperJS, jQuery, and transitions β€” February 28, 2014
  • Creating a data backup of a WebSQL database β€” February 24, 2014
  • Google+ Sign-In and ColdFusion β€” February 20, 2014
  • Adding a dynamic calendar to HarpJS β€” February 14, 2014
  • Presenting on Harp.js next week β€” February 12, 2014
  • AngularJS IndexedDB Demo β€” February 7, 2014
  • Simple Trick - Adding a Play Indicator to the Browser Tab β€” February 4, 2014
  • Examples of the Marvel API β€” February 2, 2014
  • Proof of Concept - Dashboard for Google Analytics β€” January 24, 2014
  • I'm not going to tell you to stop using ColdFusion UI tags anymore... β€” January 23, 2014
  • Edge Animate 3.0 β€” January 21, 2014
  • Some quick HarpJS Tips β€” January 20, 2014
  • Interesting discovery - Chrome and Storage β€” January 16, 2014
  • AngularJS Doesn't Suck! β€” January 14, 2014
  • HTML5 Input Patterns and Invalid Regex β€” January 13, 2014
  • Some HarpJS experiments involving categories β€” January 2, 2014
  • My personal little JavaScript WTF β€” December 31, 2013
  • Article: Working with IndexedDB - Part 3 β€” December 26, 2013
  • Dev Tools Tip - Preserving network logs on leaving a page β€” December 19, 2013
  • Quick note about HTML5 Form validity and browser differences β€” December 19, 2013
  • Using the autodivider feature in jQuery Mobile β€” December 17, 2013
  • New Brackets Extension - Canalyzer! β€” December 16, 2013
  • Article: Moving to Static and Keeping Your Toys β€” December 16, 2013
  • Meanwhile, over in IndexedDB land... β€” December 13, 2013
  • jQuery UI Video Course β€” December 13, 2013
  • Quick Sample: Appending URL data to a Form post with JavaScript β€” December 11, 2013
  • Delaying an Edge Animate asset until visible - Part 4 β€” December 6, 2013
  • Building a Quiz Manager for jQuery Mobile β€” December 5, 2013
  • Building a Contact Form with Parse and Mailgun β€” November 12, 2013
  • Using Grunt to automatically build your PhoneGap/Cordova projects β€” November 7, 2013
  • Want help with Snap.svg? (And a few more examples...) β€” November 6, 2013
  • ExpressWorks (building on NodeSchool) β€” November 5, 2013
  • Check out nodeschool.io β€” November 1, 2013
  • Using ColdFusion UI tags and many bound controls β€” October 29, 2013
  • What broke my event handler? β€” October 28, 2013
  • Snap.svg demo - Census Data β€” October 28, 2013
  • Topic Undefined - Episode 6 β€” October 25, 2013
  • Introducing Snap.svg β€” October 23, 2013
  • Article: Working with IndexedDB - Part Two β€” October 21, 2013
  • Drag and drop image matching search at Behance β€” October 18, 2013
  • Second draft - JavaScript Library for Behance Integration β€” October 17, 2013
  • cfObjective 2014 Call for Speakers (and my proposed sessions) β€” October 16, 2013
  • Working with binary data in a Brackets Extension β€” October 7, 2013
  • PhoneGap Build and PhoneGap 3.0 β€” October 1, 2013
  • Webinar - Back to the Edge β€” September 30, 2013
  • jQuery Mobile Web Development Essentials, Second Edition β€” September 26, 2013
  • My videos (and others) from NCDevCon β€” September 22, 2013
  • CSS Animation Workshop β€” September 19, 2013
  • Topic Undefined - Episode 5 β€” September 18, 2013
  • Playing with the Details/Summary Tag β€” September 17, 2013
  • PhoneGap Day Video on Parse.com β€” September 16, 2013
  • Article: Working with IndexedDB β€” September 13, 2013
  • Attend NCDevCon! β€” September 10, 2013
  • Adding a file display list to a multi-file upload HTML control β€” September 10, 2013
  • How do you check (and update) your PhoneGap version in 3.0? β€” September 5, 2013
  • Working with jQuery Mobile Panels β€” September 5, 2013
  • Some tips for using Brackets and Theseus β€” August 28, 2013
  • Another Node Experiment: AndKittens β€” August 27, 2013
  • Review: Effective JavaScript β€” August 25, 2013
  • Brick by Mozilla β€” August 23, 2013
  • Node.js Quickie - checking the current domain name β€” August 21, 2013
  • Node Weekly Launching β€” August 20, 2013
  • More ways to be a hero with Edge Animate β€” August 19, 2013
  • Using Drawing Tools and Maps to Find Data β€” August 19, 2013
  • Friday Puzzler: Get off your butt and learn your browser tools! β€” August 16, 2013
  • JavaScript Errors and the Firefox Console β€” August 16, 2013
  • Updating PhoneGap Databases β€” August 14, 2013
  • Using the Directory-serving middleware in Express β€” August 11, 2013
  • Delaying an Edge Animate asset until visible - Part 3 β€” August 9, 2013
  • Google Maps and Markers Update β€” August 9, 2013
  • Sharing ColdFusion WebSockets among different applications β€” August 8, 2013
  • Article: Going Live With Node β€” August 5, 2013
  • Friday Puzzler: How to get to there from here... β€” July 26, 2013
  • Modifying the PhoneGap Template in 3.0 β€” July 24, 2013
  • Better example of PhoneGap, Parse, and uploading files β€” July 23, 2013
  • Article: Introduction to Express β€” July 22, 2013
  • PhoneGap 3.0 Released - Things You Should Know β€” July 19, 2013
  • Speaking at PhoneGap Day 2013 β€” July 17, 2013
  • CajunIpsum - Because - Um - Yeah! β€” July 16, 2013
  • Topic Undefined - Episode 2 β€” July 16, 2013
  • Delaying an Edge Animate asset until visible - Part 2 β€” July 11, 2013
  • Quick note for Parse and JavaScript Users β€” July 10, 2013
  • Brackets, Edge Code, and MAX 2013 β€” June 26, 2013
  • Node lessons learned painfully (or why my site crashed) β€” June 24, 2013
  • Book Review: Third-Party JavaScript β€” June 23, 2013
  • The official, real launch of JavaScriptCookbook β€” June 20, 2013
  • More on my JavaScriptCookbook Node project β€” June 14, 2013
  • IndexedDB and Date Example β€” June 6, 2013
  • Two more MAX Videos: Cutting-Edge HTML and Debugging Your Web Apps β€” May 31, 2013
  • Using the Page Visibility API with Edge Animate β€” May 29, 2013
  • Using the Page Visibility API β€” May 28, 2013
  • Review: Instant Wijmo Widgets How-To β€” May 27, 2013
  • Infinite Scroll Example with ColdFusion β€” May 21, 2013
  • Capturing camera/picture data without PhoneGap β€” May 20, 2013
  • Converting a list of dates into a shorter, combined list β€” May 19, 2013
  • JavaScript Design Patterns - The Revealing Module Pattern β€” May 13, 2013
  • New Brackets extension - JSDownloader β€” April 24, 2013
  • Presenting on PhoneGap Next Week β€” April 23, 2013
  • Article Posted (Again) : Building a Google Maps Application with Updating Markers β€” April 22, 2013
  • Proof of Concept - Connecting a Node app with Brackets β€” April 16, 2013
  • Review: Learning JavaScript Design Patterns β€” April 14, 2013
  • New project: Service Data Format Library β€” April 10, 2013
  • Quick Code Sample - Add your Behance portfolio to your web site β€” April 5, 2013
  • Delaying an Edge Animate asset until visible β€” April 3, 2013
  • Friday Puzzler: Sort Type β€” March 29, 2013
  • JavaScript Design Patterns - The Module Pattern β€” March 22, 2013
  • New online material for Chrome DevTools β€” March 21, 2013
  • JavaScript Design Patterns - My Crazy Plan β€” March 19, 2013
  • Building "Robust" PhoneGap Applications β€” March 18, 2013
  • Free ColdFusion 10 and jQuery Mobile Tutorial β€” March 12, 2013
  • Simple Reverse Geocoding Example β€” March 5, 2013
  • PhoneGap Sample - Diary (Database and Camera support) β€” March 4, 2013
  • My IndexedDB recording, and a few notes β€” February 28, 2013
  • Presentation: Browser Tools for Debugging β€” February 22, 2013
  • Google Map/Directions Mashup β€” February 18, 2013
  • Big new releases today - including Reflow β€” February 14, 2013
  • Getting a quota error with Google and you've barely touched your limit? β€” February 13, 2013
  • Quick example of Chrome JavaScript Hot Swapping β€” February 11, 2013
  • jQuery Example: Related, hidden selects β€” February 8, 2013
  • Using Ripple for PhoneGap Development β€” February 6, 2013
  • Playing with SVG and JavaScript β€” February 5, 2013
  • Latest presentations and materials β€” January 31, 2013
  • A walkthrough of some basic jQuery help β€” January 28, 2013
  • Did you know - Safari Remote Debugging and PhoneGap β€” January 21, 2013
  • FYI - iOS, JavaScript, and inactive tabs β€” January 20, 2013
  • Quick Tip: Running WebSQL commands in Chrome Dev Tools β€” January 16, 2013
  • PhoneGap Sample - Shake to Roll β€” January 15, 2013
  • An example of history management in the browser β€” December 17, 2012
  • Another proof of concept - MockData β€” December 13, 2012
  • New Chrome Extension - Kittenify β€” December 11, 2012
  • Dynamically skipping animations in Edge Animate β€” December 4, 2012
  • Book Review: The Cross Browser Handbook β€” December 4, 2012
  • Simple Google Maps demo with Custom Markers - Followup β€” December 3, 2012
  • Simple Google Maps demo with Custom Markers β€” December 1, 2012
  • Reading Microdata Elements in Chrome β€” November 26, 2012
  • Testing Globalization Support in PhoneGap 2.2 β€” November 15, 2012
  • POC: Integrating a Chrome Extension with Adobe Edge Animate β€” November 14, 2012
  • Dynamically loading a style sheet based on weather conditions β€” November 12, 2012
  • Data-driven Edge Animate projects β€” November 7, 2012
  • Proof of Concept - An Edge Inspect Screenshot Viewer β€” November 6, 2012
  • Adding Parse.com User support to your PhoneGap application β€” October 31, 2012
  • Building a Parse.com Enabled PhoneGap App - Part 5 β€” October 24, 2012
  • Stop using jQuery!! (all the time...) β€” October 23, 2012
  • Simple POC - Dynamically select an element from a list and skip the last chosen β€” October 22, 2012
  • Adding mouse click navigation to Reveal.js β€” October 20, 2012
  • Enable CORS for ColdFusion Services β€” October 17, 2012
  • Experiment - Build your own stock market AI β€” October 15, 2012
  • Displaying iCal data in PhoneGap? β€” October 12, 2012
  • PhoneGap, Parse.com, and Push Notifications β€” October 10, 2012
  • Building a Parse.com Enabled PhoneGap App - Part 4 β€” October 4, 2012
  • Some Brackets Extension Tips β€” October 1, 2012
  • WebGL: Up and Running β€” September 30, 2012
  • NCDevCon Resources β€” September 30, 2012
  • ColdFusion WebSocket Tip - saving custom client metadata β€” September 28, 2012
  • Building a Parse.com Enabled PhoneGap App - Part 3 β€” September 27, 2012
  • Building a Parse.com Enabled PhoneGap App - Part 2 β€” September 25, 2012
  • Two ColdFusion 10 WebSocket Experiments β€” September 25, 2012
  • Building a Parse.com Enabled PhoneGap App - Part 1 β€” September 21, 2012
  • Looking for a Face.com API replacement? Try ReKognition. β€” September 18, 2012
  • Example of a Parse.com JavaScript application with offline support β€” September 14, 2012
  • Microsoft WebMatrix - a quick review β€” September 13, 2012
  • Updating my CanIUse Mashup with LocalStorage β€” September 12, 2012
  • Video of my HTML5 Storage presentation β€” September 10, 2012
  • Update to my Node Blog Engine β€” September 9, 2012
  • Using ColdFusion's Autosuggest? Check your query size β€” September 4, 2012
  • Mashups of CanIUse.com data β€” September 4, 2012
  • A PhoneGap Build API wrapper in Node β€” August 31, 2012
  • Thoughts on Node.js and Express β€” August 29, 2012
  • Example of M3U Support for CFMEDIAPLAYER β€” August 27, 2012
  • Proof of Concept - Build a download feature for IndexedDB β€” August 23, 2012
  • Two speaking engagements in Omaha β€” August 23, 2012
  • PhoneGap RSS Reader - Part 5 β€” August 17, 2012
  • Open Session on PhoneGap Development β€” August 16, 2012
  • Push reveal.js notes into the console β€” August 15, 2012
  • Searching for array elements in IndexedDB β€” August 10, 2012
  • Resources from my RIACon presentations β€” August 8, 2012
  • What tags does your browser support? (2012) β€” August 6, 2012
  • WebSocket example with keyword highlighting β€” August 6, 2012
  • How to update the Panel DOM in a Chrome Extension Panel β€” August 3, 2012
  • Using jQuery to load HTML and filter it by N selectors β€” August 2, 2012
  • Got a new Chrome? Got a joystick? Check out the Gamepad API β€” August 1, 2012
  • Recording from Web+Mobile DevCon Presentation β€” July 30, 2012
  • Example of form validation in a jQuery Mobile Application β€” July 30, 2012
  • Firefox bug(?) with DOM Manipulation β€” July 17, 2012
  • Speaking at Mobile + Web Devcon β€” July 16, 2012
  • How to add a panel to Chrome Dev Tools β€” July 15, 2012
  • LocalStorage Example: Storing previous searches β€” July 13, 2012
  • Windows 7 version of PhoneGap/Cordova β€” July 12, 2012
  • Slides and code from my Nashville presentation β€” July 11, 2012
  • Article posted to HTML5Rocks - Databinding UI Elements with IndexedDB β€” July 9, 2012
  • PhoneGap RSS Reader - Part 4 β€” July 9, 2012
  • Speaking in Nashville on PhoneGap and Web Debugging β€” July 8, 2012
  • Simple JavaScript number format function, and an example of Jasmine β€” July 6, 2012
  • Proof of Concept - Updating news items dynamically β€” July 2, 2012
  • Slides and code from presentation at jQuery Conference β€” June 28, 2012
  • Dynamically changing jQuery Mobile Buttons β€” June 26, 2012
  • Say hello to Brackets β€” June 25, 2012
  • Ask a Jedi: ColdFusion WebSockets and Subchannels β€” June 22, 2012
  • Update to my Server-Based Login PhoneGap Demo β€” June 21, 2012
  • Example of a dynamic HTML5 datalist control β€” June 14, 2012
  • Issues with IndexedDB and Chrome β€” June 12, 2012
  • Example of authentication and ColdFusion 10 WebSockets (2) β€” June 8, 2012
  • Recording and Assets from WebSockets Presentation β€” June 6, 2012
  • Case sensitivity and ColdFusion 10 WebSockets β€” June 5, 2012
  • Examples of authentication and ColdFusion 10 WebSockets β€” June 1, 2012
  • Example of adding menu support to a PhoneGap Application β€” May 30, 2012
  • Building an HTML5 Comic Book Reader β€” May 29, 2012
  • Example of getUserMedia and CSS Filters β€” May 25, 2012
  • Context Menu Example with jQuery Mobile β€” May 23, 2012
  • Creating watermarked images in PhoneGap β€” May 22, 2012
  • cfObjective 2012 β€” May 20, 2012
  • Some thoughts on organizing a large jQuery Mobile project β€” May 16, 2012
  • Adding "Filter as you type" support to IndexedDB β€” May 14, 2012
  • Example of invokeAndPublish with WebSockets and ColdFusion 10 β€” May 11, 2012
  • Using CFC data with Handlebars β€” May 11, 2012
  • Setting up console debugging for PhoneGap and Android β€” May 10, 2012
  • Recording, slides, and code from my WebSockets presentation β€” May 9, 2012
  • Transcripts from PhoneGap Session β€” May 8, 2012
  • Converting a dynamic web site to a PhoneGap application β€” May 5, 2012
  • jQuery Mobile Web Development Essentials - Released β€” May 4, 2012
  • Presenting on ColdFusion 10 and WebSockets β€” May 3, 2012
  • Example of Intents with PhoneGap β€” May 1, 2012
  • ADC: Real-world example of the HTML5 FileSystem API β€” May 1, 2012
  • Second issue of Appliness Launches β€” April 30, 2012
  • "Full" sample of IndexedDB in action β€” April 30, 2012
  • Sample of IndexedDB with Autogenerating Keys β€” April 26, 2012
  • How to handle setup logic with IndexedDB β€” April 25, 2012
  • Demo of Handlebars, and why you should consider a templating engine β€” April 19, 2012
  • Dynamically replacing Gists with raw content for jQuery Mobile β€” April 14, 2012
  • jQuery Mobile 1.1 Released β€” April 13, 2012
  • Tracking application usage with PhoneGap β€” April 13, 2012
  • Face detection with getUserMedia β€” April 6, 2012
  • Using jQuery to conditionally load requests β€” April 5, 2012
  • Chrome Dev Tools and WebSQL β€” April 4, 2012
  • Adding database synchronization to your PhoneGap project β€” April 3, 2012
  • DevNexus Presentation Assets β€” March 21, 2012
  • Simple JavaScript template system at WhichElement β€” March 13, 2012
  • PhoneGap's File API β€” March 9, 2012
  • Your security lesson for the day - Console is the MCP β€” February 23, 2012
  • ColdFusion 10 Web Socket Demos β€” February 20, 2012
  • Quick demo of accessing XML data with jQuery β€” February 16, 2012
  • Adding Internationalization/Localization Support to Web Applications β€” February 15, 2012
  • Creating a highlight/fadeout text effect on a tag cloud β€” February 2, 2012
  • RIACon 2012 β€” January 30, 2012
  • A look at JavaScript Form Validation β€” January 27, 2012
  • PhoneGap RSS Reader - Part 3 β€” January 24, 2012
  • Detecting invalid HTML with JavaScript β€” January 23, 2012
  • Two CFGRID Examples: Related grids and updating checkboxes β€” January 22, 2012
  • Downloading files to a PhoneGap application - Part 2 β€” January 20, 2012
  • Demo of Color Palettes and PhoneGap β€” January 13, 2012
  • Working with the battery in a PhoneGap application β€” January 13, 2012
  • Using a server, or session storage, to persist form values β€” January 10, 2012
  • Code+Slides from jQuery Mobile Presentation β€” January 7, 2012
  • Working with dates and SQLite in PhoneGap β€” January 6, 2012
  • Creating a fade/toggle/change effect in jQuery β€” January 2, 2012
  • How I debug JavaScript issues β€” December 30, 2011
  • ColdFusion + jQuery example β€” December 21, 2011
  • PhoneGap RSS Reader - Part 2 β€” December 19, 2011
  • PhoneGap and constants β€” December 5, 2011
  • Adding voice-based search to a PhoneGap app β€” December 2, 2011
  • Check out GeoNames β€” November 30, 2011
  • My first AngularJS application β€” November 29, 2011
  • Demo of a multi-step form in jQuery Mobile (Part 2) β€” November 22, 2011
  • Book Review: Web Development Recipes β€” November 22, 2011
  • Building a Twitter Search that highlights important tweets β€” November 21, 2011
  • Some PhoneGap samples β€” November 20, 2011
  • Working with Scoreoid's Game API β€” November 17, 2011
  • Some Canvas Experiments β€” November 16, 2011
  • How to give dynamic driving directions to your customers β€” November 14, 2011
  • Cool Edge example β€” November 11, 2011
  • Example of server-based login with PhoneGap β€” November 10, 2011
  • Using the Chrome JavaScript Debugger β€” November 9, 2011
  • Handling JSON with prefixes in jQuery and jQueryUI β€” November 8, 2011
  • Latest Mobile app - WTFRU β€” November 4, 2011
  • PhoneGap Orientation Example β€” November 4, 2011
  • HTML5 Data Attribute Example β€” November 3, 2011
  • PhoneGap file upload to ColdFusion β€” November 2, 2011
  • Mobile app show and tell on Friday β€” November 2, 2011
  • Using jQuery to create a dynamic time countdown β€” October 30, 2011
  • Intro to jQuery slides + code β€” October 28, 2011
  • Quick Example - Parsing USGS Earthquake Data β€” October 21, 2011
  • Example of PhoneGap's Database Support β€” October 20, 2011
  • Example of console debugging with Weinre and PhoneGap β€” October 19, 2011
  • Enabling automatic back buttons in jQuery Mobile β€” October 18, 2011
  • First test of PhoneGap Plugins β€” October 12, 2011
  • PhoneGap RSS Reader β€” October 11, 2011
  • Playing with PhoneGap? Try the Mega Demo β€” October 4, 2011
  • Why is my Ajax not working? β€” September 26, 2011
  • My first Chrome Extension β€” September 15, 2011
  • Detect window close/reload versus exit β€” September 14, 2011
  • Using Local Storage to keep a draft of form data β€” September 11, 2011
  • Spock sneak peak / geolocation example β€” August 30, 2011
  • jQuery Quickie - Noticing ctrl/shift keyboard events β€” August 23, 2011
  • Updating my ColdFusion HTML presentation to use jQuery β€” August 8, 2011
  • Quick demo of jQuery and Google Maps β€” August 6, 2011
  • jQuery Mobile Beta 2 released (and a small demo) β€” August 4, 2011
  • My "Don't try this at home" experiment with jQuery UI β€” August 2, 2011
  • Don't make your mobile site a prison β€” July 25, 2011
  • jQuery Mobile - adding Local Storage β€” July 13, 2011
  • jQuery Mobile First Look β€” June 24, 2011
  • Take a look at Angular β€” June 19, 2011
  • Best way to handle history autocomplete in a form? β€” June 16, 2011
  • Real time textual analysis via OpenAmplify β€” June 2, 2011
  • Best way to learn JavaScript? β€” May 15, 2011
  • jQuery Mobile, Phonegap, and remote Ajax calls β€” May 6, 2011
  • Related selects in jQuery - an example β€” May 5, 2011
  • jQuery Mobile + Google Analytics proof of concept β€” April 19, 2011
  • Slides, code from my jQuery Mobile presentation β€” April 16, 2011
  • Simple introduction to Google Maps Part 2 - Markers β€” April 13, 2011
  • Spot the error - it may not be what you think β€” April 12, 2011
  • Collapsible content and Ajax loading with jQuery Mobile β€” April 5, 2011
  • Example of jQuery Mobile site using authentication - first round β€” April 3, 2011
  • Thoughts on PhoneGap β€” March 23, 2011
  • Using CAPTCHA in ColdFusion with reload powered by jQuery β€” March 14, 2011
  • Using swipe gestures for navigation in jQuery Mobile β€” March 14, 2011
  • Building an offline capable mobile web site with jQuery Mobile β€” March 12, 2011
  • National Broadband Map (jQuery Demo) β€” February 17, 2011
  • Simple introduction to Google Maps β€” February 15, 2011
  • Ask a Jedi: Strategies for minimizing/customizing resources loaded by a template β€” February 15, 2011
  • Adding Google Streetview to ColdFusion CFMAP β€” February 11, 2011
  • Using jQuery to search against different types of content (3) β€” February 6, 2011
  • Using jQuery to search against different types of content (2) β€” February 3, 2011
  • Automatically storing changes in a form β€” February 1, 2011
  • Using jQuery to search against different types of content β€” February 1, 2011
  • jQuery 1.5 Released β€” January 31, 2011
  • My InsideRIA Archive β€” January 28, 2011
  • Yet another charting option - Highcharts β€” January 27, 2011
  • Personalizing a login form with jQuery and ColdFusion β€” January 19, 2011
  • Slides, code from HTML5 Preso β€” January 19, 2011
  • jQuery quickie: Reading the contents of form fields in an iframe β€” January 13, 2011
  • Creating map previews with jQuery and Google's Static Map API β€” January 5, 2011
  • Quick follow up to Modal Dialog Editing post with jQuery and ColdFusion β€” January 4, 2011
  • Ask a Jedi: Example of modal dialog editing with jQuery β€” January 2, 2011
  • Providing context help for drop downs with jQuery β€” December 28, 2010
  • Review: JavaScript Patterns β€” December 14, 2010
  • Using jQuery to mimic the NYT's new paragraph linking β€” December 3, 2010
  • Adding real time suggestions for search with ColdFusion, Solr, and jQuery β€” November 17, 2010
  • Just found this - JSLint β€” November 10, 2010
  • Working with a ColdFusion Query in jQuery β€” November 9, 2010
  • What is the best jQuery Dump option? β€” October 22, 2010
  • Using JavaScript to update the browser window title when the user is away β€” October 19, 2010
  • Dealing with remote resources in ColdFusion and HTML/JS β€” October 1, 2010
  • Missed me at CFUNITED? Catch my presentation this week β€” August 9, 2010
  • Building your first HTML/Adobe AIR Application β€” July 31, 2010
  • Show me a better way: Inserting date/time strings into SQLite via HTML and Adobe AIR β€” July 17, 2010
  • Review: Object-Oriented JavaScript β€” June 15, 2010
  • Ask a Jedi: Using links to select tabs in jQuery UI Tabs β€” June 11, 2010
  • jQuery Autocomplete and HTML β€” May 17, 2010
  • Stupid jQuery Trick - HTML Preview β€” April 28, 2010
  • jQuery Quickie: Using a checkbox to enable/disable a row of checkboxes β€” April 10, 2010
  • Quick example - updating stuff with CFSLIDER β€” March 30, 2010
  • Using jQuery to post an array to a ColdFusion Component β€” March 23, 2010
  • Using jQuery to convert text into form fields (2) β€” March 19, 2010
  • JavaScript Tip - Auto Capitalizing β€” March 16, 2010
  • Interesting ColdFusion Ajax Issue(Bug?) β€” January 8, 2010
  • Fixing the CFFORM Mask/Scroll problem β€” November 2, 2009
  • Ask a Jedi: Formatting times client side β€” October 27, 2009
  • Quick example of ExternalInterface, communicating between Flex and JavaScript β€” July 9, 2009
  • ColdFusion Quickie - Generating JavaScript from CFML β€” June 11, 2009
  • Links β€” May 31, 2009
  • CFTHREAD with a loading message β€” May 20, 2009
  • New ADC Article: Using Dreamweaver, InContext Editing, and Spry to build a dynamic site β€” May 19, 2009
  • Simple CFCHART/jQuery Demo β€” May 15, 2009
  • Simple example of a Form post to ColdFusion with jQuery β€” March 20, 2009
  • Presentation files (and thanks) β€” March 12, 2009
  • Making a "sticky" CFWINDOW β€” January 17, 2009
  • Today's Weird JavaScript Issue β€” October 22, 2008
  • Ask a Jedi: Detect JavaScript with ColdFusion? β€” October 15, 2008
  • Ask a Jedi: Dynamically updating line items on a form β€” September 10, 2008
  • Ask a Jedi: Trouble with ColdFusion.Ajax.SubmitForm β€” July 3, 2008
  • Ask a Jedi: Creating lowercased cookies in ColdFusion β€” April 16, 2008
  • Ask a Jedi: Building a JavaScript Widget with ColdFusion β€” December 7, 2007
  • Spry's Password Validation β€” October 21, 2007
  • Quick and Dirty JSON/Query Example β€” September 20, 2007
  • Bug with JavaScript bind and textareas β€” September 10, 2007
  • JSON/Paging Fix for Spry β€” September 6, 2007
  • Slick image cropping demo by Todd Sharp β€” August 2, 2007
  • Ask a Jedi: Sizing a window with ColdFusion β€” May 7, 2007
  • JSEclipse Updated β€” April 3, 2007
  • Quick example of JSON versus XML β€” March 14, 2007
  • More on the JavaScript bug I had - and how it relates to Spry β€” January 21, 2007
  • Setting the disabled property of a form field (help needed) β€” January 21, 2007
  • Alert can still lock browsers - why? β€” January 7, 2007
  • Two more gems from Adobe Labs β€” December 16, 2006
  • JavaScript - Opening a new window with little to no chrome β€” December 8, 2006
  • Using JavaScript to warn a user about a session timeout β€” September 20, 2006
  • I heart Spry β€” June 2, 2006

© 2025 Raymond Camden. Powered by Eleventy 3.0.0.

Now GitHub YouTube Mastodon LinkedIn