All Posts
Year in Review (2025)
An annual recap of the year and looking forward to 2026.
The Secret Prompts in GitHub Copilot CLI
Sleuthing in the source code of GitHub's new AI CLI.
Resurrecting the Original Django Book
The original DjangoBook is now online again at DjangoBook.com
I Miss Tabs vs Spaces... And Other AI Musings
A written guide to my DjangoCon US talk on deploying machine learning models with Django.
Empire of AI by Karen Hao - Book Review
A disturbing look at OpenAI and Sam Altman in particular.
ChatGPT Dark Arts: Make An Image with the Word 'Vote' In It
ChatGPT won't generate an image with the word 'vote' in it, unless you ask the right way.
The Future of AI is Small (Language Models)
Why SLMs are poised to take over from LLMs in the near future.
Prominent AI Researcher Leaving the U.S. for China
Thoughts on this Guardian detailed article on the departure of Song-chun Zhu.
uv Livestream with Michael Kennedy
An in-depth look at the uv package manager, why it is so popular, and how to use it today.
DjangoCon US 2025 Recap
Thoughts on a fun week in Chicago, favorite talks, sprints, and more.
Django for AI: My DjangoCon US 2025 Conference Talk
A written guide to my DjangoCon US talk on deploying machine learning models with Django.
An Insider's Guide to DjangoCon US 2025
Tips on having the best conference experience.
Talk Python: Celebrating Django's 20th Birthday With Its Creators
Recording a recent podcast appearance with Simon Willison, Adrian Holovaty, Will Vincent, Jeff Triplet, and Thibaud Colas.
The Thinking Machine - Book Review
A review of The Thinking Machine: Jensen Huant, Nvidia, and the World's Most Coveted Microchip by Stephen Witt.
How to Succeed as a Human in an AI World
Reviewing Po-Shen Loh's advice on how to integrate AI into our lives.
Vibe Coding a Website Refresh
How I radically updated and redesigned this website with AI.
AI Flat Spin
That simultaneous feeling of helplessness and hope while waiting for an AI response.
Best Python Books (2025)
An up-to-date list of the best books for learning Python.
Supremacy by Parmy Olson - Book Review
An inside look at the AI race.
AI For the Rest of Us
What LLMs and ever-improving frontier models like ChatGPT, Claude, and others portend.
EuroPython 2025 in Prague Recap
A week behind the booth, around the city, and soaking up the European Python vibes.
Six Months as a Developer Advocate
An update on my new position as a Python developer advocate at JetBrains.
Co-Intelligence by Ethan Mollick - Book Review
A detailed review of Ethan Mollick's book on living and working with AI.
Careless People by Sarah Wynn-Williams - Book Review
A detailed review of the new book on Facebook.
Best Django Books (2025)
A curated list of current books on the Django web frameworks.
AI Thoughts in 2025
What is AI/ML and how is it changing our world right now.
PyCon US 2025 Recap
Reflections on attending the conference in Pittsburgh.
What's Happening in Developer Tools? (OpenAI Just Bought Windsurf for $3B)
An analysis of the current AI-powered text editor space and predictions for the future.
Vibe Recap of DjangoCon Europe 2025
Reflections on attending the conference in Dublin, Ireland.
Django for Data Science @ Boston Python Meetup
Presenting my DjangoCon Europe keynote talk to the Boston Python Meetup.
Django for APIs (Fifth Edition)
Announcing the release of Django for APIs, covering Django REST Framework and more.
Averaging Our Way to AGI
Evaluating LLMs on the path to true artificial intelligence.
The Trading Game by Gary Stevenson - Book Review
A detailed review of Gary Stevenson's trading memoir.
Thoughts on Vibe Coding
Why I don't totally think AI will eliminate all programming jobs.
What Does a Developer Advocate Do?
A description by a working developer advocate at JetBrains.
Year in Review (2024)
Reflections on 2024 and looking ahead to 2025.
Thoughts on the Treasurer Role at Tech NonProfits
Recapping my years as Django Software Foundation Treasurer.
DjangoCon US 2024 Recap
Thoughts and links from this year's DjangoCon US conference in Durham, NC.
Best Flask Books (2024)
List of current books and course on the Flask Python web framework.
Django User Model talk at Django Boston Meetup
A link to the slides and thoughts on improvements for next team on this topic.
Django for Beginners 4.2 Update
What's new in the book
Small Things Finance
Thoughts and lessons on personal finance.
Year in Review (2022)
An overview of 2022 and looking ahead to 2023.
Personal Thoughts on the Django Software Foundation Board's Future
Thoughts from 3 years on the Board as Treasurer
Podcast How-To Guide: Microphones, Headphones, Hosting, and More
Learn how to record and produce a podcast.
Mac Configuration for Web Development (2022)
Setting up a new macOS computer from scratch
Django for Professionals 4.0 Update
Changelog for the Django 4.0 update
Django for APIs 4.0 Update
Changelog for the Django 4.0 and Django REST Framework 3.13 update
How to Work Through Django Books
Practical tips for reading and coding examples in Django books.
Django for Beginners 3.2 Update
What's new in the book
Updating My Home Internet to 1.2Gb
The gear and steps to achieve 1Gb internet speed
Python 3 Installation & Setup Guide
How to install Python on Windows/macOS/Linux/Chromebook
Year in Review (2020)
An overview of 2020 and looking ahead to 2021.
Learn Tailwind CSS - A Beginner's Guide
How to install, setup, and try Tailwind CSS simply.
The E-Myth Revisited by Michael E. Gerber - Book Review
A review of the bestselling book on why most small businesses don't work.
A Year in the Life of a DSF Board Member
What Django Software Foundation Board Member's actually do.
How to Contribute to Django Docs
Makes updates to Django's official docs.
Working in Public by Nadia Eghbal - Book Review
A review of the book on making and maintenance of open source software.
What Happens When You Type in a URL
A brief summary of how a browser, server, and the internet work.
A Month in the Life of a DSF Board Member
What Django Software Foundation Board Member's actually do.
Static Website Services
Competing in the Age of AI - Book Review
A review of the book by Marco Iansiti and Karim R. Lakhani
A Beginner's Guide to Docker
An interactive tutorial on using Docker and Django.
Best React Books (2020)
The best books for learning React and JavaScript.
Flask vs Django (2020)
A comparison of the two dominant Python-based web frameworks.
How Django Works Behind the Scenes
On the Django community, organizations, and people behind the Django web framework.
Announcing the Django News Newsletter
Why I'm launching a weekly newsletter on Django.
Year in Review (2019)
An overview of 2019 and looking ahead to 2020.
Jekyll 301 Redirects on Netlify
How to implement 301 redirects properly
Best Python Podcasts
An up-to-date list of Python programming podcasts.
The Four by Scott Galloway - Book Review
One of the best business books I've ever read.
DjangoChat Podcast
Launching a new podcast with Carlton Gibson focused on Django.
Site Design
How I built and host my website.
Best Online React Video Tutorials (2020)
An up-to-date list of online React video tutorials.
Best Online Django Video Tutorials (2019)
An up-to-date list of online Django video tutorials.
Best Online Python Video Tutorials (2019)
An up-to-date list of online Python video tutorials.
Best JavaScript Books (2019)
The best books for learning Python.
Year in Review (2018)
An overview of 2018 and looking ahead to 2019.
Talk Python Podcast Interview - Teaching Django
An interview with Michael Kennedy on learning and teaching Django.
Hello, World with Express and JavaScript
Build a basic web application with JavaScript, Express, and Node.
TCP vs UDP
A comparison of TCP (Transmission Control Protocol) and UDP (User Datagram Protocol)
JavaScript: Pure Functions
A guide to understanding pure functions in JavaScript.
JavaScript: Prototypal Inheritance
A guide to understanding prototypal inheritance in JavaScript.
JavaScript: Function Expressions vs Declarations
Understand how and when to use a function expression vs a function declaration.
JavaScript Data Structures: Array
An overview and code example of an array in JavaScript.
JavaScript Algorithms: Quicksort
An overview and code example of Quicksort in JavaScript.
JavaScript Algorithms: Mergesort
An overview and code example of Mergesort in JavaScript.
JavaScript: Reverse a Linked List
Iterative and recursive solutions.
JavaScript: Find a Number in an Ordered Array
3 ways to find a number in an ordered array with JavaScript
Python Web Frameworks
Static vs Dynamic Websites: Pros and Cons
JavaScript Guide
A detailed quick summary on JavaScript
Python *args and **kwargs
Podcast.__init__ Interview - The Business of Technical Authoring
An interview with Tobias Macey on learning and teaching Django.
Thoughts on Publishing a Technical Book (Part 2)
An update 6 months and one more book later on what I've learned.
Meteor Hosting Options
React Counter Button
Build a counter button watch in React.
React Stopwatch
Build a stop watch in React.
React Clock
Build a digital clock that updates every second.
A Complete Introduction to React: Build a Beatles Voting App
Build a basic voting app for your favorite Beatle to learn about props, events, and state in React.
React Real-time Inputs
Build an input box that outputs in realtime.
JavaScript Closures Explained
A plain English description of closures, the for loop gotcha, and how to make private methods.
JavaScript Callback Functions Explained
An explanation that doesn't use jQuery, setTimeout, etc.
React Events & Forms: Build a Real-time Input
Make a real-time form input in React.
Introducing DjangoX - A new starter framework for Django
Djangox helps developers launch new Django projects quickly with a complete user authentication flow, custom user model, social authentication options, and more.
Django Rest Framework - Changing Field Names with Source
Learn how to change a model field name in your serializer using source.
Thoughts on Publishing a Technical Book (Part 1)
What I've learned writing and self-publishing a book on web development with Django.
The Evolving Online Test Prep Market
JavaScript: Merge Two Sorted Arrays
How to efficiently merge two sorted arrays in JavaScript.
JavaScript: Stock Prices Problem
Write a function that takes an array of stock prices and returns the best profit you could make from one purchase and one sale.
Best Online JavaScript Video Tutorials (2019)
An up-to-date list of online JavaScript video tutorials.
JavaScript Two Sum: Find the Highest Product of Two Numbers
Find the highest product of two numbers in a JavaScript array.
JavaScript Three Sum: Find the Highest Product of Three Numbers
Find the highest product of three numbers in a JavaScript array.
JavaScript: Print Odd or Even Numbers
Print out all odd or even numbers in a range.
JavaScript: parseInt and map
Understand why parseInt() and map() interact strangely on a JavaScript array.
JavaScript: Merge Two Arrays
Learn multiple ways to merge two arrays in JavaScript.
JavaScript: Duplicate an Array
Learn multiple ways to duplicate an array in JavaScript.
JavaScript: Convert Array to a String
Learn 4 ways to convert an array to a string in JavaScript.
JavaScript: Compute the nth Fibonacci Number
Learn multiple ways to calculate a Fibonacci number in JavaScript.
JavaScript: Sort an Array of Strings or Numbers
Learn the two classic ways to sort an array of strings or numbers
JavaScript: Remove Duplicates from an Array
Learn multiple ways to remove duplicates from an array in JavaScript.
JavaScript Event Loop
Tutorial on JavaScript's call stack, callback queue, and event loop.
Object-Oriented JavaScript: Deck of Cards
Implement the objects for a deck of playing cards in JavaScript with ES6.
URIs vs URLs
Clearing up the confusion between the two terms.
JavaScript Range Array Function
JavaScript: Map, Filter, Reduce
Currying in JavaScript
JavaScript: var, let, and const
A tutorial on the three ways to declare variables in JavaScript ES6+.
JavaScript Scope and Closures
JavaScript Tilde ~ (Bitwise Not operator)
JavaScript Double Negate (aka !!)
JavaScript: var keyword explored
An overview of the traditional var keyword for declaring variables in JavaScript.
JavaScript Temporal Dead Zone
JavaScript Hoisting
Python 2 vs Python 3: Which to Learn?
Python's greatest common divisor
Python Tuple Unpacking
Python Optimizations with Guido
Python zip()
A short tutorial on Python's built-in zip() and longest_zip() functions.
Algorithms: Simple Search
Python WAT!? Out of Range Slices
Python WAT!? Integer Cache
Python's Built-in Help Function
Algorithms: Binary Search
Node Express Tutorial, part 1
Favorite Programming Quotes
A list of famous programming quotes I like.
JavaScript Arrays: slice vs splice
JavaScript Arithmetic Operators
Python Lambda Expressions
Python Pass Statement
How The Web Works
A behind-the-scenes look at the World Wide Web and how it really works.
How Does the Internet Work?
A behind-the-scenes look at how the Internet really works.
Total Beginner vs Beginner
Error 522: Connection Timed Out
How to debug this common Cloudflare and Chrome issue