54,302 blogs ยท [ { "id": "01a0d915-e8e6-716a-b0c2-44a1fb544493", "title": "Real-time LLM guardrails with Jev: comparing latency and cost", "url": "https://jimbobbennett.dev/blogs/llm-guardrails-jev/", "published_at": "2026-09-23T00:00:00+00:00" }, { "id": "01a0d915-e8e6-716a-b0c2-44a1fb9a808d", "title": "When everything looks like a nail: jev, intent detection, and everything old is new again", "url": "https://jimbobbennett.dev/blogs/genai-hammer-nail/", "published_at": "2026-09-21T00:00:00+00:00" }, { "id": "01a0bb10-f779-72f0-af83-2542c7512318", "title": "AI sucks. Deal with it", "url": "https://jimbobbennett.dev/blogs/ai-sucks/", "published_at": "2026-09-14T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd09f9c0e", "title": "SLMs for custom tasks: when small models beat frontier ones, and how to be sure", "url": "https://jimbobbennett.dev/blogs/slms-for-custom-tasks/", "published_at": "2026-09-08T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd153290e", "title": "Don't delete your skills, audit them", "url": "https://jimbobbennett.dev/blogs/skills-are-pipelines/", "published_at": "2026-09-02T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd24a8e64", "title": "A Skill Is Just an Agent. So Measure Your Changes.", "url": "https://jimbobbennett.dev/blogs/quantifying-skill-changes-arize-ax/", "published_at": "2026-08-28T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd303b807", "title": "The two-person team: the domain expert prompts, the engineer connects", "url": "https://jimbobbennett.dev/blogs/two-person-team-domain-expert-engineer/", "published_at": "2026-08-12T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd338fe1d", "title": "The EU AI Act wants a record. Your traces are already most of one.", "url": "https://jimbobbennett.dev/blogs/eu-ai-act-observability/", "published_at": "2026-08-04T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd3c7c33d", "title": "Your eval criteria are already written, just scattered across three systems", "url": "https://jimbobbennett.dev/blogs/your-eval-criteria-are-already-written/", "published_at": "2026-07-24T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd41c0365", "title": "Evals Are a Revenue Strategy, Not a Safety Net", "url": "https://jimbobbennett.dev/blogs/evals-are-a-speed-play/", "published_at": "2026-07-20T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd4435d01", "title": "Evals belong in your CI/CD pipeline", "url": "https://jimbobbennett.dev/blogs/evals-in-your-ci-cd-pipeline/", "published_at": "2026-07-15T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd44cdd08", "title": "Long-horizon agent benchmarks are fragmenting: a field guide to what each one actually measures", "url": "https://jimbobbennett.dev/blogs/agent-benchmarks-field-guide/", "published_at": "2026-07-12T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd48b40ab", "title": "AI evals are just testing (with a much weirder answer key)", "url": "https://jimbobbennett.dev/blogs/evals-are-just-testing/", "published_at": "2026-07-11T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd494f5ae", "title": "The Phoenix Project still holds up, even if you replaced all the code with agents", "url": "https://jimbobbennett.dev/blogs/phoenix-project-still-holds-up/", "published_at": "2026-07-10T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd5282417", "title": "Train, dev, test: the split that makes an LLM judge trustworthy", "url": "https://jimbobbennett.dev/blogs/train-dev-test/", "published_at": "2026-07-08T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd56be192", "title": "Evals do three jobs, not one", "url": "https://jimbobbennett.dev/blogs/three-jobs-evals-do/", "published_at": "2026-07-06T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd6025d24", "title": "Anatomy of an evaluator: what happens when your prompt meets your traces", "url": "https://jimbobbennett.dev/blogs/anatomy-of-an-evaluator/", "published_at": "2026-07-03T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd6e76693", "title": "Anatomy of an eval prompt: what to actually put in it", "url": "https://jimbobbennett.dev/blogs/anatomy-of-an-eval-prompt/", "published_at": "2026-07-01T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd76e409f", "title": "Spans, traces and sessions: the three zoom levels of an AI app", "url": "https://jimbobbennett.dev/blogs/span-trace-session/", "published_at": "2026-06-29T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd80984cc", "title": "Evals aren't a step at the end. They run the whole way through", "url": "https://jimbobbennett.dev/blogs/evals-across-the-lifecycle/", "published_at": "2026-06-26T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd844dafc", "title": "Four ways to run an eval, from a cheap unit test to a full-blown agent", "url": "https://jimbobbennett.dev/blogs/four-ways-to-run-evals/", "published_at": "2026-06-25T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd9240262", "title": "I built a little Claude that dances when it needs me", "url": "https://jimbobbennett.dev/blogs/claude-notify/", "published_at": "2026-06-24T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd9ac9c3e", "title": "How to build an eval you can actually trust", "url": "https://jimbobbennett.dev/blogs/how-to-build-an-eval/", "published_at": "2026-06-18T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afd9b7dabb", "title": "Two labs started dreaming, and they built two different architectures", "url": "https://jimbobbennett.dev/blogs/two-architectures-of-dreaming/", "published_at": "2026-06-17T07:35:50+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afdaa683d5", "title": "Twenty-seven years ago I nearly put six people out of work with an Excel spreadsheet", "url": "https://jimbobbennett.dev/blogs/fear-of-automation-revisited/", "published_at": "2026-06-15T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afdb98a462", "title": "Memory is still a missing primitive: Cataloguing what the field is actually shipping", "url": "https://jimbobbennett.dev/blogs/memory-is-missing-primitive/", "published_at": "2026-06-12T08:00:33+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afdbe9a4ab", "title": "Strong opinions, strongly held - and why I don't care about your tooling debate", "url": "https://jimbobbennett.dev/blogs/strong-opinions-strongly-held/", "published_at": "2026-06-08T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afdbfa445e", "title": "3 strikes and you're an AI skill", "url": "https://jimbobbennett.dev/blogs/3-strikes-and-you-are-a-skill/", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afdc7b3ded", "title": "Enhance GitHub Copilot CLI with skills", "url": "https://jimbobbennett.dev/blogs/copilot-skills/", "published_at": "2026-03-30T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afdcbe8817", "title": "Build a Star Wars Copilot in C# - Lesson 8: Agents and Orchestration", "url": "https://jimbobbennett.dev/blogs/star-wars-copilot-lesson-8-agents-and-orchestration/", "published_at": "2026-03-24T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afddb20d4b", "title": "Build a Star Wars Copilot in C# - Lesson 7: Multimodal Image Generation", "url": "https://jimbobbennett.dev/blogs/star-wars-copilot-lesson-7-multimodal-image-generation/", "published_at": "2026-03-17T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afde79aab7", "title": "Build a Star Wars Copilot in C# - Lesson 6: RAG from a Database", "url": "https://jimbobbennett.dev/blogs/star-wars-copilot-lesson-6-rag-from-database/", "published_at": "2026-03-10T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afde821f39", "title": "Build a Star Wars Copilot in C# - Lesson 5: MCP (Model Context Protocol)", "url": "https://jimbobbennett.dev/blogs/star-wars-copilot-lesson-5-mcp/", "published_at": "2026-03-03T00:00:00+00:00" }, { "id": "01a0878d-d89e-7118-981b-23afdf5f5956", "title": "Build a Star Wars Copilot in C# - Lesson 4: Tool Calling", "url": "https://jimbobbennett.dev/blogs/star-wars-copilot-lesson-4-tool-calling/", "published_at": "2026-02-24T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad63bdd1424", "title": "Build a Star Wars Copilot in C# - Lesson 3: Model Choice and Local Models", "url": "https://jimbobbennett.dev/blogs/star-wars-copilot-lesson-3-model-choice-and-local-models/", "published_at": "2026-02-17T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad63ca9a57e", "title": "Build a Star Wars Copilot in C# - Lesson 2: Chat History and System Prompts", "url": "https://jimbobbennett.dev/blogs/star-wars-copilot-lesson-2-chat-history-and-system-prompts/", "published_at": "2026-02-10T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad63cbe3219", "title": "Build a Star Wars Copilot in C# - Lesson 1: Chat with an LLM", "url": "https://jimbobbennett.dev/blogs/star-wars-copilot-lesson-1-chat-with-an-llm/", "published_at": "2026-02-03T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad63db7a777", "title": "Build a Star Wars Copilot in C# - Lesson 0: Self-Setup", "url": "https://jimbobbennett.dev/blogs/star-wars-copilot-lesson-0-self-setup/", "published_at": "2026-01-27T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad63e21e95a", "title": "Can AI help with user personas", "url": "https://jimbobbennett.dev/blogs/can-ai-help-with-user-personas/", "published_at": "2025-03-04T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad63e4d663a", "title": "Build GitHub Actions faster with act", "url": "https://jimbobbennett.dev/blogs/build-github-actions-faster-with-act/", "published_at": "2024-09-23T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad63e720b1d", "title": "Circles of DevRel part 1 - grow your circle of influence through collaboration", "url": "https://jimbobbennett.dev/blogs/circles-of-influence-1/", "published_at": "2024-07-20T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad63f2621a3", "title": "So what exactly is Dev Rel?", "url": "https://jimbobbennett.dev/blogs/so-what-is-devrel/", "published_at": "2024-04-25T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad63f9ba8e0", "title": "How to correctly review a pull request", "url": "https://jimbobbennett.dev/blogs/how-to-review-a-pr/", "published_at": "2024-04-01T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad63ff5653e", "title": "How to generate pre-signed URLs to get and put objects in S3 with Boto3 in Python", "url": "https://jimbobbennett.dev/blogs/get-put-s3-boto/", "published_at": "2024-02-01T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad6406d233c", "title": "Connect to localhost from inside a dev container", "url": "https://jimbobbennett.dev/blogs/access-localhost-from-dev-container/", "published_at": "2023-11-20T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad6407382f0", "title": "Avoiding automation to keep your job", "url": "https://jimbobbennett.dev/blogs/fear-of-automation/", "published_at": "2023-11-06T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64173690e", "title": "Installing liblab into a devcontainer using NPM", "url": "https://jimbobbennett.dev/blogs/liblab-in-a-devcontainer/", "published_at": "2023-08-04T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad641cafa26", "title": "Let's get personal: computing has won a Telly award", "url": "https://jimbobbennett.dev/blogs/telly-award/", "published_at": "2023-06-01T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64239875c", "title": "Run Azure Functions with Python on Apple Silicon", "url": "https://jimbobbennett.dev/blogs/azure-functions-python-m1/", "published_at": "2023-05-08T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad642401adf", "title": "Build a ChatGPT clone in .NET using OpenAI and Semantic Kernel", "url": "https://jimbobbennett.dev/blogs/chatgpt-with-semantic-kernel/", "published_at": "2023-04-11T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad642f2a1f9", "title": "An intro to generative AI created by generative AI!", "url": "https://jimbobbennett.dev/blogs/an-intro-to-generative-ai/", "published_at": "2023-03-31T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad643d99887", "title": "Embedding audio files in a Hugo site", "url": "https://jimbobbennett.dev/blogs/playing-audio-files-hugo/", "published_at": "2023-03-31T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad643dcc990", "title": "A 2-day open source bootcamp in a box", "url": "https://jimbobbennett.dev/blogs/announcing-open-source-bootcamp/", "published_at": "2023-03-30T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad643e15244", "title": "Install the Azure CLI on a Raspberry Pi", "url": "https://jimbobbennett.dev/blogs/az-cli-rpi/", "published_at": "2023-03-08T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad643ee177c", "title": "Run Appwrite on a Raspberry Pi", "url": "https://jimbobbennett.dev/blogs/install-appwrite-rpi/", "published_at": "2023-03-02T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad643f947da", "title": "Control Microsoft Teams with a Stream Deck", "url": "https://jimbobbennett.dev/blogs/teams-streamdeck/", "published_at": "2023-02-02T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad6442daa6e", "title": "Format Rust code with cargo format", "url": "https://jimbobbennett.dev/blogs/cargo-fmt/", "published_at": "2023-01-26T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad6445745a3", "title": "Lint Rust code with cargo clippy", "url": "https://jimbobbennett.dev/blogs/cargo-clippy/", "published_at": "2023-01-26T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad6446d79ac", "title": "Run an Ubuntu VM on your Mac with a single command", "url": "https://jimbobbennett.dev/blogs/running-ubuntu-on-a-mac/", "published_at": "2023-01-24T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad645655be6", "title": "Subscribe to messages from an iRobot Create3 using ROS", "url": "https://jimbobbennett.dev/blogs/irobot-create3-subscribe-to-messages/", "published_at": "2022-09-22T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad645dc3c5f", "title": "Connect a Raspberry Pi to an iRobot Create 3", "url": "https://jimbobbennett.dev/blogs/irobot-create3-connect-a-pi/", "published_at": "2022-09-21T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64699f783", "title": "Led Ticker Tape", "url": "https://jimbobbennett.dev/blogs/led-ticker-tape/", "published_at": "2022-02-25T17:01:05+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad646e25cd5", "title": "Auto-posting to dev.to using a GitHub action", "url": "https://jimbobbennett.dev/blogs/auto-posting-to-dev-to/", "published_at": "2022-02-03T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad647bc412b", "title": "Getting started with GitHub Codespaces", "url": "https://jimbobbennett.dev/blogs/github-codespaces/", "published_at": "2022-01-27T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad648749613", "title": "New year - new me!", "url": "https://jimbobbennett.dev/blogs/new-year-new-me/", "published_at": "2022-01-14T22:44:32+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad649573387", "title": "Announcing a New Free Curriculum: IoT for Beginners", "url": "https://jimbobbennett.dev/blogs/announcing-iot-for-beginners/", "published_at": "2021-07-09T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64a25471f", "title": "Using TinyML to identify farts", "url": "https://jimbobbennett.dev/blogs/tiny-ml-farts/", "published_at": "2021-02-22T17:01:05+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64aa60b6c", "title": "Installing Scikit-Learn on a Apple Silicon", "url": "https://jimbobbennett.dev/blogs/installing-scikit-learn-on-an-apple-m1/", "published_at": "2021-01-31T17:01:05+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64aae70b0", "title": "Build a virtual IoT Lab with Raspberry Pis and Azure IoT Hub", "url": "https://jimbobbennett.dev/blogs/build-virtual-iot-lab/", "published_at": "2020-12-11T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64b28e67e", "title": "What is edge computing, why do it, why send IoT data to the cloud?", "url": "https://jimbobbennett.dev/blogs/what-is-edge-computing/", "published_at": "2020-12-03T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64b9419a2", "title": "Control holiday lights with Python, Azure IoT and Power Apps", "url": "https://jimbobbennett.dev/blogs/control-holiday-lights-power-apps/", "published_at": "2020-11-13T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64beb3e8b", "title": "Run Visual Studio Code on a Raspberry Pi", "url": "https://jimbobbennett.dev/blogs/run-visual-studio-code-on-a-raspberry-pi/", "published_at": "2020-10-25T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64cd2182b", "title": "Building smart garden ornaments with a Raspberry Pi and micro:bits", "url": "https://jimbobbennett.dev/blogs/smart-garden-ornaments/", "published_at": "2020-07-11T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64d9315a6", "title": "Raspberry Pi cloud-connected Hat Cam", "url": "https://jimbobbennett.dev/blogs/raspberry-pi-hat-cam/", "published_at": "2020-07-09T17:45:27+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64e88d794", "title": "Recognizing words on a microcontroller using TinyML", "url": "https://jimbobbennett.dev/blogs/recognizing-words-on-a-microcontroller-using-tinyml/", "published_at": "2020-04-21T18:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64e906689", "title": "Let your family know you are in meetings with an IoT Busy light", "url": "https://jimbobbennett.dev/blogs/let-your-family-know-you-are-in-meetings-with-an-iot-busy-light/", "published_at": "2020-03-19T00:53:47+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64eed29ef", "title": "Setting an Azure IoT Hub connection string in code on an MXChip", "url": "https://jimbobbennett.dev/blogs/setting-an-mxchip-connection-string-in-code/", "published_at": "2020-02-12T02:02:48+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad64f793c3e", "title": "Storing IoT Data in a database", "url": "https://jimbobbennett.dev/blogs/storing-iot-data-in-a-database/", "published_at": "2019-12-05T23:17:04+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad6500d2d76", "title": "Connecting your Domain.com domain name to your web app during an MLH hackathon", "url": "https://jimbobbennett.dev/blogs/connecting-your-domain-com-domain-name-to-azure-app-services/", "published_at": "2019-11-27T01:55:32+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad650774b63", "title": "Getting an internship at Microsoft", "url": "https://jimbobbennett.dev/blogs/getting-an-internship-at-microsoft/", "published_at": "2019-10-17T19:39:16+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad651491750", "title": "Visualizing locations and paths on a map with Azure Maps", "url": "https://jimbobbennett.dev/blogs/visualising-locations-and-paths-on-a-map/", "published_at": "2019-09-23T21:06:50+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad651637d37", "title": "Are you where you should be? Checking Geofences using Azure Maps", "url": "https://jimbobbennett.dev/blogs/are-you-where-you-should-be-checking-geofences-using-azure-maps/", "published_at": "2019-09-10T00:08:58+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad65203d63f", "title": "Streaming Serial data using an MXChip", "url": "https://jimbobbennett.dev/blogs/streaming-serial-data-using-an-mxchip/", "published_at": "2019-09-04T21:47:05+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad65263e790", "title": "Save your users from typing with AI ๐Ÿค–", "url": "https://jimbobbennett.dev/blogs/save-your-users-from-typing-with-ai/", "published_at": "2019-07-21T21:52:08+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad653525044", "title": "Building a live caption tool - part 1", "url": "https://jimbobbennett.dev/blogs/building-a-live-caption-tool/", "published_at": "2019-07-02T11:39:24+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad653d94c91", "title": "Adding Try .NET to VSCode launch.json", "url": "https://jimbobbennett.dev/blogs/adding-try-net-to-vscode-launch-json/", "published_at": "2019-06-11T10:31:32+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad6548b5583", "title": "Trying out Try .NET", "url": "https://jimbobbennett.dev/blogs/trying-out-try-net/", "published_at": "2019-06-04T10:27:34+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad654ee0a78", "title": "Connecting Pycom boards to Azure IoT Hub", "url": "https://jimbobbennett.dev/blogs/connecting-pycom-boards-to-azure-iot-hub/", "published_at": "2019-04-10T12:38:16+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad655c1b625", "title": "Python on a Raspberry Pi using VS Code", "url": "https://jimbobbennett.dev/blogs/python-on-a-raspberry-pi-using-vs-code/", "published_at": "2019-04-02T14:32:05+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad656bbbbe4", "title": "Jim made some dumb mistakes when recording a video. You won't believe how he fixed it with Azure Media Services!", "url": "https://jimbobbennett.dev/blogs/making-video-editing-easier-with-azure-media-services/", "published_at": "2019-04-02T09:38:50+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad657166e89", "title": "Screen sharing a Raspberry Pi from a Mac", "url": "https://jimbobbennett.dev/blogs/screen-sharing-a-raspberry-pi-from-a-mac/", "published_at": "2019-03-31T22:34:10+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad657a89656", "title": "Xamarin โค F#", "url": "https://jimbobbennett.dev/blogs/xamarin-f/", "published_at": "2019-02-16T20:35:51+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad6581f3ba9", "title": "Prototyping your first cloud-connected IoT project using an MXChip board and Azure IoT hub.", "url": "https://jimbobbennett.dev/blogs/internet-connected-fan/", "published_at": "2019-02-06T03:59:43+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad65856857e", "title": "Flying long haul with young children", "url": "https://jimbobbennett.dev/blogs/travelling-with-children/", "published_at": "2019-01-22T11:34:28+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad658cf3bc3", "title": "Fabulous Santa Tracker", "url": "https://jimbobbennett.dev/blogs/fabulous-santa-tracker/", "published_at": "2018-12-24T00:00:00+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad65901ccf4", "title": "Open anything in VS Code using a MacOS quick action", "url": "https://jimbobbennett.dev/blogs/open-anything-in-vs-code-using-a-macos-quick-action/", "published_at": "2018-12-13T14:29:25+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad65938fd52", "title": "Controlling an IoT device from your phone", "url": "https://jimbobbennett.dev/blogs/controlling-an-iot-device-from-your-phone/", "published_at": "2018-11-19T17:26:51+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad659448819", "title": "Azure makers series", "url": "https://jimbobbennett.dev/blogs/azure-makers-series/", "published_at": "2018-11-14T17:09:50+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad6595ce86a", "title": "Trust", "url": "https://jimbobbennett.dev/blogs/trust-2/", "published_at": "2018-11-13T18:11:34+00:00" }, { "id": "01a0878d-d89f-7323-96ac-aad65a12351e", "title": "Debugging multiple Azure Functions apps at the same time", "url": "https://jimbobbennett.dev/blogs/debugging-multiple-azure-functions-apps-at-the-same-time/", "published_at": "2018-11-13T17:52:15+00:00" } ] posts Claim your blog
Back to jimbobbennett.dev
Blog ยท corpus.blog/blogs/jimbobbennett.dev/posts

jimbobbennett.dev

jimbobbennett.dev

2026

2025

2024

2023

2022

2021

2020

2019

2018