<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kyle Pericak</title>
    <link>https://kyle.pericak.com</link>
    <description>Kyle Pericak&apos;s Blog</description>
    <language>en-us</language>
    <lastBuildDate>Sun, 14 Jun 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://kyle.pericak.com/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Blog Redesign 4 and an AI-First Design System</title>
      <link>https://kyle.pericak.com/add-blog-redesign.html</link>
      <description>Rebuilt a blog front-end in a few hours, experimenting with where humans belong &quot;in the loop&quot;. Playing with &apos;Architecture Driven Development&apos;.</description>
      <pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/add-blog-redesign.html</guid>
      <category>dev</category>
      <category>Tailwind</category>
      <category>Storybook</category>
      <category>Claude-Code</category>
      <category>Design-Systems</category>
      <category>AI-Agents</category>
    </item>
    <item>
      <title>Pai: A Personalized Openclaw-Inspired Assistant</title>
      <link>https://kyle.pericak.com/openclaw-inspired-assistant.html</link>
      <description>Not Invented Here is my favourite way to learn. I copied what I like from OpenClaw for a purpose-built private assistant.</description>
      <pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/openclaw-inspired-assistant.html</guid>
      <category>ai</category>
      <category>AI</category>
      <category>Claude-Code</category>
      <category>agents</category>
      <category>openclaw</category>
      <category>Pai</category>
      <category>Kubernetes</category>
    </item>
    <item>
      <title>Exploring Claude Plugin obra/superpowers</title>
      <link>https://kyle.pericak.com/exploring-claude-plugin-obra-superpowers.html</link>
      <description>A look at Jesse Vincent&apos;s Superpowers plugin, what it ships, which skills fire automatically, and which ones you reach for on purpose.</description>
      <pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/exploring-claude-plugin-obra-superpowers.html</guid>
      <category>ai</category>
      <category>Claude-Code</category>
      <category>AI</category>
      <category>plugins</category>
      <category>skills</category>
      <category>Superpowers</category>
    </item>
    <item>
      <title>Selecting a Claude Plugin Set</title>
      <link>https://kyle.pericak.com/selecting-a-claude-plugin-set.html</link>
      <description>A walk through Claude Code plugins and marketplaces, and how to pick a set without dragging in stuff you didn&apos;t read first.</description>
      <pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/selecting-a-claude-plugin-set.html</guid>
      <category>ai</category>
      <category>Claude-Code</category>
      <category>AI</category>
      <category>plugins</category>
    </item>
    <item>
      <title>Claude Code CLI Cheat-Sheet</title>
      <link>https://kyle.pericak.com/claude-code-cheat-sheet.html</link>
      <description>Claude Code cheat sheet: CLI flags, slash commands, keyboard shortcuts, hooks, session management, worktrees, permissions, and custom agents.</description>
      <pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/claude-code-cheat-sheet.html</guid>
      <category>ai</category>
      <category>Claude-Code</category>
      <category>AI</category>
      <category>reference</category>
      <category>CLI</category>
    </item>
    <item>
      <title>Ralph Secure My Laptop</title>
      <link>https://kyle.pericak.com/secure-my-laptop.html</link>
      <description>Running Claude Code in an autonomous loop to audit and harden a Mac M1 workstation using Ansible, Lynis, rkhunter, and mSCP CIS Level 1 checks.</description>
      <pubDate>Sun, 22 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/secure-my-laptop.html</guid>
      <category>ai</category>
      <category>AI</category>
      <category>OpenClaw</category>
      <category>Ralph</category>
      <category>security</category>
      <category>macOS</category>
      <category>Ansible</category>
      <category>Claude-Code</category>
      <category>CIS</category>
    </item>
    <item>
      <title>AI-Native SDLC: First Try</title>
      <link>https://kyle.pericak.com/ai-native-sdlc-first-try.html</link>
      <description>Building a product development lifecycle where AI agents handle scoping, research, and documentation, from PRD through design doc to implementation plan.</description>
      <pubDate>Mon, 16 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/ai-native-sdlc-first-try.html</guid>
      <category>dev</category>
      <category>AI-Agents</category>
      <category>SDLC</category>
      <category>Product-Management</category>
      <category>PRD</category>
      <category>design-docs</category>
      <category>Claude-Code</category>
    </item>
    <item>
      <title>My First Cron/Event-Triggered AI Agents on K8s</title>
      <link>https://kyle.pericak.com/cron-event-triggered-ai-agents-k8s.html</link>
      <description>Building a K8s controller that runs a Claude Code agent every morning to search the web for AI news and write a digest to the wiki. Also triggerable on demand via webhook.</description>
      <pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/cron-event-triggered-ai-agents-k8s.html</guid>
      <category>ai</category>
      <category>AI</category>
      <category>kubernetes</category>
      <category>agents</category>
      <category>Claude-Code</category>
      <category>automation</category>
      <category>Go</category>
    </item>
    <item>
      <title>Applying Research to Claude Agents</title>
      <link>https://kyle.pericak.com/using-agents-better.html</link>
      <description>Research-backed guidance on getting coding agents to do useful work, applied to rebuild a 7-agent roster from Anthropic&apos;s published advice and three deep research reports.</description>
      <pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/using-agents-better.html</guid>
      <category>dev</category>
      <category>Claude-Code</category>
      <category>AI-Agents</category>
      <category>MCP</category>
    </item>
    <item>
      <title>Cloudflare MCP: Query DNS and the Full API</title>
      <link>https://kyle.pericak.com/cloudflare-mcp.html</link>
      <description>Connecting Cloudflare&apos;s remote MCP server to Claude Code so it can query DNS records, zone configs, and the full Cloudflare API from the terminal.</description>
      <pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/cloudflare-mcp.html</guid>
      <category>dev</category>
      <category>Cloudflare</category>
      <category>MCP</category>
      <category>Claude-Code</category>
      <category>DNS</category>
    </item>
    <item>
      <title>Attempting an AI Agent Org Chart</title>
      <link>https://kyle.pericak.com/agent-org-chart.html</link>
      <description>Experimenting with multi-agent setup with named roles, a shared wiki, and an orchestration agent that coordinates between them.</description>
      <pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/agent-org-chart.html</guid>
      <category>ai</category>
      <category>AI</category>
      <category>Claude-Code</category>
      <category>agents</category>
      <category>orchestration</category>
      <category>Bot-Wiki</category>
    </item>
    <item>
      <title>Safety Hooks for Claude Code</title>
      <link>https://kyle.pericak.com/claude-hooks.html</link>
      <description>Three shell scripts that block destructive commands, protect sensitive files, and log everything Claude does.</description>
      <pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/claude-hooks.html</guid>
      <category>ai</category>
      <category>Claude-Code</category>
      <category>Security</category>
      <category>Hooks</category>
    </item>
    <item>
      <title>RAG on the Bot-Wiki</title>
      <link>https://kyle.pericak.com/wiki-rag.html</link>
      <description>Build a tiny RAG pipeline over a 21-page wiki using FAISS flat index, OpenRouter embeddings, and whole-page chunks enriched with frontmatter context.</description>
      <pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/wiki-rag.html</guid>
      <category>ai</category>
      <category>RAG</category>
      <category>FAISS</category>
      <category>OpenRouter</category>
      <category>embeddings</category>
      <category>Bot-Wiki</category>
      <category>Python</category>
    </item>
    <item>
      <title>Bot-Wiki: A Knowledge Base for Robots</title>
      <link>https://kyle.pericak.com/bot-wiki.html</link>
      <description>Adding a structured wiki to the blog designed for AI agents and RAG pipelines, with machine-readable frontmatter, keyword lists, and cross-references.</description>
      <pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/bot-wiki.html</guid>
      <category>ai</category>
      <category>AI</category>
      <category>RAG</category>
      <category>wiki</category>
      <category>Bot-Wiki</category>
      <category>knowledge-base</category>
    </item>
    <item>
      <title>OpenRouter for Claude Code, OpenCode, and OpenClaw</title>
      <link>https://kyle.pericak.com/openrouter-ai-tools.html</link>
      <description>Routing Claude Code, OpenCode, and OpenClaw through one OpenRouter API key for unified billing, swapping in Gemini via env vars, plus a custom MCP server.</description>
      <pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/openrouter-ai-tools.html</guid>
      <category>dev</category>
      <category>openrouter</category>
      <category>Claude-Code</category>
      <category>opencode</category>
      <category>openclaw</category>
      <category>AI</category>
      <category>mcp</category>
    </item>
    <item>
      <title>Writing My Own OpenClaw Skill for Linear</title>
      <link>https://kyle.pericak.com/openclaw-linear-skill.html</link>
      <description>Writing an auditable Linear skill for OpenClaw after the ClawHavoc attack poisoned ClawHub, using curl and Linear&apos;s GraphQL API instead of a marketplace skill.</description>
      <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/openclaw-linear-skill.html</guid>
      <category>dev</category>
      <category>openclaw</category>
      <category>Linear</category>
      <category>security</category>
      <category>AI</category>
      <category>self-hosted</category>
    </item>
    <item>
      <title>Trying to Secure OpenClaw using Kubernetes</title>
      <link>https://kyle.pericak.com/openclaw-k8s.html</link>
      <description>Six layers of security hardening for OpenClaw on K3s, from network isolation to Pod Security Standards.</description>
      <pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/openclaw-k8s.html</guid>
      <category>dev</category>
      <category>openclaw</category>
      <category>kubernetes</category>
      <category>vault</category>
      <category>security</category>
      <category>self-hosted</category>
    </item>
    <item>
      <title>OpenClaw MVP</title>
      <link>https://kyle.pericak.com/openclaw-mvp.html</link>
      <description>Installing OpenClaw on macOS, picking a model between Gemini 2.5 Flash&apos;s free tier and paid Claude or GPT, and wiring it up to a Telegram bot via BotFather.</description>
      <pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/openclaw-mvp.html</guid>
      <category>dev</category>
      <category>openclaw</category>
      <category>telegram</category>
      <category>linear</category>
      <category>ai</category>
      <category>self-hosted</category>
    </item>
    <item>
      <title>Lint Toolkit for AI Agents</title>
      <link>https://kyle.pericak.com/ai-lint-toolkit.html</link>
      <description>A Docker image bundling ruff, biome, hadolint, and tflint so AI coding agents can lint Python, JS/TS, Dockerfiles, and Terraform.</description>
      <pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/ai-lint-toolkit.html</guid>
      <category>dev</category>
      <category>docker</category>
      <category>linting</category>
      <category>ruff</category>
      <category>biome</category>
      <category>hadolint</category>
      <category>tflint</category>
      <category>claude-code</category>
    </item>
    <item>
      <title>Security Toolkit for AI Agents</title>
      <link>https://kyle.pericak.com/ai-security-toolkit.html</link>
      <description>A Docker image bundling semgrep, trivy, and gitleaks so AI coding agents can run security scans as part of their workflow.</description>
      <pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/ai-security-toolkit.html</guid>
      <category>dev</category>
      <category>docker</category>
      <category>security</category>
      <category>semgrep</category>
      <category>trivy</category>
      <category>gitleaks</category>
      <category>claude-code</category>
    </item>
    <item>
      <title>Linear MCP: Planning with Robots</title>
      <link>https://kyle.pericak.com/linear-mcp.html</link>
      <description>Wiring Linear&apos;s official MCP server into Claude Code via OAuth, then designing a nightly ideation agent that files Backlog suggestions gated by issue status.</description>
      <pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/linear-mcp.html</guid>
      <category>ai</category>
      <category>Linear</category>
      <category>MCP</category>
      <category>Claude-Code</category>
      <category>Cursor</category>
      <category>AI</category>
    </item>
    <item>
      <title>Using OpenCode &amp; Comparing it to Claude, Cursor</title>
      <link>https://kyle.pericak.com/local-opencode-setup.html</link>
      <description>Setting up OpenCode locally as an alternative to Cursor and Claude Code for AI-assisted development. First try at multi-agent flows.</description>
      <pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/local-opencode-setup.html</guid>
      <category>dev</category>
      <category>opencode</category>
      <category>llm</category>
      <category>dev</category>
    </item>
    <item>
      <title>GA4 and Its MCP Server</title>
      <link>https://kyle.pericak.com/ga4-mcp.html</link>
      <description>Adding Google Analytics 4 to a statically-exported Next.js blog, then connecting the official GA4 MCP server so Claude can query the data directly.</description>
      <pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/ga4-mcp.html</guid>
      <category>dev</category>
      <category>GA4</category>
      <category>Google-Analytics</category>
      <category>MCP</category>
      <category>Claude-Code</category>
      <category>Next-js</category>
    </item>
    <item>
      <title>Playwright MCP: Claude Code Verifying Its Own Work</title>
      <link>https://kyle.pericak.com/playwright-mcp.html</link>
      <description>Playwright MCP setup for Claude Code: browser tools reference, Gherkin test generation, and letting agents verify their own changes.</description>
      <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/playwright-mcp.html</guid>
      <category>ai</category>
      <category>AI</category>
      <category>Claude-Code</category>
      <category>Playwright</category>
      <category>MCP</category>
      <category>Testing</category>
      <category>Gherkin</category>
    </item>
    <item>
      <title>Cross-Tool AI Rules with Ruler</title>
      <link>https://kyle.pericak.com/ruler-cross-tool-ai-rules.html</link>
      <description>Using Ruler to maintain a single source of truth for AI coding assistant instructions across Cursor, Claude Code, and OpenCode in a monorepo.</description>
      <pubDate>Mon, 02 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/ruler-cross-tool-ai-rules.html</guid>
      <category>dev</category>
      <category>AI</category>
      <category>Claude-Code</category>
      <category>Cursor</category>
      <category>OpenCode</category>
      <category>Codex</category>
      <category>monorepo</category>
      <category>Ruler</category>
    </item>
    <item>
      <title>ComfyUI on M2: Local Image API with Character Consistency</title>
      <link>https://kyle.pericak.com/oss-img-gen.html</link>
      <description>Setting up ComfyUI on a 16GB Apple Silicon MacBook as a local REST API, with IP-Adapter for generating consistent character portraits in a tabletop RPG game</description>
      <pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/oss-img-gen.html</guid>
      <category>ai</category>
      <category>AI</category>
      <category>Images</category>
      <category>ComfyUI</category>
      <category>Apple-Silicon</category>
      <category>SDXL</category>
      <category>IP-Adapter</category>
      <category>TTRPG</category>
    </item>
    <item>
      <title>Claude Code + CodeRabbit: Review Before the PR</title>
      <link>https://kyle.pericak.com/claude-code-coderabbit.html</link>
      <description>Setting up the CodeRabbit CLI and Claude Code plugin so you can run AI code review locally before creating a pull request, and configuring both tools to agree on your project&apos;s standards via CLAUDE.md</description>
      <pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/claude-code-coderabbit.html</guid>
      <category>dev</category>
      <category>Claude-Code</category>
      <category>CodeRabbit</category>
      <category>AI</category>
      <category>Code-Review</category>
      <category>GitHub</category>
    </item>
    <item>
      <title>Local LLM Bakeoff on Apple M2 Air</title>
      <link>https://kyle.pericak.com/local-llm-m2-air.html</link>
      <description>Running and comparing Qwen3 8B, DeepSeek-R1-Distill-Qwen-7B, Mistral Nemo 12B, and Mistral Small 3.1 24B locally using llama.cpp on Apple Silicon</description>
      <pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/local-llm-m2-air.html</guid>
      <category>ai</category>
      <category>AI</category>
      <category>LLM</category>
      <category>Apple-Silicon</category>
      <category>llama-cpp</category>
      <category>Qwen</category>
      <category>DeepSeek</category>
      <category>Mistral</category>
    </item>
    <item>
      <title>AI Image Generator Bakeoff</title>
      <link>https://kyle.pericak.com/ai-image-gen-bakeoff.html</link>
      <description>Head-to-head comparison of GPT Image 1.5, Nano Banana Pro, and Flux 2 Max APIs for blog image generation: setup, pricing, and real output quality.</description>
      <pubDate>Sat, 21 Feb 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/ai-image-gen-bakeoff.html</guid>
      <category>ai</category>
      <category>AI</category>
      <category>Images</category>
      <category>OpenAI</category>
      <category>Flux</category>
      <category>Nano Banana</category>
    </item>
    <item>
      <title>Automating Blog Images with OpenAI</title>
      <link>https://kyle.pericak.com/ai-generate-blog-images.html</link>
      <description>How this blog auto-generates post thumbnails at build time using OpenAI&apos;s DALL-E 3 API, gpt-4o-mini for prompts, and Sharp for 70x70 resizing.</description>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/ai-generate-blog-images.html</guid>
      <category>ai</category>
      <category>AI</category>
      <category>OpenAI</category>
      <category>Blog</category>
    </item>
    <item>
      <title>Mermaid Diagrams in Markdown</title>
      <link>https://kyle.pericak.com/mermaid-markdown-support.html</link>
      <description>Adding Mermaid diagram rendering to a Next.js blog via a custom remark plugin, with syntax examples for flowcharts, sequence diagrams, and state diagrams.</description>
      <pubDate>Fri, 05 Dec 2025 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/mermaid-markdown-support.html</guid>
      <category>development</category>
      <category>markdown</category>
      <category>mermaid</category>
      <category>diagram</category>
      <category>ai</category>
    </item>
    <item>
      <title>Adding Virtio drivers for KVM to RHEL&apos;s initrd</title>
      <link>https://kyle.pericak.com/rhel-virtio-initrd.html</link>
      <description>Fix a RHEL VM that drops to the dracut prompt after migrating to KVM or OpenStack by chrooting in and injecting virtio drivers into the initrd with dracut.</description>
      <pubDate>Wed, 21 Oct 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/rhel-virtio-initrd.html</guid>
      <category>cloud</category>
      <category>OpenStack</category>
    </item>
    <item>
      <title>Creating a CSR with a SAN - openssl</title>
      <link>https://kyle.pericak.com/openssl-csr-san.html</link>
      <description>Fixing ERR_CERT_COMMON_NAME_INVALID by generating an openssl CSR with Subject Alternative Names, using a reusable san.ini config file and openssl req.</description>
      <pubDate>Tue, 20 Oct 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/openssl-csr-san.html</guid>
      <category>systems administration</category>
      <category>https</category>
      <category>openssl</category>
    </item>
    <item>
      <title>VLAN Tagging Mac Thunderbolt NIC IP Traffic</title>
      <link>https://kyle.pericak.com/mac-vlan-thunderbolt.html</link>
      <description>Click-by-click steps for adding an 802.1Q VLAN tag to a Thunderbolt Ethernet adapter on macOS so you can plug a MacBook into a switch&apos;s trunk port for testing.</description>
      <pubDate>Thu, 23 Jul 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/mac-vlan-thunderbolt.html</guid>
      <category>systems administration</category>
      <category>Mac OS</category>
    </item>
    <item>
      <title>OpenStack: Fixing the CLI (python2) error: No module named queue</title>
      <link>https://kyle.pericak.com/openstack-fix-cli.html</link>
      <description>Fix the broken python-openstackclient install on Ubuntu 18.04 by swapping `import queue` for `from multiprocessing import Queue as queue` in the SDK files.</description>
      <pubDate>Thu, 25 Jun 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/openstack-fix-cli.html</guid>
      <category>cloud</category>
      <category>OpenStack</category>
    </item>
    <item>
      <title>Create Windows KVM VM from Command Line</title>
      <link>https://kyle.pericak.com/windows-kvm-command-line.html</link>
      <description>Create a Windows KVM virtual machine on Ubuntu 18.04 from the command line with qemu-kvm, libvirt, virt-install, and a netplan bridge. No OpenStack required.</description>
      <pubDate>Fri, 05 Jun 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/windows-kvm-command-line.html</guid>
      <category>systems administration</category>
      <category>Ubuntu</category>
      <category>KVM</category>
    </item>
    <item>
      <title>Packet Tracing Reference</title>
      <link>https://kyle.pericak.com/packet-tracing-reference.html</link>
      <description>Quick reference for capturing and filtering network traffic on Ubuntu using tcpdump and tshark. Covers port filters, host filters, combined expressions, and tshark HTTP capture.</description>
      <pubDate>Thu, 04 Jun 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/packet-tracing-reference.html</guid>
      <category>systems administration</category>
      <category>Ubuntu</category>
      <category>HTTP</category>
      <category>API</category>
      <category>tshark</category>
      <category>tcpdump</category>
    </item>
    <item>
      <title>Ubuntu NFS Server Setup</title>
      <link>https://kyle.pericak.com/ubuntu-nfs-server.html</link>
      <description>Install and configure an NFS server on Ubuntu 18.04 with nfs-kernel-server, set up /etc/exports for a subnet, apply with exportfs, and mount from a client.</description>
      <pubDate>Mon, 09 Mar 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/ubuntu-nfs-server.html</guid>
      <category>systems administration</category>
      <category>ubuntu</category>
      <category>NFS</category>
    </item>
    <item>
      <title>Transferring files to Windows through Python&apos;s SimpleHTTPServer</title>
      <link>https://kyle.pericak.com/python-http-transfer.html</link>
      <description>Push a one-off file to a locked-down Windows box from Linux by hosting it with `python -m SimpleHTTPServer` and grabbing it in Internet Explorer.</description>
      <pubDate>Fri, 06 Mar 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/python-http-transfer.html</guid>
      <category>systems administration</category>
      <category>Python</category>
    </item>
    <item>
      <title>Ceph Reference Page</title>
      <link>https://kyle.pericak.com/ceph-reference.html</link>
      <description>Quick reference for Ceph storage commands: pool replica management, RBD volume create/map/delete, snapshot rollback, and exporting RBD images to files.</description>
      <pubDate>Thu, 05 Mar 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/ceph-reference.html</guid>
      <category>reference pages</category>
      <category>Ceph</category>
    </item>
    <item>
      <title>Github Pages: Basics</title>
      <link>https://kyle.pericak.com/github-pages.html</link>
      <description>Spinning up a GitHub Pages site from the docs folder on master, with a custom domain via Cloudflare CNAME, a Jekyll theme, and Markdown-based sub-pages.</description>
      <pubDate>Thu, 27 Feb 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/github-pages.html</guid>
      <category>development</category>
      <category>Git</category>
    </item>
    <item>
      <title>Python Ceph Examples</title>
      <link>https://kyle.pericak.com/python-ceph.html</link>
      <description>Use Ceph&apos;s rados and rbd Python libraries to check cluster health, list and create pools, and manage RBD block-device images with real code samples.</description>
      <pubDate>Mon, 03 Feb 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/python-ceph.html</guid>
      <category>development</category>
      <category>Python</category>
      <category>Ceph</category>
    </item>
    <item>
      <title>AWS CodeBuild CICD - Deploy to Lambda</title>
      <link>https://kyle.pericak.com/aws-labmda-codecommit.html</link>
      <description>Build a CI/CD pipeline for Python Lambda functions using CodeCommit, CodeBuild, and AWS SAM templates to test and auto-deploy on every commit.</description>
      <pubDate>Mon, 27 Jan 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/aws-labmda-codecommit.html</guid>
      <category>cloud</category>
      <category>AWS</category>
      <category>Lambda</category>
      <category>Python</category>
      <category>CodeBuild</category>
    </item>
    <item>
      <title>OpenStack Cloudbase-init: PowerShell user_data Scripts</title>
      <link>https://kyle.pericak.com/openstack-cloudinit-powershell.html</link>
      <description>How to run PowerShell scripts via Cloudbase-init user_data when deploying Windows instances in OpenStack. Covers the #ps1 script format and the --user-data launch flag.</description>
      <pubDate>Sat, 25 Jan 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/openstack-cloudinit-powershell.html</guid>
      <category>cloud</category>
      <category>OpenStack</category>
      <category>Windows</category>
      <category>Powershell</category>
    </item>
    <item>
      <title>Authenticating with AWS IAM in AWS API Gateway</title>
      <link>https://kyle.pericak.com/aws-api-gateway-iam.html</link>
      <description>Lock down an AWS API Gateway endpoint with IAM auth, wire it to a Python Lambda, and call it from a signed client using policies and access keys.</description>
      <pubDate>Tue, 21 Jan 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/aws-api-gateway-iam.html</guid>
      <category>cloud</category>
      <category>AWS</category>
      <category>API Gateway</category>
      <category>Python</category>
    </item>
    <item>
      <title>CircleCI: Continuous Delivery for Firebase</title>
      <link>https://kyle.pericak.com/firebase-circleci-cd.html</link>
      <description>Set up continuous deployment for a Firebase Hosting app using CircleCI, a firebase login:ci token, and a minimal config.yml that runs firebase deploy.</description>
      <pubDate>Thu, 16 Jan 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/firebase-circleci-cd.html</guid>
      <category>development</category>
      <category>Firebase</category>
    </item>
    <item>
      <title>CodePipeline - Continuous Delivery to AWS ECR</title>
      <link>https://kyle.pericak.com/aws-codepipeline-ecr.html</link>
      <description>Wire up AWS CodeCommit, CodePipeline, and CodeBuild with a buildspec.yml to auto-build Docker images and push them to ECR on every commit.</description>
      <pubDate>Wed, 15 Jan 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/aws-codepipeline-ecr.html</guid>
      <category>cloud</category>
      <category>AWS</category>
      <category>Docker</category>
      <category>CICD</category>
      <category>CodePipeline</category>
      <category>CodeCommit</category>
      <category>CodeBuild</category>
    </item>
    <item>
      <title>Free HTTPS Certs with LetsEncrypt&apos;s Certbot</title>
      <link>https://kyle.pericak.com/certbot.html</link>
      <description>Install LetsEncrypt&apos;s certbot on Ubuntu and issue a free HTTPS certificate using the standalone HTTP challenge, then convert the files for HAProxy use.</description>
      <pubDate>Mon, 13 Jan 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/certbot.html</guid>
      <category>systems administration</category>
      <category>HTTPS</category>
    </item>
    <item>
      <title>Firebase Basics: Hello World</title>
      <link>https://kyle.pericak.com/firebase-hello-world.html</link>
      <description>Set up Firebase CLI and deploy a Hello World app from Ubuntu. Includes a Vagrant port-forwarding trick for authenticating the Firebase CLI without a desktop browser.</description>
      <pubDate>Sat, 11 Jan 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/firebase-hello-world.html</guid>
      <category>development</category>
      <category>Firebase</category>
    </item>
    <item>
      <title>Create &amp; Terminate EC2 Instances from Python</title>
      <link>https://kyle.pericak.com/aws-ec2-python.html</link>
      <description>Launch and terminate EC2 instances from Python using boto3, with a working example covering Ubuntu AMIs, security groups, tags, and wait_until_running.</description>
      <pubDate>Thu, 09 Jan 2020 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://kyle.pericak.com/aws-ec2-python.html</guid>
      <category>cloud</category>
      <category>AWS</category>
      <category>EC2</category>
      <category>Python</category>
    </item>
  </channel>
</rss>
