{"docTitles":{"/categories/":"Categories - smcleod.net","/categories/ai/":"AI - smcleod.net","/categories/automotive/":"Automotive - smcleod.net","/categories/bestof/":"BestOf - smcleod.net","/categories/cars/":"Cars - smcleod.net","/categories/cats/":"Cats - smcleod.net","/categories/cicd/":"CICD - smcleod.net","/categories/code/":"Code - smcleod.net","/categories/culture/":"Culture - smcleod.net","/categories/delivery/":"Delivery - smcleod.net","/categories/devops/":"DevOps - smcleod.net","/categories/enterprise/":"Enterprise - smcleod.net","/categories/esp32/":"ESP32 - smcleod.net","/categories/finance/":"Finance - smcleod.net","/categories/git/":"Git - smcleod.net","/categories/github/":"Github - smcleod.net","/categories/hardware/":"Hardware - smcleod.net","/categories/health/":"Health - smcleod.net","/categories/iot/":"IoT - smcleod.net","/categories/leadership/":"Leadership - smcleod.net","/categories/linux/":"Linux - smcleod.net","/categories/llm/":"LLM - smcleod.net","/categories/machine-learning/":"Machine-Learning - smcleod.net","/categories/macos/":"MacOS - smcleod.net","/categories/ml/":"Ml - smcleod.net","/categories/music/":"Music - smcleod.net","/categories/photos/":"Photos - smcleod.net","/categories/quotes/":"Quotes - smcleod.net","/categories/remotework/":"RemoteWork - smcleod.net","/categories/saas/":"Saas - smcleod.net","/categories/sales/marketing/":"Sales/Marketing - smcleod.net","/categories/scripting/":"Scripting - smcleod.net","/categories/security-privacy/":"Security-Privacy - smcleod.net","/categories/software/":"Software - smcleod.net","/categories/talks/":"Talks - smcleod.net","/categories/tech/":"Tech - smcleod.net","/categories/values/":"Values - smcleod.net","/categories/wip/":"WIP - smcleod.net","/categories/zsh/":"Zsh - smcleod.net","/posts/":"Posts - smcleod.net","/series/ai/":"AI - smcleod.net","/series/ai/ml/":"AI/ML - smcleod.net","/series/bestof/":"BestOf - smcleod.net","/series/code/":"Code - smcleod.net","/series/fun-with-makefiles/":"Fun With Makefiles - smcleod.net","/series/open-budgeting/":"Open Budgeting - smcleod.net","/series/storage/":"Storage - smcleod.net","/series/zsh/":"ZSH - smcleod.net","/tags/":"Tags - smcleod.net","/tags/4k/":"4k - smcleod.net","/tags/agentic-coding/":"Agentic Coding - smcleod.net","/tags/agentic/":"Agentic - smcleod.net","/tags/agents/":"Agents - smcleod.net","/tags/agile/":"Agile - smcleod.net","/tags/ai/":"Ai - smcleod.net","/tags/anthropic/":"Anthropic - smcleod.net","/tags/api/":"API - smcleod.net","/tags/apple/":"Apple - smcleod.net","/tags/art/":"Art - smcleod.net","/tags/automation/":"Automation - smcleod.net","/tags/awq/":"Awq - smcleod.net","/tags/aws/":"Aws - smcleod.net","/tags/bands/":"Bands - smcleod.net","/tags/bash/":"Bash - smcleod.net","/tags/bestof/":"Bestof - smcleod.net","/tags/bike/":"Bike - smcleod.net","/tags/brownbag/":"Brownbag - smcleod.net","/tags/budgeting/":"Budgeting - smcleod.net","/tags/bugs/":"Bugs - smcleod.net","/tags/capitalism/":"Capitalism - smcleod.net","/tags/car/":"Car - smcleod.net","/tags/career/":"Career - smcleod.net","/tags/cars/":"Cars - smcleod.net","/tags/ci/":"Ci - smcleod.net","/tags/cicd/":"Cicd - smcleod.net","/tags/claude-code/":"Claude Code - smcleod.net","/tags/claude/":"Claude - smcleod.net","/tags/cli/":"Cli - smcleod.net","/tags/cline/":"Cline - smcleod.net","/tags/clustering/":"Clustering - smcleod.net","/tags/co2/":"Co2 - smcleod.net","/tags/code/":"Code - smcleod.net","/tags/coding/":"Coding - smcleod.net","/tags/coffee/":"Coffee - smcleod.net","/tags/communication/":"Communication - smcleod.net","/tags/concerts/":"Concerts - smcleod.net","/tags/confluence/":"Confluence - smcleod.net","/tags/context-engineering/":"Context Engineering - smcleod.net","/tags/creativity/":"Creativity - smcleod.net","/tags/cuda/":"Cuda - smcleod.net","/tags/culture/":"Culture - smcleod.net","/tags/customer-experience/":"Customer Experience - smcleod.net","/tags/dashboard/":"Dashboard - smcleod.net","/tags/data/":"Data - smcleod.net","/tags/deepseek/":"Deepseek - smcleod.net","/tags/delivery/":"Delivery - smcleod.net","/tags/demo/":"Demo - smcleod.net","/tags/devops/":"DevOps - smcleod.net","/tags/diagrams/":"Diagrams - smcleod.net","/tags/direct-messages/":"Direct Messages - smcleod.net","/tags/dry/":"DRY - smcleod.net","/tags/economics/":"Economics - smcleod.net","/tags/economy/":"Economy - smcleod.net","/tags/engineering/":"Engineering - smcleod.net","/tags/enterprise/":"Enterprise - smcleod.net","/tags/esp32/":"ESP32 - smcleod.net","/tags/estimating/":"Estimating - smcleod.net","/tags/faq/":"Faq - smcleod.net","/tags/finance/":"Finance - smcleod.net","/tags/gcp/":"Gcp - smcleod.net","/tags/gguf/":"Gguf - smcleod.net","/tags/gigs/":"Gigs - smcleod.net","/tags/git/":"Git - smcleod.net","/tags/github/":"Github - smcleod.net","/tags/go/":"Go - smcleod.net","/tags/golang/":"Golang - smcleod.net","/tags/gpu/":"GPU - smcleod.net","/tags/hardware/":"Hardware - smcleod.net","/tags/health/":"Health - smcleod.net","/tags/history/":"History - smcleod.net","/tags/homeassistant/":"HomeAssistant - smcleod.net","/tags/humour/":"Humour - smcleod.net","/tags/inference/":"Inference - smcleod.net","/tags/iot/":"IoT - smcleod.net","/tags/jobs/":"Jobs - smcleod.net","/tags/kanban/":"Kanban - smcleod.net","/tags/keynote/":"Keynote - smcleod.net","/tags/leadership/":"Leadership - smcleod.net","/tags/learning/":"Learning - smcleod.net","/tags/licenses/":"Licenses - smcleod.net","/tags/linux/":"Linux - smcleod.net","/tags/llama.cpp/":"Llama.cpp - smcleod.net","/tags/llama/":"Llama - smcleod.net","/tags/llm-faq/":"Llm Faq - smcleod.net","/tags/llm/":"LLM - smcleod.net","/tags/llms/":"Llms - smcleod.net","/tags/lmstudio/":"LMStudio - smcleod.net","/tags/machinelearning/":"Machinelearning - smcleod.net","/tags/macos/":"MacOS - smcleod.net","/tags/management/":"Management - smcleod.net","/tags/markdown/":"Markdown - smcleod.net","/tags/marketing/":"Marketing - smcleod.net","/tags/mcp/":"Mcp - smcleod.net","/tags/mermaid/":"Mermaid - smcleod.net","/tags/metal/":"Metal - smcleod.net","/tags/ml/":"ML - smcleod.net","/tags/mlx/":"Mlx - smcleod.net","/tags/money/":"Money - smcleod.net","/tags/monitor/":"Monitor - smcleod.net","/tags/monitoring/":"Monitoring - smcleod.net","/tags/music/":"Music - smcleod.net","/tags/networking/":"Networking - smcleod.net","/tags/nvidia/":"Nvidia - smcleod.net","/tags/ollama-faq/":"Ollama Faq - smcleod.net","/tags/ollama/":"Ollama - smcleod.net","/tags/open-budgeting/":"Open Budgeting - smcleod.net","/tags/opensource/":"Opensource - smcleod.net","/tags/optimisation/":"Optimisation - smcleod.net","/tags/parameters/":"Parameters - smcleod.net","/tags/performance/":"Performance - smcleod.net","/tags/photos/":"Photos - smcleod.net","/tags/playground/":"Playground - smcleod.net","/tags/presentation/":"Presentation - smcleod.net","/tags/privacy/":"Privacy - smcleod.net","/tags/productivity/":"Productivity - smcleod.net","/tags/profit/":"Profit - smcleod.net","/tags/programming/":"Programming - smcleod.net","/tags/quantisation/":"Quantisation - smcleod.net","/tags/quotes/":"Quotes - smcleod.net","/tags/qwen/":"Qwen - smcleod.net","/tags/ratings/":"Ratings - smcleod.net","/tags/remotework/":"Remotework - smcleod.net","/tags/roo-code/":"Roo Code - smcleod.net","/tags/saas/":"Saas - smcleod.net","/tags/sales/":"Sales - smcleod.net","/tags/sampling/":"Sampling - smcleod.net","/tags/scripting/":"Scripting - smcleod.net","/tags/security/":"Security - smcleod.net","/tags/shell/":"Shell - smcleod.net","/tags/skills/":"Skills - smcleod.net","/tags/slides/":"Slides - smcleod.net","/tags/software-development/":"Software Development - smcleod.net","/tags/software-engineering/":"Software Engineering - smcleod.net","/tags/software/":"Software - smcleod.net","/tags/stablediffusion/":"StableDiffusion - smcleod.net","/tags/storage/":"Storage - smcleod.net","/tags/streaming/":"Streaming - smcleod.net","/tags/subscriptions/":"Subscriptions - smcleod.net","/tags/talk/":"Talk - smcleod.net","/tags/talks/":"Talks - smcleod.net","/tags/tech/":"Tech - smcleod.net","/tags/tips/":"Tips - smcleod.net","/tags/tools/":"Tools - smcleod.net","/tags/tutorials/":"Tutorials - smcleod.net","/tags/values/":"Values - smcleod.net","/tags/vertex/":"Vertex - smcleod.net","/tags/vibe-coding/":"Vibe Coding - smcleod.net","/tags/vibecoding/":"Vibecoding - smcleod.net","/tags/video/":"Video - smcleod.net","/tags/vllm/":"Vllm - smcleod.net","/tags/vram/":"Vram - smcleod.net","/tags/willow/":"Willow - smcleod.net","/tags/wins/":"Wins - smcleod.net","/tags/wip/":"WIP - smcleod.net","/tags/work/":"Work - smcleod.net","/tags/xen/":"Xen - smcleod.net","/tags/yaml/":"Yaml - smcleod.net","/tags/zsh/":"Zsh - smcleod.net"},"frames":{"/ai-consumption/index.html":"/tools/ai-consumption/","/quantisation-dashboard.html":"/tools/quantisation-dashboard/","/tiers.html":"/tools/tiers/","/tools/agentic_coding_costs/index.html":"/tools/agentic-coding-costs/"},"pages":[{"icon":"doc","title":"About","url":"/about/"},{"icon":"compare","title":"Agentic Coding Tools","url":"/agentic-coding-tools/"},{"icon":"energy","title":"AI Energy and Water Use","url":"/tools/ai-consumption/"},{"icon":"doc","title":"Cars \u0026 Bikes","url":"/cars/"},{"icon":"music","title":"Chiptunes","url":"/chiptunes/"},{"icon":"mail","title":"Contact","url":"/contact/"},{"icon":"favourites","title":"Favourites","url":"/favourites/"},{"icon":"feeds","title":"Feeds","url":"/feeds/"},{"icon":"doc","title":"Gigs","url":"/gigs/"},{"icon":"hardware","title":"Hardware","url":"/hardware/"},{"icon":"doc","title":"LLM FAQ","url":"/llm-faq/"},{"icon":"quantise","title":"LLM Quantisation Dashboard","url":"/tools/quantisation-dashboard/"},{"icon":"vram","title":"LLM vRAM Estimator","url":"/vram-estimator/"},{"icon":"podcasts","title":"Podcasts","url":"/podcasts/"},{"icon":"projects","title":"Projects","url":"/projects/"},{"icon":"doc","title":"Quotes and Musings","url":"/quotes/"},{"icon":"doc","title":"Resumé / CV","url":"/cv/"},{"icon":"doc","title":"Search","url":"/search/"},{"icon":"doc","title":"Series","url":"/series/"},{"icon":"sketch","title":"Sketch","url":"/sketch/"},{"icon":"tiers","title":"Tier List Creator","url":"/tools/tiers/"},{"icon":"software","title":"Favourite Tools","url":"/links/"},{"icon":"videos","title":"YouTube Channels","url":"/youtube/"}],"posts":[{"categories":[],"cover":"/2026/07/writing-and-reviewing-agent-skills-common-pitfalls/thumbnail_hu_b35fe008e7bf145c.png","date":"2026-07-04","description":"The top pitfalls I keep seeing when reviewing Agent Skills, and what to do instead","images":2,"mini":"/2026/07/writing-and-reviewing-agent-skills-common-pitfalls/thumbnail-icon.svg","readingTime":5,"series":[],"tags":["ai","llm","agentic coding","agents","skills","claude","claude code"],"title":"Writing and Reviewing Agent Skills - Common Pitfalls","url":"/2026/07/writing-and-reviewing-agent-skills-common-pitfalls/","words":1055},{"categories":[],"cover":"/2026/04/measuring-model-quantisation-quality-with-kl-divergence/thumbnail_hu_34e54f81198609d2.png","date":"2026-04-28","description":"Using KL divergence to rank MLX quantisations of Qwen 3.6 (27B dense and 35B-A3B MoE)","images":4,"mini":"/2026/04/measuring-model-quantisation-quality-with-kl-divergence/thumbnail-icon.svg","readingTime":13,"series":[],"tags":["ai","llm","mlx","quantisation","qwen"],"title":"Measuring Model Quantisation Quality with KL Divergence","url":"/2026/04/measuring-model-quantisation-quality-with-kl-divergence/","words":2548},{"categories":[],"cover":"/2026/03/new-apple-silicon-m4-m5-hidpi-limitation-on-4k-external-displays/thumbnail_hu_9787163816edf950.png","date":"2026-03-29","description":"A regression in external display support on Apple Silicon M4/M5 generation chips prevents full HiDPI modes on 4K monitors, limiting users to either blurry non-HiDPI or reduced workspace HiDPI.","images":7,"mini":"/2026/03/new-apple-silicon-m4-m5-hidpi-limitation-on-4k-external-displays/thumbnail-icon.svg","readingTime":20,"series":[],"tags":["apple","4k","monitor","software","hardware","bugs"],"title":"New Apple Silicon M4 \u0026 M5 HiDPI Limitation on 4K External Displays","url":"/2026/03/new-apple-silicon-m4-m5-hidpi-limitation-on-4k-external-displays/","words":4114},{"categories":[],"cover":"/2026/03/the-advice-i-find-myself-repeating-every-time-someone-asks-how-to-get-started-with-claude-code/thumbnail_hu_5e0c909234840e93.png","date":"2026-03-05","description":"I spend a lot of my time helping people who are getting started with Claude Code. These are the key things I find myself repeating.","images":2,"mini":"/2026/03/the-advice-i-find-myself-repeating-every-time-someone-asks-how-to-get-started-with-claude-code/thumbnail-icon.svg","readingTime":6,"series":[],"tags":["ai","claude","agentic coding","claude code","tips","productivity"],"title":"The advice I find myself repeating every time someone asks how to get started with Claude Code","url":"/2026/03/the-advice-i-find-myself-repeating-every-time-someone-asks-how-to-get-started-with-claude-code/","words":1216},{"categories":[],"cover":"/2026/02/patching-nvidias-driver-and-vllm-to-enable-p2p-on-consumer-gpus/thumbnail_hu_f7d5b278fcf1d893.png","date":"2026-02-25","description":"NVIDIA artificially restricts peer-to-peer (P2P) GPU communication to their enterprise cards. Turns out this is a software limitation, not a hardware one. I patched my drivers to remove it, hacked …","images":2,"mini":"/2026/02/patching-nvidias-driver-and-vllm-to-enable-p2p-on-consumer-gpus/thumbnail-icon.svg","readingTime":10,"series":[],"tags":["ai","llm","tech","vllm","llama.cpp","gguf","awq","cuda","nvidia","gpu","performance","optimisation"],"title":"Patching NVIDIA's driver and vLLM to enable P2P on consumer GPUs","url":"/2026/02/patching-nvidias-driver-and-vllm-to-enable-p2p-on-consumer-gpus/","words":2084},{"categories":[],"cover":"/2025/11/the-role-bridging-problem/thumbnail_hu_db191bbac747144f.png","date":"2025-11-20","description":"An observation on functional correctness without domain quality.","images":3,"mini":"/2025/11/the-role-bridging-problem/thumbnail-icon.svg","readingTime":5,"series":[],"tags":["ai","llm","tech","agentic coding","mcp","learning","software engineering"],"title":"The Role Bridging Problem","url":"/2025/11/the-role-bridging-problem/","words":937},{"categories":[],"cover":"/2025/08/stop-polluting-context-let-users-disable-individual-mcp-tools/thumbnail_hu_176424d4ac5770ff.png","date":"2025-08-26","description":"If you’re building MCP servers, you should be adding the ability to disable individual tools.","images":4,"mini":"/2025/08/stop-polluting-context-let-users-disable-individual-mcp-tools/thumbnail-icon.svg","readingTime":4,"series":[],"tags":["ai","llm","tech","cline","claude","agentic","agentic coding","mcp","security"],"title":"Stop Polluting Context - Let Users Disable Individual MCP Tools","url":"/2025/08/stop-polluting-context-let-users-disable-individual-mcp-tools/","words":833},{"categories":[],"cover":"/2025/08/mcp-devtools/thumbnail_hu_50c475d2c419e276.png","date":"2025-08-18","description":"A single, modular MCP server for AI coding agents.","images":4,"mini":"/2025/08/mcp-devtools/thumbnail-icon.svg","readingTime":9,"series":[],"tags":["ai","llm","tech","coding","cline","claude","agentic","agentic coding","mcp","security"],"title":"MCP DevTools","url":"/2025/08/mcp-devtools/","words":1822},{"categories":[],"cover":"/2025/07/agentic-coding-adoption-cost-cycle/thumbnail_hu_3542e837765a415.png","date":"2025-07-16","description":"The two common themes I see with engineers adopting agentic coding tools","images":3,"mini":"/2025/07/agentic-coding-adoption-cost-cycle/thumbnail-icon.svg","readingTime":0,"series":[],"tags":["ai","llm","tech","coding","cline","agentic","agentic coding"],"title":"Agentic Coding Adoption Cost Cycle","url":"/2025/07/agentic-coding-adoption-cost-cycle/","words":0},{"categories":[],"cover":"/2025/06/agentic-coding-workflow-cline-demo/thumbnail_hu_77da9d7e84d59b17.png","date":"2025-06-20","description":"Recording of a demo and Q\u0026A session on my Agentic Coding workflow and Cline use.","images":3,"mini":"/2025/06/agentic-coding-workflow-cline-demo/thumbnail-icon.svg","readingTime":1,"series":[],"tags":["ai","llm","tech","ollama","coding","cline","agentic","tutorials","agentic coding","demo","video"],"title":"Agentic Coding Workflow \u0026 Cline Demo","url":"/2025/06/agentic-coding-workflow-cline-demo/","words":94},{"categories":[],"cover":"/2025/06/vibe-coding-vs-agentic-coding/thumbnail_hu_87fb25194c625d56.png","date":"2025-06-06","description":"From Creative Exploration to Production Quality","images":2,"mini":"/2025/06/vibe-coding-vs-agentic-coding/thumbnail-icon.svg","readingTime":8,"series":[],"tags":["ai","llm","tech","ollama","coding","cline","agentic","tutorials","llama","agentic coding","vibe coding"],"title":"Vibe Coding vs Agentic Coding","url":"/2025/06/vibe-coding-vs-agentic-coding/","words":1619},{"categories":[],"cover":"/2025/04/my-plan-document-act-review-flow-for-agentic-software-development/thumbnail_hu_aae94f97ee117dcd.png","date":"2025-04-28","description":"An overview of my Setup, Plan, Act, Review \u0026 Iterate workflow for agentic software development.","images":5,"mini":"/2025/04/my-plan-document-act-review-flow-for-agentic-software-development/thumbnail-icon.svg","readingTime":17,"series":[],"tags":["ai","llm","tech","coding","agentic","agentic coding","agents","skills","context engineering","tutorials"],"title":"My Plan, Document, Act, Review flow for Agentic Software Development","url":"/2025/04/my-plan-document-act-review-flow-for-agentic-software-development/","words":3394},{"categories":[],"cover":"/2025/04/llm-sampling-parameters-guide/thumbnail_hu_f4dc34274c54d3dd.png","date":"2025-04-25","description":"A practical guide to LLM sampling parameters for Ollama, llama.cpp, and MLX","images":4,"mini":"/2025/04/llm-sampling-parameters-guide/thumbnail-icon.svg","readingTime":8,"series":[],"tags":["ai","llm","tech","ollama","coding","sampling","inference","tutorials","llama"],"title":"LLM Sampling Parameters Guide","url":"/2025/04/llm-sampling-parameters-guide/","words":1683},{"categories":[],"cover":"/2025/04/getting-started-with-agentic-systems-developer-learning-paths/thumbnail_hu_8d46bb256b7ad589.png","date":"2025-04-16","description":"A curated learning path for engineers looking to gain practical experience with AI and agentic systems.","images":3,"mini":"/2025/04/getting-started-with-agentic-systems-developer-learning-paths/thumbnail-icon.svg","readingTime":4,"series":[],"tags":["ai","llm","tech","agentic","coding","learning","engineering","tutorials"],"title":"Getting Started with Agentic Systems - Developer Learning Paths","url":"/2025/04/getting-started-with-agentic-systems-developer-learning-paths/","words":680},{"categories":[],"cover":"/2025/04/the-cost-of-agentic-coding/thumbnail_hu_abc055ea67cfa5fe.png","date":"2025-04-03","description":"The cost of not leveraging agentic coding is likely far greater than you think.","images":7,"mini":"/2025/04/the-cost-of-agentic-coding/thumbnail-icon.svg","readingTime":16,"series":[],"tags":["ai","llm","tech","agentic","coding","vibecoding"],"title":"The Cost of Agentic Coding","url":"/2025/04/the-cost-of-agentic-coding/","words":3272},{"categories":[],"cover":"/2025/03/the-democratisation-paradox-what-history-teaches-us-about-ai/thumbnail_hu_cea804f1383fd574.png","date":"2025-03-23","description":"The Democratisation Paradox: What History Teaches Us About AI.","images":3,"mini":"/2025/03/the-democratisation-paradox-what-history-teaches-us-about-ai/thumbnail-icon.svg","readingTime":11,"series":[],"tags":["ai","llm","tech","culture","art","economics","capitalism","history","creativity","automation"],"title":"The Democratisation Paradox: What History Teaches Us About AI","url":"/2025/03/the-democratisation-paradox-what-history-teaches-us-about-ai/","words":2164},{"categories":[],"cover":"/2025/03/the-effects-of-prompt-caching-on-agentic-coding/thumbnail_hu_4692e0e04451c3f9.png","date":"2025-03-20","description":"What is prompt caching and why is it so important for Agentic coding?","images":7,"mini":"/2025/03/the-effects-of-prompt-caching-on-agentic-coding/thumbnail-icon.svg","readingTime":2,"series":[],"tags":["ai","llm","tech","anthropic","aws","cline","programming","vertex","gcp","agentic","agentic coding"],"title":"The effects of prompt caching on Agentic coding","url":"/2025/03/the-effects-of-prompt-caching-on-agentic-coding/","words":316},{"categories":[],"cover":"/2025/02/agentic-coding-live-demo-/-brownbag/thumbnail_hu_a77136817608e74.png","date":"2025-02-07","description":"Video recording of a brownbag presentation / live demo I ran on Agentic Coding using Cline/Roo Code","images":2,"mini":"/2025/02/agentic-coding-live-demo-/-brownbag/thumbnail-icon.svg","readingTime":1,"series":[],"tags":["ai","llm","tech","deepseek","llama","anthropic","aws","cline","roo code","programming","brownbag"],"title":"Agentic Coding - Live Demo / Brownbag","url":"/2025/02/agentic-coding-live-demo-/-brownbag/","words":51},{"categories":[],"cover":"/2024/12/bringing-k/v-context-quantisation-to-ollama/llm-vram-components.svg","date":"2024-12-04","description":"K/V context cache quantisation has been added to Ollama. This enables significant reductions in VRAM usage, allowing users to realise the potential of expanded context sizes and run larger models at their existing context sizes.","images":2,"mini":"/deskbar/art/47bf2d14.svg","readingTime":12,"series":[],"tags":["ai","llm","tech","ollama","llama","quantisation"],"title":"Bringing K/V Context Quantisation to Ollama","url":"/2024/12/bringing-k/v-context-quantisation-to-ollama/","words":2541},{"categories":[],"cover":"/deskbar/art/61aa9eb3.svg","date":"2024-11-29","description":"It's probably not so much AI itself you have to fear.","images":0,"mini":"/deskbar/art/a3111915.svg","readingTime":2,"series":[],"tags":["ai","llm","tech","jobs","capitalism","profit","automation","work","economy"],"title":"Will AI Take My Job?","url":"/2024/11/will-ai-take-my-job/","words":296},{"categories":[],"cover":"/2024/10/generating-diagrams-with-with-ai-/-llms/diagram-gen_hu_a4b4ab789994ac4b.png","date":"2024-10-08","description":"Generating diagrams with AI / LLMs","images":1,"mini":"/deskbar/art/47bf2d14.svg","readingTime":4,"series":[],"tags":["ai","tools","llm","tech","diagrams","automation","mermaid"],"title":"Generating Diagrams with with AI / LLMs","url":"/2024/10/generating-diagrams-with-with-ai-/-llms/","words":665},{"categories":[],"cover":"https://raw.githubusercontent.com/sammcj/ingest/main/screenshot.png","date":"2024-07-29","description":"A CLI tool for parsing directories into LLM-friendly markdown","images":0,"mini":"/deskbar/art/55bc9652.svg","readingTime":6,"series":[],"tags":["ai","tools","llm","tech","cli","golang","automation"],"title":"Ingest: Streamlining Content Preparation for LLMs","url":"/2024/07/ingest-streamlining-content-preparation-for-llms/","words":1210},{"categories":[],"cover":"/2024/07/llm-parameter-playground/parameter-playground_hu_cf23b4dcf11f042b.webp","date":"2024-07-20","description":"A web app to explore the effects of different inference parameters on LLMs.","images":1,"mini":"/deskbar/art/47bf2d14.svg","readingTime":1,"series":[],"tags":["ai","tools","llm","tech","playground","parameters","inference"],"title":"LLM Parameter Playground","url":"/2024/07/llm-parameter-playground/","words":67},{"categories":[],"cover":"/2024/07/code-chaos-and-copilots-ai/llm-talk-july-2024/code-chaos-copilots-screenshot_hu_554870559310199e.png","date":"2024-07-18","description":"Integrating AI into Daily Development","images":1,"mini":"/deskbar/art/b90390e0.svg","readingTime":1,"series":[],"tags":["ai","tools","quantisation","llm","gguf","talk","tech","keynote","presentation"],"title":"Code, Chaos, and Copilots (AI/LLM Talk July 2024)","url":"/2024/07/code-chaos-and-copilots-ai/llm-talk-july-2024/","words":140},{"categories":[],"cover":"/2024/07/understanding-ai/llm-quantisation-through-interactive-visualisations/quant-neural_hu_1b9d8c80d4b41aab.png","date":"2024-07-17","description":"AI/LLM Quantisation Visualised","images":2,"mini":"/deskbar/art/913faaa0.svg","readingTime":3,"series":[],"tags":["ai","tools","quantisation","llm","gguf","dashboard"],"title":"Understanding AI/LLM Quantisation Through Interactive Visualisations","url":"/2024/07/understanding-ai/llm-quantisation-through-interactive-visualisations/","words":517},{"categories":[],"cover":"/deskbar/art/e1993f06.svg","date":"2024-07-03","description":"Subjective ratings of the notable AI tools I've tried.","images":0,"mini":"/deskbar/art/47bf2d14.svg","readingTime":1,"series":[],"tags":["ai","tools","ratings"],"title":"Rating AI Tools","url":"/2024/07/rating-ai-tools/","words":92},{"categories":[],"cover":"/2024/06/gollama-ollama-model-manager/gollama-v1.0.0_hu_5c7c40dad120452f.jpg","date":"2024-06-01","description":"Gollama is a Go-based client for Ollama for managing models.","images":5,"mini":"/deskbar/art/606e1321.svg","readingTime":3,"series":[],"tags":["Markdown","Go","golang","ollama","ai","llm","LMStudio"],"title":"Gollama: Ollama Model Manager","url":"/2024/06/gollama-ollama-model-manager/","words":608},{"categories":[],"cover":"/deskbar/art/ad5e8cff.svg","date":"2024-05-23","description":"Download Confluence Spaces as Markdown, Summarise with Ollama","images":0,"mini":"/deskbar/art/606e1321.svg","readingTime":3,"series":[],"tags":["Confluence","Markdown","Go","golang","ollama","ai","llm"],"title":"Confuddlement: Download Confluence Spaces as Markdown, Summarise with Ollama","url":"/2024/05/confuddlement-download-confluence-spaces-as-markdown-summarise-with-ollama/","words":605},{"categories":[],"cover":"https://github.com/sammcj/NVApi/blob/main/screenshots/home-assistant-integration-2.png?raw=true","date":"2024-05-18","description":"Nvidia GPU Monitoring API","images":0,"mini":"/deskbar/art/5c9e0eac.svg","readingTime":3,"series":[],"tags":["ai","nvidia","gpu","Monitoring","API","Go","golang"],"title":"NVApi - Nvidia GPU Monitoring API","url":"/2024/05/nvapi-nvidia-gpu-monitoring-api/","words":458},{"categories":["Tech","AI","llm","Code"],"cover":"/2024/03/superprompter-supercharge-your-text-prompts-for-ai/llm-image-generation/superprompter-screenshot_hu_34b795a041327f15.jpg","date":"2024-03-22","description":"SuperPrompter is a Python-based application that utilises the SuperPrompt-v1 model to generate optimised text prompts for AI/LLM image generation (for use with Stable Diffusion etc…) from user …","images":1,"mini":"/deskbar/art/606e1321.svg","readingTime":2,"series":["AI","Code"],"tags":["tech","llm","ai","Code"],"title":"SuperPrompter - Supercharge your text prompts for AI/LLM image generation","url":"/2024/03/superprompter-supercharge-your-text-prompts-for-ai/llm-image-generation/","words":422},{"categories":["Tech","AI","llm","Code"],"cover":"/2024/03/llamalink-ollama-to-lm-studio-llm-model-linker/llamalink-screenshot_hu_f6c2197af5c805a7.jpg","date":"2024-03-21","description":"This is a simple command-line tool that allows you to easily link Ollama models to LM Studio's directory structure. It simplifies the process of symlinking Ollama models to LM Studio, making it convenient to use the models in both applications.","images":1,"mini":"/deskbar/art/606e1321.svg","readingTime":3,"series":["AI","Code"],"tags":["tech","llm","ai","Code"],"title":"Llamalink - Ollama to LM Studio LLM Model Linker","url":"/2024/03/llamalink-ollama-to-lm-studio-llm-model-linker/","words":427},{"categories":["Tech","AI","llm","IoT","ESP32","Hardware"],"cover":"/deskbar/art/13de8f3d.svg","date":"2023-11-20","description":"Using an ESP32 S3 Box 3 with Willow, Home Assistant and Large Language Models (LLMs) create a locally hosted, offline, AI powered Siri / Alexa replacement.","images":2,"mini":"/deskbar/art/14666cab.svg","readingTime":1,"series":["AI"],"tags":["tech","llm","ai","HomeAssistant","Willow","ESP32","IoT"],"title":"Open source, locally hosted AI powered Siri replacement","url":"/2023/11/open-source-locally-hosted-ai-powered-siri-replacement/","words":199},{"categories":["Tech","Linux"],"cover":"/2023/11/fun-with-makefiles-dynamic-menu-generation/makefile-menu_hu_65cc1328d05b23a7.png","date":"2023-11-14","description":"This reusable snippet will generate a menu of targets from the Makefile. It will use `fzf` if it is installed, otherwise it will use a numbered menu.","images":1,"mini":"/deskbar/art/606e1321.svg","readingTime":2,"series":["Fun With Makefiles"],"tags":["Linux","programming"],"title":"Fun with Makefiles - Dynamic Menu Generation","url":"/2023/11/fun-with-makefiles-dynamic-menu-generation/","words":257},{"categories":["Tech","Culture"],"cover":"/2023/11/mba-washing/mbaw-flow-1_hu_5897322ed348efa4.png","date":"2023-11-13","description":"\"MBA Washing\" refers to the phenomenon where individuals or companies, often with a strong theoretical or academic background but limited recent practical experience, adopt and reinterpret industry-specific terminology and cultural movements.","images":4,"mini":"/deskbar/art/1e2622b4.svg","readingTime":3,"series":[],"tags":["tech","culture","DevOps"],"title":"MBA Washing","url":"/2023/11/mba-washing/","words":560},{"categories":["Tech","Talks","AI"],"cover":"/2023/10/sdxl-lora-training/sdxl_hu_556eebdb02275107.jpeg","date":"2023-10-30","description":"A talk I gave to some peers on creating your own SDXL LoRA models from my tinkering around over the last few weeks.","images":1,"mini":"/deskbar/art/403252b.svg","readingTime":1,"series":["AI/ML"],"tags":["tech","talk","Slides","ai","ML","art","StableDiffusion"],"title":"SDXL LoRA Training","url":"/2023/10/sdxl-lora-training/","words":39},{"categories":["Tech","Linux"],"cover":"/deskbar/art/3f20907.svg","date":"2023-07-09","description":"Enabling the new AMD P-State Driver on Fedora with Kernel 6.4","images":0,"mini":"/deskbar/art/eb1354d9.svg","readingTime":4,"series":[],"tags":["Linux","performance"],"title":"Fixing AMD CPU Scaling on Fedora","url":"/2023/07/fixing-amd-cpu-scaling-on-fedora/","words":710},{"categories":["Scripting","ZSH","Git"],"cover":"/deskbar/art/63dbbf1.svg","date":"2023-05-29","description":"Before adding this to my shell config, I would manually add –depth=1 to all my git clones.","images":0,"mini":"/deskbar/art/133e2ae5.svg","readingTime":1,"series":["ZSH"],"tags":["Git","Scripting","ZSH","Bash","Shell"],"title":"Defaulting git clone to shallow (depth=1)","url":"/2023/05/defaulting-git-clone-to-shallow-depth1/","words":176},{"categories":["Sales/Marketing","Enterprise"],"cover":"/2023/05/how-likely-would-you-be-to-block-a-company-from-asking-you-to-rate-everything-they-do/i-dont-use-nps-1_hu_7ae819fa9630cbfd.jpg","date":"2023-05-26","description":"NPS Surveys are corporate spam","images":1,"mini":"/deskbar/art/a3111915.svg","readingTime":2,"series":[],"tags":["Sales","Marketing","Customer Experience"],"title":"How likely would you be to block a company from asking you to rate everything they do?","url":"/2023/05/how-likely-would-you-be-to-block-a-company-from-asking-you-to-rate-everything-they-do/","words":422},{"categories":["Delivery","Leadership","DevOps"],"cover":"/2023/04/escaping-the-time-trap-why-estimating-effort-not-time-leads-to-greater-success/time-based-estimates_hu_122153f181016273.png","date":"2023-04-28","description":"Effort is non-linear and multi-dimensional. Time (with relation to delivery) is linear and one-dimensional","images":1,"mini":"/deskbar/art/1e2622b4.svg","readingTime":8,"series":[],"tags":["Estimating","Delivery","Kanban","Agile","DevOps"],"title":"Escaping the Time Trap: Why Estimating Effort, Not Time, Leads to Greater Success","url":"/2023/04/escaping-the-time-trap-why-estimating-effort-not-time-leads-to-greater-success/","words":1681},{"categories":["Tech","AI","llm","WIP"],"cover":"/deskbar/art/cdd27701.svg","date":"2023-01-26","description":"A high level intro to LLMs that I'm writing for a few friends that are new to the concept. It is far from complete, definitely contains some errors and is a work in progress.","images":0,"mini":"/deskbar/art/47bf2d14.svg","readingTime":13,"series":["AI"],"tags":["tech","llm","ai","WIP","DevOps"],"title":"Introduction to AI and Large Language Models (LLMs)","url":"/2023/01/introduction-to-ai-and-large-language-models-llms/","words":2741},{"categories":["saas","finance"],"cover":"/2023/01/open-budgeting-subscriptions-licences/money-au_hu_c9d36677eed3872b.jpg","date":"2023-01-05","description":"Publicly documenting my subscription and license expenses","images":1,"mini":"/deskbar/art/913faaa0.svg","readingTime":3,"series":["Open Budgeting"],"tags":["budgeting","finance","money","subscriptions","licenses","open budgeting","software","saas","streaming"],"title":"Open Budgeting - Subscriptions \u0026 Licences","url":"/2023/01/open-budgeting-subscriptions-licences/","words":471},{"categories":["DevOps","Leadership","Health"],"cover":"/2022/12/energy-sustainability-and-deployment-frequency/wins_hu_5302346c9b9cd6d9.jpg","date":"2022-12-31","description":"Deployment / Delivery Frequency I often end up needing to advocate for more frequent delivery/deployments with clients.\nThere’s the usual benefits commonly discussed such as improved feedback, reduced …","images":1,"mini":"/deskbar/art/1e2622b4.svg","readingTime":2,"series":[],"tags":["Delivery","health","wins","DevOps","Agile","Leadership","management"],"title":"Energy, Sustainability and Deployment Frequency","url":"/2022/12/energy-sustainability-and-deployment-frequency/","words":373},{"categories":["ZSH","Scripting","Linux","macOS"],"cover":"/2022/11/zsh-configuration-and-plugins-part-two/zsh-part-two.gif","date":"2022-11-18","description":"My Z-Shell configuration, scripts and hacks","images":5,"mini":"/deskbar/art/55bc9652.svg","readingTime":12,"series":["ZSH","Code"],"tags":["ZSH","Bash","Scripting","Linux","macOS"],"title":"Zsh Configuration and Plugins - Part Two","url":"/2022/11/zsh-configuration-and-plugins-part-two/","words":2435},{"categories":["Software"],"cover":"/2022/11/yaml-anchors-and-aliases/Official_YAML_Logo_hu_37c3cffcd0289db3.png","date":"2022-11-06","description":"Using YAML Anchors and Aliases to make config files more DRY","images":1,"mini":"/deskbar/art/606e1321.svg","readingTime":2,"series":[],"tags":["yaml","DRY"],"title":"YAML Anchors and Aliases","url":"/2022/11/yaml-anchors-and-aliases/","words":305},{"categories":["Software","Github"],"cover":"/2022/11/github-not-so-reusable-actions/old-man-yells-at-github-actions_hu_b7b6d042d29d01de.png","date":"2022-11-06","description":"Github Actions Reusable Workflows vs Composite Actions","images":1,"mini":"/deskbar/art/133e2ae5.svg","readingTime":3,"series":[],"tags":["github","ci","yaml","DRY"],"title":"Github Not-So-Reusable Actions","url":"/2022/11/github-not-so-reusable-actions/","words":615},{"categories":["ZSH","Scripting","Linux","macOS"],"cover":"/2022/11/zsh-configuration-and-plugins-part-one/colour_vertical_icon_wbg_wide_hu_163fe8e3c986de64.png","date":"2022-11-06","description":"My Z-Shell configuration, scripts and hacks","images":2,"mini":"/deskbar/art/55bc9652.svg","readingTime":4,"series":["ZSH","Code"],"tags":["ZSH","Bash","Scripting","Linux","macOS"],"title":"Zsh Configuration and Plugins - Part One","url":"/2022/11/zsh-configuration-and-plugins-part-one/","words":734},{"categories":["Culture","Tech","Leadership","Values"],"cover":"/2022/10/encourage-your-peers-to-contribute-to-open-source/help_hu_5a0b055743702d56.jpg","date":"2022-10-30","description":"Contributing to Open Source is important to the quality and maintainability of the software and engineering communities we rely on every day - so why is it that so many developers/engineers never …","images":1,"mini":"/deskbar/art/133e2ae5.svg","readingTime":3,"series":[],"tags":["culture","opensource","Git","Leadership","values"],"title":"Encourage Your Peers To Contribute To Open Source","url":"/2022/10/encourage-your-peers-to-contribute-to-open-source/","words":535},{"categories":["Tech","Leadership","Values","RemoteWork"],"cover":"/2022/10/making-work-visible-avoid-dms/silos_hu_a28bd39162eb27bc.jpg","date":"2022-10-20","description":"We create more value by having conversations in public instead of behind closed doors.","images":3,"mini":"/deskbar/art/a3111915.svg","readingTime":6,"series":[],"tags":["work","communication","culture","tech","direct messages","remotework"],"title":"Making Work Visible - Avoid DMs","url":"/2022/10/making-work-visible-avoid-dms/","words":1071},{"categories":["Tech","BestOf","Software"],"cover":"/2022/10/the-best-of-2022-edition/tools_hu_7d11f5bcd4091136.jpg","date":"2022-10-19","description":"Near the end of each year I note down a summary of the best apps I’ve enjoyed using throughout the year, here’s 2022.","images":1,"mini":"/deskbar/art/642fd34.svg","readingTime":2,"series":["BestOf"],"tags":["bestof","software"],"title":"The Best Of - 2022 Edition","url":"/2022/10/the-best-of-2022-edition/","words":340},{"categories":["ml","DevOps"],"cover":"/2022/08/its-2022-and-were-still-not-deploying-enough/nick-abrams-FTKfX3xZIcc-unsplash_hu_4ed02b452286a9a2.jpg","date":"2022-08-23","description":"We’re (still) not deploying enough# It’s 2022 and not deploying frequently enough is still one of the most common causes of software failure.","images":1,"mini":"/deskbar/art/606e1321.svg","readingTime":6,"series":[],"tags":["DevOps","software development","Agile","enterprise"],"title":"It's 2022 and we're (still) not deploying enough","url":"/2022/08/its-2022-and-were-still-not-deploying-enough/","words":1155},{"categories":["machine-learning"],"cover":"/2022/07/dalle-2-selected-works/dalle2spaceorange_hu_4e1f694d0513e1bd.jpeg","date":"2022-07-08","description":"Over the past month I’ve been playing with OpenAI’s DALL·E 2, below are some of the interesting images I’ve generated.\n“DALL·E 2 is a new AI system that can create realistic images and art from a …","images":1,"mini":"/deskbar/art/403252b.svg","readingTime":4,"series":[],"tags":["art","machinelearning","humour"],"title":"DALL·E 2 - Selected works","url":"/2022/07/dalle-2-selected-works/","words":751},{"categories":["music"],"cover":"/2022/06/beginner-harmonica-practice-exercises/hohner-marine-band_hu_e1178d714f8f77d8.jpg","date":"2022-06-13","description":"Beginner Harmonica Practice Exercises Way back in around 2008 I wrote up a doc with a list of beginner harp exercises and practice riffs, at the time it was uploaded to a few forums and a shared …","images":1,"mini":"/deskbar/art/7cd2a029.svg","readingTime":13,"series":[],"tags":["music"],"title":"Beginner Harmonica Practice Exercises","url":"/2022/06/beginner-harmonica-practice-exercises/","words":2599},{"categories":["Software"],"cover":"/2022/05/firefox-addons-for-2022/firefox-logo-collage-1_hu_f40a0444b0022b10.png","date":"2022-05-17","description":"Firefox Addons - 2022 Edition# My list of must-have Firefox addons - 2022 edition\nUpdated: 2022-11-07\nPrivacy and Security# Firstly - you should have Firefox’s Enhanced Tracking Protection enabled. …","images":1,"mini":"/deskbar/art/642fd34.svg","readingTime":3,"series":["BestOf"],"tags":["software"],"title":"Firefox Addons for 2022","url":"/2022/05/firefox-addons-for-2022/","words":442},{"categories":["Software"],"cover":"/2021/07/goodbye-evernote-hello-bear/bear_header-mac-screenshot_hu_da5f2f193fcd51fe.png","date":"2021-07-22","description":"Until recently I used Evernote for my notes, web clippings and document drafts, I was a subscriber going on 14 years and had over 3000 notes.\nHowever in recent years Evernote has gone downhill to the …","images":1,"mini":"/deskbar/art/642fd34.svg","readingTime":2,"series":[],"tags":["software"],"title":"Goodbye Evernote, Hello Bear","url":"/2021/07/goodbye-evernote-hello-bear/","words":277},{"categories":["Hardware"],"cover":"/2021/07/rancilio-silvia-upgrade/assembled_preview_hu_6829a8ae3d292f41.jpeg","date":"2021-07-11","description":"Weekend upgrades to my Ranchilio Silvia v4 espresso machine.\nAdded a digital PID kit for improved temperature control Replaced the boiler element Thermal insulation Basic “smart” power control with …","images":1,"mini":"/deskbar/art/7aba020a.svg","readingTime":1,"series":[],"tags":["coffee","hardware"],"title":"Rancilio Silvia Upgrade","url":"/2021/07/rancilio-silvia-upgrade/","words":83},{"categories":["DevOps"],"cover":"/2020/11/devops-team-charter/pexels-denniz-futalan-2306897_hu_642f2534aad1aa6a.jpg","date":"2020-11-18","description":"A template team charter for software and platform engineering teams.\nResearch1 shows there is great value in people embracing a shared vision and ideas that are bigger than themselves.\nWhen it comes …","images":1,"mini":"/deskbar/art/1e2622b4.svg","readingTime":5,"series":[],"tags":["DevOps"],"title":"DevOps Team Charter","url":"/2020/11/devops-team-charter/","words":1046},{"categories":["Cars"],"cover":"/2020/11/ferrari-f12-berlinetta/f12b_compressed_hu_f76d10209bb6db33.jpg","date":"2020-11-08","description":"Last weekend I had a chance encounter with a Ferrari F12 Berlinetta and the owner kindly let me jump in and take a few photos.\nSpecs# 6.3L v12 544 KW (740 Horsepower) 690 Nm at 6000RPM 1525 kg 0-100 …","images":1,"mini":"/deskbar/art/42ad430e.svg","readingTime":1,"series":[],"tags":["photos","cars"],"title":"Ferrari F12 Berlinetta","url":"/2020/11/ferrari-f12-berlinetta/","words":58},{"categories":["Tech","BestOf","Software"],"cover":"/2020/10/the-best-of-2020-edition/william-hook-unsplash_hu_80d4a9cae3917496.jpg","date":"2020-10-10","description":"Near the end of every year I note down a summary of the best apps, hardware \u0026amp; podcasts I’ve enjoyed throughout the year (and often for some time before).\nThis post has been superseded. You can find …","images":1,"mini":"/deskbar/art/642fd34.svg","readingTime":2,"series":["BestOf"],"tags":["bestof","software"],"title":"The Best Of - 2020 Edition","url":"/2020/10/the-best-of-2020-edition/","words":213},{"categories":["cats"],"cover":"/2020/10/rest-in-peace-jimothy/jimothy_hu_dce964f19fb0c198.jpg","date":"2020-10-08","description":"You magnificent girl, you brought me 14 years of love and happiness\nPhotos#","images":1,"mini":"/deskbar/art/eeed64f7.svg","readingTime":1,"series":[],"tags":["photos"],"title":"Rest in Peace Jimothy","url":"/2020/10/rest-in-peace-jimothy/","words":13},{"categories":["DevOps"],"cover":"/2019/08/camels-dressed-as-unicorns/camel_corn_hu_c304fa15db59bfa9.jpeg","date":"2019-08-08","description":"Stop trying to hire with titles like ‘DevOps Engineer’ or ‘Cloud Engineer’# “DevOps is … not a job title”\n“It’s more of a cultural practice, like innovation, and it makes just as little sense hiring …","images":1,"mini":"/deskbar/art/1e2622b4.svg","readingTime":2,"series":[],"tags":["tech","DevOps","career"],"title":"Camels Dressed As Unicorns","url":"/2019/08/camels-dressed-as-unicorns/","words":328},{"categories":["Tech"],"cover":"/2019/08/looking-for-new-opportunities/fiji_aws_prac_training_1_hu_8d91e0d3670a6382.jpg","date":"2019-08-06","description":"As stated in my announcement post - after 7~ years, I resigned from Infoxchange several months ago.\nI planned on taking a holiday, relaxing, decompressing, dipping my toes in some off-the-shelf tech I …","images":1,"mini":"/deskbar/art/1e2622b4.svg","readingTime":4,"series":[],"tags":["tech","DevOps","career"],"title":"Looking For New Opportunities","url":"/2019/08/looking-for-new-opportunities/","words":763},{"categories":["Tech"],"cover":"/2019/06/leaving-infoxchange/road-no-car-2048_hu_3009d4618df49a35.jpg","date":"2019-06-29","description":"After 7~ years, I have resigned from Infoxchange.\nIn 2012 I was hired to work with Infoxchange to “shake things up” (in the Systems Operations team) and stabilise the hosting environment.\nAs Team Lead …","images":1,"mini":"/deskbar/art/1e2622b4.svg","readingTime":3,"series":[],"tags":["tech","DevOps","career"],"title":"Leaving Infoxchange","url":"/2019/06/leaving-infoxchange/","words":470},{"categories":["Tech"],"cover":"/2019/02/goodbye-xensever-hello-xcp-ng/xcpng_rocket_logo_hu_2b5b653e43149446.png","date":"2019-02-05","description":"In 2018 I set out to replace our XenSever 7.2 based virtualisation after Citrix essentially screwed over free / open source users.\nThis project was to directly replace XenServer 7.2 with something …","images":1,"mini":"/deskbar/art/642fd34.svg","readingTime":8,"series":[],"tags":["tech","software"],"title":"Goodbye XenSever - Hello XCP-ng","url":"/2019/02/goodbye-xensever-hello-xcp-ng/","words":1550},{"categories":["Photos"],"cover":"/2018/12/new-zealand-otago-trip-in-a-2019-mustang-gt/clyde_mustang_2080_hu_1524c90006a857d9.jpg","date":"2018-12-20","description":"In late November of 2018 I was lucky enough to get my hands on the upcoming 2019 Sport spec Mustang GT v8 to be its first driver.\nI’m not usually an American Muscle enthusiast, but the new 2019 GT …","images":1,"mini":"/deskbar/art/42ad430e.svg","readingTime":1,"series":[],"tags":["cars","photos"],"title":"New Zealand Otago Trip in a 2019 Mustang GT","url":"/2018/12/new-zealand-otago-trip-in-a-2019-mustang-gt/","words":207},{"categories":["Tech"],"cover":"/2018/07/run-youtube-dl-or-similar-in-the-background/camera-background_hu_d3512af82b482abf.jpg","date":"2018-07-30","description":"I wanted an alias or function to use youtube-dl in the background. Looking around the web lots of people seemed to want this and most of them were banging their heads against a wall due to:\nA) bash …","images":1,"mini":"/deskbar/art/642fd34.svg","readingTime":2,"series":[],"tags":["tech","software"],"title":"Run youtube-dl (or similar) in the background","url":"/2018/07/run-youtube-dl-or-similar-in-the-background/","words":231},{"categories":["Tech"],"cover":"/2018/07/disabling-scroll-wheel-zoom-in-firefox/zoom_hu_6974042876c1eab4.jpg","date":"2018-07-16","description":"This feature annoys me endlessly, I end up zoomed in and out of websites all over the internet. … But the fix is easy and there’s no addons required.\nNavigate to about:config (in Firefox’s URL bar) …","images":1,"mini":"/deskbar/art/642fd34.svg","readingTime":1,"series":[],"tags":["tech","software"],"title":"Disabling scroll-wheel zoom in Firefox","url":"/2018/07/disabling-scroll-wheel-zoom-in-firefox/","words":83},{"categories":["Photos"],"cover":"/2018/04/highlands-festival-of-speed-2018/v8_hu_4916a8b615fd7fef.jpg","date":"2018-04-11","description":"Last weekend I headed to New Zealand and marshalled at the Highlands Festival of Speed.\nThe Highlands Festival of Speed is a weekend packed with some of the best modern classic racing you will see in …","images":1,"mini":"/deskbar/art/42ad430e.svg","readingTime":1,"series":[],"tags":["cars","photos"],"title":"Highlands Festival of Speed 2018","url":"/2018/04/highlands-festival-of-speed-2018/","words":140},{"categories":["Tech"],"cover":"/2018/03/flash-storage-and-ssd-failure-rate-update-march-2018/sam-standing-at-rack_hu_7a095f8b24384fc3.jpg","date":"2018-03-20","description":"It was almost 3 years ago that my open source storage project went into production. In that time it’s been running 24/7 serving as highly available solid state storage for hundreds of VMs and several …","images":3,"mini":"/deskbar/art/ffdffffc.svg","readingTime":2,"series":[],"tags":["tech","storage","hardware"],"title":"Flash Storage and SSD Failure Rate Update (March 2018)","url":"/2018/03/flash-storage-and-ssd-failure-rate-update-march-2018/","words":326},{"categories":["Tech"],"cover":"/2018/01/theory-of-constraints/samuel-zeller-237359_hu_5c6440cb8bcd048c.jpg","date":"2018-01-17","description":"“A chain is no stronger than its weakest link”# Any improvement made anywhere besides the bottleneck is an illusion.\nAny improvement made after the bottleneck is useless because it will always remain …","images":1,"mini":"/deskbar/art/1e2622b4.svg","readingTime":1,"series":[],"tags":["DevOps"],"title":"Theory of constraints","url":"/2018/01/theory-of-constraints/","words":159},{"categories":["music"],"cover":"/2017/12/top-album-picks-for-2017/backdrop-linn_hu_642b0becc6e04090.jpg","date":"2017-12-28","description":"Here are my top album pics for 2017 (in no particular order)\nNote: This is by no means an exhaustive list, it’s just the top albums that really stood out to me and in all fairness, I’ve thought of …","images":1,"mini":"/deskbar/art/7cd2a029.svg","readingTime":4,"series":["BestOf"],"tags":["music"],"title":"Top album picks for 2017","url":"/2017/12/top-album-picks-for-2017/","words":643},{"categories":["Tech"],"cover":"/2017/12/hp-4951c-protocol-analyser/backdrop-hp4951_hu_3a00859f463538eb.jpg","date":"2017-12-27","description":"My good friend Joel Shea received a most unlikely gift this Christmas - A vintage HP 4951 Protocol Analyser.\nAccording to the HP Computer Museum:\nOriginal Price: $3595 The 4951B was replaced by the …","images":1,"mini":"/deskbar/art/7aba020a.svg","readingTime":1,"series":[],"tags":["tech","hardware"],"title":"HP 4951C Protocol Analyser","url":"/2017/12/hp-4951c-protocol-analyser/","words":91},{"categories":["Tech"],"cover":"/2017/11/talk-clustered-distributed-file-and-volume-storage-with-glusterfs/backdrop-plastic-containers_hu_49fecc22e281e8d0.jpg","date":"2017-11-14","description":"Using GlusterFS to provide volume storage to Kubernetes as a replacement for our existing file and static content hosting.\nThis talk was given at Infracoders on Tuesday 14th November 2017.\nClick below …","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":1,"series":[],"tags":["tech","storage","talk","Slides"],"title":"Talk - Clustered, Distributed File and Volume Storage with GlusterFS","url":"/2017/11/talk-clustered-distributed-file-and-volume-storage-with-glusterfs/","words":40},{"categories":["Tech"],"cover":"/2017/10/applying-syntax-in-sublime-based-on-the-first-file-line/backdrop-code_hu_3121b0b97612c9f3.jpg","date":"2017-10-25","description":"In vim, you can add a comment at the top of files to set the syntax, e.g.:\n# vim: syntax=ruby In SublimeText there are many ways to detect syntax, one interesting approach I’ve recently found useful …","images":1,"mini":"/deskbar/art/86541620.svg","readingTime":1,"series":[],"tags":["tech"],"title":"Applying syntax in Sublime based on the first file line","url":"/2017/10/applying-syntax-in-sublime-based-on-the-first-file-line/","words":162},{"categories":["Tech"],"cover":"/2017/10/broadcom-or-how-i-learned-to-start-worrying-and-drop-the-packet/office-space-broadcom_hu_cd64cffb67a828c6.jpg","date":"2017-10-13","description":"Earlier this week we started the process to upgrade one of our hypervisor compute clusters when we encountered a rather painful bug with HP’s Broadcom NIC chipsets.\nWe were part way through a routine …","images":1,"mini":"/deskbar/art/f74f205.svg","readingTime":6,"series":[],"tags":["tech","networking","hardware"],"title":"Broadcom, Or How I Learned To Start Worrying And Drop The Packet","url":"/2017/10/broadcom-or-how-i-learned-to-start-worrying-and-drop-the-packet/","words":1240},{"categories":["Tech"],"cover":"/2017/09/glusterfs/backdrop-insidebuilding_hu_420ee816004b05d7.jpg","date":"2017-09-25","description":"We’re in the process of shifting from using our custom ‘glue’ for orchestrating Docker deployments to Kubernetes, When we first deployed Docker to replace LXC and our legacy Puppet-heavy application …","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":6,"series":[],"tags":["tech","storage","software"],"title":"GlusterFS","url":"/2017/09/glusterfs/","words":1106},{"categories":[],"cover":"/2017/09/return-of-the-rss/melbourne_hu_b83d76e22316b48d.jpg","date":"2017-09-22","description":"Of all the tools for reading news and subscribing to software releases, I still find RSS the most useful.\nI use Feedly to manage my rss subscriptions and keep all my devices in sync, but instead of …","images":1,"mini":"/deskbar/art/642fd34.svg","readingTime":2,"series":[],"tags":["tech","software"],"title":"Return Of The RSS","url":"/2017/09/return-of-the-rss/","words":283},{"categories":["IoT","Health"],"cover":"https://user-images.githubusercontent.com/862951/52827251-21597e00-3118-11e9-9ebc-ddbbc9fb02a8.jpg","date":"2016-12-21","description":"MH-Z19 CO2 sensor reader, logger and visualiser Reads data from UART(serial)-connected MH-Z19 (or MH-Z14) sensor using python 3. If you dare to install nodejs you can visualise the logged data (using …","images":0,"mini":"/deskbar/art/14666cab.svg","readingTime":3,"series":[],"tags":["health","IoT","co2"],"title":"MH-Z19 CO2 sensor reader, logger and visualiser","url":"/2016/12/mh-z19-co2-sensor-reader-logger-and-visualiser/","words":552},{"categories":["Photos"],"cover":"/2016/08/castle-hill-winter-trip-2016-photos/backdrop-austria_hu_110ed3d324caf8f1.jpg","date":"2016-08-06","description":"Castle Hill Winter Trip 2016 [Photos]","images":1,"mini":"/deskbar/art/42ad430e.svg","readingTime":1,"series":[],"tags":["photos","cars"],"title":"Castle Hill Winter Trip 2016 Photos","url":"/2016/08/castle-hill-winter-trip-2016-photos/","words":2},{"categories":["Tech"],"cover":"/2016/07/the-state-of-android-in-2016-the-oneplus-3-phone/adrien-296945_hu_f6bd5066797674d0.jpg","date":"2016-07-11","description":"I wanted to try Android for a couple of weeks, I like staying on top of technology, gadgets and making sure I never become a blind ‘zealot’ for any platform or brand.\nThe OnePlus 3# I did a lot of …","images":1,"mini":"/deskbar/art/7aba020a.svg","readingTime":4,"series":[],"tags":["tech","hardware"],"title":"The State of Android in 2016 \u0026 The OnePlus 3 Phone","url":"/2016/07/the-state-of-android-in-2016-the-oneplus-3-phone/","words":721},{"categories":["Tech"],"cover":"/2016/07/update-delayed-serial-stonith-design/noah-kuhn-27481_hu_83454a4106bbd235.jpg","date":"2016-07-04","description":"note: This is a follow up post from 2015-07-21-rcd-stonith\nA Linux Cluster Base STONITH provider for use with modern Pacemaker clusters# This has since been accepted and merged into Fedora’s code base …","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":2,"series":[],"tags":["tech","storage","hardware"],"title":"Update Delayed Serial STONITH Design","url":"/2016/07/update-delayed-serial-stonith-design/","words":217},{"categories":["Tech"],"cover":"/2016/05/online-conversion-from-sql_ascii-to-utf8-in-postgresql/patrick-tomasso-71909_hu_4ab6fbd125283707.jpg","date":"2016-05-23","description":"Scripts and source available here: sql_ascii_to_utf8\nThe Goal# To be able to take a Postgres Database which is in SQL_ASCII encoding, and import it into a UTF8 encoded database.\nRequirements:\nPython3 …","images":1,"mini":"/deskbar/art/913faaa0.svg","readingTime":5,"series":[],"tags":["tech","software","data"],"title":"Online Conversion from SQL_ASCII to UTF8 in PostgreSQL","url":"/2016/05/online-conversion-from-sql_ascii-to-utf8-in-postgresql/","words":902},{"categories":["Tech"],"cover":"/2016/05/monitoring-systemd-units-with-nagios/feature-laptop_hu_5e19ca04375a1e74.jpg","date":"2016-05-23","description":"Ever forgotten to add a critical service to monitoring?\nWant to know if a service or process fails without explicitly monitoring every service on a host?\n…Then why not use SystemD’s existing knowledge …","images":1,"mini":"/deskbar/art/642fd34.svg","readingTime":1,"series":[],"tags":["tech","software"],"title":"Monitoring SystemD Units With Nagios","url":"/2016/05/monitoring-systemd-units-with-nagios/","words":68},{"categories":["Tech"],"cover":"/2016/05/speeding-up-rsync/robin-pierre-323861_hu_994ae066c3b692a1.jpg","date":"2016-05-03","description":"The most common way to use rsync is probably as such:\nrsync -avr user@\u0026lt;source\u0026gt;:\u0026lt;source_dir\u0026gt; \u0026lt;dest_dir\u0026gt; Resulting in 30-35MB/s depending on file sizes\nThis can be improved by using a more efficient, …","images":1,"mini":"/deskbar/art/f74f205.svg","readingTime":2,"series":[],"tags":["tech","software","networking"],"title":"Speeding Up rsync","url":"/2016/05/speeding-up-rsync/","words":224},{"categories":["Tech"],"cover":"/2016/04/benchmarking-io-with-fio/daniel-mayovskiy-303666_hu_cf841d9d9964f56f.jpg","date":"2016-04-29","description":"This is a quick tldr there are many other situations and options you could consider# FIO man page IOP/s = Input or Output operations per second Throughput = How many MB/s can you read/write …","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":2,"series":[],"tags":["tech","storage"],"title":"Benchmarking IO with FIO","url":"/2016/04/benchmarking-io-with-fio/","words":393},{"categories":["Tech"],"cover":"/2016/02/mirroring-a-gitlab-project-to-github/backdrop-austria_hu_110ed3d324caf8f1.jpg","date":"2016-02-04","description":"Let’s pretend you have a project on Gitlab called ask-izzy and you want to mirror it up to Gitlab which is located at https://github.com/ask-izzy/ask-izzy\nAssuming you’re running Gitlab as the default …","images":1,"mini":"/deskbar/art/642fd34.svg","readingTime":1,"series":[],"tags":["tech","software"],"title":"Mirroring a Gitlab project to Github","url":"/2016/02/mirroring-a-gitlab-project-to-github/","words":145},{"categories":["Tech"],"cover":"/2016/01/askizzy/melbourne_hu_b83d76e22316b48d.jpg","date":"2016-01-29","description":"Today we launched a mobile website for homeless people# … and it was launched by one of Australia’s many recent Prime Ministers\nToday alone we served up over 87,000 requests# As many of you know, I …","images":2,"mini":"/deskbar/art/86541620.svg","readingTime":1,"series":[],"tags":["tech"],"title":"AskIzzy","url":"/2016/01/askizzy/","words":206},{"categories":["Tech"],"cover":"/2016/01/fix-xenserver-sr-with-corrupt-or-invalid-metadata/samuel-zeller-358865_hu_8f1b3b81fdf36dc2.jpg","date":"2016-01-18","description":"If a disk / VDI is orphaned or only partially deleted you’ll notice that under the SR it’s not assigned to any VM.\nThis can cause issues that look like metadata corruption resulting in the inability …","images":1,"mini":"/deskbar/art/6ccdef72.svg","readingTime":2,"series":[],"tags":["tech","storage","xen"],"title":"Fix XenServer SR with corrupt or invalid metadata","url":"/2016/01/fix-xenserver-sr-with-corrupt-or-invalid-metadata/","words":296},{"categories":["Tech"],"cover":"/2015/12/iscsi-scsi-id-/-serial-persistence/feature-san-fran_hu_6a6da2b9fbe1232a.jpg","date":"2015-12-14","description":"“Having a SCSI ID is a f*cking idiotic thing to do.”\n- Linus Torvalds\n…and after the amount of time I’ve wasted getting XenServer to play nicely with LIO iSCSI failover I tend to agree.\nThe Problem# …","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":3,"series":[],"tags":["tech","storage"],"title":"iSCSI SCSI-ID / Serial Persistence","url":"/2015/12/iscsi-scsi-id-/-serial-persistence/","words":626},{"categories":["Tech"],"cover":"/2015/11/how-to-cluster-and-failover-almost-anything-an-intro-to-pacemaker-and-corosync/tim-napier-181584_hu_9c5fc85a6d59d88c.jpg","date":"2015-11-09","description":"Slides# Failover Demo#","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":1,"series":[],"tags":["tech","storage","clustering"],"title":"How to cluster and failover (almost) anything - An intro to Pacemaker and Corosync","url":"/2015/11/how-to-cluster-and-failover-almost-anything-an-intro-to-pacemaker-and-corosync/","words":3},{"categories":["Tech","Talks"],"cover":"/2015/10/san-intro/elliot-sloman-199291_hu_8b13a57c9bdf1fbd.jpg","date":"2015-10-07","description":"[Vimeo video](https://vimeo.com/141612064)","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":1,"series":[],"tags":["tech","storage","clustering","talk","Slides","hardware"],"title":"SAN Intro","url":"/2015/10/san-intro/","words":2},{"categories":["Tech"],"cover":"/2015/09/replacing-junos-pulse-with-openconnect/backdrop-zbuildings_hu_410e0d1dc9d3230e.jpg","date":"2015-09-22","description":"In an attempt to avoid using the Juniper Pulse (Now Pulse Secure) VPN client we tried OpenConnect but found that DNS did not work correctly when connected to the VPN. This bug has now been resolved …","images":1,"mini":"/deskbar/art/f74f205.svg","readingTime":1,"series":[],"tags":["tech","networking"],"title":"Replacing Junos Pulse with OpenConnect","url":"/2015/09/replacing-junos-pulse-with-openconnect/","words":137},{"categories":["Tech"],"cover":"/2015/09/ssd-storage-two-months-in-production/containers-1_hu_c17d056fb5e6165f.jpg","date":"2015-09-13","description":"Over the last two months I’ve been running selected IO intensive servers off the the SSD storage cluster, these hosts include (among others) our:\nPrimary Puppetmaster Gitlab server Redmine app and …","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":2,"series":[],"tags":["tech","storage","hardware"],"title":"SSD Storage - Two Months In Production","url":"/2015/09/ssd-storage-two-months-in-production/","words":376},{"categories":["Tech"],"cover":"/2015/09/os-x-software-update-channels-for-betas/rishi-deep-424424_hu_57dab353df08cb3a.jpg","date":"2015-09-01","description":"Set update channel to receive developer beta update# sudo softwareupdate --set-catalog …","images":1,"mini":"/deskbar/art/86541620.svg","readingTime":1,"series":[],"tags":["tech"],"title":"OS X Software Update Channels For Betas","url":"/2015/09/os-x-software-update-channels-for-betas/","words":55},{"categories":["Tech"],"cover":"/2015/07/iscsi-benchmarking/datacentre-1_hu_f1f831f7a1dfc55e.jpg","date":"2015-07-24","description":"The following are benchmarks from our testings of our iSCSI SSD storage.\n67,300 read IOP/s on a VM on iSCSI# (Disk -\u0026gt; LVM -\u0026gt; MDADM -\u0026gt; DRBD -\u0026gt; iSCSI target -\u0026gt; Network -\u0026gt; XenServer iSCSI Client -\u0026gt; VM) …","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":3,"series":[],"tags":["tech","storage","hardware"],"title":"iSCSI Benchmarking","url":"/2015/07/iscsi-benchmarking/","words":456},{"categories":["Tech"],"cover":"/2015/07/delayed-serial-stonith/padlock_hu_7c8a5dc1a516778e.jpg","date":"2015-07-21","description":"A modified version of John Sutton’s rcd_serial cable coupled with our Supermicro reset switch hijacker:\nThis works with the rcd_serial fence agent plugin.\nReasons rcd_serial makes for a very good …","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":3,"series":[],"tags":["tech","storage","hardware"],"title":"Delayed Serial STONITH","url":"/2015/07/delayed-serial-stonith/","words":450},{"categories":["Tech","Talks"],"cover":"/2015/07/video-cluster-failover-performance-demo/tim-napier-181584_hu_9c5fc85a6d59d88c.jpg","date":"2015-07-12","description":"[YouTube video](https://www.youtube.com/watch?v=GvAV990z2Us)","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":1,"series":[],"tags":["tech","storage","hardware","Slides","talks"],"title":"Video - Cluster Failover Performance Demo","url":"/2015/07/video-cluster-failover-performance-demo/","words":2},{"categories":["Tech"],"cover":"/2015/07/centos-7-and-ha/billy-huynh-278252_hu_565d625fccb03bf5.jpg","date":"2015-07-07","description":"First some background…\nOne of the many lessons I’ve learnt from my Linux HA / Storage clustering project is that the Debian HA ecosystem is essentially broken, We reached the point where packages were …","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":3,"series":[],"tags":["tech","storage","clustering"],"title":"CentOS 7 and HA","url":"/2015/07/centos-7-and-ha/","words":558},{"categories":["Tech"],"cover":"/2015/06/ssd-storage-cluster-update-and-diagram/backdrop-feetsky_hu_eff034ea79dc866a.jpg","date":"2015-06-17","description":"Due to several recent events beyond my control I’m a bit behind on the project - hence the lack of updates which I apologise for.\nThe goods news is that I’m back working to finish off the clusters and …","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":1,"series":["Storage"],"tags":["tech","storage","hardware"],"title":"SSD Storage Cluster - Update and Diagram","url":"/2015/06/ssd-storage-cluster-update-and-diagram/","words":79},{"categories":["Tech","Talks"],"cover":"/2015/05/video-storage-cluster-failover-demo/elliot-sloman-199291_hu_8b13a57c9bdf1fbd.jpg","date":"2015-05-14","description":"A brief demonstration of the failover and recovery process on the storage clusters I’ve been building.\n[YouTube video](https://www.youtube.com/watch?v=_fRMtXWM3FU)","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":1,"series":["Storage"],"tags":["tech","storage","hardware","Slides","talks"],"title":"Video - Storage Cluster Failover Demo","url":"/2015/05/video-storage-cluster-failover-demo/","words":18},{"categories":["Tech"],"cover":"/2015/04/talk-high-performance-software-defined-storage/robin-pierre-323861_hu_994ae066c3b692a1.jpg","date":"2015-04-15","description":"A high level talk from Infracoders Melbourne on 12/04/2015.\nThere’s also a low quality recording available here:\nRelated posts:\nBuilding a high performance SSD SAN - Part 1","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":1,"series":["Storage"],"tags":["tech","storage","talk","hardware","Slides"],"title":"Talk - High Performance Software Defined Storage","url":"/2015/04/talk-high-performance-software-defined-storage/","words":28},{"categories":["Tech","CICD"],"cover":"/2015/03/continuous-integration-for-the-linux-kernel-built-within-docker/backdrop-zbuildings_hu_410e0d1dc9d3230e.jpg","date":"2015-03-15","description":"Linux Kernel CI for Debian\nGithub: sammcj/kernel-ci\nThose of us using technologies such as Docker and BTRFS or simply trying to gain a performance edge on the competition have a lot to gain from the …","images":1,"mini":"/deskbar/art/1e2622b4.svg","readingTime":2,"series":[],"tags":["tech","DevOps","cicd"],"title":"Continuous integration for the Linux Kernel - Built within Docker","url":"/2015/03/continuous-integration-for-the-linux-kernel-built-within-docker/","words":310},{"categories":["Tech"],"cover":"/2015/02/xen-orchestra-docker-image/backdrop-insidebuilding_hu_420ee816004b05d7.jpg","date":"2015-02-26","description":"Docker config to setup XO which is a web interface to visualize and administrate your XenServer (or XAPI enabled) hosts\nGithub: sammcj/docker-xen-orchestra\nRunning the app# Updates are pushed to the …","images":1,"mini":"/deskbar/art/6ccdef72.svg","readingTime":1,"series":[],"tags":["tech","xen"],"title":"Xen Orchestra Docker Image","url":"/2015/02/xen-orchestra-docker-image/","words":74},{"categories":["Tech","Security-Privacy"],"cover":"/2015/02/delete-government-linked-certificate-authorities-in-osx/backdrop-italian-steps_hu_4f9519aaeda0338d.jpg","date":"2015-02-23","description":"Inspired by http://zitseng.com/archives/7489\nSource (Github) WARNINGS\nDo not run unless you understand what this is doing The CA system is broken by design - This is not a fix for that This is merely …","images":1,"mini":"/deskbar/art/c99d6f62.svg","readingTime":1,"series":[],"tags":["tech","security","privacy"],"title":"Delete Government-Linked Certificate Authorities in OSX","url":"/2015/02/delete-government-linked-certificate-authorities-in-osx/","words":75},{"categories":["Tech"],"cover":"/2015/02/building-a-high-performance-ssd-san-part-1/melbourne_hu_b83d76e22316b48d.jpg","date":"2015-02-16","description":"Over the coming month I will be architecting, building and testing a modular, high performance SSD-only storage solution.\nI’ll be documenting my progress / findings along the way and open sourcing all …","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":8,"series":["Storage"],"tags":["tech","storage","hardware"],"title":"Building a high performance SSD SAN - Part 1","url":"/2015/02/building-a-high-performance-ssd-san-part-1/","words":1592},{"categories":["Tech"],"cover":"/2015/02/xenserver-ssds-vm-storage-performance/noah-kuhn-27481_hu_83454a4106bbd235.jpg","date":"2015-02-15","description":"Intro# At Infoxchange we use XenServer as our Virtualisation of choice. There are many reasons for this including:\nOpen Source. Offers greater performance than VMware. Affordability (it’s free unless …","images":1,"mini":"/deskbar/art/6ccdef72.svg","readingTime":5,"series":[],"tags":["tech","storage","hardware","xen"],"title":"XenServer, SSDs \u0026 VM Storage Performance","url":"/2015/02/xenserver-ssds-vm-storage-performance/","words":970},{"categories":["Tech","BestOf","Software"],"cover":"/2015/02/the-best-of-2014-edition/patrick-tomasso-71909_hu_4ab6fbd125283707.jpg","date":"2015-02-15","description":"At the end of every year I note down a summary of the best applications, hardware \u0026amp; websites I’ve enjoyed \u0026amp; depended on throughout the year (and often for some time before).\nThis post has long since …","images":1,"mini":"/deskbar/art/642fd34.svg","readingTime":3,"series":["BestOf"],"tags":["tech","software","bestof"],"title":"The Best Of - 2014 Edition","url":"/2015/02/the-best-of-2014-edition/","words":426},{"categories":["Tech","DevOps","Talks"],"cover":"/2015/02/talk-24-months/melbourne_hu_b83d76e22316b48d.jpg","date":"2015-02-15","description":"The way we work at Infoxchange has changed greatly.\nA retrospective journey into transforming Infoxchange’s technology and culture over the past 24 months - presented a Melbourne DevOps - December …","images":1,"mini":"/deskbar/art/b90390e0.svg","readingTime":1,"series":[],"tags":["talk","tech","DevOps","career"],"title":"Talk - 24 Months","url":"/2015/02/talk-24-months/","words":31},{"categories":["Tech"],"cover":"/img/misc/search.jpg","date":"2015-02-15","description":"“Search - A Journey of Delivery on a Budget”# Presented a Melbourne Search - July 2014 - “Search - A Journey of Delivery on a Budget” (Click for slides)\n[YouTube …","images":1,"mini":"/deskbar/art/1e2622b4.svg","readingTime":1,"series":[],"tags":["tech","clustering","DevOps","career"],"title":"Search - A Journey of Delivery on a Budget","url":"/2015/02/search-a-journey-of-delivery-on-a-budget/","words":31},{"categories":["Tech"],"cover":"/2015/02/direct-attach-ssd-storage-performance-comparisons/banner_hu_9802205ea27a9a8a.jpg","date":"2015-02-15","description":"Further to my earlier post on XenServer storage performance with regards to directly attaching storage from the host, I have been analysing the performance of various SSD storage options.\nI have …","images":1,"mini":"/deskbar/art/ffdffffc.svg","readingTime":1,"series":[],"tags":["tech","storage","hardware"],"title":"Direct-Attach SSD Storage - Performance \u0026 Comparisons","url":"/2015/02/direct-attach-ssd-storage-performance-comparisons/","words":110},{"categories":["Cars"],"cover":"/2010/06/bmw-e36-328i-manual-conversion-programming/ivan-angelov-ITEOjp8utXc-unsplash_hu_6b9d0be8030a23d.jpg","date":"2010-06-10","description":"Reprogram BMW after doing Automatic to Manual Conversion# Based on my E36 328is experience, written in 2010.\nAssumptions# This guide assumes the following:\nYou have programmed a BMW ECU/DME before …","images":1,"mini":"/deskbar/art/42ad430e.svg","readingTime":6,"series":[],"tags":["cars"],"title":"BMW E36 328i Manual Conversion Programming","url":"/2010/06/bmw-e36-328i-manual-conversion-programming/","words":1081}],"sectionURL":"/posts/","taxonomies":{"categories":[{"count":55,"name":"Tech","url":"/categories/tech/"},{"count":7,"name":"Software","url":"/categories/software/"},{"count":6,"name":"DevOps","url":"/categories/devops/"},{"count":5,"name":"AI","url":"/categories/ai/"},{"count":5,"name":"llm","url":"/categories/llm/"},{"count":5,"name":"Talks","url":"/categories/talks/"},{"count":4,"name":"Leadership","url":"/categories/leadership/"},{"count":4,"name":"Linux","url":"/categories/linux/"},{"count":3,"name":"BestOf","url":"/categories/bestof/"},{"count":3,"name":"music","url":"/categories/music/"},{"count":3,"name":"Photos","url":"/categories/photos/"},{"count":3,"name":"Scripting","url":"/categories/scripting/"},{"count":3,"name":"ZSH","url":"/categories/zsh/"},{"count":2,"name":"Cars","url":"/categories/cars/"},{"count":2,"name":"Code","url":"/categories/code/"},{"count":2,"name":"Culture","url":"/categories/culture/"},{"count":2,"name":"Hardware","url":"/categories/hardware/"},{"count":2,"name":"Health","url":"/categories/health/"},{"count":2,"name":"IoT","url":"/categories/iot/"},{"count":2,"name":"macOS","url":"/categories/macos/"},{"count":2,"name":"Values","url":"/categories/values/"},{"count":1,"name":"Automotive","url":"/categories/automotive/"},{"count":1,"name":"cats","url":"/categories/cats/"},{"count":1,"name":"CICD","url":"/categories/cicd/"},{"count":1,"name":"Delivery","url":"/categories/delivery/"},{"count":1,"name":"Enterprise","url":"/categories/enterprise/"},{"count":1,"name":"ESP32","url":"/categories/esp32/"},{"count":1,"name":"finance","url":"/categories/finance/"},{"count":1,"name":"Git","url":"/categories/git/"},{"count":1,"name":"Github","url":"/categories/github/"},{"count":1,"name":"machine-learning","url":"/categories/machine-learning/"},{"count":1,"name":"ml","url":"/categories/ml/"},{"count":1,"name":"quotes","url":"/categories/quotes/"},{"count":1,"name":"RemoteWork","url":"/categories/remotework/"},{"count":1,"name":"saas","url":"/categories/saas/"},{"count":1,"name":"Sales/Marketing","url":"/categories/sales/marketing/"},{"count":1,"name":"Security-Privacy","url":"/categories/security-privacy/"},{"count":1,"name":"WIP","url":"/categories/wip/"}],"series":[{"count":9,"name":"BestOf","url":"/series/bestof/"},{"count":5,"name":"AI","url":"/series/ai/"},{"count":4,"name":"Code","url":"/series/code/"},{"count":4,"name":"Storage","url":"/series/storage/"},{"count":3,"name":"ZSH","url":"/series/zsh/"},{"count":1,"name":"AI/ML","url":"/series/ai/ml/"},{"count":1,"name":"Fun With Makefiles","url":"/series/fun-with-makefiles/"},{"count":1,"name":"Open Budgeting","url":"/series/open-budgeting/"}],"tags":[{"count":72,"name":"tech","url":"/tags/tech/"},{"count":35,"name":"ai","url":"/tags/ai/"},{"count":31,"name":"llm","url":"/tags/llm/"},{"count":20,"name":"storage","url":"/tags/storage/"},{"count":18,"name":"hardware","url":"/tags/hardware/"},{"count":16,"name":"software","url":"/tags/software/"},{"count":13,"name":"DevOps","url":"/tags/devops/"},{"count":10,"name":"agentic coding","url":"/tags/agentic-coding/"},{"count":9,"name":"agentic","url":"/tags/agentic/"},{"count":8,"name":"coding","url":"/tags/coding/"},{"count":8,"name":"ollama","url":"/tags/ollama/"},{"count":7,"name":"cline","url":"/tags/cline/"},{"count":7,"name":"tools","url":"/tags/tools/"},{"count":6,"name":"llama","url":"/tags/llama/"},{"count":6,"name":"Slides","url":"/tags/slides/"},{"count":6,"name":"talk","url":"/tags/talk/"},{"count":5,"name":"career","url":"/tags/career/"},{"count":5,"name":"cars","url":"/tags/cars/"},{"count":5,"name":"photos","url":"/tags/photos/"},{"count":5,"name":"tutorials","url":"/tags/tutorials/"},{"count":4,"name":"automation","url":"/tags/automation/"},{"count":4,"name":"claude","url":"/tags/claude/"},{"count":4,"name":"clustering","url":"/tags/clustering/"},{"count":4,"name":"culture","url":"/tags/culture/"},{"count":4,"name":"gguf","url":"/tags/gguf/"},{"count":4,"name":"golang","url":"/tags/golang/"},{"count":4,"name":"Linux","url":"/tags/linux/"},{"count":4,"name":"quantisation","url":"/tags/quantisation/"},{"count":3,"name":"Agile","url":"/tags/agile/"},{"count":3,"name":"art","url":"/tags/art/"},{"count":3,"name":"Bash","url":"/tags/bash/"},{"count":3,"name":"bestof","url":"/tags/bestof/"},{"count":3,"name":"Go","url":"/tags/go/"},{"count":3,"name":"mcp","url":"/tags/mcp/"},{"count":3,"name":"music","url":"/tags/music/"},{"count":3,"name":"networking","url":"/tags/networking/"},{"count":3,"name":"programming","url":"/tags/programming/"},{"count":3,"name":"Scripting","url":"/tags/scripting/"},{"count":3,"name":"security","url":"/tags/security/"},{"count":3,"name":"xen","url":"/tags/xen/"},{"count":3,"name":"ZSH","url":"/tags/zsh/"},{"count":2,"name":"agents","url":"/tags/agents/"},{"count":2,"name":"anthropic","url":"/tags/anthropic/"},{"count":2,"name":"aws","url":"/tags/aws/"},{"count":2,"name":"capitalism","url":"/tags/capitalism/"},{"count":2,"name":"claude code","url":"/tags/claude-code/"},{"count":2,"name":"Code","url":"/tags/code/"},{"count":2,"name":"cuda","url":"/tags/cuda/"},{"count":2,"name":"Delivery","url":"/tags/delivery/"},{"count":2,"name":"DRY","url":"/tags/dry/"},{"count":2,"name":"Git","url":"/tags/git/"},{"count":2,"name":"gpu","url":"/tags/gpu/"},{"count":2,"name":"health","url":"/tags/health/"},{"count":2,"name":"inference","url":"/tags/inference/"},{"count":2,"name":"IoT","url":"/tags/iot/"},{"count":2,"name":"Leadership","url":"/tags/leadership/"},{"count":2,"name":"learning","url":"/tags/learning/"},{"count":2,"name":"macOS","url":"/tags/macos/"},{"count":2,"name":"Markdown","url":"/tags/markdown/"},{"count":2,"name":"nvidia","url":"/tags/nvidia/"},{"count":2,"name":"performance","url":"/tags/performance/"},{"count":2,"name":"skills","url":"/tags/skills/"},{"count":2,"name":"talks","url":"/tags/talks/"},{"count":2,"name":"work","url":"/tags/work/"},{"count":2,"name":"yaml","url":"/tags/yaml/"},{"count":1,"name":"4k","url":"/tags/4k/"},{"count":1,"name":"API","url":"/tags/api/"},{"count":1,"name":"apple","url":"/tags/apple/"},{"count":1,"name":"awq","url":"/tags/awq/"},{"count":1,"name":"bands","url":"/tags/bands/"},{"count":1,"name":"bike","url":"/tags/bike/"},{"count":1,"name":"brownbag","url":"/tags/brownbag/"},{"count":1,"name":"budgeting","url":"/tags/budgeting/"},{"count":1,"name":"bugs","url":"/tags/bugs/"},{"count":1,"name":"car","url":"/tags/car/"},{"count":1,"name":"ci","url":"/tags/ci/"},{"count":1,"name":"cicd","url":"/tags/cicd/"},{"count":1,"name":"cli","url":"/tags/cli/"},{"count":1,"name":"co2","url":"/tags/co2/"},{"count":1,"name":"coffee","url":"/tags/coffee/"},{"count":1,"name":"communication","url":"/tags/communication/"},{"count":1,"name":"concerts","url":"/tags/concerts/"},{"count":1,"name":"Confluence","url":"/tags/confluence/"},{"count":1,"name":"context engineering","url":"/tags/context-engineering/"},{"count":1,"name":"creativity","url":"/tags/creativity/"},{"count":1,"name":"Customer Experience","url":"/tags/customer-experience/"},{"count":1,"name":"dashboard","url":"/tags/dashboard/"},{"count":1,"name":"data","url":"/tags/data/"},{"count":1,"name":"deepseek","url":"/tags/deepseek/"},{"count":1,"name":"demo","url":"/tags/demo/"},{"count":1,"name":"diagrams","url":"/tags/diagrams/"},{"count":1,"name":"direct messages","url":"/tags/direct-messages/"},{"count":1,"name":"economics","url":"/tags/economics/"},{"count":1,"name":"economy","url":"/tags/economy/"},{"count":1,"name":"engineering","url":"/tags/engineering/"},{"count":1,"name":"enterprise","url":"/tags/enterprise/"},{"count":1,"name":"ESP32","url":"/tags/esp32/"},{"count":1,"name":"Estimating","url":"/tags/estimating/"},{"count":1,"name":"faq","url":"/tags/faq/"},{"count":1,"name":"finance","url":"/tags/finance/"},{"count":1,"name":"gcp","url":"/tags/gcp/"},{"count":1,"name":"gigs","url":"/tags/gigs/"},{"count":1,"name":"github","url":"/tags/github/"},{"count":1,"name":"history","url":"/tags/history/"},{"count":1,"name":"HomeAssistant","url":"/tags/homeassistant/"},{"count":1,"name":"humour","url":"/tags/humour/"},{"count":1,"name":"jobs","url":"/tags/jobs/"},{"count":1,"name":"Kanban","url":"/tags/kanban/"},{"count":1,"name":"keynote","url":"/tags/keynote/"},{"count":1,"name":"licenses","url":"/tags/licenses/"},{"count":1,"name":"llama.cpp","url":"/tags/llama.cpp/"},{"count":1,"name":"llm faq","url":"/tags/llm-faq/"},{"count":1,"name":"llms","url":"/tags/llms/"},{"count":1,"name":"LMStudio","url":"/tags/lmstudio/"},{"count":1,"name":"machinelearning","url":"/tags/machinelearning/"},{"count":1,"name":"management","url":"/tags/management/"},{"count":1,"name":"Marketing","url":"/tags/marketing/"},{"count":1,"name":"mermaid","url":"/tags/mermaid/"},{"count":1,"name":"metal","url":"/tags/metal/"},{"count":1,"name":"ML","url":"/tags/ml/"},{"count":1,"name":"mlx","url":"/tags/mlx/"},{"count":1,"name":"money","url":"/tags/money/"},{"count":1,"name":"monitor","url":"/tags/monitor/"},{"count":1,"name":"Monitoring","url":"/tags/monitoring/"},{"count":1,"name":"ollama faq","url":"/tags/ollama-faq/"},{"count":1,"name":"open budgeting","url":"/tags/open-budgeting/"},{"count":1,"name":"opensource","url":"/tags/opensource/"},{"count":1,"name":"optimisation","url":"/tags/optimisation/"},{"count":1,"name":"parameters","url":"/tags/parameters/"},{"count":1,"name":"playground","url":"/tags/playground/"},{"count":1,"name":"presentation","url":"/tags/presentation/"},{"count":1,"name":"privacy","url":"/tags/privacy/"},{"count":1,"name":"productivity","url":"/tags/productivity/"},{"count":1,"name":"profit","url":"/tags/profit/"},{"count":1,"name":"quotes","url":"/tags/quotes/"},{"count":1,"name":"qwen","url":"/tags/qwen/"},{"count":1,"name":"ratings","url":"/tags/ratings/"},{"count":1,"name":"remotework","url":"/tags/remotework/"},{"count":1,"name":"roo code","url":"/tags/roo-code/"},{"count":1,"name":"saas","url":"/tags/saas/"},{"count":1,"name":"Sales","url":"/tags/sales/"},{"count":1,"name":"sampling","url":"/tags/sampling/"},{"count":1,"name":"Shell","url":"/tags/shell/"},{"count":1,"name":"software development","url":"/tags/software-development/"},{"count":1,"name":"software engineering","url":"/tags/software-engineering/"},{"count":1,"name":"StableDiffusion","url":"/tags/stablediffusion/"},{"count":1,"name":"streaming","url":"/tags/streaming/"},{"count":1,"name":"subscriptions","url":"/tags/subscriptions/"},{"count":1,"name":"tips","url":"/tags/tips/"},{"count":1,"name":"values","url":"/tags/values/"},{"count":1,"name":"vertex","url":"/tags/vertex/"},{"count":1,"name":"vibe coding","url":"/tags/vibe-coding/"},{"count":1,"name":"vibecoding","url":"/tags/vibecoding/"},{"count":1,"name":"video","url":"/tags/video/"},{"count":1,"name":"vllm","url":"/tags/vllm/"},{"count":1,"name":"vram","url":"/tags/vram/"},{"count":1,"name":"Willow","url":"/tags/willow/"},{"count":1,"name":"wins","url":"/tags/wins/"},{"count":1,"name":"WIP","url":"/tags/wip/"}]},"taxonomyURLs":{"categories":"/categories/","tags":"/tags/"},"version":1}