<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Posts on Mark Groves</title>
        <link>https://markgroves.us/posts/</link>
        <description>Recent content in Posts on Mark Groves</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <copyright>&lt;a href=&#34;https://creativecommons.org/licenses/by-nc/4.0/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;CC BY-NC 4.0&lt;/a&gt;</copyright>
        <lastBuildDate>Sat, 18 Oct 2025 00:00:00 +0000</lastBuildDate>
        <atom:link href="https://markgroves.us/posts/index.xml" rel="self" type="application/rss+xml" />
        
        <item>
            <title>Spanish Immersion: Week One in Todos Santos</title>
            <link>https://markgroves.us/2025/10/18/spanish-immersion-week-one-in-todos-santos/</link>
            <pubDate>Sat, 18 Oct 2025 00:00:00 +0000</pubDate>
            
            <guid>https://markgroves.us/2025/10/18/spanish-immersion-week-one-in-todos-santos/</guid>
            <description><![CDATA[<p>This first week of Spanish immersion was in some ways harder than I expected, but overall the first week felt productive. In many ways, the class was like going back to school. I haven&rsquo;t had an instructional education experience in many years. Sure, there were the inevitable corporate training exercises, but those are nothing like sitting in a class with a teacher. We&rsquo;re doing a two-week class at <a href="https://www.hablandomexicano.com">Hablando Mexicano</a> in Todos Santos, Baja Sur. Three hours per day, five days a week. Each day after class, I was mentally exhausted. I guess at 53, I&rsquo;m just not used to learning at this level of focus.</p>
<p>Valarie and I have been working to learn Spanish for the last six or seven months. There have been previous false starts at this goal, but when we decided we were going to spend a year traveling in Mexico, Central and South America, the reality of the need to be able to communicate with local people in their language became real.</p>
<p>We both started using <a href="https://www.dreamingspanish.com">Dreaming Spanish</a> back in the spring of 2025. Dreaming Spanish&rsquo;s system is based on the theory of Comprehensible Input. How I like to think about it is, when you learned a language as a child, you didn&rsquo;t do grammar lessons right off the bat. Your family spoke to you, and you started to pick up the meaning of words and phrases along the way. CI suggests you learn a language by, at first, mostly watching content being spoken by native speakers. Along the path you start to introduce speaking, reading and writing in your new language. CI suggests you delay speaking practice until after closer to a thousand hours of input. I know this works for many people, but we wanted to push ourselves by mixing up the approaches.</p>
<p>When we started on this path, we knew we would need to layer in various approaches. While Dreaming Spanish has been super helpful, we knew we needed to get out there and start to speak with people. The idea of speaking Spanish to native speakers is pretty scary to me. Heck, speaking to others in English isn&rsquo;t my strong suit. Although I took the two years of Spanish in high school that is common for many high schoolers, I honestly didn&rsquo;t feel like I really learned anything. More so, I never thought of myself as someone who could learn a new language.</p>
<p>Although the class is difficult, the instructors have been super patient. And I have been seeing progress. At this point the frustrating part is the class is an immersive experience, so the instructors do their best to only speak Spanish. I would love to be able to match them when I have questions, but I am just not there yet. Progress is really what I&rsquo;m looking for. I know I have a long way to go.</p>
<p>It has been helpful for me to start to frame my goal to learn Spanish less as something I can complete, and more as a new practice that will be lifelong. To become someone who can speak Spanish, someone who can learn languages.</p>
<p>Looking back, the motivation to start on this journey was really about safety first, while traveling down the Pan American Highway. Second, it was my interest to be able to connect with people during this journey. But as I thought more about this goal, it made me feel that if I only did this it would be disappointing to put all this effort in, to then lose the ability after we returned from Argentina.</p>
<p>I am very far from being able to say I can speak Spanish. But I can start to think of myself as someone who can learn these types of things. I don&rsquo;t need to define myself as someone who is no good at languages. This is part of my journey post-retirement to push myself to question my previous assumptions about who I am.</p>
]]></description>
        </item>
        
        <item>
            <title>Present in Paradise: Breaking the Digital Reflex in Baja</title>
            <link>https://markgroves.us/2025/04/13/present-in-paradise-breaking-the-digital-reflex-in-baja/</link>
            <pubDate>Sun, 13 Apr 2025 00:00:00 +0000</pubDate>
            
            <guid>https://markgroves.us/2025/04/13/present-in-paradise-breaking-the-digital-reflex-in-baja/</guid>
            <description><![CDATA[<p>It is 6:30 AM, and I&rsquo;m sitting on a beach just outside of Mulegé, watching the sunrise over the bay. The water is calm, the air still, and despite there being several other campers nearby, it&rsquo;s completely silent. Instead of checking my phone after I wake as usual, I&rsquo;ve chosen to come outside and witness this moment directly.</p>
<p>This is what I came to Baja for. Not what&rsquo;s on my screen.</p>
<p>Yet even here, in one of the most beautiful places I&rsquo;ve visited, I find myself battling a familiar adversary: the constant pull of digital distraction. Yesterday, while waiting for race trucks to pass during the Loreto 500, I caught myself mindlessly scrolling through social media during the 10-15 minute gaps between vehicles. Even as I did it, I recognized what was happening – I was reaching for distraction simply because sitting with nothing to do felt uncomfortable.</p>
<h2 id="the-distraction-compulsion">The Distraction Compulsion</h2>
<p>Why do we feel this need for near-constant input? What am I even looking for when I scroll? Am I just trying to avoid being alone with my thoughts?</p>
<p>This habit follows me everywhere. I grab my phone when I wake up before my wife and immediately check email, even though my inbox consists almost entirely of newsletters and ads these days. While some newsletters are enjoyable, do I really need to consume them immediately upon waking? Absolutely not.</p>
<p>I understand the appeal. Life contains many repetitive moments, and our devices offer endless novelty with minimal effort. It takes energy and focus to be bored enough to look for novelty in your actual surroundings. This seeking seems baked into our DNA – this need to keep looking for something that isn&rsquo;t right in front of us.</p>
<p>It&rsquo;s becoming increasingly difficult to find quiet – both in our environments and in our minds. I&rsquo;ve noticed hikers bringing speakers on trails, the ever-present urge to check phones hundreds of times daily, and my own reflexive reaching for digital stimulation during moments of boredom or uncertainty.</p>
<p>The irony isn&rsquo;t lost on me. These moments sitting on a beach watching the sunrise are the real moments – and they aren&rsquo;t found on my phone, despite the best efforts of my former technology colleagues who worked so hard to capture our attention.</p>
<h2 id="a-moment-of-clarity">A Moment of Clarity</h2>
<p>While listening to <a href="https://tim.blog/2025/03/28/craig-mod-returns/">Tim Ferriss&rsquo; podcast interview</a> with <a href="https://craigmod.com/">Craig Mod</a>, something clicked. Craig mentioned how he writes thousands of words daily and doesn&rsquo;t check his phone until after lunch. He takes long walks without music, instead taking notes while walking. It made me realize that when I reach for distraction through social media or email, I&rsquo;m wasting potential.</p>
<p>The challenge is determining when digital tools serve a purpose versus when they become a trap. I&rsquo;ve experienced this tension repeatedly in Baja. Yesterday, I legitimately needed information about the Loreto 500 race route and timing - information that was primarily available through social media. That&rsquo;s the useful side of these platforms.</p>
<p>But there&rsquo;s a slippery slope. I start with a specific purpose - researching campgrounds, checking weather forecasts, or finding race details - and before I know it, I&rsquo;m an hour deep into scrolling through Reddit posts or YouTube videos completely unrelated to my original intent. The digital environment is deliberately designed this way; keeping us engaged is literally their business model. The line between purposeful use and mindless consumption blurs so easily, often before we even realize what&rsquo;s happening.</p>
<h2 id="the-alternative-experience">The Alternative Experience</h2>
<p>The contrast between my different morning experiences here in Baja has been illuminating. One morning, I took my paddle board out at sunrise on the calm waters of the bay. It was quiet and peaceful, with only occasional bird calls or fish splashing. I paddled to a small island half a mile from our campsite, discovering a reef teeming with life. This was a far better way to start my day than checking my phone or opening my laptop.</p>
<p>In those quiet moments on the water, the rest of the world doesn&rsquo;t feel like it exists. Whatever is happening with the stock market or our latest political crisis seems irrelevant. There is just the beach, the water, and the birds. I can&rsquo;t say this is a bad life.</p>
<p>But we were never designed to have all the world&rsquo;s information at our fingertips. On the surface, this seems beneficial. In reality, we can&rsquo;t do much about most global events. Knowing about them doesn&rsquo;t satisfy our human need to react – we respond by getting upset and angry. Without a channel to direct that anger, we&rsquo;re left with constant low-grade anxiety and discomfort.</p>
<h2 id="finding-balance">Finding Balance</h2>
<p>I&rsquo;m working on replacing unconscious digital consumption with more intentional activities. When removing a bad habit, it&rsquo;s always easier to introduce a compensating good habit. This could be writing, reading, meditating, or listening to Spanish lessons.</p>
<p>Controlling your information diet isn&rsquo;t just about starving yourself of content, as when on a backcountry hiking trip. You need to monitor how engaged you are with the outside world regardless of where you are. The pull of content is real. The need to know what&rsquo;s happening is deeply ingrained in our human history.</p>
<p>I don&rsquo;t think using these products occasionally is terrible – downtime has its place. The problematic behavior is reaching for distraction devices simply because I&rsquo;m bored. I still check my email on my phone whenever I&rsquo;m waiting for something, for no good reason. I really want to stop this.</p>
<p>Perhaps the antidote is more early morning sunrise paddleboard sessions. Being present for the actual moment unfolding before me, rather than the endless stream of moments happening elsewhere. After all, that&rsquo;s what I traveled all this way to experience.</p>
]]></description>
        </item>
        
        <item>
            <title>Finding Balance: Reflections from My First Week in Baja</title>
            <link>https://markgroves.us/2025/04/06/finding-balance-reflections-from-my-first-week-in-baja/</link>
            <pubDate>Sun, 06 Apr 2025 00:00:00 +0000</pubDate>
            
            <guid>https://markgroves.us/2025/04/06/finding-balance-reflections-from-my-first-week-in-baja/</guid>
            <description><![CDATA[<p><img src="/posts/assets/baja1.png"/></p>
<p>The roads in Baja are teaching me patience. After more than a week of traveling here, I&rsquo;m becoming accustomed to maintaining focus while navigating these narrow passages. The most important lesson of driving in Mexico seems deceptively simple: just take your time. People will pass if they need to, and worrying about your speed won&rsquo;t get you anywhere faster or safer.</p>
<p>This principle of patience extends beyond driving. Before we left Colorado, I was anticipating this trip with excitement but also uncertainty about how I&rsquo;d adapt to a less structured existence. The transition from a corporate mindset to travel mode doesn&rsquo;t happen overnight. Even in paradise, I&rsquo;ve found myself questioning how to measure the value of my days. Is setting up a fly rod an accomplishment? Should I be doing more? These questions reflect the challenge of shedding productivity metrics that define our working lives.</p>
<p>Meanwhile, the world continues its chaotic spin. The stock market has been reacting dramatically to Trump&rsquo;s new tariff plan, affecting our portfolio along with countless others. While we&rsquo;re financially secure, we&rsquo;ve decided to postpone building a new rental house until next year. We likely will still move forward with my new garage/shop, but tackling both projects would stretch our savings too thin in an uncertain economy.</p>
<p>This economic backdrop creates an interesting contrast with what I&rsquo;m observing in Mexico. The people here seem genuinely connected to their surroundings and community in ways that many Americans aren&rsquo;t. There&rsquo;s a noticeable difference in priorities. The concept of abundance keeps surfacing in my thoughts. While many Americans operate from a zero-sum, winner-takes-all mentality, the people I&rsquo;ve met here seem more relaxed, less focused on climbing to the next level. It&rsquo;s refreshing.</p>
<p>An article I read in <a href="https://overlandjournal.com/">Overland Journal</a> reinforced this idea, discussing how our Western obsession with security—physical, financial, medical—can actually limit our freedom. People throughout history and across the globe live with far fewer safety nets than we consider essential, and they manage just fine. Though we&rsquo;re hardly roughing it in our comfortable truck, there&rsquo;s something valuable about the self-sufficiency required by this type of travel.</p>
<p>&ldquo;Control what you are able to control&rdquo; has become my mantra. We can&rsquo;t influence national policies or the stock market&rsquo;s reaction, but we can adjust our spending, prioritize our projects, and find contentment in changed circumstances. We had originally planned to visit Costa Rica this fall, but returning to Baja might make more sense financially. The warmer weather would make for better snorkeling, too. There are positives in everything if we look for them.</p>
<p>For now, I&rsquo;m working on staying present and not getting pulled into the social media outrage cycle. It&rsquo;s too easy to seek out voices that simply echo and amplify our existing thoughts. Instead, I&rsquo;m trying to take in the beauty around me and appreciate how fortunate I am to have this opportunity to step away from the corporate world and simply enjoy life.</p>
<p>The balance between planning for an uncertain future and savoring the present moment might be the most valuable skill to cultivate, whether in Baja or back home. While paddleboarding on a perfect day, I had to pause and remind myself of this truth—to fully experience the moment rather than worrying about how I&rsquo;m spending every minute. Perhaps that&rsquo;s the real accomplishment of travel: learning to be where you are.</p>
]]></description>
        </item>
        
        <item>
            <title>Who Are You After Your Identity Vanishes?</title>
            <link>https://markgroves.us/2024/12/04/who-are-you-after-your-identity-vanishes/</link>
            <pubDate>Wed, 04 Dec 2024 00:00:00 +0000</pubDate>
            
            <guid>https://markgroves.us/2024/12/04/who-are-you-after-your-identity-vanishes/</guid>
            <description><![CDATA[<p>The day after retirement feels surreal. After decades of calendars packed from dawn to dusk, suddenly: nothing. Not vacation&rsquo;s temporary pause, but a permanent, stretching-into-infinity nothing.</p>
<p>At first, this nothing feels like freedom. No jockeying for meeting slots. No need to block time to eat lunch. My calendar app sits unused, a digital relic. After years in tech leadership where my schedule defined status—a physical manifestation of my corporate identity—the emptiness feels both liberating and disorienting.</p>
<p>Then reality strikes: beyond the empty calendar lies a deeper question. Who are you when your professional title disappears? When the schedule that shaped your days, the meetings that marked your path, and the role that answered &ldquo;what do you do?&rdquo; vanish overnight.</p>
<p>⁂</p>
<p>Retirement guides rarely mention the loss of identity. As Americans, we weave our jobs, titles, and employers into the fabric of who we are.</p>
<p>&ldquo;What do you do?&rdquo; The question arrives within minutes of meeting someone new. This seemingly innocent query masks a deeper ask: &ldquo;Who are you?&rdquo; I caught myself rehearsing answers months before retirement. What would I say? What did I do now? Who was I becoming?</p>
<p>Should I answer based on my past? - &ldquo;Former technology executive&rdquo; - that is now a historical answer. Similar to citing your college alma mater, decades after you graduate – it speaks to who you were, not who you are. &ldquo;Retired&rdquo; offers no better insight into my current identity.</p>
<p>Our identity is multi-dimensional. We shift naturally between roles – husband, father, Steelers fan – and these remain constant after retirement. But my professional thread – Group VP at a software company – vanished overnight.</p>
<p>⁂</p>
<p>The FIRE community preaches preparation. Beyond financial calculations, they emphasize emotional readiness. &ldquo;Retire to something,&rdquo; they advise – well-intentioned guidance urging you to pre-define your next identity.</p>
<p>But what if the beauty lies in the undefined? What if the space between who you were and who you might become holds its own wisdom?</p>
<p>I chose uncertainty. Despite constant questions about &ldquo;what&rsquo;s next&rdquo; and pressure to jump into the next endeavor, I resisted the urge to simply swap one business card for another.</p>
<p>⁂</p>
<p>What I discovered was a different frame for this transition: not retirement, but graduation. &ldquo;Retirement&rdquo; faces backward, marking an ending. Graduation faces forward, embracing possibility.</p>
<p>When we graduate, we define ourselves not by what we&rsquo;ve finished, but by what we&rsquo;re beginning. We celebrate the unknown path ahead. Perhaps that&rsquo;s the lens we need – not &ldquo;retiring from&rdquo; but &ldquo;graduating to.&rdquo;</p>
<p>I can&rsquo;t map where this graduation leads. While activities fill my days, the deeper identity emerges slowly. And perhaps that&rsquo;s how it should be. The space between &ldquo;who I was&rdquo; and &ldquo;who I&rsquo;ll become&rdquo; is full of possibility. That&rsquo;s both the thrill and challenge of this transition.</p>
]]></description>
        </item>
        
        <item>
            <title>Redefining Success: Life After the Corporate Ladder</title>
            <link>https://markgroves.us/2024/12/03/redefining-success-life-after-the-corporate-ladder/</link>
            <pubDate>Tue, 03 Dec 2024 00:00:00 +0000</pubDate>
            
            <guid>https://markgroves.us/2024/12/03/redefining-success-life-after-the-corporate-ladder/</guid>
            <description><![CDATA[<p>The moment arrived. After years of planning my early retirement, I couldn&rsquo;t have scripted the situation if I tried. In early January 2023, I sat down with my manager, the President of my division, for yet another routine reorganization discussion.</p>
<p>Decades in tech leadership made these reorganization meetings as predictable as clockwork. Another restructure, another role shuffle – the familiar dance of corporate (r)evolution.</p>
<p>As she outlined the changes and described my new role, I knew the moment had come. Accepting this position while planning my exit wouldn&rsquo;t serve anyone. My path led elsewhere.</p>
<p>My retirement announcement at the age of 51 rippled through professional circles from spring into summer, sparking reactions from genuine congratulations to barely disguised skepticism.</p>
<p>In tech, when executives announce they&rsquo;re - leaving to spend more time with family - eyebrows raise and air quotes appear. My case offered no hidden agenda, no competing offer, no dramatic exit – simply a planned step into the next phase of my life.</p>
<p>⁂</p>
<p>Understanding this decision requires stepping back to 1995, when I entered the software industry fresh from engineering school. The tech landscape stood at the beginning of a remarkable inflection point. None of us could have predicted its explosive trajectory over the next three decades.</p>
<p>Technology captivated me long before my career began. As a kid, I became the neighborhood&rsquo;s unauthorized mechanic, dismantling my grandmother&rsquo;s lawnmower and any appliance within reach. This wasn&rsquo;t the endearing hobby my grandmother envisioned – her tolerance for my mechanical explorations wore thin with each disassembled device.</p>
<p>But that drive to understand how things worked couldn&rsquo;t be contained. The real transformation came at twelve, when I encountered my first computer, the <a href="https://en.wikipedia.org/wiki/Commodore_64">Commodore 64</a>. That beige box opened a portal to a virtual world where creation seemed limitless.</p>
<p>Years later, landing my first software job rekindled that excitement. The rush of building and problem-solving felt so rewarding, I would have done it without pay. The industry offered endless opportunities to create, solve, and build.</p>
<p>The move to management came gradually, almost inevitably, in the second half of my career. Leadership brought its own rewards – mentoring teams, scaling impact, shaping product direction. Each step up the corporate ladder moved me further from that pure joy of creation that first drew me to technology.</p>
<p>⁂</p>
<p>Like many in tech leadership, I operated on career autopilot. Each promotion led to another, each reorganization opened new opportunities, each role brought increased responsibility. I mastered the art of career planning – the political navigation of corporate structures, the strategic moves between roles. Life planning never entered the equation. Retirement loomed as a distant concept, too remote to warrant consideration.</p>
<p>In 2016, I discovered a concept that fundamentally shifted my perspective – the <a href="https://en.wikipedia.org/wiki/FIRE_movement">FIRE movement</a>. Financial Independence, Retire Early hadn&rsquo;t yet become a household name, but its message jolted me awake. I first encountered it through <a href="https://www.mrmoneymustache.com/2013/02/22/getting-rich-from-zero-to-hero-in-one-blog-post/">Mr. Money Mustache&rsquo;s blog</a>, where Pete Adeney described what seemed an absurd lifestyle. Living on a fraction of my income? Retiring decades early? Impossible.</p>
<p>Pete&rsquo;s message burrowed into my consciousness. It evoked a story about Kurt Vonnegut and Joseph Heller at a billionaire&rsquo;s party on Shelter Island. Vonnegut told Heller their hedge fund manager host had earned more in one day than Heller&rsquo;s &ldquo;<a href="https://en.wikipedia.org/wiki/Catch-22">Catch-22</a>&rdquo; had earned in its entire history. Heller replied, &ldquo;Yes, but I have something he will never have&hellip; enough.&rdquo;<a href="https://www.goodreads.com/quotes/10187045-at-a-party-given-by-a-billionaire-on-shelter-island">*</a> That concept of &ldquo;enough&rdquo; – knowing when you&rsquo;ve hit your target – became my new north star.</p>
<p>These revelations prompted me to look at my superiors differently. The senior leaders, whose roles marked my presumed next career steps, no longer embodied success. Their lives, once the blueprint for achievement, lost their appeal. The endless meetings, constant travel, perpetual organizational shuffles – did I want this life for another decade plus?</p>
<p>The math of early retirement proved straightforward once my wife and I focused on it. The emotional equation challenged us more. I craved control of my time, the freedom to choose my projects, the chance to rediscover that joy of creation I&rsquo;d first found in front of a Commodore 64. Yet I couldn&rsquo;t articulate how this new life would unfold.</p>
<p>⁂</p>
<p>Retiring in July 2023 launched a transition both challenging and rewarding beyond expectation. The first six months delivered an unexpected lesson: after nearly three decades of externally structured schedule, true freedom demands its own kind of adjustment.</p>
<p>At first, I attempted to recreate my corporate environment at home. I crafted detailed schedules, blocked time with corporate precision, and measured my days against traditional productivity metrics. Old habits die hard – especially those reinforced by years of quarterly objectives and performance reviews.</p>
<p>I realized I still measured success by someone else&rsquo;s standards. The same drive that propelled my career now blocked the freedom I&rsquo;d worked so hard to achieve. I needed to unlearn as much as I needed to learn.</p>
<p>I declared a one-year moratorium on significant commitments. Beyond declining advisory roles and consulting opportunities – though my ego protested – I needed to give myself permission to explore without purpose, learn without deliverables, exist without metrics.</p>
<p>New patterns started to emerge. My best days evolved into those that allowed space for curiosity rather than packed schedules. Working on my off-road truck, experimenting with 3D printing, dabbling in woodworking, or diving back into programming – these projects rekindled that feeling of pure creation I&rsquo;d lost. Free from deadlines and stakeholder expectations, I could pursue learning for its own sake.</p>
<p>The corporate world conditioned me to view time as a scarce resource requiring optimization. Now, time feels abundant, but only when I resist the urge to fill every moment with purpose. Some days, a long walk with the dogs or an extended workout becomes the day&rsquo;s achievement – not because it&rsquo;s scheduled, but because it feels right.</p>
<p>⁂</p>
<p>For the first time in decades, I don&rsquo;t know what&rsquo;s next – and I&rsquo;m learning to embrace uncertainty. Travel plans and project lists stretch into the future, but without a prescribed path to follow. No title to chase, no organizational ladder to climb. Shedding these expectations feels both liberating and terrifying.</p>
<p>This journey into the unknown demands confronting long-held fears. Writing tops that list. An inner critic questioning my worth as a writer has kept me silent for years. Yet I&rsquo;m discovering that growth awaits beyond discomfort. This blog represents my commitment to learning in public, sharing my exploration of life after the corporate world, even when – especially when – I don&rsquo;t have it all figured out.</p>
<p>The path ahead remains uncertain. Yet the same curiosity that led me to dismantle my grandmother&rsquo;s lawnmower, that drew me to that first computer, that guided me through a technology career, now pulls me forward into this next chapter. The difference? The only metrics that matter are the ones I choose for myself.</p>
]]></description>
        </item>
        
        <item>
            <title>Reminder to decline</title>
            <link>https://markgroves.us/2019/10/02/reminder-to-decline/</link>
            <pubDate>Wed, 02 Oct 2019 19:59:30 -0700</pubDate>
            
            <guid>https://markgroves.us/2019/10/02/reminder-to-decline/</guid>
            <description><![CDATA[<p>There you are at that event, getting ready to do the thing you committed to days, weeks, or months ago. And you ask yourself, &ldquo;why did I say yes to this?&rdquo;</p>
<p>This type of thing happens to me more often than I would like to admit. These could be significant events, like speaking at a conference, or small events such as having coffee with someone you barely know. There isn&rsquo;t anything wrong with the event itself. For me, it is the disconnect between how I feel at the time that I agree to do this activity and when the time comes to deliver on the commitment.</p>
<p>I have a theory that my present self dislikes my future self. The present self isn&rsquo;t great at protecting how my future self will feel about the activity. Upon reflection, would I have said yes to this commitment if the event was happening soon? Now, this may be my introverted self influencing my decision making, but often I think no, I would not have agreed to this commitment.</p>
<p>This issue reminds me of Derek Sivers&rsquo; <a href="https://sivers.org/hyn">Hell Yeah or No</a> article. I can&rsquo;t say I have been great at following Derek&rsquo;s advice.</p>
<p>For me, there are two forces working against themselves, the force of my true self that says, &ldquo;you don&rsquo;t need or want to do that&rdquo;, and the force what I believe other&rsquo;s expect my role to be in a given situation, that says, &ldquo;sure, I know you expect me to do these types of things, so sure I&rsquo;ll do it.&rdquo;</p>
<p>Let this be a reminder to my future self to say no to more requests. My future self will thank my past self.</p>
]]></description>
        </item>
        
        <item>
            <title>Adding Webmentions to a static site via GitHub</title>
            <link>https://markgroves.us/2019/08/24/adding-webmentions-to-a-static-site-via-github/</link>
            <pubDate>Sat, 24 Aug 2019 23:14:34 +0000</pubDate>
            
            <guid>https://markgroves.us/2019/08/24/adding-webmentions-to-a-static-site-via-github/</guid>
            <description><![CDATA[<p>Over the last several weeks, I decided to build my site from the ground up using <a href="https://gohugo.io">Hugo</a>, a static site generator. My main goal in rebuilding my website is to get back into writing while having a place on the web that is my own.</p>
<p>I am adding features of the IndieWeb to my site along the way.</p>
<p>My latest IndieWeb support is implementing Webmentions. With the help from posts by <a href="https://vincentp.me/articles/2018/11/14/20-00/">Vincent Pickering</a>, <a href="https://keithjgrant.com/posts/2019/02/adding-webmention-support-to-a-static-site/">Keith Grant</a>, and <a href="https://mxb.dev/blog/using-webmentions-on-static-sites/">Max Böck</a> I was able to add initial support for Webmentions to my Hugo based site.</p>
<h2 id="what-are-webmentions">What are Webmentions?</h2>
<p><a href="https://webmention.net/draft/">Webmentions</a> is a W3C recommendation that enables site owners to send and receive notifications for reactions posted from other sites. A Webmention reaction can be when someone posts a blog post linking to one of your posts. Or, using services such as <a href="https://brid.gy/">Bridgy</a> your site can receive likes and re-posts from services such as Twitter.</p>
<h2 id="challenge-without-javascript">Challenge without JavaScript</h2>
<p>The main benefits of using static site generators, such as Hugo or Jekyll, is the performance of only needing to serve up HTML and CSS. Adding significant logic in JavaScript defeats these benefits, in my opinion.</p>
<p>Posts on this site use a git-based flow, that starts with a merge into the master branch on GitHub. This merge kicks off a build within <a href="https://netlify.com">Netlify</a> that host this site.</p>
<p>The challenge of using a GitHub-to-Netlify deployment flow is that the site doesn&rsquo;t change unless something has changed within the git repository. Figuring out how to get data from a new Webmention to change my git repository was what I needed to figure out.</p>
<h2 id="solution">Solution</h2>
<p>Vincent&rsquo;s post got me pretty far down the line of figuring out a solution to this problem. In his post, he outlines how to use Jekyll data files and a server he calls <a href="https://github.com/vipickering/mastr-cntrl">Mastr-Cntrl</a> to post to his git repository. Since Hugo also has <a href="https://gohugo.io/templates/data-templates/">data files</a>, I knew I was on to something. But, I was hoping I didn&rsquo;t need to stand up a server to listen for Webmentions.</p>
<p>To get this to work without the need for a running server, I set off to find a solution that would look more like a serverless function. The workflow I wanted looked like this:</p>
<pre tabindex="0"><code>webmetion.io &gt; webhook &gt; create data file &gt; pull request &gt; merge &gt; build &gt; deploy
</code></pre><ol>
<li>Webmention notifications would first go to <a href="https://webmentions.io">webmentions.io</a> by adding my site&rsquo;s Webmention endpoint to the HTML header.</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-html" data-lang="html"><span style="display:flex;"><span>&lt;<span style="color:#f92672">link</span> <span style="color:#a6e22e">rel</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;webmention&#34;</span> <span style="color:#a6e22e">href</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;https://webmention.io/markgroves.us/webmention&#34;</span> /&gt;
</span></span><span style="display:flex;"><span>&lt;<span style="color:#f92672">link</span> <span style="color:#a6e22e">rel</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;pingback&#34;</span> <span style="color:#a6e22e">href</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;https://webmention.io/markgroves.us/xmlrpc&#34;</span> /&gt;
</span></span></code></pre></div><ol start="2">
<li>Next, I needed something to listen for <a href="https://webmention.io/settings/webhooks">webhook events</a> from webmentions.io.</li>
</ol>
<p>The <a href="https://www.integromat.com">Integromat</a> service came to the rescue. Integromat is similar to Zapier or IFTTT, but, it supports creating a webhook endpoint, and also has an integration to GitHub that supports creating files within your git repository.</p>
<ol start="3">
<li>Parse Webmention JSON within Integromat and save a file to /data/webmention folder.
<img src="/posts/assets/Integration_Webhooks__JSON___Integromat.png" alt="webhook to JSON to GitHub"/></li>
</ol>
<p>Now, each time a webmentions.io picks up a Webmention for one of my posts, Integromat will create a new file within a git branch using the wm-id from the JSON send over in the webhook.</p>
<p><img src="/posts/assets/Integration_Webhooks__JSON___Integromat_details.png"/></p>
<h3 id="leveraging-github-pull-requests">Leveraging GitHub pull requests</h3>
<p>One of the benefits of using GitHub for managing your web site is that you have complete control on when changes get deployed. Since I want to make sure the Webmentions I am going to add to my site are appropriate, I decided to leverage pull-requests within GitHub.</p>
<p>By posting the Webmention JSON file into a separate branch, I can review the changes before merging them with the master branch and ultimately publishing publicly.</p>
<h3 id="automating-git-check-ins---integromat">Automating Git check-ins - Integromat</h3>
<p>At this point, Integromat is an experiment. I don&rsquo;t expect enough traffic on my site to need to upgrade to a paid plan. But, even at $9 a month, if this solution continues to work, it will be worth it.</p>
<h2 id="formatting-webmentions-using-hugo">Formatting Webmentions using Hugo</h2>
<p>At this point, the remaining work is to pull the data from the data files into the matching posts. I added a partial template to my Hugo theme named <a href="https://github.com/markgrovs/hugo-theme-hello-friend-ng/blob/master/layouts/partials/webmentions.html">webmentions.html</a>. For each reaction type, I format the reaction to match my theme:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-html" data-lang="html"><span style="display:flex;"><span>&lt;<span style="color:#f92672">div</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;pagination__title&#34;</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">span</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;pagination__title-h&#34;</span>&gt;Replies&lt;/<span style="color:#f92672">span</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">hr</span>/&gt;
</span></span><span style="display:flex;"><span>    &lt;/<span style="color:#f92672">div</span>&gt;
</span></span><span style="display:flex;"><span>    {{ range .Site.Data.webmentions }}
</span></span><span style="display:flex;"><span>        {{ range . }}
</span></span><span style="display:flex;"><span>            {{ if isset . &#34;wm-property&#34; }} 
</span></span><span style="display:flex;"><span>                {{ if eq (index . &#34;wm-property&#34;) &#34;in-reply-to&#34; }}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>                    &lt;<span style="color:#f92672">div</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;u-comment h-cite&#34;</span>&gt;
</span></span><span style="display:flex;"><span>                        &lt;<span style="color:#f92672">a</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;u-author h-card&#34;</span> <span style="color:#960050;background-color:#1e0010">{{</span><span style="color:#a6e22e">-</span> <span style="color:#a6e22e">if</span> <span style="color:#960050;background-color:#1e0010">.</span><span style="color:#a6e22e">author</span><span style="color:#960050;background-color:#1e0010">.</span><span style="color:#a6e22e">url</span> <span style="color:#a6e22e">-</span><span style="color:#960050;background-color:#1e0010">}}</span> <span style="color:#a6e22e">href</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;{{ .author.url }}&#34;</span> <span style="color:#960050;background-color:#1e0010">{{</span> <span style="color:#a6e22e">end</span> <span style="color:#960050;background-color:#1e0010">}}</span>&gt;            
</span></span><span style="display:flex;"><span>                            {{ .author.name | humanize }}
</span></span><span style="display:flex;"><span>                        &lt;/<span style="color:#f92672">a</span>&gt;
</span></span><span style="display:flex;"><span>                    &lt;/<span style="color:#f92672">p</span>&gt;
</span></span><span style="display:flex;"><span>                        &lt;<span style="color:#f92672">p</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;e-content e-name&#34;</span>&gt;
</span></span><span style="display:flex;"><span>                            {{- .content.html | safeHTML }}
</span></span><span style="display:flex;"><span>                        &lt;/<span style="color:#f92672">p</span>&gt;
</span></span><span style="display:flex;"><span>                        &lt;<span style="color:#f92672">a</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;u-url&#34;</span> <span style="color:#a6e22e">href</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;{{ .url }}&#34;</span>&gt;
</span></span><span style="display:flex;"><span>                            {{ .url }}
</span></span><span style="display:flex;"><span>                        &lt;/<span style="color:#f92672">a</span>&gt;
</span></span><span style="display:flex;"><span>                        &amp;nbsp;@
</span></span><span style="display:flex;"><span>                        &lt;<span style="color:#f92672">time</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;dt-published&#34;</span>&gt;{{ if .published }}{{ dateFormat $.Site.Params.dateformNumTime .published }}{{ end }}&lt;/<span style="color:#f92672">time</span>&gt;  
</span></span><span style="display:flex;"><span>                    &lt;/<span style="color:#f92672">div</span>&gt;
</span></span><span style="display:flex;"><span>                    &lt;<span style="color:#f92672">hr</span>/&gt;
</span></span><span style="display:flex;"><span>                {{ end }}
</span></span><span style="display:flex;"><span>            {{ end }}
</span></span><span style="display:flex;"><span>        {{ end }}
</span></span><span style="display:flex;"><span>    {{ end }}
</span></span></code></pre></div><h2 id="conclusion">Conclusion</h2>
<p>Although I don&rsquo;t expect to have significant traffic on my site, I wanted a process that fit my goals of having a static website with low maintenance.</p>
<p>Getting this to work was a bit complex, but I learned a good bit about how Hugo works along the way. Feel free to contact me if you have any questions.</p>
]]></description>
        </item>
        
        <item>
            <title>An Introduction</title>
            <link>https://markgroves.us/2019/07/27/an-introduction/</link>
            <pubDate>Sat, 27 Jul 2019 00:00:00 +0000</pubDate>
            
            <guid>https://markgroves.us/2019/07/27/an-introduction/</guid>
            <description><![CDATA[<p>I&rsquo;ve decided to restart my web site and to get into a regular writing habit. I can&rsquo;t say that I have been great at keeping this practice. I can&rsquo;t promise my posts will be well thought out. In some sense that the lack of clarity is my main goal. My goal is to learn more about how I think about a topic by writing publicly.</p>
<p>A little about myself is likely a reasonable way to start. I&rsquo;ve been working in the software industry over the last 20+ years. I never thought about making a career in software as a child growing up in Pittsburgh. I was lucky enough to be introduced to coding in a 6th-grade class. There was something about coding on the <a href="https://en.wikipedia.org/wiki/TRS-80">TSR-80</a> that sparked joy in my 12-year-old self. Computers at the time were toys. But these toys taught me how to be creative in a way that I never experience before. My college years were spent focused on getting a degree in Electrical Engineering. But, at the time there was this new thing that was happening, it was called the World Wide Web. A significant chunk of my free time was spent in the computer lab learning how to build these new things called web sites. So, when I started interviewing in preparation for graduation, the electrical engineering jobs seemed comparatively boring to the opportunities in the software industry. There is no way my 12-year-old self could have imagined making a career playing with toys all day.</p>
<p>The joy of creating is one of the reasons I wanted to build a web site again. This idea was sparked as I stumbled on the IndieWeb movement a few months ago. The <a href="https://indieweb.org/principles">IndieWeb principles</a> of owning your own data, building tools, and open-source spoke to me. Over the last several years, I feel that we have done in the wrong direction as creators of the web. We went from millions of loosely coupled sites, created by people all over the world, to a handful of walled gardens controlled by billionaires. Getting back to owning our content is the best way to take our voice back. And to stop <a href="https://www.nytimes.com/2018/04/08/us/facebook-users-data-harvested-cambridge-analytica.html">being the product</a>.</p>
<p>Although I hope others will find why I have to say interesting, it isn&rsquo;t my goal. If all this site does is help me learn and refine my thoughts, it will be worth the investment.</p>
]]></description>
        </item>
        
    </channel>
</rss>
