- Counting Words with Intl.Segmenter —
- Executing Dynamic Code in a Reveal.js Presentation —
- Adding Translation with a Web Component and Chrome AI —
- Next Code Break - Blogging with Eleventy —
- Using Chrome AI for Translation —
- Using Parallel Requests to Improve Web Performance —
- Getting and Displaying a Mastodon Post in Client-Side JavaScript —
- Take a Code Break Tomorrow —
- Adding AI Insights to Data with Google Gemini —
- JavaScript Clipboard Stuff —
- Generating Illustrated Stories with AI —
- Custom Markers with Leaflet —
- Using Geocoding with Leaflet —
- Using Chrome AI to Rewrite Text —
- Dynamically Showing and Hiding Markers in Leaflet —
- Using Asynchronous Content in Leaflet Popups —
- Using AI to Roast Your Photos —
- Using the Chrome AI Summarizer (Early Look) —
- Let's Map Traffic Incidents... Again —
- Using CSV Data with Leaflet —
- Building a General Purpose GeoJSON Viewer with Leaflet —
- Quick Example using Azure's Node.js SDK for Signed URLs —
- Mapping with Leaflet —
- Another Web Component - Table Compressor —
- Real-Time Sentiment Analysis on Device with AI in Chrome —
- Setting Dynamic Objects Keys in JavaScript —
- A Quick Look at AI in Chrome —
- Automating Background Removal with Firefly Services —
- An Online Mastodon Archive Viewer —
- Caching Input with Google Gemini —
- Web Component to Generate Image Color Palettes —
- Scraping Recipes on the Web - Now with Display and Print —
- Creating a Generic Generative Template Language in Google Gemini —
- Cat Herder V1 Released! —
- Working with Pasted Content in JavaScript —
- Storing Recipes in IndexedDB —
- Creating a Content Assistant with Gemini and GenAI —
- Adding Your Buttondown Email Stats to Your Website —
- Scraping Recipes Using Node.js, Pipedream, and JSON-LD —
- Using JSON Schema with Google Gemini —
- Game Dev Diary - Cat Herder - Part 2 —
- Game Dev Diary - Cat Herder - Part 1 —
- Tracking Gemini Models with Pipedream —
- Update to My Table Sorting Web Component —
- Adding Recommendations to my Blog with Algolia —
- Creating Visualizations in Postman —
- Dynamically Creating Variables in Postman —
- Using the Gemini File API for Prompts with Media —
- Testing Google's New Gemini Flash Model —
- Upcoming Generative AI Talk by... Me! —
- Building a Chat Integration with Google Gemini —
- Automating Movie Recommendations with Generative AI and Pipedream —
- JSON Results with Google Gemini Generative AI API Calls —
- Using GenAI to Help Pick Your D & D Class —
- Using Netlify Edge and Blob Support to Investigate Website Traffic —
- A Quick First Look at Amazon Bedrock (with Node.js) —
- All Your Dragons Are Belong To Us —
- Automating Blog Post Headers with Firefly Services —
- Automate Generative Image APIs with Firefly Services —
- Spam APIs in 2024 —
- Come Build/Play a Game with Me Next Week —
- <Code><Br> - First Episode —
- My New Show - <Code><Br> —
- You Should Attend theJam.dev 2024! —
- A Tip for Properly Handling Loading States in Web Apps —
- Can GenAI help you win in Vegas? —
- Creating Human-Readable Summaries of Data with Google PaLM Generative AI —
- Using Google PaLM to Gather Sentiment Analysis on a Forum —
- Texting Email Summaries using Google PaLM AI and Twilio —
- A Look at Google's PaLM API —
- Join Us at The Undefined Show! —
- Using PDFs with Algolia and Adobe PDF Extract API —
- Algolia DevCon 2023 Videos —
- Add Streaming to Your Jamstack Site in Minutes —
- Creating a Web Component for Reveal.js (Follow-up) —
- Creating a Web Component for Reveal.js —
- WebC Updates in Eleventy - Looping —
- Awesome Algolia Updates (and some fixes here...) —
- WebC Updates in Eleventy —
- Progressively Enhancing a Table with a Web Component —
- Adding a Chart to an Alpine.js Application —
- My First Bug —
- Cloudinary Debugging Tip —
- Short Number Formatting in Python —
- Dynamically Showing and Hiding Slot Content in a Web Component —
- Download Data as a File with Alpine.js —
- Adding Download Support in an Eleventy Site —
- Reading Image Sizes and Dimensions with Alpine.js —
- Automatically Posting to Mastodon and Twitter on New RSS Items —
- Quirky Python Loop Thing —
- Building a Mastodon Bot on Pipedream —
- A Bare-Bones Eleventy Template for Glitch —
- Building a YouTube Embed Web Component (both vanilla and WebC flavored) —
- Adding Responsive Images with Cloudinary —
- Integrating Cloudinary Notifications with Pipedream —
- An Alpine.js Template for Glitch —
- Using Cloudinary with Alpine.js —
- Building an API to List Cloudinary Images in a Folder —
- Integrating Cloudinary into Eleventy —
- First Experience Building with Eleventy's WebC Plugin —
- Working with Slots and Web Components —
- Working with Custom Events and Web Components —
- Building a Placeholder Web Component with No External Dependencies —
- Web Component Experiment - Manipulating Inner Text —
- A PDF Embed Web Component —
- Using the Adobe PDF Embed API with Vue 3 —
- Investigating IndexedDB Wrapper Libraries - Part Three —
- Investigating IndexedDB Wrapper Libraries - Part Two —
- Investigating IndexedDB Wrapper Libraries - Part One —
- Getting Images from a Twitter Account (2022) —
- Building Table Sorting and Pagination in a Web Component —
- My First Web Component —
- Working with Algolia's Crawler —
- Using the Microsoft Computer Vision API with Python —
- Searching the New York Times with Python —
- Working with Front Matter in Python —
- Building a File Search Script in Python —
- Python for My Last Post of the Year... —
- Review: Captain Code: Unleash Your Coding Superpower with Python —
- Check out Begin —
- Using PDFs with the Jamstack - Adding Search with Text Extraction —
- Load a PDF Embed when Visible —
- How I Write Content Here... —
- Using PDFs with the Jamstack - Now with Thumbnails —
- Using PDFs with the Jamstack —
- Using the PDF Embed API with Vue.js —
- Exporting Disqus Comments and Adding Them to Eleventy —
- Quick Hack for Reveal.js Presentations —
- Highly Analytics - A Review —
- Review: Learning Progressive Web Apps by John Wargo —
- Notes on Upgrades to WSL2 (And Why You Should) —
- Modifying Prism's Copy Plugin —
- My Tech Stack (So Far) in 2020 —
- Tips for Giving Remote Presentations —
- Sending a Notification to Alexa when Netlify Builds Your Site —
- A Look at Zeit's Zero Config and Serverless Platform —
- My Thoughts on Documentation —
- Book Review: Progressive Web Apps —
- Creating a One Click Visual Studio Code Snippet to Wrap Content —
- Multiple Ways of API Integration in your JAMStack —
- Quick Netlify Dev Tip for Complex Static Sites —
- Netlify Analytics - An Initial Look —
- Blocking Web Sites from Prompting for Notifications —
- Book Review: Learning GraphQL —
- Adding Automated Text Linting to My Blog —
- Using Alexa to Mess with Your Kids, Because Why Not? —
- Adding Ice Bear to Alexa, Because Why Not? —
- I Built a NativeScript/Vue.js App and You Won't Believe What Happened Next... —
- My First Stab at a Grammar Extension for VS Code —
- Getting Notifications for New GitHub Project Releases —
- Keeping Up with Browser Updates —
- Next Event - Modern Development with the JAMStack —
- TIL - Pushing Node Apps to Azure with Visual Studio Code —
- Remotely Interesting —
- Slides and Assets from JazzCon PWA Talk —
- New PWA Series —
- Pointing a Raygun at Your Site —
- Building a Progressive Color Thief —
- Using DevTools to Scrape Web Content —
- Generating Random Cure Song Titles with Markov Chain —
- Nuxt and Server-Side/Static Vue.js Sites —
- Building an OpenWhisk Activation Poll with Node, Vue.js and Vuetify —
- Another Example of Vue.js and Vuex - an API Wrapper —
- Vue.js Version of My Random Comic Book Viewer —
- Using JSON Web Tokens with Serverless OpenWhisk —
- An Example of Vuex and State Management for Vue.js —
- Building an Image Placeholder Component for Vue.js —
- An Example of Form Validation with Vue.js —
- Quick Example of Apache Cordova and Vue.js —
- Building Related Selects with Vue.js —
- Advent of Code 2017 —
- Last Update, Honest, to My Vue.js INeedIt Demo —
- Yet Another Update to my INeedIt Vue.js App —
- Update to my Vue.js INeedIt Demo —
- Another Vue.js Demo - INeedIt —
- Working with Routes in Vue.js —
- Copying to Clipboard with Windows Subsystem for Linux —
- DevTools Tips for Progressive Web Apps —
- Review: Building Progressive Web Apps —
- Some Progressive Web App Tips —
- Turning My No Man's Sky App Into a PWA —
- Rebuilding a Flex Mobile App as an Alexa Skill —
- Calling a PowerShell Script from WSL —
- Run Visual Studio Code Insiders from WSL —
- Microsoft's Edge Web Summit 2017 —
- Quick Web Dev Tip Everyone Knows —
- Another Vue Example - Image Recognition Service Tester —
- An Example of Sessions with Amazon Alexa Skills —
- Building a No Man's Sky Utility with Node and Vue.js —
- Career Advice for a New Web Dev —
- Quick Example of Vue.js —
- Geolocation Emulation in Chrome (and others) —
- Some Notes on Windows 10 and Ubuntu —
- PSA for New Web Developers - Don't Use file:// —
- Extracting One (or more) Pages from a PDF —
- Check out PaveAI for Analytics —
- New Option for Android Testing - Genymotion on Demand —
- A tip for testing Alexa Skills —
- VS Code Extensions: mssql and vscode-database —
- More Thoughts on Leveling Up —
- VS Code Extensions: Output Colorizer —
- Further Down the Windows Train... —
- Advent of Code - Day 15 to 20 —
- Advent of Code - Day 13 and 14 —
- Advent of Code - Day 9 to 12 —
- Advent of Code - Day 8 —
- Updates to Client Storage for the Browser —
- Advent of Code - Day 6 and 7 —
- Advent of Code - Day 5 —
- Advent of Code - Day 3 and 4 —
- Advent of Code - Day 2 —
- Begin the Advent of Code! —
- A Simple Stats Script for Hugo —
- Speaking on Static Sites at Ortus Developer Week —
- Some Advice for a Web Developer Learning New Skills —
- Quick LoopBack Tip - Using the Client Folder for your Static Directory —
- Building a Simple Form Handler Service in Node —
- Final(ish) Thoughts on the Microsoft Surface (as well as Apple) —
- Article: Building Node-based APIs with the LoopBack Framework —
- Quick DevTools Tip - what is still trying to load? —
- The Microsoft Surface Book - Part Three —
- NativeScript 2.3 Launch Webinar —
- TIL - Form fields and invalid values —
- The Microsoft Surface Book - Part Two —
- Some quick NativeScript tips —
- The Microsoft Surface Book - Part One —
- Recording - What they didn't tell you about Cordova —
- Chrome Network Emulation and Change Events —
- Fixing "Browser Has Stopped" Errors in the Android Simulator —
- Bringing Dynamic Back (Presentation) —
- Adding opacity to a background image in reveal.js —
- Quick tip for installing Bash on Windows 10 —
- Need a Test SMTP Server? —
- Checking (and updating) your Ionic Native install —
- My next book - Working with Static Sites —
- "Apache Cordova in Action" 50% off Monday —
- Deciding what client-side storage system to use —
- New POC - DailyReddit —
- Some quick tips for Passport —
- Very cool browser extension - Wappalyzer —
- An example of Nexmo's Communications API —
- Introduction to API Connect Webinar —
- Capturing camera/picture data without PhoneGap - An Update —
- Adding (Limited) Pagination to Hugo —
- Working on my NativeScript RSS Application —
- Building an AJAX-based form for Formspree —
- A simple RSS reader in NativeScript —
- Thoughts on NativeScript 2.0 —
- Is it ever appropriate to hide an async process behind a sync one? —
- Uploading multiple files at once - with Fetch —
- Uploading multiple files at once with Ajax and XHR2 —
- Disabling Forms Disabling Autocomplete —
- LoopBack, StrongLoop, and API Connect - how in the heck do they relate? —
- Speaking at Gluecon 2016 - Want a discount code? —
- Articles on TDN and StrongLoop.com —
- Basic Node performance monitoring with Node Application Metrics —
- Introduction to LoopBack Presentation —
- Webinar next week on Browser Dev Tools —
- How I added search to my static blog —
- Adding an API to a static site —
- Using the Onymos Media Component —
- Building a Twitter bot to display random comic book covers —
- Creating an unread count for a static site —
- My PhoneGap Day 2016 Presentation —
- Time for Ionic 2 —
- HTML Escaper Visual Studio Code Extension —
- Speaking at DevNexus 2016 —
- Playing with StrongLoop - Building a Blog - Part Three —
- Article on Improving Your JavaScript Skills —
- Visual Studio Code extension for Cordova —
- Survey Results for Rebecca Murphey's Learning JavaScript Survey —
- Apache Cordova SplashScreen Change —
- DefinitelyTyped project for IBM MobileFirst and Hybrid Mobile Apps —
- Time for Angular 2? —
- Working with Hugo on RaymondCamden.com —
- Going from static to dynamic with Ionic Creator —
- Playing with StrongLoop - Building a Blog - Part Two —
- Seeding data for a StrongLoop app —
- My first O'Reilly Book: Client-Side Data Storage —
- Playing with StrongLoop - Building a Blog - Part One —
- Speaking on Ionic in NYC Next Week —
- Article: A Review of JavaScript Error Monitoring Services —
- Is your Ionic View title not updating? —
- A quick example of the Ionic Loading Widget —
- My first extension for Visual Studio Code - CSSLint —
- Deals on my Cordova book and JavaScript videos —
- Using Ionic Creator with MobileFirst 7.1 —
- Parsing RSS Feeds in JavaScript - Options —
- Feeling bored? Want to hurt your brain a bit? Play the Advent of Code —
- Swift goes open source, and loads of new resources —
- Ionic/Cordova Demo: Where did I take that picture? —
- Book Review: Ionic Cookbook —
- Adobe loses its (web) edge... —
- Important update for Apache Cordova and Android —
- HarpJS GUI in Beta —
- Using the Meetup API in Client-Side Applications —
- CFLib converted to Harp and on Surge —
- Using Authorization Tokens for IBM Watson services —
- Working with the Clipboard in Cordova apps —
- Article: Advanced Image Editing in the Browser —
- Demo of the Ionic Resources command —
- Cordova, iOS, and Orientation - wondering why it is locked? —
- Cordova Demo - Apple TV HD Video Viewer —
- Checking for platform and plugin updates in your Cordova project —
- Quick Tip - Ionic apps and touch events —
- Building a hybrid mobile app? Avoid using CDNs for your libraries —
- StrongLoop, Ionic, and IBM Bluemix —
- A quick look at debugging Node.js with StrongLoop and Visual Studio Code —
- NodeSchool for IBM Bluemix and Node.js —
- Getting an error running a Cordova project to iOS? —
- Quick tip for Cordova and the Browser platform - Setting a custom port —
- Working with StrongLoop (Part Four) - Locking down the API —
- Building my own iPhone Availability Web App —
- Working with StrongLoop (Part Three) —
- Adding localization to your Ionic application with IBM Bluemix —
- Working with StrongLoop (Part Two) —
- Important note for targeting iOS Emulators in Cordova —
- Working with StrongLoop (Part One) —
- Article: A Review of ContentTools – a Rich Content Editor —
- Testing Ionic Push Webhooks with IBM Bluemix —
- Learn about Ionic at Appcamp —
- Proof of Concept: Validating an HTML Snippet in a Form —
- Ionic 1.6.5 and updates to Services —
- Speaking on Ionic Services at Ionic-SF —
- Switching platforms with Ionic Serve —
- Assets from my NCDevCon Preso —
- New book on Static Sites Generators —
- "Beginning JavaScript" —
- Another Cordova Mashup - Pixelatize —
- Integrating the Calendar into your Ionic App —
- Creating a custom display for Google's Analytics Embed Library —
- Ionic Example: ion-slide-box —
- Want to learn about client-side storage? —
- Working with Directories and HarpJS —
- Node 4 and libsass issues? —
- Working around Ionic's cached views —
- New MobileFirst Slack! —
- Speaking on Cordova, Ionic, and MobileFirst/Bluemix in Manilla —
- Recording of my ORA Static Site Presentation —
- Looking for mobile developers who want to test something cool... —
- Ripple is Reborn (Again!) —
- Calling remote services from Ionic Serve —
- Upcoming Ionic/Bluemix Presentations in Asia —
- Upcoming Presentation: Static site generators: Why use them and how they work —
- Using Generators with Harp —
- Chrome, console, and URLs - watch out —
- Developing Ionic Apps with MobileFirst 7.1 —
- Developing Hybrid Mobile Apps with IBM MobileFirst 7.1 —
- Coming Soon: The Ionic Market —
- Getting Started with Mobile Development and IBM MobileFirst 7.1 —
- A quick Pokemon demo, because, Pokemon —
- IBM MobileFirst 7.1 Released —
- Processing multiple simultaneous uploads with Cordova —
- More information on restoring Ionic projects —
- A real world app with IBM Bluemix, Node, Cordova, and Ionic —
- Cordova/Ionic Sample App: My Sound Board —
- SauceDB: Writing data back —
- Recording and saving audio in Cordova applications —
- SauceDB - Handling the Sauce view —
- Some initial thoughts on building desktop apps with Ionic and Electron —
- Using JavaScript to integrate with the EventBrite API —
- SauceDB - Building the back end with IBM Bluemix —
- Review: "Build an HTML5 Game" —
- Article: Merging Dynamic and Static Sites —
- SauceDB - Working on the front end —
- FYI - Cordova events must be run after deviceReady —
- Quick Tip: Navigating in Ionic without History —
- New Demo Project: SauceDB —
- Combining client-side social login and server-side authorization with Cordova and Node —
- Using friendlier URLs for a HarpJS Static Site —
- Using the Google Analytics Embed API to Build a Dashboard —
- Using Angular and a Content Security Policy? Watch out for this... —
- Ionic Push example supporting State Changes —
- Online presentation - Working with Static Sites —
- Keyboard Tip for the iOS Simulator —
- Working with Ionic, Box, and IBM MobileFirst —
- An update to my RSS Reader built with Ionic —
- Presentation: Leveling Up at JavaScript —
- Quick example of the Google Analytics Embed API —
- Using Cloud Code, Mobile Application Security, Node.js and Bluemix —
- Speaking at Ionic Dallas next month —
- Google Analytics and RSS Report —
- Cordova Sample: Capture and Display Video —
- Online presentation next week - How to Become An "Intermediate" JavaScript Programmer —
- A look at New Relic Browser —
- Using the Marvel API with IBM Watson —
- Important information about Cordova 5 —
- Getting initial console messages you missed with remote debug —
- Looking at the JavaScript API in Hybrid MobileFirst Apps (2) —
- Working with the new PhoneGap/Cordova ContentSync Plugin —
- Tracking and notifying geolocation status with Ionic —
- A simple Cordova task runner for Visual Studio Code —
- Suggestions for Database Syncing with PhoneGap/Cordova —
- Ionic hits 1.0 —
- Fluent 2015 —
- IBM and Ionic —
- Working with MP3s, ID3, and PhoneGap/Cordova - Adding IBM MobileFirst —
- Article: The Epic, Awesome & Supremely Useful Data Attribute —
- Working with MP3s, ID3, and PhoneGap/Cordova (3) —
- PhoneGap CLI and Templates —
- Working with MP3s, ID3, and PhoneGap/Cordova (2) —
- My Cordova book is on sale again —
- Working with MP3s, ID3, and PhoneGap/Cordova —
- Can't find Cordova plugin docs? —
- Testing Camera Quality Settings and PhoneGap/Cordova —
- Connecting PouchDB to Cloudant on IBM Bluemix —
- IndexedDB and Limits - IE —
- Want to learn about Ionic? —
- Big updates to Apache Cordova —
- Crazy cool Chrome extension (and how to dig into the source) —
- Ionic adds a new State feature —
- IndexedDB and Limits —
- Speaking on Ionic next week at FluentConf —
- Blowing up LocalStorage (or what happens when you exceed quota) —
- Chaining multiple Cordova File Transfers with ngCordova —
- Front-End Interview Questions – Part 5 —
- Using MobileFirst HTTP Adapters with an Ionic Application —
- Form analytics with Formatic —
- Some tips for writing JavaScript adapters for IBM MobileFirst —
- Strategies for dealing with multiple Ajax calls —
- Using MobileFirst SQL Adapters with an Ionic Application —
- Using Remote Logging with Ionic and IBM MobileFirst —
- An early look at Ionic Push —
- Working with IBM MobileFirst and Ionic - a follow up —
- Tip: Viewing Network Requests with the Safari Debugger —
- Using Grunt to Automate MobileFirst/Hybrid Builds —
- Reminder - Having a tool doesn't mean you always use that tool... —
- Working with IBM MobileFirst and Ionic - Bootstrapping —
- Having trouble with splash screens, Cordova, and Android? —
- Learning Cordova's config.xml? Check out this online tool —
- Working with IBM MobileFirst and the Ionic Framework —
- Avoid Ratchet for PhoneGap/Cordova development —
- Ionic Serve's Lab option —
- Testing MetaCert's Security API Service —
- Selecting multiple images in a PhoneGap/Cordova app —
- Check out "Ten Apps in Ten Weeks" —
- Working with the Bluemix Personality Insights Service —
- Need to test a service that doesn't use CORS? There's a plugin for that. —
- My early access Cordova book is half off today! —
- Warning about Ionic Live Reload and the PhoneGap Developer App —
- Warning a user before they leave a form —
- My experience working with Jekyll —
- Hosting static sites with Surge —
- Brackets Tip: Specifying one linter (the right way) —
- Cordova CLI Updated —
- Hosting Node.js apps on Bluemix —
- Quick Cordova tip - Preventing multiple sounds at once —
- Reminder - You don't need AppCache for PhoneGap/Cordova —
- Migrating servers on Google Compute Engine —
- Brian Rinaldi on Static Sites —
- POC - Determining the "Health" of your GitHub Repos —
- Static site hosting on Google Cloud —
- Using the MobileFirst Mobile Browser Simulator —
- My experiences with Google Compute Engine —
- Apache Cordova in Action MEAP Updated —
- Working with hybrid applications and IBM MobileFirst —
- Using the new Bluemix Visual Recognition service in Cordova —
- Front-End Interview Questions – Part 4 —
- Latest Firefox adds Storage to Developer Tools —
- Suggestions for learning JSON? —
- Front-End Interview Questions – Part 3 —
- Front-End Interview Questions - Part 2 —
- Front-End Interview Questions —
- Drag and Drop on File Inputs in HTML —
- Article: A Case Study in JavaScript Code Improvement —
- Using Grunt and Jasmine and having issues with XHR? Read this. —
- Looking to learn Node and Express? —
- Get jQuery Mobile Web Development Essentials for Five Dollars! —
- Viewport and Cordova Tip —
- AppFog and MongoDB 2 Configuration —
- Cordova Example - Sending SMS Messages —
- Really useful Chrome Dev Tools tip —
- My Cordova/PhoneGap Developer Setup (Fall 2014) —
- Quick review of SumAll.com —
- Check out FormKeep, another option for static sites —
- Looking for Suggestions: Best Conferences for Mobile/Web Development —
- Syncing Brackets extensions across multiple machines —
- My Modern Web Conference presentation is now available online —
- Thoughts on Integrating Ionic into an Existing Application —
- My review of Ionic's Visual Application Builder —
- Cordova and Large Asset Downloads - An Abstract —
- CreativeSDK (really) Launches —
- Figuring out what version of Cordova created a project —
- Ionic has a CDN (use with caution) —
- UX question, handling notifications —
- Syncing Edge Animate with Window Scroll —
- Browser as a platform for your PhoneGap/Cordova apps —
- Video: Building Hybrid Applications with Ionic —
- Having issues sending a Cordova app to an iOS device? Seeing lldb? —
- Ionic Framework and CLI updated —
- What is the optimal environment for trying Ionic? —
- RSS Reader Cordova demo updated with Ionic —
- Speaking at NCDevCon 2014 —
- Chrome 37 has landed - but what exactly changed? —
- My weekend experiment - PebbleJS —
- Project Parfait moves to Creative Cloud —
- Presentation tonight on Apache Cordova —
- Centering a Google Map on America —
- Keep your DOM from shifting around... —
- First release of Cordova Brackets extension —
- Article: Static Site Engine Battle Royale —
- Article on Fenix Web Server —
- XCode "forgets" frameworks and bundles after a restart —
- Why I took that ObjectiveC training... —
- What is the "best" form to return different types of data? —
- Article: Expose Yourself with ngrok —
- Keeping up with Cordova and PhoneGap —
- Logs from Open PhoneGap Session —
- Project Parfait - PSD Introspection in the Browser —
- PhoneGap Developer App —
- Recording: Debugging Mobile Applications Presentation —
- Article: HTML out of the Browser —
- Example of Async Linting support in Brackets Sprint 38 —
- Google Hangout - Debugging Mobile Web/Cordova Apps - A Quick Review —
- Dash integration for Brackets —
- Check out Dash —
- I survived Big Nerd Ranch training —
- This server... —
- Brackets Sprint 37 and Upcoming Hackathon —
- Barcode Scanner sample, and new repo for Cordova examples —
- Nested Layouts in HarpJS —
- Creating Next/Previous Links in HarpJS —
- Recording and Assets from my Harp.js Presentation —
- Friday Puzzler: Rolling the die... —
- Video: Debugging with Firefox DevTools —
- Adding a dynamic calendar to HarpJS —
- Presenting on Harp.js next week —
- Small warning to folks writing Brackets extensions —
- AngularJS IndexedDB Demo —
- Simple Trick - Adding a Play Indicator to the Browser Tab —
- Article: Creating Brackets Extensions —
- Examples of the Marvel API —
- Modifying the PhoneGap Template in 3.3 (and higher) —
- Topic Undefined - Episode 7 —
- Experience converting a dynamic site to static with HarpJS —
- Some quick HarpJS Tips —
- Speaking in San Francisco next week - Mobile+Web DevCon —
- Installing and Using Ripple for Cordova Development (A Video) —
- Interesting discovery - Chrome and Storage —
- Brackets Tip: Using Live Preview as a Web Server —
- Adobe Edge Reflow - Preview 7 —
- Article: An Overview of Mobile Debugging Techniques – Part Two —
- Some HarpJS experiments involving categories —
- Article: Working with IndexedDB - Part 3 —
- Brackets Sprint 35 Released —
- Dev Tools Tip - Preserving network logs on leaving a page —
- New Brackets Extension - Canalyzer! —
- jQuery UI Video Course —
- Quick Sample: Appending URL data to a Form post with JavaScript —
- Article: An Overview of Mobile Debugging Techniques – Part One —
- What the heck is (index) in Chrome Dev Tools? —
- Flash Professional CC adds HTML5 Canvas Support —
- I wish I had linted before... —
- Nettuts Article: Deeper into Brackets —
- Using Grunt to automatically build your PhoneGap/Cordova projects —
- Want help with Snap.svg? (And a few more examples...) —
- Ripple is Reborn! —
- ExpressWorks (building on NodeSchool) —
- HTMLHint extension for Brackets —
- What broke my event handler? —
- Snap.svg demo - Census Data —
- Moving from dynamic to static with Harp —
- Article: Working with IndexedDB - Part Two —
- Second draft - JavaScript Library for Behance Integration —
- cfObjective 2014 Call for Speakers (and my proposed sessions) —
- First draft - JavaScript Library for Behance Integration —
- Back to the Edge Recording —
- Back to the Edge - Meeting Reminder —
- Article: New Linting API —
- Working with binary data in a Brackets Extension —
- Brackets Extension: HTMLEscaper —
- Multi-File Uploads and Multiple Selects —
- Webinar - Back to the Edge —
- I know what Brackets is missing... —
- CSS Regions and Edge Tooling —
- Download the PhoneGap Refcard —
- My videos (and others) from NCDevCon —
- CSS Animation Workshop —
- Edge Code Update —
- Create Now SF is this Thursday! —
- Review of Modulus for Node.js Hosting —
- Photoshop launches new Generator feature —
- Create Now Tour coming to North America —
- Using Topcoat and Brackets? Check out these Snippets —
- Friday Puzzler: Get off your butt and learn your browser tools! —
- Brackets, Edge Code, and MAX 2013 —
- Trying something new - my new podcast with Brian Rinaldi —
- Great questions about client-side development from a server-side developer —
- Edge Inspect Brackets/Edge Code extension open sourced —
- Creative Cloud is Here —
- More on my JavaScriptCookbook Node project —
- Using Errorception with PhoneGap —
- Edge Code CC and Edge Inspect Integration —
- New Project: JavaScript Cookbook —
- Two more MAX Videos: Cutting-Edge HTML and Debugging Your Web Apps —
- Video Tutorial: Installing the Ripple Emulator for PhoneGap Development —
- The Future of the Web —
- Missed MAX 2013? How to catch up... —
- How I'd sell unit testing... —
- Update to my Edge Inspect Viewer —
- Using the Progress event in PhoneGap file transfers —
- Check out Brackets Sprint 24 —
- Code School Kicks Butt —
- Auto-escaping code blocks in Reveal.js —
- New Brackets extension - JSDownloader —
- Article Posted (Again) : Building a Google Maps Application with Updating Markers —
- Another reason to attend MAX - Hack on Brackets and PhoneGap —
- Proof of Concept - Connecting a Node app with Brackets —
- Join me at Adobe MAX —
- New project: Service Data Format Library —
- Check out Flippin' Awesome! —
- Quick Code Sample - Add your Behance portfolio to your web site —
- Delaying an Edge Animate asset until visible —
- Google Analytics and PhoneGap —
- Startup Weekend New Orleans —
- Brackets Sprint 22 - The Awesomer —
- New online material for Chrome DevTools —
- LocalStorage Monitor Updated —
- My IndexedDB recording, and a few notes —
- Quick Tip - Make Apache's Directory Indexes look nicer on mobile —
- While learning JavaScript and CSS, spend some time with HTML —
- Presentation: Browser Tools for Debugging —
- Integrating Parse.com on the Server —
- Edge Reflow and Edge Inspect get engaged for Valentine's Day —
- Big new releases today - including Reflow —
- Quick example of Chrome JavaScript Hot Swapping —
- Using Ripple for PhoneGap Development —
- Choose Your Own Application —
- Speaking Engagements in February —
- Advice for a Server to Client Side Developer —
- Job Opening - Multiple —
- W3Conf (San Francisco February 21-23) —
- Did you know - Safari Remote Debugging and PhoneGap —
- Quick Tip: Running WebSQL commands in Chrome Dev Tools —
- Adobe Developer Connection - Email signup —
- Chrome Extension for Microdata —
- New Lafayette Meetup - Louisiana Hackathons & Jams —
- Adobe Developer Connection in 2012 —
- First doc sprint in Europe for WebPlatform.org —
- Enough presentations to last you till next year... —
- Newsletters You Need —
- New Site: Adobe TechLive —
- Another proof of concept - MockData —
- New Chrome Extension - Kittenify —
- Interesting Links —
- Coming soon (like tomorrow) - 24 ways —
- Web Job Opening in God's Country (AKA Lafayette) —
- POC: Integrating a Chrome Extension with Adobe Edge Animate —
- Want another option to learn PhoneGap? —
- Building a Parse.com Enabled PhoneGap App - Part 5 —
- CFCAMP 2012 —
- Building a Parse.com Enabled PhoneGap App - Part 4 —
- Missed NCDevCon? Watch the entire thing online now - in your underwear —
- Upcoming Test the Web Forward Hackathons —
- Brackets Extension for CanIUse —
- Some Brackets Extension Tips —
- Building a Parse.com Enabled PhoneGap App - Part 3 —
- Building a Parse.com Enabled PhoneGap App - Part 2 —
- Adobe and Create the Web - Round up so far —
- Join us tomorrow for the Create the Web livestream —
- Tales from the Trenches - Swapping Libraries —
- Building a Parse.com Enabled PhoneGap App - Part 1 —
- Example of a Parse.com JavaScript application with offline support —
- Microsoft WebMatrix - a quick review —
- Updating my CanIUse Mashup with LocalStorage —
- Update to my Node Blog Engine —
- Mashups of CanIUse.com data —
- Thoughts on Node.js and Express —
- First release of ColdFire for Chrome —
- PhoneGap Build adds Hydration —
- Resources from my RIACon presentations —
- What tags does your browser support? (2012) —
- How to update the Panel DOM in a Chrome Extension Panel —
- How I debugged a Flash-based uploader issue —
- How to add a panel to Chrome Dev Tools —
- Slides and code from my Nashville presentation —
- Quick tip for getting Adobe Shadow working in certain Wi-Fi environments —
- Slides and code from presentation at jQuery Conference —
- Dynamically changing jQuery Mobile Buttons —
- Say hello to Brackets —
- Quick Note: PhoneGap Build issue —
- Posted my first Brackets Extension - CSSLint —
- Issues with IndexedDB and Chrome —
- Quick tip for debugging Chrome Extensions —
- Seeing the light at the end of the Node —
- New ColdFusion Builder Extension: GistCreator —
- Example of getUserMedia and CSS Filters —
- Context Menu Example with jQuery Mobile —
- Slides, code, from my HTML5 Presentation —
- Some thoughts on organizing a large jQuery Mobile project —
- Adding "Filter as you type" support to IndexedDB —
- Setting up console debugging for PhoneGap and Android —
- Recording, slides, and code from my WebSockets presentation —
- Transcripts from PhoneGap Session —
- Open Session on PhoneGap Development —
- Converting a dynamic web site to a PhoneGap application —
- jQuery Mobile Web Development Essentials - Released —
- This is why Adobe Shadow rocks —
- Example of Intents with PhoneGap —
- ADC: Real-world example of the HTML5 FileSystem API —
- Second issue of Appliness Launches —
- "Full" sample of IndexedDB in action —
- Sample of IndexedDB with Autogenerating Keys —
- Products Are Hard, May 1 in San Francisco —
- What do you look for before joining a team? —
- Dynamically replacing Gists with raw content for jQuery Mobile —
- Tracking application usage with PhoneGap —
- PhoneGap hits 1.6 —
- Using jQuery to conditionally load requests —
- Chrome Dev Tools and WebSQL —
- Adding database synchronization to your PhoneGap project —
- Open Discussion - Learning a scripting language —
- Two new PhoneGap videos for your enjoyment —
- Adobe launches Appliness —
- Interesting PhoneGap/Android crash —
- How to add MySQL time zone tables on Windows —
- Getting URL parameters in a jQuery Mobile page —
- Your security lesson for the day - Console is the MCP —
- jQuery Mobile Cookbook call for authors —
- ColdFusion 10 Web Socket Demos —
- Quick demo of accessing XML data with jQuery —
- Adding Internationalization/Localization Support to Web Applications —
- Make your Android PhoneGap app less scary —
- Update to my highlight/fadeout example - now with CSS hotness —
- Reminder - Adobe Cookbooks —
- Searching across all resources in Chrome —
- A look at JavaScript Form Validation —
- A database utility class for PhoneGap —
- New Adobe Inspire Magazine out (with an article by yours truly...) —
- ColdFusion Koans —
- What do you need to get for mobile development? —
- Business logic in a PhoneGap app —
- Book Review: Web Development Recipes —
- Motorola's App Testing Program —
- Ask a Jedi: Sharing a shopping cart between multiple (related) sites —
- Face.com API released —
- What I want from an App Store (as a developer) —
- Example of console debugging with Weinre and PhoneGap —
- First test of PhoneGap Plugins —
- Playing with PhoneGap? Make your projects even easier —
- Commenting (via Disqus) returns to CFLib —
- New content for Adobe Developer Connection —
- When is it proper to try/catch versus global exception handling? —
- Video encoding with Zencoder —
- Presentation on Thursday: A Gentle Introduction to HTML5 —
- Table not found error when you know it exists? Check your triggers —
- Better handling of missing files with your web application —
- When using ANT to write to the file system, specify a file —
- What tags does your browser support? —
- My InsideRIA Archive —
- Review: WireframeSketcher —
- Ask a Jedi: How to approach moving logic into objects —
- Slides from my MAX presentation: Best Practices of the Modern ColdFusion Developer —
- Adobe Developer Connection - Finding old articles and sending feedback —
- Opportunity to learn about Git —
- Ask a Jedi: When do you catch errors? —
- Two (More) iPhone development tips (also involves ColdFusion Components) —
- Get 10 more pixels of coding space with CFBuilder —
- Looking for help with a bad query —
- Quick TailView Tip —
- Looking For: Writing ColdFusion in Visual Studio —
- Making Subclipse recognize a project checked out from Subversion —
- ColdFusion Builder Tip - Finding a file —
- Sneak preview of CFLib via Bolt —
- What's that on RIAForge? —
- Multi-file search and replace in Eclipse —
- Riddle me this, OSX Firefox Users —
- Yet another ADC article on Dreamweaver: Creating a Spry XML data set —
- Using jQuery to add form fields —
- Ask a Jedi: Career advice for a ColdFusion Developer? —
- Article on Spry HTML Datasets and DWCS4 —
- Why you should, and should not, break encapsulation in methods —
- If I'm going to use Eclipse for ColdFusion development, what packages do I need? —
- RIAForge Milestone —
- ColdFire Updated/Call for Help —
- First batch of Dreamweaver/ColdFusion articles up @ Adobe —
- Take the OO Quiz - and prepare to be humbled... —
- When did Dreamweaver add this? —
- Two iPhone development tips, and jQuery to the rescue —
- iPhone Simulator? Try the SDK —
- Help a reader decide on SQL Server versus MySQL —
- Subclipse and Unable to load default SVN client —
- Eclipse trick —
- Pardon me while I have a brain cramp (or three) —
- Does your form validation need to be less strict? —
- Ask a Jedi: Question on DBA's and their plans to ruin our lives... —
- The coolest thing I've seen at CFUNITED —
- Use cgi.server_name? Be careful —
- Open Letter to Adobe on Certification —
- Ask a Jedi: Best way to handle feed stats —
- Adobe Developer Week recordings —
- Recording URL and Slides from CF/OS Presentation —
- Presentation tonight on ColdFusion and Open Source —
- Reader looking for UK-based (or related) Reseller —
- Real men write their own forms (or do they?) —
- What makes a code diva? —
- Ask a Jedi: MVC too much work? —
- is your framework up to date? —
- Adobe Developer Week —
- Lighthouse Pro 2.4.3 —
- Ask a Jedi: Development question - built in JRun web server versus IIS —
- It's ok - we want you to lie to us... —
- Interview as a Mac convert for the Digital Media Dude —
- Careers in Usability? —
- Quick Google Analytics Tip —
- RIAForge hits 400 —
- InsideRIA Launches —
- Ask a Jedi: Getting started with SVN —
- Ask a Jedi: Development versus Staging servers —
- ColdFusion IDE Survey —
- Another charting option: XML/SWF Charts —
- When does it make sense to "mess" with your search engine? —
- Video on Thermo —
- Firefox 3 and Firebug —
- My Leopard Report - The Good, the Bad, and the Ugly —
- Another OS X Question —
- Another OS X Question - All my apps go to the netherworld... —
- ColdFusion Code Beautifiers? —
- ColdFusion Developer Center at Yahoo (For real this time) —
- License Report at RIAForge —
- Adobe Developer Connection Launches —
- Firefox 2.0.0.7 - DOA? —
- Web Development Tip - Always provide directions... —
- Thunderbird Tip: Rewrap —
- Holy RIAForge Milestone, Batman! —
- Adobe ColdFusion Extensions and CFEclipse —
- Update to ColdFusion Eclipse Plugins —
- Ask a Jedi: Becoming a Jedi? —
- Dreamweaver Help Needed —
- Quick thanks to Aquafold —
- Getting a page from a PDF Document in ColdFusion 8 —
- File System versus Database Argument —
- ColdFusion 8: Getting the value of AJAX-ified controls —
- User Group Manangers Meeting —
- RIAForge Milestone (Again!), and time for 'What will happen to Ray on this trip' —
- Diagnose an OS X Slowdown —
- Windows Server ISO with SATA Drivers slipstreamed in... —
- RSS data for projects in RIAForge via Yahoo Pipes —
- Macs are cool too... —
- Coolest. Windows. Feature. Ever. —
- All Mac All Day (or in another words - my thoughts on moving to the Mac full time) —
- How do you handle libraries of code for your organization? —
- Mac Mozy in open beta —
- RIAForge hits 200! —
- Mozy is a life saver —
- Is it cold in here or is it just me? ColdFire RC1 Released —
- Baby steps in Factory Land (right over the edge of a cliff...) —
- Yahoo is now officially the cool kid on the blog —
- Spring <br /> Conference —
- FusionDebug 2 Released —
- Matt Woodward's Mac Guide —
- Ask a Jedi: Is it worthwhile to learn everything about ColdFusion immediately? —
- MySQL Tip - Finding total rows for a query that uses Limit —
- RDS and Line Numbers in Eclipse —
- Eclipse 3.2, RDS, and OSX —
- RIAForge Milestone —
- Another presentation tip —
- Lamest command line tool ever —
- What can Brown do for me? How about a provide an easy to use service? —
- ColdFusion handling of Subversion events —
- MySQL administration via ColdFusion —
- Microsoft's Cross Browser Testing "Solution" —
- Don't count on form field's maxlength property —
- RIAForge - 100 Project Mark —
- SQL Server Profiler —
- More Regex - MySQL's Regular Expression Support —
- Regex Coach —
- Top 10 Signs You Have an Insecure Web App —
- RIAForge Update —
- Custom Google Search Engines —
- Oh look - IE7 is released —
- Announcing RIAForge —
- A perfect ColdFusion-centric host would have... —
- Nimer's Log Viewer —
- Tip: Convert line feeds for files with Flip —
- Busting Frames —
- FusionDebug Released —
- Dreamweaver Help —
- Blogbeat No More... —
- You can be a star! (Until the copyright notices fly...) —
- Your mother writes code so bad.... —
- A few presentation tips —
- Ask a Jedi: Setting up a home environment —
- Newbies can share too! —
- Moving from SQL Server to MySQL —
- Good article on computer languages and being practical —
- Good use of PDF —
- Another night in Detroit, and some thoughts on Compuware —
- Do you monitor your site feedback? —
- A few more days with the Mac —
- Two Adobe Resources —
- Macbook Pro in da house... —
- Ionic's ISAPI Rewrite Filter —
- And now for a question from me: Thunderbird and Exchange meeting invites —
- Deployment options? —
- New Google service: Google Notebook —
- Why can't stats be in English? —
- One more reason to drop Norton like a radioactive hot potato —
- Bye bye Experts-Exchange —
- I give up... —
- Blogbeat - Blog Stats Review —
- Ask a Jedi: Flash Detection —
- Users want the control —
- This Skype thing may take off... —
- IE7 Beta 2 Ready —
- Online Training Recommendations —
- MySQL Crash Course Review —
- Ask a Jedi: Keeping it Together... —
- Mute that Browser! —
- Ask a Jedi: What Source Control Do You Use? —
- IIS6 Bug with CFLOCATION —
- Ask a Jedi: Yahoo RSS Feeds and Images —
- ACME Guide - Get It —
- Luke Skywalker: "Because there is good in him...." —
- Working with SES URLs Follow Up —
- Web Stats Recommendations? —
- For Acadiana Folks Only: LafayetteTech —
- How NOT To Do Directory Security —
- IIS, SES URLs, and "Check for file existence..." —
- Beta is NOT the End... —
- IE7 Question —
- Mute the Browser Part Deux —
- Mute the Darn Browser —
- Light Side or Dark Side - Help me choose... —
- Thunderbird/Norton Post #4903 —
- One More Thunderbird Issue —
- RSS for Stats —
- Warning to Thunderbird and Norton Users —
- Sunbird —
- Nice Flash Animation - Radiohead Video —
- Captivate Review —
- Multiple IIS Sites on XP Pro —
- CFEclipse Week —
- Tutorial Contest —
- Leading 0s and Excel —
- Firefox 0.9 Released (with the same old bug, yea!) —
- Managing Projects —
- iTunes SDK —
- Starting/Stopping CF from HS+/CFStudio —
- Exporting SQL Server Data to a Script —
- Payflow Link Warning —
- HS+/CFS Bug —
- Macromedia Advisory Groups —
- Working with C# and HomeSite+ —
- Encrypting URL Values —
- Blog 3 Beta Updated —
- Blog 3.0 Beta Released —
- More HS+ Goodness —
- Central Focus —
- More HS/Studio Extensions —
- Changes due to Eolas —
- Favorite HS+/CFS Tools —
- Flush Your DNS —
- Global MMUG Meeting Today —
- My Love/Hate Relationship with Mozilla —
- Rant Mode On... —
- FileZilla —
- Size of a SQL Server DB —
- Testing SSL and IIS —
- Stress Out Your Web Sites —
- Bulletproof Websites —
- Unicode and SQL Server —
- Caching in IIS —
- Mozilla - View Source Bug —
- Royale? —
- More on CVS Keyword Substitution —
- CVS - How do I love thee... —