<br />
<b>Deprecated</b>:  The each() function is deprecated. This message will be suppressed on further calls in <b>/home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php</b> on line <b>456</b><br />
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Learn Elixir with Expert Training &amp; Courses</title><description>Learn from Bruce Tate, author of &apos;Designing Elixir Systems with OTP&apos; and 10+ foundational Elixir books. Self-paced courses, live team training, and 1:1 mentoring to help you build reliable systems with confidence.</description><link>https://grox.io/</link><item><title>How Better Tools Can Make Things Worse</title><link>https://grox.io/blog/30-how-better-tools-can-make-things-worse/</link><guid isPermaLink="true">https://grox.io/blog/30-how-better-tools-can-make-things-worse/</guid><description>Bruce Tate traces how AI coding tools moved from helpful completion to unchecked delegation, leaving teams with faster output, weaker design, and less room for judgment to grow.</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The Sludge on the Wall</title><link>https://grox.io/blog/28-the-sludge-on-the-wall/</link><guid isPermaLink="true">https://grox.io/blog/28-the-sludge-on-the-wall/</guid><description>AI coding tools are increasing output while hiding codebase drift, review overload, and lost mentorship. Bruce Tate argues teams should reinvest the time AI gives them in training and craft.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate></item><item><title>Building in Layers</title><link>https://grox.io/blog/29-building-in-layers/</link><guid isPermaLink="true">https://grox.io/blog/29-building-in-layers/</guid><description>Learn how Elixir programs stay easier to test and change by separating pure logic, IO boundaries, and API coordination into distinct layers.</description><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate></item><item><title>Prompts That Write Prompts: Meta Workflow Generation</title><link>https://grox.io/blog/27-prompts-that-write-prompts-meta-workflow-generation/</link><guid isPermaLink="true">https://grox.io/blog/27-prompts-that-write-prompts-meta-workflow-generation/</guid><description>Learn how meta workflow generation turns prompts into reusable project commands, making AI development workflows durable, repeatable, and reviewable.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate></item><item><title>Recursion as a Design Pattern</title><link>https://grox.io/blog/26-recursion-as-a-design-pattern/</link><guid isPermaLink="true">https://grox.io/blog/26-recursion-as-a-design-pattern/</guid><description>Learn how recursion works as a natural Elixir design pattern, why accumulators make list processing stack-safe, and how this mental model leads directly to Enum.reduce.</description><pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate></item><item><title>Your AI Tooling Has a Home: Project vs. Global Infrastructure</title><link>https://grox.io/blog/25-your-ai-tooling-has-a-home-project-vs-global-infrastructure/</link><guid isPermaLink="true">https://grox.io/blog/25-your-ai-tooling-has-a-home-project-vs-global-infrastructure/</guid><description>Learn when AI tooling should live globally versus in the project so shared workflows stay versioned, visible, and aligned with the codebase.</description><pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Lists Are Not Arrays</title><link>https://grox.io/blog/24-lists-are-not-arrays/</link><guid isPermaLink="true">https://grox.io/blog/24-lists-are-not-arrays/</guid><description>Learn why Elixir lists are linked structures, how `[head | tail]` reveals their shape, and why building left then reversing once leads to clearer, faster code.</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Building Your AI Toolchain: Rules, Skills, Sub-Agents, and Slash Commands</title><link>https://grox.io/blog/23-building-your-ai-toolchain-rules-skills-sub-agents-and-slash-commands/</link><guid isPermaLink="true">https://grox.io/blog/23-building-your-ai-toolchain-rules-skills-sub-agents-and-slash-commands/</guid><description>Learn when to use rules, skills, sub-agents, and slash commands so your AI workflow scales with structured oversight instead of context-heavy repetition.</description><pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Control Flow: Truth, Conditions, and Pattern-Based Decisions</title><link>https://grox.io/blog/22-control-flow-truth-conditions-and-pattern-based-decisions/</link><guid isPermaLink="true">https://grox.io/blog/22-control-flow-truth-conditions-and-pattern-based-decisions/</guid><description>Learn how Elixir control flow works with expressions, truthy checks, and pattern matching so you can choose the right tool and avoid hidden runtime failures.</description><pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Stop Repeating Yourself: How to Architect AI Workflows Like Code</title><link>https://grox.io/blog/21-stop-repeating-yourself-how-to-architect-ai-workflows-like-code/</link><guid isPermaLink="true">https://grox.io/blog/21-stop-repeating-yourself-how-to-architect-ai-workflows-like-code/</guid><description>If you keep retyping the same AI instructions, you do not have a workflow. Learn a practical three-layer structure to keep coding agents consistent.</description><pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate></item><item><title>When the Shape Is the Contract: Tuples, Tagged Tuples, and Keywords</title><link>https://grox.io/blog/20-when-the-shape-is-the-contract-tuples-tagged-tuples-and-keywords/</link><guid isPermaLink="true">https://grox.io/blog/20-when-the-shape-is-the-contract-tuples-tagged-tuples-and-keywords/</guid><description>Learn when to use tuples, tagged tuples, and keyword lists in Elixir, and why designing return values as contracts leads to clearer, more maintainable code.</description><pubDate>Mon, 16 Mar 2026 00:00:00 GMT</pubDate></item><item><title>The Morning After: What That 30-Minute Phoenix App Actually Costs</title><link>https://grox.io/blog/19-the-morning-after-what-that-30-minute-phoenix-app-actually-costs/</link><guid isPermaLink="true">https://grox.io/blog/19-the-morning-after-what-that-30-minute-phoenix-app-actually-costs/</guid><description>A fast Phoenix LiveView build can look impressive, but hidden structural debt appears when you inspect what AI generated under speed pressure.</description><pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Scope (Visibility and Isolation)</title><link>https://grox.io/blog/18-scope-visibility-and-isolation/</link><guid isPermaLink="true">https://grox.io/blog/18-scope-visibility-and-isolation/</guid><description>Learn how Elixir scope boundaries reinforce immutability, prevent hidden state changes, and make code behavior predictable.</description><pubDate>Mon, 02 Mar 2026 00:00:00 GMT</pubDate></item><item><title>The Illusion of Speed: When AI Builds a Phoenix App in 30 Minutes</title><link>https://grox.io/blog/17-the-illusion-of-speed-when-ai-builds-a-phoenix-app-in-30-minutes/</link><guid isPermaLink="true">https://grox.io/blog/17-the-illusion-of-speed-when-ai-builds-a-phoenix-app-in-30-minutes/</guid><description>A 30‑minute Phoenix LiveView demo looks magical – until you see how the yes loop creates hidden scope and long‑term maintenance cost.</description><pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Pattern Matching: Matching, Not Assigning</title><link>https://grox.io/blog/16-pattern-matching-matching-not-assigning/</link><guid isPermaLink="true">https://grox.io/blog/16-pattern-matching-matching-not-assigning/</guid><description>Pattern matching in Elixir is about selecting structure, not storing values. Learn destructuring, pinning, and how match failure guides control flow.</description><pubDate>Mon, 16 Feb 2026 00:00:00 GMT</pubDate></item><item><title>The Editor Is the Agent</title><link>https://grox.io/blog/15-the-editor-is-the-agent/</link><guid isPermaLink="true">https://grox.io/blog/15-the-editor-is-the-agent/</guid><description>Learn the Ask → Plan → Agent workflow, a two-level safety net, and context discipline for checkpoint-based AI coding in Elixir.</description><pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Learning Elixir? Data Shape Is a Design Decision</title><link>https://grox.io/blog/14-data-shape-is-a-design-decision/</link><guid isPermaLink="true">https://grox.io/blog/14-data-shape-is-a-design-decision/</guid><description>In Elixir, data shape determines how code behaves and reads. Learn when to use atoms, tuples, lists, and maps to make your intent explicit.</description><pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Learning Elixir? Function Heads Are Chosen by Shape</title><link>https://grox.io/blog/13-function-heads-are-chosen-by-shape/</link><guid isPermaLink="true">https://grox.io/blog/13-function-heads-are-chosen-by-shape/</guid><description>Elixir selects a function head by pattern matching the shape of your arguments, which is why the language feels declarative before you touch OTP.</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Stop Prompting. Start Anchoring.</title><link>https://grox.io/blog/12-stop-prompting-start-anchoring/</link><guid isPermaLink="true">https://grox.io/blog/12-stop-prompting-start-anchoring/</guid><description>The model didn&apos;t forget your architecture—it just never lived anywhere durable. Learn how to anchor decisions in structure instead of prompts.</description><pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Variables Don&apos;t Change, They Get Rebound</title><link>https://grox.io/blog/11-variables-dont-change-they-get-rebound/</link><guid isPermaLink="true">https://grox.io/blog/11-variables-dont-change-they-get-rebound/</guid><description>Variables aren&apos;t containers you mutate, they&apos;re names that point at values. Learn why this distinction matters more than immutability alone.</description><pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Stop Writing Statements, Start Writing Expressions</title><link>https://grox.io/blog/10-stop-writing-statements-start-writing-expressions/</link><guid isPermaLink="true">https://grox.io/blog/10-stop-writing-statements-start-writing-expressions/</guid><description>In Elixir, if statements aren&apos;t control flow—they&apos;re expressions that return values. Learn how this eliminates state management and changes how you read code.</description><pubDate>Mon, 29 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Learning Elixir? Align Your Mental Model</title><link>https://grox.io/blog/09-learning-elixir---align-your-mental-model/</link><guid isPermaLink="true">https://grox.io/blog/09-learning-elixir---align-your-mental-model/</guid><description>The syntax is easy. The mental model is hard. Learn the one shift that makes Elixir stop feeling sideways and start feeling natural.</description><pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Which AI Agent Should You Actually Use?</title><link>https://grox.io/blog/08-which-ai-agent-should-you-actually-use/</link><guid isPermaLink="true">https://grox.io/blog/08-which-ai-agent-should-you-actually-use/</guid><description>Stop comparing features and benchmarks. Learn to match AI agents to your workflow with a practical decide-vs-execute rule you can use today.</description><pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Why AI &quot;Forgets&quot; (and How to Work With It Instead of Fighting It)</title><link>https://grox.io/blog/07-why-ai-forgets-and-how-to-work-with-it-instead-of-fighting-it/</link><guid isPermaLink="true">https://grox.io/blog/07-why-ai-forgets-and-how-to-work-with-it-instead-of-fighting-it/</guid><description>Why AI agents lose context, how the conveyor belt model explains it, and a practical habit Elixir developers can use immediately to get better results.</description><pubDate>Mon, 08 Dec 2025 00:00:00 GMT</pubDate></item><item><title>How I Work With AI Coding Agents in Elixir (And Why &quot;Vibing&quot; Is a Trap)</title><link>https://grox.io/blog/06-how-i-work-with-ai-coding-agents-in-elixir-and-why-vibing-is-a-trap/</link><guid isPermaLink="true">https://grox.io/blog/06-how-i-work-with-ai-coding-agents-in-elixir-and-why-vibing-is-a-trap/</guid><description>Explore the five modes of collaborating with AI coding agents in Elixir — and why &apos;vibing&apos; creates fragile systems.</description><pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Why Is This Hard?</title><link>https://grox.io/blog/05-why-is-this-hard/</link><guid isPermaLink="true">https://grox.io/blog/05-why-is-this-hard/</guid><description>Learn to recognize when complexity is hindering your Elixir development team&apos;s productivity, with practical frameworks for addressing technical debt before it becomes critical.</description><pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate></item><item><title>What Will It Cost to Carry and Remove This Dependency?</title><link>https://grox.io/blog/04-what-will-it-cost/</link><guid isPermaLink="true">https://grox.io/blog/04-what-will-it-cost/</guid><description>Learn how dependency analysis transforms Elixir development decisions, with practical frameworks for evaluating long-term costs in Phoenix applications and OTP systems.</description><pubDate>Wed, 22 Oct 2025 00:00:00 GMT</pubDate></item><item><title>What Are We Afraid Of?</title><link>https://grox.io/blog/03-what-are-we-afraid-of/</link><guid isPermaLink="true">https://grox.io/blog/03-what-are-we-afraid-of/</guid><description>Discover how one simple question transforms Elixir development teams by creating psychological safety, enabling better collaboration, and preventing costly technical mistakes.</description><pubDate>Wed, 08 Oct 2025 00:00:00 GMT</pubDate></item><item><title>How Will We Know It Works?</title><link>https://grox.io/blog/02-how-will-we-know-it-works/</link><guid isPermaLink="true">https://grox.io/blog/02-how-will-we-know-it-works/</guid><description>Learn how asking &apos;How will we know it works?&apos; transforms Elixir development from feature delivery to business impact, with practical observability strategies.</description><pubDate>Wed, 24 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Essential Questions Every Elixir Development Team Should Ask</title><link>https://grox.io/blog/01-james-questions/</link><guid isPermaLink="true">https://grox.io/blog/01-james-questions/</guid><description>Learn the 3 critical questions that transform Elixir development teams from code producers to business problem solvers, based on 20+ years of consulting experience.</description><pubDate>Mon, 01 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Astro Sphere</title><link>https://grox.io/projects/project-1/</link><guid isPermaLink="true">https://grox.io/projects/project-1/</guid><description>Portfolio and blog build with astro.</description><pubDate>Mon, 18 Mar 2024 00:00:00 GMT</pubDate></item></channel></rss>