pamela fox's blog posts
Here are the posts I've written on my personal blog. You can also filter by these tags: khanacademy, eatdifferent, musicvideo, developerexperience, phonegap, gwt, github, django, php, bootstrap, apidesign, bicep, motherhood, diy, anxiety, flask, backbone, social, girldevelopit, gmaps, css, language, workflow, pytest, apis, performance, zepto, teaching, socialanxiety, rag, buddhism, devcontainer, appengine, coursera, gears, python, accessibility, google, vscode, javascript, jquery, azure, fastapi, openai.
- My parenting strategy: earn enough $ to outsource
- Integrating vision into RAG applications
- Making an Ollama-compatible RAG app
- Playwright and Pytest parametrization for responsive E2E tests
- Should you use Quart or FastAPI for an AI app?
- pgvector for Python developers
- Using SLMs in GitHub Codespaces
- RAG on a database table with PostgreSQL
- Doing RAG? Vector search is *not* enough
- Truncating conversation history for OpenAI chat completions
- Evaluating RAG chat apps: Can your app say "I don't know"?
- RAG techniques: Function calling for more structured retrieval
- RAG techniques: Cleaning user questions with an LLM
- Converting HTML pages to PDFs with Playwright
- Evaluating a RAG chat app: Approach, SDKs, and Tools
- Developer relations & motherhood: Will they blend?
- Using FastAPI for an OpenAI chat backend
- Using llamafile for local dev for an OpenAI Python web app
- Santa Tracker Tales: Nearly crashing Google's servers, Leaking Santa's data, and Angering an entire country
- How to document a native California garden
- My failed attempt at using a closet as an office
- Strategies for managing dependencies for Python samples
- Using SQLAlchemy 2.0 in Flask
- Best practices for OpenAI Chat apps: Go Keyless
- Best practices for OpenAI Chat apps: Streaming UI
- Best practices for OpenAI Chat apps: Concurrency
- Mocking async openai package calls with pytest
- Fetching JSON over streaming HTTP
- Accessibility snapshot testing for Python web apps (Part 2)
- Automated accessibility audits for Python web apps (Part 1)
- Tips for debugging Flask deployments to Azure App Service
- Best practices for prompting GitHub Copilot in VS Code
- Providing feedback on the VS Code Python experience
- Streaming ChatGPT with server-sent events in Flask
- A Dev Container for SQLAlchemy with SQLTools
- Deploying to App Service free tier with Bicep
- Deploying PostgreSQL servers with Bicep
- Converting a Spreadsheet to JSON with Neptyne
- Adding Microsoft Graph authentication as a Flask Blueprint
- Deploying a containerized FastAPI app to Azure Container Apps
- Rendering matplotlib charts in Flask
- Fast-loading Python Dev Containers
- Hosting Python Web Apps on Azure: A Price-Off
- Testing APIFlask with schemathesis
- Managing Python dependency versions for web projects
- Loading multiple Python versions with Pyodide
- Dis This: Disassemble Python code online
- Writing a static maps API with FastAPI and Azure
- Using Copilot with Python apps
- Tips for writing Bicep files for Azure deployment
- Tips for debugging Django deployments to Azure App Service
- FastAPI on Azure Functions with Azure API Management
- Running PostgreSQL in a Dev Container with Flask/Django
- Deploying a Django app to Azure with the Azure Developer CLI
- A template for new Python projects with Dev Container support
- Happy Hacktoberfest!
- Deploying a containerized Flask app to Azure Container Apps
- Returning an image from an Azure Function App in Python
- Preparing a Django app for deployment on Azure App Service
- How I setup a Python project
- CS content inclusivity guide
- A browser-based runner for Faded Parsons Problems
- My bed-sharing setup
- Porting a project from spaces to tabs
- Tips for planting milkweeds in the Bay area
- Line highlighting extension for Code Mirror 6
- Inactivity timer for Chrome extensions
- Diversifying historical references in CS classes
- How to audit CS61A
- How accessibility helps a nursing mother
- My experience as a Unit-18 Berkeley Lecturer
- New online class: Python Crash Course on Co:rise
- How and why I co-sleep with my baby
- What is “creative” coding, anyway?
- The harms of assuming cultural knowledge in coding assignments
- My hands-free setup for nursing and computer work
- My spring in a high school CS classroom
- DateNight: An Activity Book for Couples
- Company Crafty Hour: Why & How
- Dear Universe: A Mealtime Blessing
- Sleep strategies for a racing mind
- Beware the Near Enemies (In Life & Tech)
- Oops, I forgot to have kids
- Coding: A Hobby for the Waste-Adverse
- My Morning Practice
- What is the difference between ambition and discontent?
- I stopped listening to music
- Avoiding concept overload on the BART
- Drying out my thought loops
- Learning the Ursonate: the mind-clearing benefits of non-conceptual sound poetry
- My Nightly Gratitude Journal
- Operation Calm the Mind Down
- Project IceBreak: Let’s make networking easier
- Learning new skills in SF
- My "touchy-feely" takeaways
- Combining coding and teaching into a career
- Voice coaching: What I learned
- What I learned from Burning Man
- Will I speak at your conference?
- I don't always have to be The Entertainer
- Why am I so afraid of mingling?
- Towards more "Yes, and"s and less "but"s
- Simplifying the Terms of Service
- The Long Lunch Table
- Improving front page performance: removing images, 5 ways
- Networking at events: It should be easy, not scary
- Digital Learning Apps in Guatemala
- 1 Day in Antigua, Guatemala: Where to Go, What to Eat
- Shyness Hacks for Conferences
- On the Arbitrariness of Swear Words
- JSConf 2013: My Favorite Talks
- Technical Interviews Make Me Cry
- Communication at Khan Academy: Open By Default
- Why Do I Speak at Conferences?
- My Next Adventure: Khan Academy CS
- JavaScript UI Library Design
- The JavaScript Rap
- My Year at Coursera
- Rewriting Django Admin in Backbone
- A Guide to Writing Backbone Apps at Coursera
- What to look for in a software engineering culture
- Which JavaScript Library Should I Pick?
- Testing Backbone Frontends
- Increasing Diverse Engineers in the Workplace: A Call for Studies and Stories
- Our Backbone Stack
- Referencing DOM from JS: there must be a DRYer, safer way
- Exporting a Google Spreadsheet as JSON
- Improving Backbone App Performance
- Google I/O Talk: Online Learning Made Social
- Managing history in Backbone widgets with jQuery BBQ
- Server-side HTML vs. JS Widgets vs. Single-Page Web Apps
- Attracting women to developer events
- Making newbie-friendly developer events
- Outputting iCal with PHP
- Source "Snapshots"
- Rewriting our Forums with Backbone
- Keeping a Product Alive: On-Call & Maintenance
- I'm Bad At Recruiting
- Why I Hate Vanity Tweets
- 5 days in SoCal: Catalina Island, Joshua Tree, and LA
- Co-Learning Spaces
- Checking for Technical Requirements in a Sign-up Process
- Why isn't our warning banner based on feature detection?
- Warning Users on Older Browsers
- My Lasik Journey
- GirlDevelopIt SF: Help us grow in 2013!
- GirlDevelopIt SF: Thanks for a great 2012!
- Xtreme Makeover: Legacy Codebase Edition
- Getting Kids into Programming
- My End of Year Donations