<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Tutorial - Tag - Buffo's Corner</title><link>https://buffos.github.io/tags/tutorial/</link><description>Tutorial - Tag - Buffo's Corner</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Sun, 01 Mar 2026 10:24:00 +0200</lastBuildDate><atom:link href="https://buffos.github.io/tags/tutorial/" rel="self" type="application/rss+xml"/><item><title>Angular Enterprise Dashboard - Phase 3B.4: Optimistic Updates — Local Mutations Without Re-Fetching</title><link>https://buffos.github.io/2026-03-18-phase-03b-part-04/</link><pubDate>Sun, 01 Mar 2026 10:24:00 +0200</pubDate><author><name>Kostas</name><uri>https://buffos.github.io/authors/kostas/</uri></author><guid>https://buffos.github.io/2026-03-18-phase-03b-part-04/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/2026/angular-3-logo-png-transparent.png" referrerpolicy="no-referrer">
            </div><p>We&rsquo;ve explored how <code>resource()</code> handles <a href="/2026-03-18-phase-03b-part-01" rel="">loading</a>, <a href="/2026-03-18-phase-03b-part-02" rel="">cancellation</a>, and <a href="/2026-03-18-phase-03b-part-03" rel="">all six status states</a>. But there&rsquo;s one pattern left that separates a good app from a great one: <strong>optimistic updates</strong>.</p>]]></description></item><item><title>Angular Enterprise Dashboard - Phase 3B.3: Six States of Data — ResourceStatus &amp; the UI</title><link>https://buffos.github.io/2026-03-18-phase-03b-part-03/</link><pubDate>Sun, 01 Mar 2026 10:22:00 +0200</pubDate><author><name>Kostas</name><uri>https://buffos.github.io/authors/kostas/</uri></author><guid>https://buffos.github.io/2026-03-18-phase-03b-part-03/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/2026/angular-3-logo-png-transparent.png" referrerpolicy="no-referrer">
            </div><p>Most applications handle two data states: &ldquo;loading&rdquo; and &ldquo;loaded.&rdquo; Maybe three if they remember errors. But in a real enterprise dashboard, there are <strong>six</strong> distinct states — and handling each explicitly is the difference between a polished product and a buggy one.</p>]]></description></item><item><title>Angular Enterprise Dashboard - Phase 3B.1: Taming Async — Core resource() Mechanics</title><link>https://buffos.github.io/2026-03-18-phase-03b-part-01/</link><pubDate>Sun, 01 Mar 2026 10:12:39 +0200</pubDate><author><name>Kostas</name><uri>https://buffos.github.io/authors/kostas/</uri></author><guid>https://buffos.github.io/2026-03-18-phase-03b-part-01/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/2026/angular-3-logo-png-transparent.png" referrerpolicy="no-referrer">
            </div><p>Welcome to Phase 3B — the deepest technical dive in our series so far. In Phase 3A, we pre-fetched data using resolvers. But resolvers are a <em>routing</em> tool. What about data that depends on user interaction — a search query, a filter, a date picker?</p>]]></description></item><item><title>Angular Enterprise Dashboard - Phase 3A.2: From Route to Component — Signal Inputs &amp; the KPI Dashboard</title><link>https://buffos.github.io/2026-03-18-phase-03a-part-02/</link><pubDate>Wed, 18 Feb 2026 14:05:00 +0200</pubDate><author><name>Kostas</name><uri>https://buffos.github.io/authors/kostas/</uri></author><guid>https://buffos.github.io/2026-03-18-phase-03a-part-02/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/2026/angular-3-logo-png-transparent.png" referrerpolicy="no-referrer">
            </div><p>In the <a href="/blog/phase-03a-part-01" rel="">previous post</a>, our resolver pre-fetched the dashboard data and handed it to the Router. But how does the <em>component</em> actually receive it?</p>]]></description></item><item><title>Angular Enterprise Dashboard - Phase 3A.1: Pre-Fetching Data with Functional Resolvers</title><link>https://buffos.github.io/2026-03-18-phase-03a-part-01/</link><pubDate>Wed, 18 Feb 2026 13:58:36 +0200</pubDate><author><name>Kostas</name><uri>https://buffos.github.io/authors/kostas/</uri></author><guid>https://buffos.github.io/2026-03-18-phase-03a-part-01/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/2026/angular-3-logo-png-transparent.png" referrerpolicy="no-referrer">
            </div><p>Welcome to Phase 3A — where our dashboard stops being a static shell and starts becoming <em>intelligent</em>. In Phase 2 we secured the routes and built the layout. Now we need to <strong>fill it with data</strong>.</p>]]></description></item><item><title>Angular Enterprise Dashboard - Phase 2.1: Reactive Authentication with Angular Signals</title><link>https://buffos.github.io/2026-03-16-phase-02-part-01/</link><pubDate>Mon, 16 Feb 2026 21:52:00 +0200</pubDate><author><name>Kostas</name><uri>https://buffos.github.io/authors/kostas/</uri></author><guid>https://buffos.github.io/2026-03-16-phase-02-part-01/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/2026/angular-3-logo-png-transparent.png" referrerpolicy="no-referrer">
            </div><p>Welcome to Phase 2 of our Enterprise Dashboard journey. Now that we have our foundation (<a href="/blog/phase-01" rel="">Phase 1</a>), it&rsquo;s time to build the &ldquo;brain&rdquo; of our application&rsquo;s security: the <strong>Authentication Service</strong>.</p>]]></description></item><item><title>Angular Enterprise Dashboard - Phase 1: Building a Resilient Core with Dependency Injection</title><link>https://buffos.github.io/2026-03-15-angular-enterprise-board-part-02/</link><pubDate>Sun, 15 Feb 2026 14:52:37 +0200</pubDate><author><name>Kostas</name><uri>https://buffos.github.io/authors/kostas/</uri></author><guid>https://buffos.github.io/2026-03-15-angular-enterprise-board-part-02/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/2026/angular-3-logo-png-transparent.png" referrerpolicy="no-referrer">
            </div><p>Welcome to the second post in our series. In the <a href="/blog/introduction" rel="">Introduction</a>, we talked about the vision. Now, it&rsquo;s time to get our hands dirty. <strong>Phase 1</strong> was all about the foundation—the invisible plumbing that makes a professional application robust or brittle.</p>]]></description></item></channel></rss>