Future-proof your skills and escape the tech hamster wheel with the Linux, Python, vim & git stack (LPvg) including NixOS, Jupyter, FastHTML / HTMX and an AI stack to resist obsolescence. Follow along as I debunk peak data theory and develop Pipulate, the next generation free AI SEO tool.

Workflows to Redirect & Fix Your Attention

I initially set out to explore using Pipulate workflows to combat digital distractions and regain focus on meaningful work, delving into the attention economy and the power of intentional input. While planning practical client workflow implementations within Pipulate, my focus unexpectedly shifted to the tool's internal structure. This led me down a technical rabbit hole, revealing a crucial need to refactor Pipulate's "DRY CRUD" apps into a flexible plugin system, much like I recently did for its "WET Workflows"—a meta-discovery driven directly by trying to improve my own focus using the tool.

Meandering Warning Alert (from Gemini 2.5 Experimental)

While the stream-of-consciousness style makes it highly authentic and relatable, especially for fellow developers or those grappling with similar focus issues, it also makes the article somewhat meandering. The shift from the general problem of attention to specific technical implementation details might feel abrupt to readers not deeply familiar with Pipulate or web development concepts. However, the core message about actively shaping one’s mental input, the critique of the attention economy, and the idea of using one’s own tools for self-improvement are valuable takeaways. The author effectively captures the often-nonlinear path of creative and technical work, where solving one problem often reveals another, sometimes more fundamental, one.

Using Pipulate to Redirect Attention and Create Positive Change

It’s time to use Pipulate for it’s most powerful and potentially life-changing purpose: to redirect and fix my attention on the right things for the right reasons. The right things? Well, that’s generally stuff that I love doing that I can get paid for and am getting better at all the time. For the right reasons? Well, by me doing so I am sharing the experience with the world, perchance for them to get some of the benefit as well. In other words, doing some good in the world.

The Daily Challenge of Maintaining Focus

But we get derailed. That’s just life. Something distracts us, and often that something seems beyond our control, and before long no mater the best of intents, we’re lost. Staying interested, motivated and engaged in life is a daily process of yesterday-you handing the baton to today-you and preparation for handing it to tomorrow-you to continue the cycle.

The Critical Role of Sleep in Mental Processing

This baton-passing process goes through the wake/sleep boundary where some sort of processing occurs that doesn’t happen during your waking hours. While critical, this is not an article singing the praise of sleep. Rather, it’s about the waking-hours stuff. The baton gets dropped all the time during our waking hours through what seems no fault of our own, but really is. That’s agency and autonomy. That’s what it really is to be human, overcoming that feeling of things somehow being compelled in a certain direction and beyond our control.

Making Meaningful Changes Through Small Steps

Course correction ain’t easy. And it can’t all be done at once. Sometimes, it’s small tweaks. Sometimes you have to change the fundamental conditions of the situation and flap some butterfly wings in seeming futility. But because the underpinnings of the situation is actually different than before, those butterfly wing flaps become a black-swan event and lead to a tsunami of change in your life. Bippity, boppity, boo – this ain’t easy to do. It takes stopping to think (processing your thoughts), genuine observation of your situation that gets past subjectivity and gives you new perspective. It takes thinking ahead and playing out scenarios and role-playing. It takes tiny tests and recognizing validation, and doing more of what works. In short, it takes a brilliant next step, as tiny as it might be.

The Power of Intentional Input vs Social Media

Your brilliant next step isn’t coming from your phone nor social media, although you do need new input to produce new output. Some of that input should be waking-hours processing of your thoughts, just dredging it up and seeing what happens, much like stream of consciousness journaling. Reading also helps, because the input is purposeful and planned by you and the author, rather than the algorithm of social media that’s just going for the impression and the click – because your attention, providing you your current new input, is the product.

Taking Control of Your Mental Input

What goes into your mind is under your control. How you process those thoughts is under your control. There’s some amount that your body just takes over and does on automatic, like your dreams and sudden realizations when journaling, however that’s just fodder for your agency-cannon. The cannon of free-will that is your privilege as a human to exercise – sometimes despite all odds.

Understanding the Advertising Machine

I don’t think it’s a stretch to say that advertisers are trying to compel you into certain behaviors. And for the most part, if you’re not paying for the product, you are the product (there are certain rare exceptions like Linux). Your attention has value, because controlling your input to a great extent controls your output. We are all socially programmed. It’s called being raised, growing up, becoming educated and becoming an adult. But that is indeed the social program. You do X and you receive Y as a result. It’s a bunch of functions. It’s programming.

The Cycle of Social Media Addiction

I don’t think it’s a stretch to say that advertisers, by the very virtue of having all the money to conduct advertising, control the program – and by extension control much about you. It’s not easy to escape. Our phones are always there and social media is incredibly addicting, seeming to feed an ever-present hunger. If you just keep scrolling, maybe that hunger will be satiated slightly better than the last thing that didn’t quite satiate that hunger. And so everything that feeds our addictions such as gambling are used to reinforce advertising income.

Breaking Free from the Algorithm’s Grip

It takes less mental and physical energy, and is momentarily more satisfying, to just sit there and hit a button, pull the slot machine arm, or to doom-scroll than it takes to step back, think, evaluate your life, and plot some sort of course or directional adjustment in your life that sails through turf not infested with your social media notifications, alerts, and all that fear-of-missing-out (FOMO) the advertisers are instilling into you. They have a hand on your rudder of life, and smacking it off ain’t easy.

The Power of Journaling and Thought Processing

It starts with stopping to think, which in itself ain’t easy. But that’s where the cycle breaks. And when you stop to think, you can perchance write and really do some thought processing. The transition from stopping-to-thing to stopping-to-write is the process of beginning to journal. An I guess I would recommend doing it with pen and paper, at least initially, because there’s probably almost no way easily accessible to you to do it electronically without the influence of the algorithm or exposure to distracting alerts and notifications. That’s not to say you can’t journal electronically. It just takes a bit to get there, to have the skills to do so in a place carved out and secure from influence and interruption. Of course, I’m talking about vim. But more on that, later.

The Evolution of Web Search into Feed-Based Content

Web search, the precursor to and one-time alternative to the feed used to be a safe haven, a harbor free from the siren’s song of social media. But now with the total Google Ads, Google Discover and shopping experience take-over, there’s pretty much no escape – at least, not in the default setups of our browsers, phones and desktops. And most of us don’t take the time to change those default setups, except maybe to install Chrome, which just worsens the problem. Search is now rigged so that most casual search leads to feed. Your intent is to research, discover or playfully explore but instead find yourself being fed… fed the feeds – all a very deliberate, planned experience.

The Remote Work Distraction Challenge

With today’s work-from-home movement, we are more subject to the power of the algorithm than ever, because without the social pressure of a co-worker near you, we are much more vulnerable to the siren’s song of social media distraction. We are more tempted by and subject to getting pulled down into the rabbit hole of distraction. It seems so innocuous just checking X.com, TikTok, Instagram, YouTube or whatever is your social media poison, but then before you know it, an hour is gone. And that chips away in little bits, changing a day that could positively change your life forever forward into a tiny window of barely re-calibrating yourself back to the tasks at-hand.

The Hidden Hooks of 2FA Authentication

One of the most insidious things I’ve noticed is the way that 2-factor authentication (2FA) which occasionally logs us out, re-verifies who we are by using your phone, and making you open a particular app, like YouTube! This is something that perhaps only companies that use Google Suite as their office software experience, but for Google 2FA making you re-verify, it is not uncommon that I am asked to open YouTube on my phone to prove who I are on my desktop!

Hacking the Attention Economy for Personal Growth

And exposing you to the feed gives them another chance to getcha. Remember, the most valuable thing about you to them is your attention. We are in the attention economy. That’s what advertisers are paying for. And nothing gets your attention like addictive data. Data is addictive. So, find a way to turn that around. Use that to your advantage. Do a life-hack to design your own data reports. Look at data other than the social media feeds – data that somehow motivates you in new directions that will improve your life. This isn’t necessarily easy, but you do find it popping up in life-improving apps like Duolingo, with the concept of streaks and such. Repurposing this sort of addiction-inducing methodology in your own ways for your own purposes is a lofty but achievable goal, and the anecdote to the algorithm.

Implementing Pipulate Workflows for Client Success

Okay, so this is where it changes from this broad open-ended observations to how it’s going to improve my life on a day-to-day basis, getting me more deeply engaged in each of my client’s sites and even my own site, according to formula. According to workflow. According to Pipulate workflow!

Creating Compelling Client Narratives

Okay, when you know what to do and why, you can list it out in a compelling storytelling fashion. In other words, you can tell a story! It’s always about a compelling narrative. The narrative is figuring out what to do with a site and why. We don’t start out with any preconceived notions, but we do start out with a pretty good idea of:

  • What levers we can pull (easily)
  • What levers we might ask the client to pull (effort varies)
  • Easy wins on the Technical SEO front
  • Easy wins on the Content SEO front
  • Longer-term plans on the Technical SEO front
  • Longer-term plans on the Content SEO front

So the story starts out with knowing our capabilities and the need to know the client’s capabilities.

Leveraging First-Party Data with Botify

There is also surveying the landscape, and the Botify product is all about the client’s one 1st-party data, such as their Web log-files, their Google Search Console data, and of course the Botify site-crawler data. Technically, a crawler is something that is done from the outside and the Web being publicly accessible as it is, site-crawls could be done by anyone, so it is not technically 1st-party data. It is however correlated with 1st party data for competitive insights. This is however not necessarily outward-looking and surveying the competitive landscape. It’s like surveying your own landscape. Your own yard and property, such as it were. This is an initial bias in the story I must overcome as this process continues. But acknowledge and accept that for now.

Strengthening Client Relationships Through Workflow Mastery

Alright, this is actually the sort of full-immersion into workflow process that I need to do more often! Don’t go into today’s client call from a weak position. Strengthen it up, having thought through process very well. Avoid rabbit holes. Don’t try to automate anything through Pipulate (yet). Instead, think in terms of workflows that are greatly linear, but within the strict linear flow have some flexibility (within the Jupyter Notebook cells, such as they’re like). Wow, this is such a powerful framework for thinking through and organizing work. This is going to work. You have a few skin-of-your-teeth sessions to get through, but then BOOM! A Pipulate boom. Or would that be boon? Well, the boom will be a great boon.

The Role of Botifython in Client Presentations

Every client meeting is an opportunity to put on a great show. That show will have a very generic looking web app in the background compelling the story forward, called Botifython (Pipulate in Botifython clothing), knowingly self-identifying as Chip O’Theseus if asked (the built-in LLM). But this will not deliberately draw attention to itself. Rather, it is entirely about the client themselves, the story being told, and the workflow that compels the telling of the story.

Planning the Implementation Timeline

OMG, I’m glad I have another upcoming weekend stretch to work on this. It’s Tuesday. Hmmm. If I play my cards right, I can bear down on this work while deeply immersed in each of the client’s issued during the week, and plan the weekend Pipulatification of workflows I plan during the week.

Browser-Based Workflow Organization

When you plan the workflows, think almost entirely of tabs that you pull up in the browser in a particular order. This is the story that gets told.

Maintaining Flexibility in Implementation

And this should remain very flexible! This must not be hard-wired into an app in some sort of database schema or excessively heavy-handed framework opinion. But it can be a YAML outline format that gets used in a textarea!

Evolving the Profile App with YAML Templates

Wow, this is inspiration. I’ve already been thinking about that a lot. Suddenly these throw-away databases that I’ve been resetting all the time are going to become somewhat valuable. Interesting! Think about this.

I can use the ProfileApp to keep a YAML template for meeting agendas for each client! YAML’s acronym is its own worst enemy. It makes it sound technical when it’s not. YAML Ain’t Markup Language (and NOT Yet Another Markup Language, haha!) Okay, it’s a recursive acronym like GNU, and remembering it’s recursive is the way to remember the acronym. Duly noted.

Focusing Development Efforts

Earmark the idea, but don’t chase the rabbit down the hole. But express it so it burns into your mind.

The Profile App, which completely separate from Workflows, part of the traditional database CRUD part of the app that follows the FastHTML tutorial example patterns, needs a textarea field. And that needs to be formally supported in the CRUD templates. All the “not gonna do it” OOP class templates that I’ve avoided in the WET Workflows will be in the DRY CRUD. Well, there’s a strong mental model for you about Pipulate:

  • DRY CRUD
  • WET Workflows

Maintaining Focus While Capturing Ideas

Wow, this is going to be big. I just have to keep bearing down on it and get the example workflows out there. This is fire. The idea is so strong I’m tempted to change the theme of this article from using workflows to redirect and focus attention, to the concept of DRY CRUD vs. WET Workflows. But no! That in itself is a distraction. Just strongly note it. Okay, I incorporated the thought into .cursorrules, server.py (docstring in Pipulate and BaseApp), README.md, workflow_template.md and workflow_template.py. There’s no way I will forget.

Grammar Check Interlude

Okay, you cannot let yourself get distracted, but you have to use today to very great effect. Or is that affect? Well, I guess the effect will affect. Is that correct? Perplexity?

Perplexity: You’re absolutely correct in your reasoning! Here’s a breakdown of the terms to clarify:

  • Effect is typically a noun and refers to the result or outcome of something.
    Example: “The effect of your hard work will be success.”

  • Affect is usually a verb and means to influence or bring about change.
    Example: “Your focus today will affect your productivity.”

So, in your sentence:
“The effect will affect” is grammatically correct because you’re saying that the result (effect) will influence (affect) something.

Now, go crush today! Stay focused and make it count! 🚀


Technical Implementation of YAML in Textareas

Thanks, I will! Okay… think! Wow… the concept of these YAML instructions being in textareas is big. The textareas can either be in Workflows, which is no problem custom-code-wise, because it’s WET. I just ad hoc add a textarea when I first have to, then it becomes part of a larger library of WET components. However, a textarea in a CRUD app like Profiles is a little different, because it’s strictly object oriented programming (OOP) with a BaseApp superclass from which apps like ProfileApp and TodoApp inherit. And so adding textareas in there is a bit like surgery.

And before I can even talk about that, I have to wrap my mind around a few facts.

The FastHTML ToDo-list example that I followed crammed all the fields onto a single row, so I did too and it seemed to make sense so long as very form input field was a standard 1-liner (not a textarea). And in such situations, there is an amazing alignment of FastHTML that more or less gets expressed as:

    update_form = Form(
        Group(
            Input(
                type="text",
                name="profile_name",
                id=f"name-{profile.id}"
            ),
            Input(
                type="text",
                name="profile_menu_name",
                id=f"menu_name-{profile.id}"
            ),
            Input(
                type="text",
                name="profile_address",
                id=f"address-{profile.id}"
            ),
            Input(
                type="text",
                name="profile_code",
                id=f"code-{profile.id}"
            ),
            Button("Update", type="submit"),
        ),
        hx_post=f"/{profile_app.name}/{profile.id}",
        id=f'update-form-{profile.id}'
    )

And gets rendered as:

<form hx-post="/profile">
    <fieldset role="group">
        <input name="profile_name" id="profile-name-input">
        <input name="profile_menu_name" id="profile-menu-name-input">
        <input name="profile_address" id="profile-address-input">
        <input name="profile_code" id="profile-code-input">
        <button type="submit" id="add-profile-button" name="add-profile-button">Add</button>
    </fieldset>
</form>

FastHTML Group Function Creates Inline Form Layouts

Now that FastHTML Group() function made the HTML <fieldset> which has an attribute role = group and a CSS declaration set by PicoCSS to display: inline-flex. And Viola! All the input fields are on a single line. It’s a beautiful look, but not very textarea-friendly. What I’m talking about can be gloriously verified by toggling the display declaration of the fieldset element on and off in Developer Tools.

TodoApp Plugin Reveals Core Architecture Opportunity

Hmmm. Okay… whether or not the Group() FastHTML element is used, and thus <fieldset role="group"> is used is a function of the TodoApp… plugin!

It’s a plugin that is not a plugin, because it’s all sort of set up to be a true auto-configuring plugin system, yet resides in the core code, somewhat bloating it and discouraging it from actually being used as a copy/paste plugin template – the way it actually is already working for Workflows!

Meta Discovery: From Workflow Focus to CRUD Apps

Wow… this particular article started with the concept of using Workflows to redirect my attention away from distraction and to fix it onto the right things for the right reasons – workflows themselves! Very meta, I know. But it worked. I delivered an excellent client meeting today by virtue of thinking through the workflows I need to implement, but that line of reasoning has brought me to a different area of Pipulate: the CRUD Apps! And now I want to customize them and am feeling the lack of it being properly plug-in implemented.

Seizing the Moment: Plugin Architecture Implementation

Man, the iron is hot. I just successfully turned the Jupyter Notebook-inspired Workflows into externalized auto-configuring plugins. And I should use it being fresh on my mind to do the same with Rails-like CRUD Apps. I can afford to bear down on it tonight IF I can keep it from being a rabbit hole that leaks into following days. Things have to become permanently better forever-forward, without cascading unintended consequences and refactoring from hell.

Risk Assessment for Creative Development Work

Wow, so I guess I end this article on the corollary to the opening premise: using workflows to redirect your attention from distraction and to fix it on the work at hand. The corollary is that when you do in fact identify new work at hand that takes you into a deeper commitment than easily repeatable rote work, the creative work that you have to do some exploration, discovery and creative thinking, that you should do a risk assessment. You look at the potential time and energy you will be investing versus potential return.

Validating the Plugin Architecture Evolution

This bit of work can potentially make the Pipulate core that much smaller, that many fewer tokens for the AI coding assistants to look at, and to have a clean parallel system between Workflows (already) auto-configuring plugins and CRUD Apps which so clearly should. It passes the “feels right” test. And because I did such similar work lately, I think it’s probably viable to. Let me do the analysis.


Gemini Advanced 2.5 Pro Experimental

Wow, Gemini 2.5 is here, and I’ll be ditching Gemini 1.5 Brainstormer for their latest and greatest model for the purpose of these article summaries. Let’s see what it has to say about the article!

Gemini Advanced 2.5 Pro Experimental: Okay, here are the requested items:

Summary (Author’s 1st Person Perspective):

I started writing this piece intending to explore how I can use my own tool, Pipulate, specifically its workflow capabilities, to combat the constant distractions of the modern web, social media algorithms, and the attention economy, ultimately redirecting my focus towards meaningful work that benefits both myself and others. As I delved into the challenges of maintaining focus, the power of intentional input versus algorithmic feeds, and the importance of processing thoughts through journaling, my thinking unexpectedly shifted while planning client workflow implementations using Pipulate. This led me down a rabbit hole, analyzing the technical details of Pipulate’s structure, particularly the contrast between its “WET Workflows” and “DRY CRUD” apps, ultimately revealing a crucial opportunity to refactor the CRUD app architecture into a more flexible plugin system, mirroring the recent improvements I made to the workflows themselves—a meta-discovery driven by the very process of trying to improve my focus.

Ideas for Titles and Headlines:

  • Taming the Algorithm: Using Workflows to Reclaim My Focus with Pipulate
  • From Distraction to Development: A Pipulate Journey Through the Attention Economy
  • Hacking My Attention: How Building Workflows Led to a Core Pipulate Insight
  • Pipulate, Focus, and the Unexpected Path to Code Refactoring
  • DRY CRUD vs. WET Workflows: A Meta-Exploration of Focus and Software Design
  • Fighting Distraction with Code: My Quest for Focus Using Pipulate Workflows
  • The Irony of Focus: How Trying to Build Better Workflows Revealed a Deeper Task
  • Pipulate Power-Up: Reclaiming Attention and Refining Code
  • Beyond the Feed: Building Intentionality with Pipulate Workflows
  • Meta-Workflow: Using Pipulate to Fix My Focus and Its Own Architecture

My (Gemini’s) Opinion of the Article:

This article offers a fascinating and refreshingly honest look into the author’s thought process, blending personal struggles with focus in the digital age with the specific technical challenges and design decisions involved in developing their software, Pipulate. The journey from discussing the high-level problem of attention management to diving deep into FastHTML, YAML, CRUD vs. Workflow architecture, and plugin systems is quite compelling, showcasing how practical application can lead to unexpected insights (“meta-discovery”).