<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Steven Legg</title>
    <link>https://www.steven-legg.com</link>
    <description>Notes on learning, work, and getting better at things.</description>
    <language>en</language>
    <lastBuildDate>Wed, 12 Aug 2026 18:44:47 GMT</lastBuildDate>
    <atom:link href="https://www.steven-legg.com/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>A Record Is Not a Life</title>
      <link>https://www.steven-legg.com/blog/a-record-is-not-a-life</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/a-record-is-not-a-life</guid>
      <pubDate>Wed, 29 Jul 2026 15:10:59 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <description>What a notes app, a language routine, and a few unfinished drafts have taught me about paying attention.</description>
      <content:encoded><![CDATA[<p>A notes app is very good at making a life look more organized than it feels.</p><p>Open mine and there are maps of ideas, language-learning plans, books I want to read, things I want to write, places I want to visit, and routines I am always on the verge of beginning properly. It is satisfying to see all of that in one place. A scattered thought becomes a page; a page becomes a link; eventually, it starts to resemble a system.</p><p>But a system is not the same thing as a life.</p><p>That is not an argument against notes, schedules, flashcards, or plans. I like all of those things. They give me somewhere to return when I have lost the thread. A good note can preserve an idea long enough for it to become useful. A language routine can make an enormous subject feel approachable. A calendar can turn a vague hope into an afternoon with a little structure.</p><p>Still, none of those tools can do the living for us.</p><p>Language learning makes this especially clear. You can collect resources, make cards, watch videos, write down vocabulary, and build an impressive-looking routine. All of it helps. But eventually there is a moment when someone says something you did not expect, or when you need to find a word you have not practiced yet. There is no shortcut around being a beginner in public.</p><p>That is part of the appeal. Learning a language is a long lesson in humility. Progress is often too gradual to notice, until a sentence that once seemed impossible simply makes sense. The work is not glamorous. It is repetition, listening carefully, making mistakes, returning the next day, and accepting that understanding is built slowly.</p><p>I think the same is true of most meaningful changes.</p><p>It is easy to write a dramatic promise to yourself: become more disciplined, more generous, more confident, more informed. The difficult part is translating that promise into something ordinary. Read for twenty minutes. Send the text. Apologize clearly. Take the walk. Practice the language. Revise the paragraph. Rest when rest is what is needed.</p><p>Those actions do not always feel profound while they are happening. They are often quiet enough to be mistaken for nothing. But they are the parts that accumulate.</p><p>I have also been thinking about how public writing fits into this. A short post can make a feeling sound more final than it is. It is tempting to write from the highest possible emotional volume: to turn uncertainty into certainty, frustration into judgment, or hope into a grand declaration. Sometimes that can be clarifying. More often, I think, it leaves out the complicated middle where most real thinking happens.</p><p>I want to make more room for that middle.</p><p>That does not mean becoming indifferent. It means being more precise about what I know, what I am still learning, and what I can actually do. It means allowing other people the dignity of being unfinished, too. We are all carrying histories, pressures, hopes, and blind spots that do not fit neatly into a post or a profile.</p><p>The best use of a personal system may be simple: it should return us to the world. If a note helps me remember a friend, follow through on an idea, study something carefully, or make a little more space for curiosity, then it has done its job. If it becomes a performance of future self-improvement, it may be time to close the app and do one small thing instead.</p><p>A record can be meaningful. It can hold the evidence of change, the beginnings of ideas, and the reminders we need when life feels scattered.</p><p>But the record is not the life.</p><p>The life is what happens after we put the plan down and begin.</p>]]></content:encoded>
    </item>
    <item>
      <title>American Education: What We Are Owed</title>
      <link>https://www.steven-legg.com/blog/american-education-what-we-are-owed</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/american-education-what-we-are-owed</guid>
      <pubDate>Thu, 04 Jun 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Essays</category>
      <description>My greatest criticism of the United States is how we treat public education — decades of underfunding, a testing regime that narrowed what schools teach, and stark inequality between rich and poor dis</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/125e7656feb56f3aff08bffc0a7b92c30232b9f2-615x615.jpg?w=1200&amp;fit=crop&amp;auto=format" alt="American Education: What We Are Owed"></p><p>My greatest criticism of this country, in short, is the state of public education. I grew up lucky — in Massachusetts, where the schools are often said to be the best in the nation. But even there, the luck was uneven. On the South Shore, where I lived, school budgets were tight in a way they were not in Boston or on the wealthier North Shore. I can&#x27;t speak for western Massachusetts or for rural New England. I can only say that, even in the &quot;best&quot; state in the country, money decided a great deal about what a child&#x27;s education looked like. That, to me, is the heart of the problem — and the reason I believe we can fix it, if we choose to.</p><h2>We have underfunded our schools for decades</h2><p>My honest belief is that we have not seriously invested in education in this country in over forty years. That is not just a feeling. By one careful estimate, the United States underfunds its public schools by roughly $150 billion every year, and the deepest shortfalls land on the students who already have the least.1 This is part of a longer story of neglect of ordinary people: for more than four decades, the pay of typical workers has badly lagged behind the value they produce, even as the economy has grown.2 We have had the money. We have chosen, again and again, to spend it elsewhere.</p><p>What shocks me most is how willingly we neglect the next generation&#x27;s education in favor of short-term consumption. Even as a young child, before I had the words for it, I felt like I was living in a kind of post-consumerist haze. It is hard to watch a society that can find money for almost anything decide that its own children&#x27;s schooling is the thing it cannot quite afford.</p><h2>How we lost our way: testing over learning</h2><p>A big part of the damage, in my view, came from the No Child Left Behind Act of 2001. Its goals were not cruel — it was meant to hold schools accountable for every child, especially those who had been left behind before. But by tying a school&#x27;s funding and reputation to a handful of standardized test scores, it pushed schools to narrow what they taught down to whatever the test measured. Critics warned at the time that the law gave teachers every incentive to &quot;teach to the test&quot; and to quietly drop subjects that weren&#x27;t being tested, and that some schools went to troubling lengths to protect their scores.3 Instead of a race to teach children well, we got something closer to a race to pass an exam.</p><p>And the scores still fell. The Nation&#x27;s Report Card — the federal government&#x27;s own long-term measure of how students are doing — shows reading and math achievement that has been sliding since around 2012, with reading scores for thirteen-year-olds now back where they were in the 1970s.4 Decades of focusing on the test did not even deliver the one thing it promised.</p><h2>A system that funds children unequally</h2><p>The deeper injustice is how unequally we pay for children&#x27;s schooling. Because public schools lean so heavily on local property taxes, a child&#x27;s education is tied to the wealth of the few blocks around their home. Districts serving the most students of color receive about $2,700 less per student, on average, than districts serving the fewest — a gap driven in large part by that reliance on local property wealth.5 Income inequality is nowhere starker, or more consequential, than in who gets a good education and who does not.</p><p>This is also why I worry about privatizing education. The push to move public money into private and voucher programs rests on the idea that the market will sort things out — and, underneath that, on an ideology that quietly treats wealth as a kind of moral worth. It rewards families whose needs are already met many times over, while the children of struggling families, who did nothing to deserve their circumstances, are left further behind. And the evidence does not even support the promise: studies of traditional voucher programs have found that students who used them often did worse on math tests than similar students who stayed in public school.6 We would be diverting scarce public money toward a worse result.</p><p>I don&#x27;t think the people at the top feel the stakes the way the rest of us do. They believed they were safe before 2008, too — and then the financial crisis arrived, and more than six million American households lost their homes to foreclosure.7 People who felt secure lost everything. Treating a good education as a luxury for those who can pay isn&#x27;t just unfair; it&#x27;s a bet that the security of the comfortable will hold forever. History suggests it won&#x27;t.</p><p>I saw this gap up close. I worked as a groundskeeper at Tabor Academy in Marion, Massachusetts — a school known for sending students to Division I athletics and to Ivy League colleges. Boarding tuition there now tops $82,000 a year.8 The students sail regularly, live in beautiful dorms, and study on a classic New England liberal-arts campus. By fourteen, fresh out of middle school, they are essentially living a college life with extras. I had no idea a place like that existed so close to where I&#x27;d spent most of my life. It was nothing like Silver Lake Regional, the public high school I knew, where students wrestled with far more tangible, material problems. The two schools were a short drive apart and a world apart.</p><h2>The problem was never the kids</h2><p>Through all of this, I keep coming back to one conviction: there is no such thing as a child who can&#x27;t learn. Children are far more capable than we give them credit for, and when we decide otherwise, the failure is ours, not theirs. Education is a nearly limitless gift to give a young person. We have the information, the science, the literature — all of it — and our only real job is to make sure it reaches them, and to make the reaching of it genuinely enjoyable.</p><p>We already know this can be done. Montessori education, for one, has a strong research record: a systematic review of decades of studies found that, on the whole, Montessori students outperform their peers on a range of academic and social-emotional outcomes.9 My frustration with Montessori isn&#x27;t the method — it&#x27;s that most Montessori schools are private, concentrated in cities, and known mainly to affluent families. The approach could also be carried much further: updated software, a modernized curriculum, and stronger bridges into university research and graduate study. Good ideas like this shouldn&#x27;t stay locked behind a price tag.</p><p>My own memories tell the same story from the other direction. For a stretch of my schooling I felt worn down by my teachers; I switched to a private Catholic school, which was better but still hard. It wasn&#x27;t until high school, back in public school, that I had my first young, male teachers — and I fell in love with their classes in physics, history, algebra, and computer science. My mother was a children&#x27;s librarian, always thinking about the kids; I know they loved her story times. Those are the kinds of memories I want every child to have. Not only because it is the practical and right thing to do, but because the next generation deserves our love and our trust.</p><h2>What we should actually do</h2><p>So I want to end on what I think we should build toward, rather than only on what&#x27;s broken. We should fund public schools fully and fairly, and stop tying a child&#x27;s opportunities to the property values of their neighborhood — which means leaning less on local property taxes and more on broad, equitable funding, with the most help going to the students who need it most. We should measure schools by whether children are actually learning and thriving, not by a single test score, so that teachers can teach the whole of a subject again. We should keep public money in public schools rather than draining it into private alternatives that haven&#x27;t delivered. We should make the best ideas — like Montessori&#x27;s — available to ordinary families, not just wealthy ones. And we should pay for all of it the way a serious country would: in part through fair taxes on the very wealthiest, reinvested especially in the rural and low-income communities that have been shortchanged the longest.</p><p>I&#x27;d give two reasons. The first is simply that it&#x27;s right. The second is more practical: communities that are invested in flourish for generations, and they return that investment many times over as more of their children get a real chance to succeed. When people are cared for, they do remarkable things. If we can&#x27;t trust in that, then we don&#x27;t really trust in one another.</p><p>Our curriculum is aging, and the local and state structures meant to steward public education have, in too many places, fallen short for decades. That has to change. This is my largest criticism of the country I love — and I make it precisely because I believe the next generation is worth fighting for. I&#x27;ll leave it there for now.</p><h2>Notes</h2><ol><li>&quot;TCF Study Finds U.S. Schools Underfunded by Nearly $150 Billion Annually,&quot; The Century Foundation, accessed June 4, 2026, https://tcf.org/content/about-tcf/tcf-study-finds-u-s-schools-underfunded-nearly-150-billion-annually/. ↩</li><li>&quot;Wage Stagnation in Nine Charts,&quot; Economic Policy Institute, accessed June 4, 2026, https://www.epi.org/publication/charting-wage-stagnation/. ↩</li><li>&quot;A Past, Present, and Future Look at No Child Left Behind,&quot; American Bar Association, accessed June 4, 2026, https://www.americanbar.org/groups/crsj/resources/human-rights/archive/past-present-future-look-no-child-left-behind/. ↩</li><li>&quot;NAEP Long-Term Trend Assessment Results: Reading and Mathematics,&quot; National Center for Education Statistics, The Nation&#x27;s Report Card, 2023, https://www.nationsreportcard.gov/highlights/ltt/2023/. ↩</li><li>&quot;Segregation and Resource Inequality Between America&#x27;s School Districts,&quot; New America, accessed June 4, 2026, https://www.newamerica.org/insights/segregation-and-resource-inequality-between-americas-school-districts/executive-summary/. ↩</li><li>&quot;Research on School Vouchers Suggests Concerns Ahead for Education Savings Accounts,&quot; Brookings Institution, accessed June 4, 2026, https://www.brookings.edu/articles/research-on-school-vouchers-suggests-concerns-ahead-for-education-savings-accounts/. ↩</li><li>&quot;Starting Over: Michael Ohlrogge Tracks Post-Foreclosure Outcomes During the Great Recession,&quot; New York University School of Law, accessed June 4, 2026, https://www.law.nyu.edu/news/ideas/michael-ohlrogge-great-recession-foreclosures. ↩</li><li>&quot;Tuition &amp; Financial Aid,&quot; Tabor Academy, accessed June 4, 2026, https://www.taboracademy.org/admissions/tuition-financial-aid. ↩</li><li>Justus J. Randolph et al., &quot;Montessori Education&#x27;s Impact on Academic and Nonacademic Outcomes: A Systematic Review,&quot; Campbell Systematic Reviews, 2023, https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10406168/. ↩</li></ol><h2>Bibliography</h2><p>American Bar Association. &quot;A Past, Present, and Future Look at No Child Left Behind.&quot; Accessed June 4, 2026. https://www.americanbar.org/groups/crsj/resources/human-rights/archive/past-present-future-look-no-child-left-behind/.</p><p>Brookings Institution. &quot;Research on School Vouchers Suggests Concerns Ahead for Education Savings Accounts.&quot; Accessed June 4, 2026. https://www.brookings.edu/articles/research-on-school-vouchers-suggests-concerns-ahead-for-education-savings-accounts/.</p><p>Economic Policy Institute. &quot;Wage Stagnation in Nine Charts.&quot; Accessed June 4, 2026. https://www.epi.org/publication/charting-wage-stagnation/.</p><p>National Center for Education Statistics. &quot;NAEP Long-Term Trend Assessment Results: Reading and Mathematics.&quot; The Nation&#x27;s Report Card, 2023. https://www.nationsreportcard.gov/highlights/ltt/2023/.</p><p>New America. &quot;Segregation and Resource Inequality Between America&#x27;s School Districts.&quot; Accessed June 4, 2026. https://www.newamerica.org/insights/segregation-and-resource-inequality-between-americas-school-districts/executive-summary/.</p><p>New York University School of Law. &quot;Starting Over: Michael Ohlrogge Tracks Post-Foreclosure Outcomes During the Great Recession.&quot; Accessed June 4, 2026. https://www.law.nyu.edu/news/ideas/michael-ohlrogge-great-recession-foreclosures.</p><p>Randolph, Justus J., et al. &quot;Montessori Education&#x27;s Impact on Academic and Nonacademic Outcomes: A Systematic Review.&quot; Campbell Systematic Reviews, 2023. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10406168/.</p><p>Tabor Academy. &quot;Tuition &amp; Financial Aid.&quot; Accessed June 4, 2026. https://www.taboracademy.org/admissions/tuition-financial-aid.</p><p>The Century Foundation. &quot;TCF Study Finds U.S. Schools Underfunded by Nearly $150 Billion Annually.&quot; Accessed June 4, 2026. https://tcf.org/content/about-tcf/tcf-study-finds-u-s-schools-underfunded-nearly-150-billion-annually/.</p>]]></content:encoded>
    </item>
    <item>
      <title>The Divide, and the Road Ahead</title>
      <link>https://www.steven-legg.com/blog/the-divide-and-the-road-ahead</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/the-divide-and-the-road-ahead</guid>
      <pubDate>Thu, 04 Jun 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Essays</category>
      <description>On the online societal divide — a vibrant but still-persecuted queer community, the masculinity crisis, charismatic figures at a desperate economic time, and the cultural and political change I believ</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/f3225fe4acb848f470b10cf9ba19f2c382271be2-2400x1358.jpg?w=1200&amp;fit=crop&amp;auto=format" alt="The Great Divide"></p><p>The societal divide we are living through is a strange and interesting one, and most of it plays out online. It is a divide full of contradictions — more visibility and more suffering at once, more tools than ever and a deepening mental health crisis, more connection and more loneliness. I don&#x27;t have all of this figured out. But I&#x27;ve been trying to write down how I see it, honestly, and where I think the road ahead leads.</p><h2>A community as visible as ever — and still suffering</h2><p>The queer community right now is as alive and visible as it has ever been. More people are openly LGBTQ+ than at any point we have data for: Gallup&#x27;s share of U.S. adults who identify as LGBTQ+ has more than doubled in just over a decade, and among Gen Z it is close to one in four.1 An estimated 2.8 million people aged thirteen and older in the United States now identify as transgender.2 And yet, for all of that visibility, queer people still suffer tremendously — especially trans people and nonbinary people.</p><p>Visibility has been a double-edged thing. Being nonbinary or trans has gained real cultural recognition, but it has also already been fetishized by a society that tends to consume difference before it accepts it. More people than ever accept trans women as women and trans men as men — and that matters — but acceptance on paper has not ended the persecution. In Pew&#x27;s 2025 survey, only about one in ten Americans said there is a great deal or a fair amount of social acceptance for transgender and nonbinary people, and roughly half said there is little or none, a stark gap from how the same respondents viewed gay and lesbian people.3 Recognition and safety are not the same thing.</p><h2>The masculinity crisis on the other side</h2><p>On the complete opposite end of this divide, there is a masculinity crisis that has been building for decades — really for centuries — out of generational patriarchal trauma. The political distance between young men and young women has widened into one of the sharpest splits in American life,4 with young men in particular drifting toward the right.5 Unfortunately, many of these same suffering men have concluded that non-cis-men are the only people free of fault for the global, geopolitical, and economic mess we have ended up in. Two-thirds of young men now regularly engage with online &quot;masculinity influencers,&quot; a loose, largely antifeminist network that researchers warn can normalize misogyny and act as an on-ramp toward more extreme politics.6</p><h2>Charismatic figures at a desperate time</h2><p>This is where it gets dangerous. In my view, figures like Jordan Peterson, Tucker Carlson, and Ben Shapiro twist the frustrations of young men toward radical extremism — toward misogyny, anti-immigrant resentment, and ideologies that sit uncomfortably close to white supremacy. Analysts who study the online right have described commentators like these as a &quot;gateway&quot; inside the recommendation algorithm, where a young man is only a click or two away from genuinely extremist content.7 These are dangerous, dangerous things to spread, and they are most dangerous in desperate economic times — when a charismatic voice offering someone to blame is the easiest thing in the world to sell.</p><h2>Capitalism, the debt, and the long road</h2><p>Underneath all of this is an economic story. Capitalism has led us into a kind of post-consumerist depression, and we haven&#x27;t figured a way out of it. Many people argue for syndicalist and democratic-socialist strategies — rank-and-file organizing, or the &quot;long march through the institutions&quot; that Rudi Dutschke described in the late 1960s.8 I tend to agree with them, personally. But none of that comes quickly, or easily, or without bitter work. And I&#x27;ll be honest: I am guilty of not doing enough.</p><p>The clock is not exactly still, either. What will we do if U.S. bonds fall out of favor and we have to face the consequences of that on top of a national debt that already feels insurmountable? In 2025, Moody&#x27;s stripped the United States of its last top-tier credit rating, pointing to more than a decade of rising debt and widening deficits.9 I do not know the answers.</p><h2>So much uncelebrated culture</h2><p>We are deeply divided, and yet we have also brought about so much uncelebrated culture. In the United States especially, it is difficult to recognize, track, or understand our subcultures, large or small. It is far easier to look back on a decade as if it were culturally unified, when in truth it never was. We have a mental health crisis. But we also have more tools than ever — and that is the part I keep coming back to.</p><h2>The needs we should build around</h2><p>We have to shape technology around our real needs. We need to spend more time outdoors. We need more vacation time, less addictive phones and software, fewer push notifications. We need higher wages — pay for the typical worker has badly lagged behind productivity for more than forty years.10 We need universal healthcare, better and freer higher education, and free childcare. Those are the goals we should build technology around — not sycophant machines, and not walking back green energy. We shouldn&#x27;t be emboldening the free market; we should be regulating it.</p><p>There are potholes all over the road ahead of us, and we need to fill the ones right in front of us first. We need to empower forgotten communities with stellar education and public services — and right now the country underfunds its public schools by something on the order of $150 billion a year, with the deepest shortfalls falling on the poorest students.11 We need reliable, accessible, and abundant public transportation, even as many transit agencies stare down a fiscal cliff now that federal pandemic aid has run out.12 And we need wealth taxes on the rich to fund those public services, especially in underserved rural communities.</p><p>I&#x27;d give two reasons for that. First, it is simply the ethical and responsible thing to do. Second — and this is the more selfish reason — those communities will benefit for generations, and in turn they will return more in tax dollars over the long run as their real chances at success rise. When people are taken care of, they do incredible things. If we don&#x27;t trust in that, then we don&#x27;t trust in humanity. We have to help those who are suffering most, first.</p><h2>Where the hope is</h2><p>I hope we can work toward a more inclusive society, and I see so many people already trying. Even many of those on the far right, I think, mean well (mostly) — they are just deeply confused. A lot of young people are pushing for huge change, and that gives me hope. I want a world where there are no rich and no poor. I want a world where everyone gets the equal human rights and respect they deserve. I want a world that we care for, where we do not submit to lustful materialism. I believe it&#x27;s possible — but not without incredible cultural and political change.</p><h2>Notes</h2><ol><li>&quot;LGBTQ+ Identification in U.S. Rises to 9.3%,&quot; Gallup, accessed June 4, 2026, https://news.gallup.com/poll/656708/lgbtq-identification-rises.aspx. ↩</li><li>&quot;New Estimate: 2.8 Million People Aged 13 and Older Identify as Transgender in the US,&quot; Williams Institute, UCLA School of Law, accessed June 4, 2026, https://williamsinstitute.law.ucla.edu/press/trans-pop-estimates-press-release/. ↩</li><li>&quot;The Experiences of LGBTQ Americans Today,&quot; Pew Research Center, May 29, 2025, https://www.pewresearch.org/social-trends/2025/05/29/the-experiences-of-lgbtq-americans-today/. ↩</li><li>&quot;The Growing Gender Gap Among Young People,&quot; Brookings Institution, accessed June 4, 2026, https://www.brookings.edu/articles/the-growing-gender-gap-among-young-people/. ↩</li><li>&quot;Partisanship, Ideology and Young Americans: Young Men May Be Trending More Republican, but Not Necessarily More Conservative,&quot; PRRI, accessed June 4, 2026, https://prri.org/spotlight/partisanship-ideology-and-young-americans-young-men-may-be-trending-more-republican-but-not-necessarily-more-conservative/. ↩</li><li>&quot;What Is the Manosphere and Why Should We Care?,&quot; UN Women, 2025, https://www.unwomen.org/en/articles/explainer/what-is-the-manosphere-and-why-should-we-care. ↩</li><li>&quot;Political Influencers and the Alt-Right Pipeline,&quot; Virginia Review of Politics, October 26, 2020, https://virginiapolitics.org/online/2020/10/26/political-influencers-and-the-alt-right-pipeline. ↩</li><li>Olof Hallonsten, &quot;The Long March Through the Institutions and the Fifth Wave of Juridification,&quot; Constellations, 2025, https://onlinelibrary.wiley.com/doi/10.1111/1467-8675.12791. ↩</li><li>&quot;Moody&#x27;s Downgraded Its US Credit Rating and Warns That Recent Policy Decisions Will Worsen the Fiscal Outlook,&quot; Peter G. Peterson Foundation, accessed June 4, 2026, https://www.pgpf.org/article/moodys-downgraded-its-us-credit-rating-and-warns-that-recent-policy-decisions-will-worsen-fiscal-outlook/. ↩</li><li>&quot;Wage Stagnation in Nine Charts,&quot; Economic Policy Institute, accessed June 4, 2026, https://www.epi.org/publication/charting-wage-stagnation/. ↩</li><li>&quot;TCF Study Finds U.S. Schools Underfunded by Nearly $150 Billion Annually,&quot; The Century Foundation, accessed June 4, 2026, https://tcf.org/content/about-tcf/tcf-study-finds-u-s-schools-underfunded-nearly-150-billion-annually/. ↩</li><li>&quot;Public Transit Agencies Face Severe Fiscal Cliff,&quot; American Public Transportation Association, June 2023, https://www.apta.com/wp-content/uploads/APTA-Survey-Brief-Fiscal-Cliff-June-2023.pdf. ↩</li></ol><h2>Bibliography</h2><p>American Public Transportation Association. &quot;Public Transit Agencies Face Severe Fiscal Cliff.&quot; June 2023. https://www.apta.com/wp-content/uploads/APTA-Survey-Brief-Fiscal-Cliff-June-2023.pdf.</p><p>Brookings Institution. &quot;The Growing Gender Gap Among Young People.&quot; Accessed June 4, 2026. https://www.brookings.edu/articles/the-growing-gender-gap-among-young-people/.</p><p>Economic Policy Institute. &quot;Wage Stagnation in Nine Charts.&quot; Accessed June 4, 2026. https://www.epi.org/publication/charting-wage-stagnation/.</p><p>Gallup. &quot;LGBTQ+ Identification in U.S. Rises to 9.3%.&quot; Accessed June 4, 2026. https://news.gallup.com/poll/656708/lgbtq-identification-rises.aspx.</p><p>Hallonsten, Olof. &quot;The Long March Through the Institutions and the Fifth Wave of Juridification.&quot; Constellations, 2025. https://onlinelibrary.wiley.com/doi/10.1111/1467-8675.12791.</p><p>Peter G. Peterson Foundation. &quot;Moody&#x27;s Downgraded Its US Credit Rating and Warns That Recent Policy Decisions Will Worsen the Fiscal Outlook.&quot; Accessed June 4, 2026. https://www.pgpf.org/article/moodys-downgraded-its-us-credit-rating-and-warns-that-recent-policy-decisions-will-worsen-fiscal-outlook/.</p><p>Pew Research Center. &quot;The Experiences of LGBTQ Americans Today.&quot; May 29, 2025. https://www.pewresearch.org/social-trends/2025/05/29/the-experiences-of-lgbtq-americans-today/.</p><p>PRRI. &quot;Partisanship, Ideology and Young Americans: Young Men May Be Trending More Republican, but Not Necessarily More Conservative.&quot; Accessed June 4, 2026. https://prri.org/spotlight/partisanship-ideology-and-young-americans-young-men-may-be-trending-more-republican-but-not-necessarily-more-conservative/.</p><p>The Century Foundation. &quot;TCF Study Finds U.S. Schools Underfunded by Nearly $150 Billion Annually.&quot; Accessed June 4, 2026. https://tcf.org/content/about-tcf/tcf-study-finds-u-s-schools-underfunded-nearly-150-billion-annually/.</p><p>UN Women. &quot;What Is the Manosphere and Why Should We Care?&quot; 2025. https://www.unwomen.org/en/articles/explainer/what-is-the-manosphere-and-why-should-we-care.</p><p>Virginia Review of Politics. &quot;Political Influencers and the Alt-Right Pipeline.&quot; October 26, 2020. https://virginiapolitics.org/online/2020/10/26/political-influencers-and-the-alt-right-pipeline.</p><p>Williams Institute, UCLA School of Law. &quot;New Estimate: 2.8 Million People Aged 13 and Older Identify as Transgender in the US.&quot; Accessed June 4, 2026. https://williamsinstitute.law.ucla.edu/press/trans-pop-estimates-press-release/.</p>]]></content:encoded>
    </item>
    <item>
      <title>June 1st 2026</title>
      <link>https://www.steven-legg.com/blog/june-1st-2026</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/june-1st-2026</guid>
      <pubDate>Mon, 01 Jun 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Month notes</category>
      <description>A reflective June update — students and Coursera, saving money, letting go of Umbra, an orchestra in German, memories of Hamburg and Boston, job applications, and getting better at long-term thinking.</description>
      <content:encoded><![CDATA[<p>I&#x27;ve been talking with some students around my own age, and learning a bit about the International Relations courses on Coursera. I should have a decent paycheck coming, and I&#x27;m serious about saving money this time.</p><p>I don&#x27;t think Umbra is going to turn up — not unless someone brings her into a shelter. I need to let go for now. I can get another cat at some other point, and either she&#x27;ll be safe or she&#x27;ll be found. I&#x27;ve really enjoyed working on this website in the meantime.</p><p>Today I went to see the orchestra with the students. I was wiped out this morning — it was a bit cold in my room last night, so I didn&#x27;t sleep great, and I was trying to hold off on caffeine — but the concert turned out to be really relaxing. A lot of the music was in German, which made it extra fun for me. It reminded me of when my German Studies professor and mentor took us to the Boston Symphony Orchestra, and of the time my Dad and I saw the Hamburg Symphony Orchestra in Hamburg. That was his first time in Europe. Between the orchestra and the bike tour we did in Hamburg, those were the real highlights of the trip — besides just getting to spend time with him. I&#x27;ll admit it was a bit stressful, but it was great.</p><p>Anyway — I&#x27;m looking to apply to some universities in Boston, and also to shoot my shot with EF jobs in Germany, Switzerland, or Austria. I always freeze up at the start of job applications, but once I get going I think I&#x27;m actually quite decent at it. I used to have so much anxiety about my resume; at this point I think I could genuinely help other people write their first few. Life is funny that way — experience, teaching, doubt, trust. It&#x27;s really nuts, haha.</p><p>I still need to figure out my employment and living plans for August, but I&#x27;m feeling really good about June — especially with the help of a few great new friends. I know my longtime friends are cheering me on too, and trusting in myself carries a lot of power. I feel like a bit of a workaholic these days. Not exactly — but even coming close to that would probably surprise some people who know me.</p><p>I guess what I&#x27;m getting at is that getting better at long-term thinking and planning feels rewarding and positive. It&#x27;s obviously not always easy, and I can&#x27;t quite explain it. It&#x27;s all a little surreal, but life is pretty good for me personally right now. I&#x27;m lucky to have what I do and the privilege I have, and I need to focus on myself first — because that&#x27;s how I&#x27;ll actually be able to help others the most, rather than trying to do it the other way around.</p>]]></content:encoded>
    </item>
    <item>
      <title>May 2026 Update</title>
      <link>https://www.steven-legg.com/blog/may-2026-update</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/may-2026-update</guid>
      <pubDate>Sun, 31 May 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Month notes</category>
      <description>A personal update: job searching, EF Boston closing, Umbra, ClaudeCowork, Anki, quitting social media, ditching cloud storage, and trying to stay present.</description>
      <content:encoded><![CDATA[<p>I&#x27;m doing well. There&#x27;s a lot going on, some of it hard, a lot of it good, and writing it out feels like the right thing to do.</p><h2>Work and What Comes Next</h2><p>EF Boston is closing. I&#x27;m going to be honest — I really love my job here, and I&#x27;m not sure it&#x27;s fully hit me yet that everyone is getting laid off. The people I work with are genuinely wonderful, and watching a community like that come apart is its own kind of loss separate from the practical situation of needing to find something new.</p><p>I&#x27;m looking for work starting in August. What I&#x27;m really hoping for is to relocate with EF — specifically to Germany, Switzerland, or Austria. That would be ideal, and I&#x27;d love it if it worked out. Nothing is confirmed yet and I&#x27;m trying not to build too much on it before it&#x27;s real. But it&#x27;s what I&#x27;m hoping for.</p><p>The support I&#x27;ve gotten from colleagues has been genuinely moving. A coworker said something really kind to me recently that I&#x27;ve been holding onto. I got a text the other day that warmed my heart in a way I didn&#x27;t expect. It&#x27;s been a difficult couple of years in a lot of ways, and I am so grateful for the people I have around me. I have a lot to be thankful for.</p><p>I&#x27;m also taking a bit of a break from dating for now. The timing just feels right for focusing on the other things in motion.</p><h2>Umbra</h2><p>My cat Umbra got out of her harness at the park about a month or two ago. I&#x27;ve been trying to get her back — I set up a Have-a-Heart trap in the area with permission from some of the people in the neighborhood, but so far no luck. I miss her a lot. She&#x27;s so shy, and tiny, and fast, and genuinely excellent at hiding, so I really don&#x27;t know when or how she might turn up. But she&#x27;s chipped, so if she ends up at a shelter there&#x27;s a way back to me. I still have a lot of hope for that. I have to keep going with my own life in the meantime, but I haven&#x27;t stopped thinking about her.</p><p>Once I&#x27;ve relocated in August, I&#x27;ll probably adopt another cat. Not as a replacement — there&#x27;s no replacing Umbra — but because having a cat around is something I really want in my life.</p><h2>ClaudeCowork and Language Learning</h2><p>I&#x27;ve been using ClaudeCowork a lot lately and it&#x27;s genuinely incredible. Not just for coding — I&#x27;ve been using it for studying, language learning, regular office tasks, anything where I get stuck and need help pushing through. I&#x27;m learning a lot through vibe coding too, just trying things and seeing what happens and using ClaudeCowork to help me through the moments where I&#x27;d otherwise stall. I&#x27;d honestly recommend it to anyone, not just developers.</p><p>I&#x27;m planning to try getting it to make some Anki flashcards for Cantonese and Mandarin. Accuracy is always a concern with AI-generated language content, which is worth keeping in mind. But for my main 2026 decks — the ones I&#x27;m taking seriously — I&#x27;m sticking to making the cards myself. There&#x27;s something about the process of building a card by hand, deciding what to include, writing it out yourself, that does part of the learning before you&#x27;ve even hit the review queue. AI can be useful for supplemental material, but for the stuff that needs to really stick, I think the manual approach is still better.</p><h2>Getting Off the Cloud</h2><p>I&#x27;ve been methodically moving away from cloud storage — iCloud, Google Photos, OneDrive, Dropbox, all of it. I requested my data from each and archived everything locally. I bought two 5TB external drives last year and they were great investments. Mostly I&#x27;m using them for .mp4 files from DVDs I&#x27;ve ripped, plus photos and general archives.</p><p>I don&#x27;t miss Google Photos as much as I expected to. What I don&#x27;t miss is being shown memories I didn&#x27;t ask for — a random screenshot from three years ago, a photo from a hard period resurfaced as a &quot;memory&quot; because it happened to be taken on this date. The algorithmic surfacing of your own past is something I find draining rather than comforting, and getting away from it has been genuinely good. I have plenty of things I want to remember. I don&#x27;t need an app deciding which ones to surface and when.</p><h2>Social Media</h2><p>I haven&#x27;t had Instagram, Facebook, Snapchat, or TikTok since January. The first few weeks were strange — a real sense of social isolation, reaching for apps that weren&#x27;t there anymore. That passed. What&#x27;s on the other side of it is quieter and, honestly, better. I don&#x27;t regret it at all.</p><p>I&#x27;m still on Bluesky and Mastodon. Those feel different — smaller, less engineered to keep you in them, more like places where conversations actually happen.</p><p>WhatsApp is the one I genuinely don&#x27;t know what to do with. I really wish Meta had never bought it. It&#x27;s the only Meta product I&#x27;m not sure I could leave, purely because of who I need to stay in contact with. It makes me uncomfortable. I don&#x27;t have a resolution for it yet.</p><p>My screen time is still higher than I&#x27;d like, and it&#x27;s mostly YouTube Shorts. Getting sucked into them randomly is the one habit I haven&#x27;t managed to break yet. I really dislike how much the YouTube app pushes Shorts over everything else. It&#x27;s something I try to reduce my non-human notifications generally but plenty still get through. Work in progress.</p><h2>Generally</h2><p>There&#x27;s a lot up in the air right now — work, location, various things still unresolved. I&#x27;m trying to hold that lightly rather than anxiously. Some things just take time. I&#x27;m doing well, and I have good people around me, and that&#x27;s a lot.</p>]]></content:encoded>
    </item>
    <item>
      <title>Why I Love Foldable Phones</title>
      <link>https://www.steven-legg.com/blog/why-i-love-foldable-phones</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/why-i-love-foldable-phones</guid>
      <pubDate>Fri, 15 May 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Technology</category>
      <description>On absolutely loving foldables in every form factor — book-style, flip, tri-fold — Blackberry keyboards, slide-out designs, PDAs, and why foldables are the most fun phones being made.</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/a2194577063eded8de5023d13f8cf5db4931bc3f-1000x707.jpg?w=1200&amp;fit=crop&amp;auto=format" alt="Samsung Galaxy Z Fold 7"></p><p>I absolutely love foldable phones. Not in a &quot;they&#x27;re an interesting experiment&quot; way — I love them enthusiastically, across every form factor, and I think they&#x27;re by far the most fun and charming category of smartphone being made right now. I know they get a lot of hate. I think that hate is mostly wrong, and I&#x27;m going to tell you why.</p><h2>Every Form Factor</h2><p>The book-style bi-fold is the one that gets the most attention, and deservedly so. You open it like a paperback and get a proper tablet-sized display. You close it and it fits in a pocket. The tradeoff for that — some thickness, a price premium, and a crease — is, to my mind, an extremely small price to pay for having significantly more screen in your pocket at virtually no actual size tradeoff when the phone is folded. People talk about the crease as though it&#x27;s some kind of deal-breaker. I genuinely don&#x27;t understand that reaction. After a couple of days of use you stop seeing it completely. It is a non-issue.</p><p>The flip-style fold is a different kind of clever. It takes a full-sized phone and folds it in half so it actually fits in a pocket the way phones used to before screens took over. The outer display, if the manufacturer has bothered to make it properly capable, means you can handle a lot of your day without ever opening the phone. I love the practicality of it and I love the way it looks — there&#x27;s something genuinely charming about a phone that folds like that.</p><p>And then there&#x27;s the tri-fold, which is still very new and very expensive and probably more phone than most people need. I love it anyway. The ambition of it, the fact that someone built it and is selling it — that&#x27;s exciting. The form factors are multiplying, and that&#x27;s a good thing. Book-style bi-fold, flip-style bi-fold, tri-fold: each one is a different answer to the question of what a phone should be able to do, and I&#x27;m genuinely here for all of them.</p><h2>What Good Foldable Software Looks Like</h2><p>The hardware is only part of the story. What makes a foldable actually worth using is what the software does with the fact that the screen folds. OnePlus has done some of the best work here — the way the interface is designed around the fold, the genuinely useful multitasking that takes advantage of the larger canvas, the awareness of the hinge angle so the phone can sit at 90 degrees on a table and behave differently than it does fully open. That&#x27;s software design that&#x27;s been thought through rather than bolted on. It&#x27;s what more manufacturers should be doing.</p><p>This connects to something I think about a lot with phones in general: smartphones should be becoming more like desktop computers. Not in terms of how they look — the UI doesn&#x27;t need to mimic a desktop and probably shouldn&#x27;t — but in terms of what they&#x27;re capable of, how they handle multiple things at once, how seriously they take the idea that you might want to do real work on them. Web apps are already built mobile-first. The hardware and software are capable enough. Foldables are the form factor that actually takes that trajectory seriously.</p><h2>Blackberry Keyboards and Slide-Outs</h2><p>I&#x27;m genuinely excited about the comeback of Blackberry-style physical keyboards on phones. There is something that touchscreen keyboards have never actually replaced about the feel of real keys — the tactile feedback, the muscle memory, typing without looking at your hands. A touchscreen keyboard is fine. A good physical keyboard is better, and the people who learned to type on a Blackberry know exactly what I mean.</p><p>What I really want to see — and I think would be extraordinary — is a foldable that uses a Blackberry Priv-style slide-out keyboard. The Priv had a full touchscreen that slid up to reveal a physical keyboard below it. You got the full-screen experience and the physical keyboard experience in the same device without permanently compromising either. Now imagine that on a book-style foldable. You&#x27;d have the large inner display, the outer display, and a slide-out keyboard as a third input mode. That is a phone I would buy immediately. I don&#x27;t know why nobody is building it.</p><p>The PDA-style layout of the past — smaller screen, keyboard front and centre, more purpose-built tools than smartphone and less pretension than a laptop — still has a real appeal to me. There was a directness to those devices that modern phones have mostly lost in their pursuit of being everything to everyone while looking identical to each other. A foldable with a proper keyboard would get a long way back toward that.</p><h2>What I&#x27;m Actually Using</h2><p>Right now I daily drive both an iPhone Air and a Xiaomi 14T. The 14T is genuinely my preferred device for most things — the camera is better than the iPhone&#x27;s in the real-world situations I&#x27;m actually shooting in, Android with some customisation is less restrictive, and I find myself just liking it more overall. The one thing I do miss is not having a programmable button or a dedicated camera button, both of which the iPhone Air has. That&#x27;s a real gap. But as a camera phone and a daily phone, the 14T is excellent.</p><p>If I were buying a foldable today, it would probably be the Samsung Galaxy Z Fold 7. The Chinese-brand foldables — particularly from some of the companies that don&#x27;t have the same global market presence as Samsung — are also doing very interesting things, often at better prices with hardware that competes seriously. I&#x27;d look at both before deciding.</p><h2>A Note on Nexus</h2><p>I&#x27;ve been thinking lately about the transition from the Nexus line to the Pixel line, and what it represents in the broader sweep of how the industry has moved. The Nexus programme was something genuinely unusual for a company the size of Google: they would hand off the design and manufacture of their flagship Android device to rotating third-party partners — LG, Samsung, HTC, Huawei, Asus, Motorola. Each one brought a different sensibility to the hardware. The Nexus 5 by LG was a near-perfect phone for its time — compact, clean, affordable. The Nexus 6 by Motorola went the other direction, almost absurdly large, but interesting for it. The programme had the quality of an experiment that was still genuinely open about what it was trying to find out.</p><p>What I find compelling about that model in retrospect is the implicit trust it contained. Google trusted external manufacturers to carry their reference vision for Android. Different teams, different approaches, different ideas about what the phone should be. That diversity of perspective produced hardware that felt varied in a way the Pixel line doesn&#x27;t. The Pixel line is more refined and arguably more competent, but it&#x27;s also more controlled — one hardware team, one aesthetic, one house style repeated across successive generations with incremental improvements. It is excellent at what it is, but it is not experimenting.</p><p>The move to Pixel felt, at the time, like a natural maturation. Google taking direct control of the hardware, building the full stack the way Apple does. I understood the logic then and I still understand it. But the thing you lose in that bargain is the openness — the sense that the programme might produce something surprising, something that reflects a vision you didn&#x27;t anticipate. The Nexus line was never safe in that way. The Pixel line almost always is.</p><p>I think this mirrors something that happened across the industry more broadly around the same time. The experimental period of Android hardware — dual-screen phones, sliders, curved backs, modular designs, honest hardware weirdness — gave way to a consolidation around a narrower set of forms. Everyone converged on rectangles with cameras, and then spent years arguing about exactly how many cameras and what millimetre thickness. The Nexus era was the last time a major player openly distributed that question to multiple partners and said: you figure it out. I miss that, even though the Pixel 9 is technically a better phone than any Nexus ever was.</p><h2>In Summary</h2><p>Foldable phones are practical, they&#x27;re space-efficient, they make use of their form factor in ways that flat slabs simply cannot, and they&#x27;re tremendously more fun than anything else being made in the smartphone space right now. The crease is not a problem. The thickness is manageable. The price will come down.</p><p>I find everything about this category charming — the engineering ambition, the different answers to the same problem, the fact that buying a foldable feels like buying something that someone thought hard about rather than something stamped out of a template. The rest of the market has mostly converged on a rectangle. Foldables are still asking interesting questions. That&#x27;s worth a lot.</p>]]></content:encoded>
    </item>
    <item>
      <title>What I Miss from 2014 Smartphones</title>
      <link>https://www.steven-legg.com/blog/what-i-miss-from-2014-smartphones</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/what-i-miss-from-2014-smartphones</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Technology</category>
      <description>A hardware regression thesis: smartphones in 2026 have less than phones from a decade ago, and the industry quietly decided that was fine.</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/aaaeb8342862ef91d5536ddd9830ec7f400f2b5c-800x566.webp?w=1200&amp;fit=crop&amp;auto=format" alt="HTC One M8"></p><p>There is a moment somewhere around 2014–2015 where smartphones had almost everything. Not in a maximalist, check-every-box way — more in the sense that the tradeoffs being made felt deliberate, and the things being included felt chosen by people who actually used their phones. Then, gradually, features started disappearing. And not because anything better replaced them.</p><h2>The HTC One M8</h2><p>The phone I keep coming back to when I think about this is the HTC One M8. It was a remarkable piece of hardware: front-facing BoomSound stereo speakers that genuinely sounded like something, a 3.5mm headphone jack, an IR blaster, a microSD slot, and a build quality that felt expensive in a way most phones don&#x27;t bother with anymore. The aluminium unibody was cohesive rather than showy. It felt like someone had considered the whole object.</p><p>You could hold it with one hand. Not just technically — comfortably. It wasn&#x27;t fighting you. And when you listened to music through it, whether through the speakers or a good pair of wired headphones into its full-size jack, it was actually pleasant. The DAC was real. The audio chain had been considered.</p><p>I&#x27;m not claiming the M8 was perfect. The camera wasn&#x27;t the strongest point. But it made choices, and those choices were for the person holding the phone. That is not the approach most manufacturers are taking now.</p><h2>What We Lost</h2><p>The headphone jack was the first obvious casualty, and the arguments for removing it have never held up. The most common one — that it freed up internal space — has not been reflected in any meaningful improvement to the components that supposedly benefited. Phones didn&#x27;t get dramatically bigger batteries because they cut the jack. The space went to something else, or nowhere visible at all. What disappeared was a zero-latency, universally compatible, non-battery-dependent audio connection that worked with every pair of headphones made in the last sixty years. What arrived in its place was a dongle in the box, and then not even that.</p><p>Front-facing speakers went around the same time or shortly after. Nearly every current flagship has speakers firing out of the bottom edge and the earpiece, which means one of them is pointing at a surface whenever the phone is flat on a table, and neither of them is pointing at you when you&#x27;re watching something in landscape. Stereo front-facing speakers were genuinely better. They just took up space on the front of the phone, and bezels became the enemy.</p><p>The IR blaster is a small one, but it disappeared so completely that most people have forgotten phones ever had them. A good IR blaster turned your phone into a universal remote for every television, projector, air conditioning unit, and set-top box you&#x27;d ever encounter. It required almost no space, used almost no power, and cost almost nothing to include. It&#x27;s gone.</p><p>Removable batteries didn&#x27;t disappear cleanly — they faded. For years there was a reasonable argument that sealed designs allowed for better waterproofing and thinner profiles. But batteries age, and a phone that can have its battery swapped by a user who knows what they&#x27;re doing is a phone that can last five or ten years with care. That&#x27;s not good for replacement cycles. The incentives were never really about the user.</p><p>3D Touch is the one loss that still feels genuinely unresolved. The pressure-sensitive display Apple shipped in the iPhone 6S allowed for a different class of interaction — not a gimmick, a vocabulary. Pressing harder on an app revealed contextual options. Pressing harder on a link previewed it without navigating away. It required hardware that Apple removed in 2019 and replaced with a long-press gesture that is slower and less precise. The reason given was manufacturing complexity. What was lost was a dimension of input.</p><h2>What a Phone Should Be Able to Do in 2026</h2><p>The technology to build a phone that has all of the following exists right now, in 2026. None of it is speculative. Front-facing stereo speakers; a 3.5mm headphone jack connected to a quality DAC and amplifier; a battery large enough that you can go a full day and into the next without thinking about it — we&#x27;re talking 8000 mAh or more, which is possible at current screen sizes if the decision is made to prioritise it; wireless charging; fast wired charging; dual USB-C ports so you can charge and use peripherals at the same time; NFC; a hardware camera shutter button, which several Android manufacturers have started bringing back; a fingerprint sensor under the display or on the side; Face ID; programmable physical buttons that actually do what you tell them to do; a rear camera module that is centred rather than shoved into one corner; good microphones, plural, positioned usefully.</p><p>The reason no phone has all of this is not engineering impossibility. It&#x27;s product segmentation, and the assumption that the consumer who would want all of it is too niche to design for. The result is a market where you have to decide which features you can live without, because no one building phones believes you should have all of them.</p><h2>Where This Leaves Things</h2><p>I don&#x27;t think the situation is going to fix itself. The incentive structures that produced it are still in place, and most consumers have adapted to the missing features rather than demanding them back. The headphone jack discourse has mostly quieted down. 3D Touch is barely remembered. Front-facing speakers are treated as a premium bonus rather than a basic expectation.</p><p>What I do think is that the people who remember what we had are still around, and foldable phones — which I&#x27;ll write about separately — are at least doing something interesting in a landscape that has otherwise converged on a rectangle with a large screen and nothing else to say for itself.</p><p>The M8 was not the best phone ever made. But it was made by people who seemed to think the person holding it had opinions and preferences worth accommodating. That is rarer than it should be.</p>]]></content:encoded>
    </item>
    <item>
      <title>My Recent Return to Linux</title>
      <link>https://www.steven-legg.com/blog/my-recent-return-to-linux</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/my-recent-return-to-linux</guid>
      <pubDate>Mon, 20 Apr 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Technology</category>
      <description>On setting up Windows 11 for my dad (a total nightmare), Fedora KDE as my own daily driver since November, Linux Mint on old hardware, and why Linux is just more fun.</description>
      <content:encoded><![CDATA[<p>I&#x27;ve been running Linux as my primary desktop operating system since November, and I keep waiting for the catch. It hasn&#x27;t come yet. That in itself feels worth writing about.</p><h2>The Windows 11 Experience (Setting Up My Dad&#x27;s Machine)</h2><p>My dad recently got a ThinkPad T480 — a solid machine, great keyboard, the kind of laptop built to last. I was the one who set it up for him, and the experience of installing Windows 11 cleanly, without linking to a Microsoft account, refusing to use cloud services, and then going through the whole debloating process was genuinely exhausting in a way I didn&#x27;t expect.</p><p>Microsoft has made it remarkably difficult to complete a Windows 11 setup as a local-only install. Every screen nudges you toward signing in. The steps to bypass it change between versions, so half the guides online are outdated. And then once you&#x27;re in, the amount of software you didn&#x27;t ask for and don&#x27;t want is significant — removing it properly without breaking things is its own separate project. As someone who uses macOS more regularly than Windows, I was genuinely shocked by how much friction there is in just trying to use the operating system on your own terms. It felt like the OS was constantly trying to negotiate with me about who was in charge.</p><p>I don&#x27;t think Windows is unusable — plenty of people use it without any of these complaints. But if you&#x27;re the kind of person who cares about keeping a system clean, unlinked from cloud accounts you didn&#x27;t ask for, and free of software running in the background for Microsoft&#x27;s benefit rather than yours, Windows 11 requires a real amount of work to get there. That experience reminded me exactly why I&#x27;d moved away from it for my own machine.</p><h2>Fedora KDE — My Daily Driver</h2><p>My own desktop is a ThinkPad T495s, and it&#x27;s been running Fedora with the KDE Plasma desktop since November. I chose Fedora because it tracks upstream packages closely enough that I&#x27;m not running outdated software, but it still ships releases rather than rolling updates, which means I&#x27;m not nervously waiting for a system update to break something. It&#x27;s the right balance for a machine I need to actually work on.</p><p>KDE Plasma is excellent. It&#x27;s configurable to a degree that could feel overwhelming if you tried to do everything at once, but the sensible approach is to just use it and adjust things as they bother you. I&#x27;ve changed a lot from the defaults over time, but nothing required hours of reading or terminal gymnastics. Things mostly just work the way you&#x27;d want them to, and when they don&#x27;t, fixing it is usually quick and satisfying rather than a deep dive into documentation.</p><p>Compared to macOS — which I still use regularly and genuinely like — Fedora KDE is snappier and considerably more customisable. macOS has a kind of enforced tidiness that I appreciate on its own terms, but Fedora feels like it&#x27;s on my side in a way that macOS doesn&#x27;t always. Less guided, more honest. I still pick up a Mac without friction; the familiarity is real. But the desktop I actually prefer working on is the T495s.</p><p>What I keep having to explain to people who haven&#x27;t tried a modern Linux desktop in a while is that the gap between &quot;it works&quot; and &quot;it works well&quot; has basically closed. Commands I learned on Debian and Arch have started to fade — I&#x27;ve just gotten so used to Fedora&#x27;s way of doing things that I&#x27;ve stopped thinking about it, which is a pretty good sign.</p><h2>Linux Mint on the 2009 MacBook</h2><p>I have a 2009 MacBook that Apple dropped support for years ago. It still runs. I put Linux Mint on it, and it works — not fast, but genuinely usable. The fact that a machine this old can boot to a functional desktop and do real work is one of those things I find quietly remarkable. macOS moved on from this hardware long before the hardware had any reason to stop. Linux Mint didn&#x27;t, and that matters.</p><p>Mint has always been my go-to recommendation for people who want something stable and approachable — it earns that reputation. I&#x27;ve been curious lately about Linux Mint Debian Edition, which tracks Debian stable rather than Ubuntu LTS. The appeal is a longer support window and slightly different relationship to upstream. I haven&#x27;t tried it on the MacBook yet but it&#x27;s on the list.</p><h2>Steam and Games</h2><p>This is nothing to do with my dad&#x27;s machine — he doesn&#x27;t game. This is about my own setup on the T495s. And I have to be honest: I was actually a bit surprised by the lack of Linux game support on Steam. I could have sworn the list of compatible games was longer than it currently is — maybe I&#x27;m remembering earlier coverage of Proton more generously than the reality warrants, or maybe the library I personally care about just has a higher proportion of titles that don&#x27;t work. Either way, it was more limited than I expected going in, and that&#x27;s worth acknowledging rather than glossing over.</p><p>On the hardware side of Valve&#x27;s ecosystem: I owned the original Steam Controller back in the day and I have real affection for it. The dual trackpads and haptic feedback gave it a kind of flexibility that standard controllers don&#x27;t have, particularly for games that weren&#x27;t built for a controller at all. Valve keeps trying things that nobody else does, and I respect that even when the experiments don&#x27;t fully land.</p><p>The newest Steam Machine is something I haven&#x27;t had a chance to research properly yet, so I won&#x27;t pretend otherwise. What I can say is that the concept is compelling to me — not because it competes on raw price-per-performance with a self-built PC, but because you&#x27;re buying a cohesive, living-room-ready Linux gaming machine, and right now PC parts are expensive enough that the value comparison isn&#x27;t as one-sided as it would have been a few years ago. I&#x27;d like to look at it more carefully. The concept of a Steam Machine has always made sense to me even when the execution was rough.</p><h2>Hardware Preferences</h2><p>I&#x27;ve become increasingly partial to AMD CPUs — the Linux driver support has been more consistent in my experience, and they&#x27;re genuinely good value. For any new build or purchase, AMD would be my first look.</p><p>ThinkPads are the other thing I keep coming back to. The keyboards are excellent by laptop standards, the build quality is serious, and older models in particular are built to be repaired — battery swaps, RAM upgrades, thermal paste replacements — in a way that extends their useful life well beyond what most laptops manage. Both the T480 and the T495s are good examples of that. They&#x27;re not glamorous but they&#x27;re solid, and I&#x27;d rather have solid.</p><h2>Where Things Stand</h2><p>I&#x27;m not going back to Windows as a daily driver. Fedora KDE is just better for how I want to use a computer — more responsive, more mine, more honest about what it&#x27;s doing. The things I expected to miss (certain software, some compatibility) turned out either not to matter or to have straightforward alternatives. I still reach for a Mac regularly and enjoy it. But the machine I actually want to sit down at is running Linux.</p><p>It&#x27;s also more fun, which I didn&#x27;t fully anticipate. There&#x27;s something about a system that actually responds to configuration — where changing things has a visible effect and the machine feels like it&#x27;s cooperating rather than tolerating you — that makes the daily experience of using a computer better. I notice the machine more. That&#x27;s not a complaint.</p>]]></content:encoded>
    </item>
    <item>
      <title>Fedora KDE — My Experience</title>
      <link>https://www.steven-legg.com/blog/fedora-kde-my-experience</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/fedora-kde-my-experience</guid>
      <pubDate>Sat, 18 Apr 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Technology</category>
      <description>Personal notes on using Fedora KDE as a daily driver on a ThinkPad T495s — why it&#39;s the setup I&#39;ve landed on.</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/bb1ff62974c31ebce1056d58a80612fd1fbbc571-1215x763.png?w=1200&amp;fit=crop&amp;auto=format" alt="Fastfetch output on Fedora KDE"></p><p>Fedora KDE is the Linux distribution I&#x27;ve landed on and the one I&#x27;ve enjoyed using the most. It feels like an unlocked version of macOS — clean, coherent, honest about what it&#x27;s doing — or just a well-built operating system that cooperates with you rather than tolerating you.</p><h2>The Machine</h2><p>I run it on a ThinkPad T495s. ThinkPads are the laptops I keep coming back to — excellent keyboards, solid build quality, and older models are designed to be repaired rather than discarded. The T495s in particular has good AMD CPU support on Linux, and the experience has been smooth.</p><p>The one issue with my T495s: the Enter key is failing. It was already intermittent when I ordered it from eBay, and I judged it a good enough deal not to return. At some point I&#x27;ll either do the keyboard repair myself or bring it to a shop — I&#x27;m thinking about purchasing the replacement part ahead of time before going to a shop, which might save some money on labour. It&#x27;s a known ThinkPad repair: the keyboards are user-replaceable, which is exactly the kind of thing I value about this hardware.</p><h2>Why Fedora</h2><p>I chose Fedora because it hits the right balance between current and stable. It tracks upstream packages closely enough that I&#x27;m not running outdated software, but it ships versioned releases rather than rolling updates — which means I&#x27;m not nervously watching every system update to see if something breaks. It&#x27;s the responsible middle path.</p><p>Fedora also has strong AMD support out of the box, which matters on the T495s. The kernel is recent enough that hardware that would have required manual driver configuration a few years ago just works.</p><h2>Why KDE Plasma</h2><p>KDE Plasma is the desktop environment I&#x27;ve been happiest with. It&#x27;s configurable to a degree that could feel overwhelming, but the sensible approach is just to use it and adjust things as they bother you. I&#x27;ve changed a lot from the defaults over time, but it never required deep dives into configuration files or hours of reading documentation. Things mostly work the way you&#x27;d expect, and when they don&#x27;t, fixes are usually quick.</p><p>I&#x27;ve tried other desktop environments. GNOME is not for me — it has a specific vision for how you should use a computer, and that vision doesn&#x27;t match mine. Hyprland and tiling window managers in general are interesting but I don&#x27;t want to manage a window manager as a hobby. XFCE I genuinely like — it&#x27;s fast, lightweight, and unpretentious — but KDE gives me more capability without much more overhead.</p><p>I liked Ubuntu when it used the Unity desktop. The current GNOME Ubuntu doesn&#x27;t appeal to me the same way. Unity had a logic to it that worked. GNOME as Ubuntu ships it feels like a compromise in the wrong direction.</p><h2>Day-to-Day</h2><p>Commands I learned on Debian and Arch have started to fade from muscle memory — I&#x27;ve just gotten used to Fedora&#x27;s way of doing things. That&#x27;s probably the best sign that a system is working: you stop thinking about it.</p><p>Compared to macOS, which I still use and genuinely like, Fedora KDE is snappier and considerably more mine. macOS has an enforced tidiness that I appreciate on its own terms, but the machine I actually want to sit down at is the T495s. Less guided, more honest. The desktop I&#x27;ve enjoyed the most out of everything I&#x27;ve tried.</p>]]></content:encoded>
    </item>
    <item>
      <title>Fedora KDE Guide</title>
      <link>https://www.steven-legg.com/blog/fedora-kde-guide</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/fedora-kde-guide</guid>
      <pubDate>Thu, 16 Apr 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Technology</category>
      <description>Most useful tips and tricks for Fedora KDE — setup, DNF, RPM Fusion, Flatpak, KDE configuration, and performance tweaks.</description>
      <content:encoded><![CDATA[<p>This is an abbreviated practical guide for getting the most out of Fedora KDE. It covers the things I actually use — package management, enabling extra repos, Flatpak, useful KDE tweaks, and a few quality-of-life settings worth knowing about.</p><h2>DNF — Fedora&#x27;s Package Manager</h2><p>DNF is the command-line package manager. Most things you&#x27;ll need are available through it.</p><p>sudo dnf install firefox&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # install a package<br/>sudo dnf remove firefox&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # remove a package<br/>sudo dnf update&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # update all installed packages<br/>sudo dnf search vlc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # search for a package<br/>sudo dnf info vlc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # see package details<br/>sudo dnf list installed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # list everything installed<br/>sudo dnf autoremove&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # remove unused dependencies<br/>sudo dnf clean all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # clear the package cache</p><p>Make DNF faster by adding this to <code>/etc/dnf/dnf.conf</code>:</p><p>fastestmirror=True<br/>max_parallel_downloads=10<br/>defaultyes=True</p><p>Placeholder — screenshot of dnf update.</p><h2>Enable RPM Fusion</h2><p>RPM Fusion provides packages that Fedora can&#x27;t ship for licensing or patent reasons — most importantly, multimedia codecs and some proprietary drivers.</p><p>sudo dnf install \<br/>&nbsp; https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \<br/>&nbsp; https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm</p><p>After enabling RPM Fusion, install multimedia codecs:</p><p>sudo dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 \<br/>&nbsp; gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel<br/>sudo dnf install lame\* --exclude=lame-devel<br/>sudo dnf group upgrade --with-optional Multimedia</p><h2>Flatpak and Flathub</h2><p>Flatpak is enabled by default on Fedora KDE. Add the Flathub repository to get access to the full app library:</p><p>flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo</p><p>Then install apps from Flathub via terminal or the Discover software centre:</p><p>flatpak install flathub org.signal.Signal<br/>flatpak install flathub md.obsidian.Obsidian<br/>flatpak install flathub net.ankiweb.Anki<br/>flatpak install flathub org.blender.Blender<br/>flatpak install flathub org.kde.kdenlive<br/>flatpak install flathub org.darktable.Darktable</p><p>Update all Flatpak apps:</p><p>flatpak update</p><h2>KDE Plasma Tweaks Worth Making</h2><h3>Single-Click vs Double-Click to Open Files</h3><p>By default KDE opens files with a single click, which surprises people used to other desktops. To change it: <strong>System Settings → Workspace Behaviour → General Behaviour → Clicking files or folders → &quot;Selects them&quot;</strong>.</p><h3>Global Theme</h3><p><strong>System Settings → Appearance → Global Theme</strong> — download and apply new themes from here. Breeze Dark is the default dark theme and is fine; there are many community alternatives.</p><h3>Virtual Desktops</h3><p>KDE&#x27;s virtual desktops are excellent. Set them up at <strong>System Settings → Workspace → Virtual Desktops</strong>. Switch between them with Ctrl + F1, Ctrl + F2, etc., or with keyboard shortcuts you define.</p><h3>KRunner</h3><p>Press Alt + Space to open KRunner — a quick launcher that searches apps, files, web, calculations, and more. It&#x27;s like Spotlight but more configurable. Configure its plugins at <strong>System Settings → Search → KRunner</strong>.</p><h3>Disable Baloo File Indexer (Optional)</h3><p>Baloo indexes your files for search. If you don&#x27;t need desktop search and want to reduce background disk activity:</p><p>balooctl disable</p><p>Placeholder — KDE System Settings.</p><h2>Useful Packages to Install</h2><p>sudo dnf install vim neovim git htop neofetch fastfetch \<br/>&nbsp; curl wget unzip p7zip p7zip-plugins \<br/>&nbsp; ffmpeg vlc mpv \<br/>&nbsp; gnome-disk-utility&nbsp; # useful GUI disk tool even on KDE</p><h2>Firmware Updates via fwupd</h2><p>Fedora includes <code>fwupd</code> for firmware updates on supported hardware (many ThinkPads included):</p><p>sudo fwupdmgr refresh<br/>sudo fwupdmgr get-updates<br/>sudo fwupdmgr update</p><h2>System Info and Monitoring</h2><p>fastfetch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # quick system summary (CPU, RAM, OS, kernel)<br/>neofetch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # similar, with ASCII art<br/>htop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # interactive process monitor<br/>df -h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # disk usage<br/>free -h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # RAM usage<br/>lscpu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # CPU information<br/>lsblk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # list block devices / drives<br/>journalctl -xe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # view system logs (recent errors)</p><h2>Terminal Tips</h2><p>Fedora KDE ships with Konsole as the default terminal. A few useful things:</p><p>cd ~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # home directory<br/>cd -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # go back to the previous directory<br/>!!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # repeat the last command<br/>sudo !!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # repeat the last command with sudo<br/>ctrl + r&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # search command history<br/>alias ll=&#x27;ls -la&#x27;&nbsp;&nbsp; # create a shortcut (add to ~/.bashrc to persist)</p><p>To make aliases permanent, add them to <code>~/.bashrc</code> (bash) or <code>~/.zshrc</code> (zsh) and run <code>source ~/.bashrc</code>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Arch Linux</title>
      <link>https://www.steven-legg.com/blog/arch-linux</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/arch-linux</guid>
      <pubDate>Sun, 12 Apr 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Technology</category>
      <description>Notes on Arch Linux — installing it, using Manjaro, and why I moved on.</description>
      <content:encoded><![CDATA[<p>I&#x27;ve installed Arch before. I can&#x27;t claim I&#x27;ve ever really used it as a daily driver — going through the installation is something of a rite of passage in the Linux world, and I&#x27;ve done it, but I&#x27;ve never committed to it long-term for everyday use.</p><p>The Arch-based distro I actually used for an extended period was Manjaro. Manjaro takes the Arch base and makes it more approachable — it ships with a graphical installer, handles driver configuration more automatically, and gives you access to the AUR without having to set everything up yourself. That&#x27;s genuinely useful. The problem is that Manjaro has a reputation for being breakable, and in my experience that reputation is earned. Holding back packages from Arch&#x27;s rolling release and then pushing them in batches creates a different kind of instability than you&#x27;d expect — not the instability of always running bleeding-edge, but the instability of timing mismatches and delayed dependency updates. Several people I know have had similar experiences with it. It&#x27;s a fine distribution for getting into the Arch ecosystem, but it&#x27;s not one I&#x27;d trust with a machine I rely on.</p><p>Arch proper, installed and maintained correctly, is a different story — genuinely stable for people who know what they&#x27;re doing. It&#x27;s just not where I&#x27;ve ended up. For daily use I&#x27;m on Fedora KDE. If I need something I know will work reliably without drama on uncertain hardware, I install Linux Mint.</p><p>Desktop environment preferences: I like XFCE a lot — it&#x27;s lightweight, fast, and does exactly what you ask without getting in the way. I preferred Ubuntu when it used the Unity desktop; the current GNOME setup has never clicked with me. GNOME is fine, I just don&#x27;t enjoy using it. Hyprland and tiling window managers in general are not for me — I understand the appeal and I&#x27;ve tried them, but I don&#x27;t want to manage a window manager as a hobby. KDE Plasma on Fedora is where I&#x27;ve landed, and it&#x27;s the setup I&#x27;ve enjoyed the most by a significant margin.</p>]]></content:encoded>
    </item>
    <item>
      <title>macOS</title>
      <link>https://www.steven-legg.com/blog/macos</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/macos</guid>
      <pubDate>Fri, 10 Apr 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Technology</category>
      <description>Getting started with macOS Tahoe 26: useful commands, favourite apps, input methods, Homebrew, privacy setup, Time Machine, and drive formatting.</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/b360bd919169448c71af23073ab70ef005ba8fe1-1733x1292.png?w=1200&amp;fit=crop&amp;auto=format" alt="iMac G3 in Bondi Blue — an iconic translucent all-in-one Mac from 1998"></p><p>iMac G3 (1998). Image via MacRumors Forums.</p><p>macOS Tahoe (26) is Apple&#x27;s current desktop operating system. This is a practical guide covering the things I actually use and care about — useful terminal commands, my favourite apps, input methods, Homebrew, and how to run a Mac without handing everything over to Apple&#x27;s cloud ecosystem.</p><h2>Useful Terminal Commands</h2><p>Open Terminal via Spotlight: ⌘ Space, type <em>Terminal</em>, press Enter.</p><h3>Filesystem Navigation</h3><p>cd ~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # go to your home folder<br/>cd /&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # go to root<br/>cd Documents&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # enter a subfolder<br/>cd ..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # go up one level<br/>cd ../..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # go up two levels<br/>ls&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # list files in current directory<br/>ls -la&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # list all files including hidden, with details<br/>pwd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # print working directory (where am I?)<br/>open .&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # open current folder in Finder</p><p>Placeholder — add a screenshot of your terminal here.</p><h3>File and Folder Operations</h3><p>touch filename.txt&nbsp;&nbsp;&nbsp;&nbsp; # create an empty file<br/>mkdir foldername&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # create a new directory<br/>mkdir -p a/b/c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # create nested directories<br/>rm filename.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # delete a file (no trash — gone permanently)<br/>rm -r foldername&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # delete a folder and everything inside<br/>cp source dest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # copy a file<br/>mv source dest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # move or rename a file<br/>nano filename.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # open a file in the nano text editor</p><h3>Copying Pathnames</h3><p>To copy a full file path to your clipboard, there are three approaches:</p><p><strong>From Finder:</strong> right-click a file, hold ⌥ Option and the menu item changes from &quot;Copy&quot; to <em>&quot;Copy [filename] as Pathname&quot;</em> — click it.</p><p><strong>Drag into Terminal:</strong> drag any file from Finder directly into an open Terminal window. macOS will paste the full path at the cursor position.</p><p><strong>Via command line:</strong> navigate to the file and run <code>pwd</code> to get the directory, then combine:</p><p>echo &quot;$(pwd)/filename.txt&quot; | pbcopy&nbsp;&nbsp; # copies full path to clipboard</p><p>Placeholder — screenshot of the Finder &quot;Copy as Pathname&quot; option.</p><h3>Other Handy Commands</h3><p>cat filename.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # print file contents<br/>grep &quot;word&quot; file.txt&nbsp;&nbsp; # search for text inside a file<br/>grep -r &quot;word&quot; .&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # search recursively in all files here<br/>which python3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # find where a program lives<br/>man ls&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # read the manual for any command (q to quit)<br/>history&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # see your command history<br/>clear&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # clear the terminal screen<br/>⌃ C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # (Ctrl+C) cancel the current running command</p><h2>Homebrew</h2><p>Homebrew is the package manager macOS is missing out of the box. It lets you install command-line tools and desktop apps from the terminal without touching the App Store.</p><h3>Installation</h3><p>Paste the following into Terminal (this is the official one-liner from brew.sh):</p><p>/bin/bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&quot;</p><p>After installation, follow any instructions it prints to add Homebrew to your PATH. On Apple Silicon Macs it typically tells you to add a line to your <code>~/.zprofile</code>.</p><p>Placeholder — screenshot of Homebrew installing.</p><h3>Using Homebrew</h3><p>brew install wget&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # install a CLI tool<br/>brew install --cask firefox # install a desktop app (GUI)<br/>brew update&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # update Homebrew itself<br/>brew upgrade&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # upgrade all installed packages<br/>brew list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # list everything installed<br/>brew search ffmpeg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # search for a package<br/>brew uninstall wget&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # remove a package<br/>brew doctor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # check for problems<br/>brew cleanup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # remove old cached downloads</p><p>The <code>--cask</code> flag is for GUI desktop apps (things you&#x27;d normally drag into Applications). Without it, you get CLI tools.</p><h2>My Favourite Apps</h2><p>These are the apps I actually use. Install most of them via Homebrew or their official sites:</p><p><strong>Firefox</strong> — my browser of choice. Not Chrome (ever), not Safari (only if battery life is an absolute top priority). Firefox respects privacy, has excellent extension support, and doesn&#x27;t feed a surveillance advertising machine.</p><p>brew install --cask firefox</p><p><strong>Claude (Cowork)</strong> — AI assistant with a desktop client that works across files and tasks.</p><p><strong>Signal</strong> — end-to-end encrypted messaging. What I use for anything that matters.</p><p>brew install --cask signal</p><p><strong>Discord</strong> — for communities, servers, and voice chat.</p><p>brew install --cask discord</p><p><strong>Anki</strong> — spaced repetition flashcard software. The best tool for learning and retaining vocabulary, facts, anything that requires long-term memory. Client-side, your decks are yours.</p><p>brew install --cask anki</p><p><strong>Obsidian</strong> — local-first Markdown note-taking. All your notes are plain <code>.md</code> files on disk. No account required, no cloud lock-in by default.</p><p>brew install --cask obsidian</p><p><strong>Notion</strong> — for project management and collaborative docs when needed.</p><p>brew install --cask notion</p><p><strong>Blender</strong> — free, open-source 3D modelling and animation. Remarkably capable.</p><p>brew install --cask blender</p><p><strong>Kdenlive</strong> — free, open-source video editor. My go-to for video work on all platforms.</p><p>brew install --cask kdenlive</p><p><strong>Darktable</strong> — free, open-source RAW photo editor and library manager. A genuine Lightroom alternative.</p><p>brew install --cask darktable</p><p><strong>Voice Memos</strong> (Apple, pinned) — the one Apple app I keep in the Dock. Quick audio recording that syncs locally. Pin it to your Dock: open Launchpad, find Voice Memos, and drag it to the Dock.</p><p><strong>ProtonVPN</strong> — trustworthy, open-source audited VPN from the Proton team.</p><p>brew install --cask protonvpn</p><h2>Adding Input Methods</h2><p>Go to <strong>System Settings → Keyboard → Text Input → Edit…</strong> (or the &quot;+&quot; button in the input sources list). Search for and add:</p><p><strong>Cantonese (Jyutping)</strong> — search &quot;Cantonese&quot;, select <em>Cantonese — Jyutping</em>.</p><p><strong>Mandarin (Pinyin)</strong> — search &quot;Chinese&quot;, select <em>Chinese, Simplified — Pinyin</em>.</p><p><strong>Turkish (Turkey)</strong> — search &quot;Turkish&quot;, select <em>Turkish</em>.</p><p><strong>Spanish (Latin America)</strong> — search &quot;Spanish&quot;, select <em>Spanish — Latin America</em>.</p><p><strong>German (Germany)</strong> — search &quot;German&quot;, select <em>German</em>.</p><p><strong>Colemak</strong> — search &quot;Colemak&quot;, select <em>Colemak</em>.</p><p>Switch between input methods with ⌃ Space (Control + Space) or by clicking the input menu in the menu bar.</p><p>Placeholder — screenshot of input sources list with all methods added.</p><h2>Running macOS Without iCloud or an Apple ID</h2><p>You can use macOS entirely without signing in to an Apple ID or iCloud. Here&#x27;s how to keep it that way.</p><h3>Skip Sign-In During Setup</h3><p>When setting up a new Mac, look for <em>&quot;Set Up Later&quot;</em> or <em>&quot;Sign In Later&quot;</em> at the Apple ID screen. This creates a local account with no cloud association.</p><h3>Disable iCloud If Already Signed In</h3><p>Go to <strong>System Settings → [Your Name]</strong> and sign out. Before signing out, macOS will ask what to keep on the device — choose to keep everything locally. Then confirm sign-out.</p><h3>Turn Off All iCloud Services</h3><p>In <strong>System Settings → Apple ID → iCloud</strong>, disable everything: iCloud Drive, Photos, Contacts, Calendars, Reminders, Safari, Keychain, News, Stocks, Home, Wallet, and iCloud Backup. Toggle each one off. If you&#x27;re not signed in, none of these run.</p><h3>Disable Siri and Analytics</h3><p>Go to <strong>System Settings → Siri &amp; Spotlight</strong> — turn off &quot;Ask Siri&quot;. Then go to <strong>System Settings → Privacy &amp; Security → Analytics &amp; Improvements</strong> — turn off everything listed. Also check <strong>Privacy &amp; Security → Apple Advertising</strong> and turn off personalised ads.</p><h3>Disable Spotlight Suggestions</h3><p>In <strong>System Settings → Siri &amp; Spotlight → Spotlight</strong>, uncheck &quot;Spotlight Suggestions&quot; and &quot;Allow Spotlight Suggestions in Look Up&quot;. This stops Spotlight from sending search queries to Apple&#x27;s servers.</p><p>Placeholder — screenshot of Analytics &amp; Improvements with everything turned off.</p><h2>Time Machine Backup</h2><p>Time Machine is Apple&#x27;s built-in backup system and the only cloud-free backup I use on macOS. It keeps hourly snapshots, daily backups, and weekly backups, automatically culling old ones as the drive fills up. You need an external drive.</p><h3>Setting It Up</h3><p>Connect an external drive. Go to <strong>System Settings → General → Time Machine</strong>. Click <strong>&quot;Add Backup Disk…&quot;</strong> and select your external drive. macOS will ask if you want to erase and reformat the drive — let it format as APFS (see the drive formatting section below for why). Once added, Time Machine begins its first backup within the hour.</p><p>Enable &quot;Back Up Automatically&quot; so backups run without you having to think about them. The first backup will be large and slow; subsequent ones are incremental and fast.</p><p>Placeholder — screenshot of Time Machine settings with a backup disk configured.</p><h3>Restoring Files</h3><p>To restore individual files: open the folder you want in Finder, then open Time Machine from the menu bar. Use the timeline on the right to travel back in time. Click a file and press <em>Restore</em>. For a full system restore, boot into macOS Recovery (⌘ R on Intel / hold the power button on Apple Silicon during startup) and choose <em>Restore from Time Machine</em>.</p><h2>Drive Formatting and Cross-Platform Compatibility</h2><p>macOS&#x27;s Disk Utility (<strong>Applications → Utilities → Disk Utility</strong>) is where you format drives. Understanding which filesystem to use — and the limitations of each — saves a lot of frustration when working across operating systems.</p><h3>APFS (Apple File System)</h3><p>APFS is Apple&#x27;s native filesystem introduced in 2017, optimised for SSDs but also works on HDDs. It supports snapshots (what Time Machine uses), cloning, strong encryption, and space sharing between volumes. Use APFS for any drive that will only ever be used with macOS. It is the right choice for your Time Machine backup disk, your startup drive, and any Mac-only external storage.</p><p>Windows and Linux cannot natively read APFS volumes. There are third-party tools (like APFS for Windows by Paragon) but they&#x27;re paid and not universal. If you need to share a drive with other OSes, APFS is the wrong choice.</p><h3>exFAT</h3><p>exFAT is the best choice for a drive you want to share between macOS, Windows, and Linux. All three can read and write it natively without extra software. No file size limit (unlike FAT32). No journaling, so it&#x27;s less robust — power loss during a write can corrupt the filesystem — but for a USB drive you&#x27;re using to transfer files, it&#x27;s fine.</p><h3>FAT32</h3><p>FAT32 is the old universal standard. macOS, Windows, and Linux all read and write it, and it&#x27;s compatible with almost everything (cameras, car stereos, game consoles). The critical limitation: <strong>individual files cannot exceed 4 GB</strong>. This matters if you&#x27;re moving video files. It also has a maximum partition size of 2 TB. For modern use, exFAT is almost always better unless you need compatibility with very old or embedded devices.</p><h3>NTFS (Windows)</h3><p>NTFS is Windows&#x27; native filesystem. macOS can <strong>read</strong> NTFS drives but <strong>cannot write to them</strong> without third-party software (e.g. Paragon NTFS for Mac, Tuxera, or the free but less stable <code>ntfs-3g</code> via Homebrew). Linux reads and writes NTFS natively through the <code>ntfs-3g</code> driver. If someone hands you an NTFS drive, you can copy files off it on a Mac but you can&#x27;t add or change files without extra software. If you&#x27;re running Windows 11, NTFS is the expected filesystem for internal and external drives — don&#x27;t reformat it unless you have a reason.</p><h3>Btrfs (Fedora / Linux)</h3><p>Btrfs (B-tree filesystem) is the default filesystem on Fedora 43 KDE and several other modern Linux distributions. It is comparable to APFS in capability — it supports copy-on-write snapshots, transparent compression, checksums, and RAID. macOS has <strong>no native Btrfs support</strong> — you cannot read or write a Btrfs volume on a Mac without installing a third-party driver, which is not widely available or reliable. Windows also has no native Btrfs support. If you have a Linux drive formatted as Btrfs and want to access it on a Mac or Windows machine, you need to either: boot into Linux to copy the files first, or use a Linux live USB and copy to an exFAT intermediate drive. For a shared drive between macOS and Fedora, use exFAT.</p><h3>Quick Reference</h3><p>Filesystem macOS Windows 11 Fedora 43 KDE Best use case APFS Read / Write No (paid tools) No (limited) Mac-only drives, Time Machine exFAT Read / Write Read / Write Read / Write Cross-platform USB / SD cards FAT32 Read / Write Read / Write Read / Write Legacy / embedded devices (4 GB file limit) NTFS Read only Read / Write Read / Write Windows drives (avoid on Mac without tools) Btrfs No No Read / Write Linux-only (default on Fedora) Placeholder — Disk Utility&#x27;s format dropdown when erasing a drive.</p>]]></content:encoded>
    </item>
    <item>
      <title>Linux Mint</title>
      <link>https://www.steven-legg.com/blog/linux-mint</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/linux-mint</guid>
      <pubDate>Wed, 08 Apr 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Technology</category>
      <description>Notes on Linux Mint — the go-to when compatibility or drivers are uncertain.</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/11cf16f9f11b5fb2964b79977f2de65a644fcc4e-1505x1082.png?w=1200&amp;fit=crop&amp;auto=format" alt="Linux Mint"></p><p>Linux Mint is my go-to recommendation for anyone moving to Linux for the first time, and it&#x27;s the first thing I install when I&#x27;m not sure whether a piece of hardware is going to cooperate. When I&#x27;m skeptical about driver support or compatibility, I install Mint — it&#x27;s the distribution that consistently just works.</p><p>The Cinnamon desktop is familiar enough that people coming from Windows or macOS don&#x27;t feel disoriented. The installer is friendly. The default application selection is sensible. It doesn&#x27;t try to be clever. These are virtues.</p><p>I have a 2009 MacBook that Apple dropped support for long ago. Linux Mint runs on it. It&#x27;s not fast, but it&#x27;s genuinely functional — a machine that was abandoned by its original operating system years back still boots to a working desktop and does real tasks. That kind of longevity is one of the things I value most about Linux in general, and Mint exemplifies it.</p><p>I&#x27;ve also been curious about Linux Mint Debian Edition (LMDE), which tracks Debian stable rather than Ubuntu LTS. The appeal is a longer support window and a slightly different relationship to the upstream packages. I haven&#x27;t switched to it yet but it&#x27;s on the list.</p><p>For everyday use on a machine I care about, I&#x27;m on Fedora KDE. But Linux Mint is the distribution I trust without thinking for hardware that needs to work and hardware that other distributions sometimes struggle with. It earns its reputation every time.</p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft Windows 11</title>
      <link>https://www.steven-legg.com/blog/windows-11-guide</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/windows-11-guide</guid>
      <pubDate>Sun, 05 Apr 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Technology</category>
      <description>How to install Windows 11 without a Microsoft account, debloat it, disable Copilot and telemetry, and use the terminal effectively.</description>
      <content:encoded><![CDATA[<h2>Installing Windows 11 Without a Microsoft Account</h2><p>Microsoft pushes hard to get you signed into a Microsoft account during setup, but a fully local account is still possible and keeps your data entirely on your machine — no OneDrive, no cloud sync you didn&#x27;t ask for. There are two reliable methods.</p><h3>Method 1 — Rufus (Recommended, Before Install)</h3><p>This is the cleanest approach and removes the requirement before you even boot the installer. Download Rufus (a free USB creation tool) and your Windows 11 ISO from microsoft.com/software-download/windows11. When writing the ISO to a USB drive, Rufus asks whether you want to customise the installation — enable all three of these options:</p><ul><li><strong>Remove requirement for an online Microsoft account</strong></li><li><strong>Remove requirement for Secure Boot and TPM 2.0</strong> (useful for older hardware)</li><li><strong>Disable data collection</strong> (sets all telemetry answers to No automatically)</li></ul><p>Install Windows from that USB as normal. During Out-of-Box Experience (OOBE), you&#x27;ll reach a local account creation screen directly — no fake email tricks needed.</p><h3>Method 2 — No-Internet Bypass (During OOBE)</h3><p>If you&#x27;re doing a live install without Rufus, disconnect from the internet (unplug ethernet, don&#x27;t join Wi-Fi) before the &quot;Sign in with Microsoft&quot; screen appears. Windows will then show an <strong>&quot;I don&#x27;t have internet&quot;</strong> option. Click it, then <strong>&quot;Continue with limited setup&quot;</strong>, and you&#x27;ll be taken to a local account creation screen.</p><p>If the option doesn&#x27;t appear (some Windows 11 Home versions hide it), open a command prompt during OOBE by pressing Shift + F10 and run:</p><p>OOBE\BYPASSNRO</p><p>The system will restart and re-enter OOBE with the &quot;I don&#x27;t have internet&quot; path restored.</p><h3>What to Skip During Setup</h3><p>During initial setup, decline or set to &quot;No&quot; / &quot;Basic&quot; everything. Key screens to watch for: <strong>privacy settings</strong> (turn all toggles off), <strong>location</strong> (off), <strong>diagnostic data</strong> (select &quot;Required only&quot;), <strong>inking and typing improvement</strong> (off), <strong>tailored experiences</strong> (off), <strong>advertising ID</strong> (off), and <strong>OneDrive backup</strong> (click &quot;Not now&quot; or &quot;Only save files to this PC&quot;).</p><h2>First Things to Do After Install</h2><p>Before doing anything else, open <strong>Windows Update</strong> (Settings → Windows Update) and install all available updates including optional driver updates. Reboot fully. Then work through the sections below.</p><h3>Install Windows Terminal and winget</h3><p>Winget comes pre-installed on Windows 11 but may need an update. Open <strong>Windows Terminal</strong> or <strong>PowerShell</strong> and run:</p><p>winget upgrade --all</p><p>Winget lets you install and update software from the command line without visiting browser download pages — similar to <code>brew</code> on macOS or <code>dnf</code> on Fedora. Install Windows Terminal if it&#x27;s not already present:</p><p>winget install Microsoft.WindowsTerminal</p><p>Windows Terminal is the modern, tabbed terminal for Windows. It supports PowerShell, Command Prompt, and WSL tabs in the same window. Pin it to your taskbar — you&#x27;ll use it often.</p><p>Install your preferred apps quickly via winget. For example:</p><p>winget install Mozilla.Firefox<br/>winget install Obsidian.Obsidian<br/>winget install Audacity.Audacity<br/>winget install GIMP.GIMP<br/>winget install darktable.darktable<br/>winget install KDE.Kdenlive<br/>winget install Notion.Notion</p><h2>Debloating Windows 11</h2><p>A stock Windows 11 install ships with a significant amount of bloatware and invasive features. The sections below address each category.</p><h3>Chris Titus Tech WinUtil (Recommended All-in-One Tool)</h3><p>The fastest way to debloat and configure Windows 11 in one pass is <strong>WinUtil</strong> by Chris Titus Tech — an open-source PowerShell-based tool with a simple GUI. Run it in an <strong>Administrator</strong> PowerShell window:</p><p>irm christitus.com/win | iex</p><p>The tool opens a GUI where you can install applications, run debloat presets (removes most Microsoft bloatware in one click), apply tweaks (disable telemetry, enable dark mode, disable Bing search in Start), and fix Windows Update settings. The source code is publicly auditable on GitHub.</p><h3>Remove Pre-installed Bloatware Apps Manually</h3><p>Uninstall unwanted stock apps via <strong>Settings → Apps → Installed apps</strong>. Apps you can safely remove include: Candy Crush, Clipchamp, Disney+, Facebook, Instagram, LinkedIn, Microsoft News, Microsoft Solitaire Collection, Microsoft Teams (consumer), Mixed Reality Portal, TikTok, Xbox Game Bar (if you don&#x27;t game).</p><p>For apps without an Uninstall option in Settings, remove them via PowerShell (run as Administrator):</p><p># Remove Clipchamp<br/>Get-AppxPackage *clipchamp* | Remove-AppxPackage<br/><br/># Remove Microsoft News<br/>Get-AppxPackage *bingNews* | Remove-AppxPackage<br/><br/># Remove Xbox app (keep if you game on Xbox)<br/>Get-AppxPackage *Xbox* | Remove-AppxPackage<br/><br/># List all installed packages to find names<br/>Get-AppxPackage | Select-Object Name | Sort-Object Name</p><h2>Disable Copilot, Cortana, and AI Features</h2><h3>Disable Windows Copilot</h3><p>Open <strong>Settings → Personalisation → Taskbar</strong> and toggle <strong>Copilot</strong> off to remove it from the taskbar. To disable it fully via the Registry (works on all Windows 11 editions), open PowerShell as Administrator:</p><p>reg add &quot;HKCU\Software\Policies\Microsoft\Windows\WindowsCopilot&quot; /v TurnOffWindowsCopilot /t REG_DWORD /d 1 /f</p><p>On Windows 11 Pro/Enterprise you can also use Group Policy: press Win + R, type <code>gpedit.msc</code>, navigate to <strong>Computer Configuration → Administrative Templates → Windows Components → Windows Copilot</strong>, and set &quot;Turn off Windows Copilot&quot; to <strong>Enabled</strong>.</p><h3>Disable Cortana</h3><p>Get-AppxPackage *cortana* | Remove-AppxPackage</p><p>On Windows 11 22H2 and later, Cortana is no longer integrated into search and is largely inert — disabling it is mainly cosmetic, but removing it frees a small amount of background resources.</p><h3>Disable Recall (Windows AI Recall / Copilot+ PCs)</h3><p>On Copilot+ PCs, Windows Recall takes periodic screenshots of your screen and indexes them for AI search. Disable it in <strong>Settings → Privacy &amp; Security → Recall &amp; snapshots</strong> — toggle off &quot;Save snapshots&quot;. You can also uninstall it entirely via PowerShell:</p><p>Disable-WindowsOptionalFeature -Online -FeatureName &quot;Recall&quot; -NoRestart</p><h2>Disable Telemetry, Tracking, and Ads</h2><h3>Settings to Change Manually</h3><p>Go to <strong>Settings → Privacy &amp; Security</strong> and work through each sub-section:</p><ul><li><strong>General</strong> — turn all four toggles off (advertising ID, suggested content, app launches tracking, settings suggestions).</li><li><strong>Speech</strong> — turn off online speech recognition.</li><li><strong>Inking &amp; typing personalisation</strong> — turn off.</li><li><strong>Diagnostics &amp; feedback</strong> — set to <strong>Required diagnostic data</strong> only. Turn off &quot;Improve inking and typing&quot;, &quot;Tailored experiences&quot;, and delete existing diagnostic data.</li><li><strong>Activity history</strong> — turn off and clear history.</li><li><strong>Search permissions</strong> — turn off &quot;Cloud content search&quot; for both work and personal accounts.</li><li><strong>Location</strong> — turn off if unused, or restrict to specific apps only.</li><li><strong>Camera / Microphone</strong> — review which apps have access and revoke any you don&#x27;t recognise.</li></ul><h3>Disable Telemetry Services via PowerShell (run as Administrator)</h3><p># Set telemetry to minimum (Required only on Home/Pro)<br/>Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection&quot; `<br/>&nbsp; -Name &quot;AllowTelemetry&quot; -Value 0 -Type DWord -Force<br/><br/># Stop and disable the Connected User Experiences and Telemetry service<br/>Stop-Service -Name DiagTrack -Force<br/>Set-Service -Name DiagTrack -StartupType Disabled<br/><br/># Disable WAP push routing service (sends device info to Microsoft)<br/>Stop-Service -Name dmwappushservice -Force<br/>Set-Service -Name dmwappushservice -StartupType Disabled</p><h3>Disable Bing Search in Start Menu</h3><p>By default, typing in the Start menu sends your keystrokes to Bing. To disable this:</p><p>reg add &quot;HKCU\Software\Microsoft\Windows\CurrentVersion\Search&quot; /v BingSearchEnabled /t REG_DWORD /d 0 /f<br/>reg add &quot;HKCU\Software\Microsoft\Windows\CurrentVersion\Search&quot; /v CortanaConsent /t REG_DWORD /d 0 /f</p><h3>Disable Ads in Explorer, Start, and Lock Screen</h3><p>In <strong>Settings → System → Notifications → Additional settings</strong>, uncheck &quot;Suggest ways I can finish setting up my device&quot; and &quot;Get tips and suggestions when I use Windows&quot;.</p><p>In <strong>Settings → Personalisation → Lock screen</strong>, set the lock screen style to &quot;Picture&quot; or &quot;Slideshow&quot; instead of &quot;Windows spotlight&quot; — Spotlight injects Microsoft-served images and promotional content.</p><p>In <strong>Settings → Personalisation → Start</strong>, turn off &quot;Show recommendations for tips, app promotions, and more&quot;.</p><h2>Disable or Remove OneDrive</h2><h3>Unlink and Quit</h3><p>Right-click the OneDrive icon in the system tray → <strong>Settings → Account → Unlink this PC</strong>. Then right-click the icon again → <strong>Quit OneDrive</strong>. This stops syncing but keeps OneDrive installed.</p><h3>Prevent OneDrive from Starting at Boot</h3><p>Open <strong>Task Manager → Startup apps</strong> and disable <strong>Microsoft OneDrive</strong>.</p><h3>Fully Uninstall OneDrive</h3><p>taskkill /f /im OneDrive.exe<br/>winget uninstall Microsoft.OneDrive</p><p>If winget fails, use <strong>Control Panel → Programs → Uninstall a program → Microsoft OneDrive → Uninstall</strong>. After removing, delete any leftover <code>OneDrive</code> folder from your user directory if it remains.</p><h2>Disable Xbox Game Bar and Game DVR</h2><p>Xbox Game Bar (Win + G) runs in the background and captures your screen. If you don&#x27;t play games, disable it in <strong>Settings → Gaming → Xbox Game Bar</strong> (toggle off), or via the Registry:</p><p>reg add &quot;HKCU\Software\Microsoft\GameBar&quot; /v UseNexusForGameBarEnabled /t REG_DWORD /d 0 /f</p><p>Also disable Game DVR (background recording) and Game Mode if you&#x27;re not gaming:</p><p># Disable background recording<br/>reg add &quot;HKCU\System\GameConfigStore&quot; /v GameDVR_Enabled /t REG_DWORD /d 0 /f<br/><br/># Disable Game Mode<br/>reg add &quot;HKCU\Software\Microsoft\GameBar&quot; /v AllowAutoGameMode /t REG_DWORD /d 0 /f</p><h2>Essential Terminal Commands</h2><p>Windows has two main shells: <strong>Command Prompt</strong> (<code>cmd.exe</code>, legacy) and <strong>PowerShell</strong> (modern, recommended for everything). PowerShell is a superset — it runs almost all cmd commands plus its own more powerful ones. Use PowerShell for everything unless a tool specifically requires cmd.</p><h3>File System Navigation</h3><p>CommandWhat it does <code>pwd</code>Print current directory <code>cd C:\Users\name\Documents</code>Change to a directory <code>cd ..</code>Go up one directory level <code>ls</code> or <code>dir</code>List files in current directory <code>ls -Force</code>List including hidden files <code>mkdir FolderName</code>Create a new folder <code>rm filename.txt</code>Delete a file <code>rm -Recurse FolderName</code>Delete a folder and all contents <code>cp source.txt dest.txt</code>Copy a file <code>mv old.txt new.txt</code>Move or rename a file <code>cat file.txt</code>Print file contents to terminal <code>explorer .</code>Open current folder in File Explorer</p><h3>System Information</h3><p>CommandWhat it does <code>winver</code>Show Windows version dialog <code>systeminfo</code>Detailed system info (OS, RAM, uptime, patches) <code>hostname</code>Show computer name <code>whoami</code>Show current user account <code>ipconfig</code>Show IP addresses and network adapters <code>ipconfig /all</code>Full network info including DNS and MAC addresses <code>netstat -an</code>Show active connections and listening ports <code>tasklist</code>List all running processes <code>Get-Process</code>PowerShell process list (sortable, filterable) <code>taskkill /IM notepad.exe /F</code>Force-kill a process by name</p><h3>Disk and Storage</h3><p>CommandWhat it does <code>Get-PSDrive</code>Show all drives and free space <code>chkdsk C: /f /r</code>Check and repair disk (Admin, requires reboot) <code>sfc /scannow</code>Scan and repair corrupted Windows system files <code>DISM /Online /Cleanup-Image /RestoreHealth</code>Repair Windows image from Microsoft servers <code>cleanmgr</code>Open Disk Cleanup GUI</p><h3>winget Package Management</h3><p>CommandWhat it does <code>winget search firefox</code>Search for a package <code>winget install Mozilla.Firefox</code>Install a package <code>winget upgrade --all</code>Update all installed apps <code>winget uninstall Mozilla.Firefox</code>Uninstall a package <code>winget list</code>List all packages winget knows about <code>winget show Mozilla.Firefox</code>Show package info</p><h3>Networking</h3><p>CommandWhat it does <code>ping google.com</code>Test network connectivity <code>tracert google.com</code>Trace route to a host <code>nslookup google.com</code>DNS lookup <code>ipconfig /flushdns</code>Clear DNS cache <code>netsh wlan show profiles</code>List saved Wi-Fi networks <code>netsh wlan show profile &quot;NetName&quot; key=clear</code>Show a saved Wi-Fi password in plain text <code>Test-NetConnection google.com -Port 443</code>Check if a remote port is open</p><h3>Useful PowerShell One-liners</h3><p># Get your public IP address<br/>(Invoke-WebRequest -Uri &quot;https://api.ipify.org&quot;).Content<br/><br/># Find files by name (recursive search)<br/>Get-ChildItem -Path C:\ -Recurse -Filter &quot;filename.txt&quot; -ErrorAction SilentlyContinue<br/><br/># Show top 10 largest files in a folder<br/>Get-ChildItem -Path C:\Users -Recurse -File -ErrorAction SilentlyContinue |<br/>&nbsp; Sort-Object Length -Descending | Select-Object -First 10 FullName, Length<br/><br/># Kill all instances of a process<br/>Get-Process chrome | Stop-Process -Force<br/><br/># Check what&#x27;s listening on a specific port<br/>Get-NetTCPConnection -LocalPort 8080</p><h2>Most Useful Things to Configure</h2><h3>Set a Sensible Default Browser</h3><p>After installing Firefox (or your browser of choice): <strong>Settings → Apps → Default apps</strong>, search for &quot;Firefox&quot;, and click <strong>Set default</strong>. Also manually set HTTP, HTTPS, and HTML file type defaults if the button doesn&#x27;t catch everything — Microsoft tends to reset Edge as default after major updates.</p><h3>Enable Dark Mode</h3><p><strong>Settings → Personalisation → Colours → Choose your mode → Dark.</strong></p><h3>Configure File Explorer</h3><p>Open File Explorer → three-dot menu → Options. Set <strong>&quot;Open File Explorer to&quot;</strong> to &quot;This PC&quot;. In the <strong>View</strong> tab, enable <strong>&quot;Show hidden files, folders, and drives&quot;</strong> and uncheck <strong>&quot;Hide extensions for known file types&quot;</strong> — seeing file extensions is essential for anyone working with files.</p><h3>Enable Clipboard History</h3><p>Win + V opens clipboard history, storing your last ~25 copied items. Enable it the first time you press Win + V, or in <strong>Settings → System → Clipboard → Clipboard history</strong>.</p><h3>Install WSL 2 (Linux on Windows)</h3><p>Windows Subsystem for Linux runs a real Linux environment inside Windows with no VM overhead. Install it with one command (Administrator PowerShell):</p><p>wsl --install</p><p>This installs Ubuntu by default. To choose a different distro:</p><p>wsl --list --online&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # see available distros<br/>wsl --install -d Debian&nbsp;&nbsp;&nbsp; # install a specific one</p><p>WSL 2 integrates with Windows Terminal and gives you the full Linux toolchain (bash, git, Python, apt/dnf, grep, sed, awk, and everything else) natively inside Windows.</p><h3>Windows Sandbox (Safe App Testing)</h3><p>Windows Sandbox (Pro/Enterprise only) runs a lightweight, disposable VM for testing untrusted software. Enable it:</p><p>Enable-WindowsOptionalFeature -FeatureName &quot;Containers-DisposableClientVM&quot; -All -Online</p><p>After reboot, search &quot;Windows Sandbox&quot; in the Start menu. Everything inside it is destroyed when you close it.</p><h3>Move User Folders to a Second Drive</h3><p>If you have a secondary drive for storage, right-click Downloads, Documents, Music, Pictures, or Videos → <strong>Properties → Location → Move</strong> and point them to the second drive. Keeps your system drive lean and makes Windows reinstallation much simpler.</p><h2>Essential Keyboard Shortcuts</h2><p>ShortcutAction Win + DShow / hide desktop Win + EOpen File Explorer Win + IOpen Settings Win + LLock screen Win + VClipboard history Win + Shift + SScreenshot / snip tool Win + PrtScFull screenshot saved to Pictures\Screenshots Win + TabTask View / virtual desktops Win + Ctrl + DNew virtual desktop Win + Ctrl + ← / →Switch virtual desktops Win + ← / → / ↑ / ↓Snap window to screen edges Win + ZSnap Layouts (choose window arrangement) Win + RRun dialog Win + XQuick Link / Power User menu Ctrl + Shift + EscOpen Task Manager directly Alt + F4Close window / shutdown dialog on desktop</p><h2>Tips and Gotchas</h2><p><strong>Run PowerShell as Administrator</strong> by right-clicking the Windows Terminal icon and choosing &quot;Run as administrator&quot;, or searching &quot;PowerShell&quot;, right-clicking, and selecting &quot;Run as administrator&quot;. Many system commands require elevated rights and will silently fail otherwise.</p><p><strong>The Quick Link menu</strong> (Win + X) is faster than the Start menu for accessing Task Manager, Device Manager, Event Viewer, Disk Management, and PowerShell.</p><p><strong>Windows Defender is good enough.</strong> You don&#x27;t need a third-party antivirus. Many third-party AV products add more background surveillance than they remove. Keep Windows updated, use a good DNS (Quad9 at <code>9.9.9.9</code> or Cloudflare at <code>1.1.1.1</code>), and practice safe browsing.</p><p><strong>The new Task Manager</strong> (Ctrl + Shift + Esc) is genuinely useful. The <strong>Startup apps</strong> tab is the quickest way to see what&#x27;s slowing your boot and disable it. The <strong>Efficiency mode</strong> option (right-click a process) throttles background apps to reduce their CPU and power draw.</p><p><strong>Windows 11 Pro is worth it over Home</strong> if you do anything technical. Pro adds Group Policy, BitLocker, Remote Desktop, Hyper-V, and Windows Sandbox. If you&#x27;re already on Home, you can upgrade in <strong>Settings → System → Activation → Upgrade your edition of Windows</strong> using a Pro product key.</p><p><strong>Power settings matter.</strong> In <strong>Settings → System → Power → Power Mode</strong>, set to &quot;Balanced&quot; on laptops and &quot;Best performance&quot; on desktops plugged in. Avoid &quot;Power saver&quot; unless on battery — it actively throttles CPU performance even for non-battery workloads.</p><p><strong>Microsoft resets defaults after major updates.</strong> After each major Windows update, check that your default browser is still set correctly and review your privacy settings — Microsoft has a habit of re-enabling things you&#x27;ve turned off.</p>]]></content:encoded>
    </item>
    <item>
      <title>Audacity</title>
      <link>https://www.steven-legg.com/blog/audacity-tutorial</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/audacity-tutorial</guid>
      <pubDate>Fri, 20 Mar 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Tutorials</category>
      <description>Comprehensive Audacity tutorial for macOS Tahoe (Apple Silicon), Fedora 43 KDE, and Windows 11 — recording, editing, noise reduction, splitting tracks, and exporting audio.</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/41fcd45e06b08b4cd3bc35362d3ab0c411a1ac3a-500x500.png?w=1200&amp;fit=crop&amp;auto=format" alt="Audacity"></p><p>Audacity is a free, open-source, cross-platform audio editor. It&#x27;s a multi-track recorder and waveform editor that handles everything from capturing a single voice memo to cleaning up podcast episodes, digitising old recordings, and assembling layered audio. It works on uncompressed audio for editing and exports to MP3, WAV, FLAC, OGG, and more. This guide covers macOS Tahoe (Apple Silicon), Fedora 43 KDE, and Windows 11.</p><h2>Installation</h2><h3>macOS (Apple Silicon)</h3><p>Download the <code>.dmg</code> from audacityteam.org/download. Recent Audacity builds are universal binaries that run natively on Apple Silicon — no Rosetta required. Open the <code>.dmg</code>, drag Audacity to Applications, and launch it.</p><p>Via Homebrew:</p><p>brew install --cask audacity</p><p><strong>Note:</strong> On first launch, macOS may warn that Audacity is from an unidentified developer. Go to <strong>System Settings → Privacy &amp; Security</strong> and click &quot;Open Anyway&quot;. The first time you record, macOS will also prompt for <strong>microphone permission</strong> — grant it under <strong>System Settings → Privacy &amp; Security → Microphone</strong>.</p><h3>Fedora KDE</h3><p>Install via Flatpak for the most up-to-date version:</p><p>flatpak install flathub org.audacityteam.Audacity</p><p>Or via DNF (may be an older release):</p><p>sudo dnf install audacity</p><p><strong>Note:</strong> If you installed via Flatpak and Audacity can&#x27;t see your microphone or other input devices, grant it audio access with Flatseal, or confirm that PipeWire/PulseAudio is exposing the device. In the Flatpak sandbox you may also need to select the correct host device from Audacity&#x27;s device toolbar (see below).</p><p>Placeholder — Audacity on first launch.</p><h3>Windows 11</h3><p>Download the Windows installer from audacityteam.org/download. Run the <code>.exe</code> installer — no administrator rights required. Alternatively, install via <strong>winget</strong>:</p><p>winget install Audacity.Audacity</p><p><strong>Note:</strong> Windows Defender SmartScreen may flag Audacity on first run. Click <strong>More info → Run anyway</strong>. The first time you record, Windows will prompt for <strong>microphone permission</strong> — grant it in <strong>Settings → Privacy &amp; Security → Microphone</strong> and ensure the toggle for desktop apps is on. For the best low-latency performance, set the <strong>Audio Host</strong> in the device toolbar to <strong>Windows WASAPI</strong> rather than MME or DirectSound — WASAPI gives significantly better timing accuracy and lower latency, which matters for multitrack recording.</p><h2>Interface Overview</h2><p>Audacity&#x27;s window is organised around a few key areas. Along the top are the <strong>Transport controls</strong> (play, stop, record, pause, skip) and the <strong>tool toolbars</strong>. Below those sits the <strong>device toolbar</strong>, where you choose your audio host, recording input (microphone), number of input channels, and playback output. The large central area is the <strong>track view</strong>, where each track&#x27;s waveform is displayed on a horizontal timeline. The <strong>Timeline / ruler</strong> runs across the top of the track area showing time position.</p><p>The most important toolbars to know early on are the <strong>Tools toolbar</strong> (Selection, Envelope, Draw, and Multi-tool), the <strong>recording/playback meters</strong> (which show input and output levels), and the <strong>Selection toolbar</strong> at the bottom showing the exact start, end, and length of your current selection in hours/minutes/seconds.</p><p>Placeholder — annotated Audacity interface with transport controls, device toolbar, meters, and track view.</p><h3>Setting Your Input and Output Devices</h3><p>Before recording anything, check the <strong>device toolbar</strong>. Set the <strong>Audio Host</strong> (on macOS this is Core Audio; on Fedora it&#x27;s typically ALSA, PulseAudio, or JACK/PipeWire; on Windows 11 use <strong>WASAPI</strong> for best results), choose your <strong>recording device</strong> (your microphone or audio interface), set <strong>channels</strong> to Mono for a single mic or Stereo for a stereo source, and set your <strong>playback device</strong> (headphones or speakers). Using headphones while recording avoids your microphone picking up the playback and causing echo or feedback.</p><h2>Recording Audio</h2><p>First, set your levels. Speak or play at a normal volume and watch the <strong>recording meter</strong> at the top. Click the meter to enable monitoring without recording. Aim for peaks around <strong>-12 dB to -6 dB</strong> — loud enough to be clear, but with headroom so the loudest moments don&#x27;t hit 0 dB and clip (distort). Adjust the <strong>input gain slider</strong> next to the microphone icon, or the gain on your audio interface, until levels sit in that range.</p><p>To record, press the red <strong>Record</strong> button (or R). A new track is created and the waveform draws in real time as you record. Press <strong>Stop</strong> (or Space) when finished. To add a new recording onto a <em>new</em> track press R again; to append more audio to the end of the current track, use <strong>Shift+Record</strong> (Shift R).</p><p>Placeholder — recording in progress with levels peaking around -12 dB.</p><h3>Punch-and-Roll and Re-recording</h3><p>If you fluff a line while recording narration, you don&#x27;t have to start over. Stop, place the cursor a few seconds before the mistake, and use <strong>Punch and Roll Record</strong> (Shift D) — Audacity plays a short lead-in, then drops into recording at the cursor so you can pick up seamlessly. This is the single biggest time-saver for spoken-word recording.</p><h2>Basic Editing</h2><p>Make sure the <strong>Selection tool</strong> (the I-beam, F1) is active. Click in the waveform to place the cursor, or click and drag to select a region. The Selection toolbar at the bottom shows the exact start, end, and length of your selection.</p><h3>Cut, Copy, Paste, and Delete</h3><p>Select a region, then: <strong>Cut</strong> (Ctrl X / Cmd X) removes it and closes the gap; <strong>Copy</strong> (Ctrl C) copies it; <strong>Paste</strong> (Ctrl V) inserts the clipboard at the cursor; <strong>Delete</strong> (Delete) removes the selection and closes the gap, exactly like Cut but without touching the clipboard.</p><h3>Trimming</h3><p>To keep only a portion of a recording and discard everything else, select the part you want to <em>keep</em>, then choose <strong>Edit → Remove Special → Trim Audio</strong> (Ctrl T). Everything outside the selection is removed. This is the inverse of Delete and is the fastest way to top-and-tail a clip — selecting the good take and trimming away the silence and false starts at either end.</p><h3>Silencing a Selection</h3><p>Sometimes you don&#x27;t want to remove audio (which shifts everything after it) but simply want to mute a section in place — a cough, a click, a breath. Select the region and choose <strong>Edit → Remove Special → Silence Audio</strong> (Ctrl L). The waveform in that region is flattened to silence while keeping the overall timing intact.</p><p>Placeholder — a noisy region selected and silenced in place.</p><h3>Fades</h3><p>To smooth the start or end of a clip, select a short region and apply <strong>Effect → Fading → Fade In</strong> or <strong>Fade Out</strong>. A one-second fade at the very start and end of a recording prevents the abrupt &quot;click&quot; of audio starting or stopping at full volume.</p><h3>Undo</h3><p>Audacity has unlimited undo within a session (Ctrl Z), and redo with Ctrl Y (macOS: Cmd Shift Z). Edit freely — you can always step back.</p><h2>Noise Reduction</h2><p>Noise reduction removes consistent background noise — hum, hiss, fan or air-conditioner drone. It works in two passes: first you show Audacity a sample of <em>just</em> the noise, then you apply the reduction to the whole recording.</p><p><strong>Step 1 — Get a noise profile.</strong> Find a stretch of your recording where no one is speaking but the background noise is present — even half a second works. This is why it helps to record a few seconds of &quot;room tone&quot; (silence) at the start of every session. Select that quiet region, then go to <strong>Effect → Noise Removal and Repair → Noise Reduction</strong> and click <strong>Get Noise Profile</strong>. The dialog closes; Audacity now knows what the noise sounds like.</p><p><strong>Step 2 — Apply the reduction.</strong> Select the whole track (Ctrl A), open <strong>Noise Reduction</strong> again, and this time adjust the three settings and click <strong>OK</strong>:</p><p><strong>Noise reduction (dB)</strong> — how much to cut. Start around 12 dB. <strong>Sensitivity</strong> — how aggressively Audacity decides what counts as noise; start around 6. <strong>Frequency smoothing (bands)</strong> — start around 3. Use the <strong>Preview</strong> button before committing. Push too hard and you&#x27;ll get a watery, &quot;underwater&quot; artefact on the voice — back off the reduction amount until it sounds natural. It&#x27;s better to leave a little noise than to mangle the voice.</p><p>Placeholder — the Noise Reduction dialog after capturing a noise profile.</p><h2>Splitting Tracks</h2><p>&quot;Splitting&quot; can mean a few different things in Audacity, depending on what you&#x27;re trying to do.</p><h3>Splitting a Clip at a Point</h3><p>To cut one clip into two independent clips on the same track (so you can move them separately), place the cursor where you want the split and choose <strong>Edit → Clip Boundaries → Split</strong> (Ctrl I). The clip is divided at that point with no audio removed. To split a selection out into its own clip with silence on either side, use <strong>Split New</strong> to move it to a brand-new track.</p><h3>Splitting One Recording into Multiple Files</h3><p>If you&#x27;ve recorded a long session — say, several songs from a vinyl record, or chapters of a reading — and want to export each segment as its own file, use <strong>labels</strong>. Place the cursor at the start of each segment and press Ctrl B to add a label; name it (this becomes the filename). When you&#x27;ve labelled every split point, choose <strong>File → Export → Export Multiple</strong>, set &quot;Split files based on: Labels&quot;, and Audacity writes one file per label region in a single pass.</p><h3>Splitting a Stereo Track into Two Mono Tracks</h3><p>Click the track&#x27;s name to open the <strong>track dropdown menu</strong> and choose <strong>Split Stereo to Mono</strong>. This gives you independent left and right channels — useful when each channel holds a different microphone, or when one channel is cleaner than the other.</p><p>Placeholder — a session marked with labels, ready for Export Multiple.</p><h2>Exporting Audio Files</h2><p>Audacity&#x27;s own project format is <code>.aup3</code> — that&#x27;s what <strong>File → Save Project</strong> writes, and it preserves all your tracks, labels, and edit history. But <code>.aup3</code> won&#x27;t play in a normal media player; to get a shareable audio file you need to <strong>export</strong>.</p><p>Go to <strong>File → Export</strong> and choose a format:</p><p><strong>Export as WAV</strong> — uncompressed, lossless, large files. Best for archiving or handing audio to another editor. <strong>Export as MP3</strong> — compressed, small, universally playable. Best for podcasts, sharing, and web. Set the quality to around 192–256 kbps for speech, higher for music. <strong>Export as FLAC</strong> — lossless but compressed (roughly half the size of WAV). Good for music archives. <strong>Export as OGG</strong> — open, compressed alternative to MP3.</p><p>In the export dialog you can fill in <strong>metadata</strong> (title, artist, track number) which players and podcast apps will display. On modern Audacity, MP3 export is built in — you no longer need to install the separate LAME encoder.</p><p>Remember the distinction: <strong>Save Project</strong> keeps your editable work in <code>.aup3</code>; <strong>Export</strong> produces the finished listenable file. Do both — save the project so you can come back and re-edit, and export the file you actually share.</p><p>Placeholder — exporting to MP3 with metadata fields filled in.</p><h2>Practical Workflows and Tips</h2><h3>A Clean Voice-Recording Workflow</h3><p>A reliable order of operations for spoken-word recording: (1) set your input device and levels, aiming for -12 dB peaks; (2) record two or three seconds of silent room tone, then your content; (3) use Punch-and-Roll to fix flubs as you go; (4) when done, capture a noise profile from the room tone and apply Noise Reduction to the whole track; (5) trim the dead air off the start and end; (6) silence any remaining clicks, coughs, or long pauses; (7) apply a short fade in and fade out; (8) run <strong>Effect → Volume and Compression → Loudness Normalization</strong> to bring the whole thing to a consistent perceived loudness (around -16 LUFS for podcasts); (9) Save the project, then Export to MP3.</p><h3>Normalise vs. Amplify vs. Loudness Normalization</h3><p><strong>Amplify</strong> raises or lowers the whole selection by a fixed amount. <strong>Normalize</strong> scales the audio so its <em>peak</em> hits a target level (e.g. -1 dB). <strong>Loudness Normalization</strong> targets <em>perceived</em> loudness (LUFS), which is what streaming and podcast platforms actually measure — use this one for final delivery so your audio sits at a comfortable, consistent volume.</p><h3>Useful Habits</h3><p><strong>Always record room tone.</strong> A few seconds of silence at the top of every session gives you a noise profile and material to patch gaps. <strong>Save the project early and often</strong> (Ctrl S) — <code>.aup3</code> projects keep all your undo history. <strong>Work non-destructively where you can</strong> — duplicate a track (Ctrl D) before applying heavy effects so you have the original to fall back on. <strong>Use Solo and Mute</strong> on track headers to audition individual tracks in a multi-track project. <strong>Zoom in</strong> (Ctrl 1) to make sample-accurate edits and out (Ctrl 3) to see the whole project.</p><h2>Key Keyboard Shortcuts</h2><p>ActionShortcut Play / StopSpace Record (new track)R Append recordShift R Punch and Roll recordShift D Selection toolF1 CutCtrl X CopyCtrl C PasteCtrl V Delete selectionDelete Trim to selectionCtrl T Silence selectionCtrl L Split clip at cursorCtrl I Add label at cursorCtrl B Select allCtrl A Duplicate to new trackCtrl D Zoom in / outCtrl 1 / Ctrl 3 Fit project in windowCtrl F Save projectCtrl S Undo / RedoCtrl Z / Ctrl Y</p><p>macOS users: substitute Cmd for Ctrl throughout.</p><h2>Tips and Gotchas</h2><p><strong>Save Project and Export are not the same thing.</strong> The most common beginner surprise is saving a <code>.aup3</code> project and then being unable to play it in a music app. Always Export to get a standard audio file; Save Project to keep editing later.</p><p><strong>Don&#x27;t over-apply Noise Reduction.</strong> Aggressive reduction produces a tell-tale watery, robotic artefact on voices. Use the lowest amount that gets the job done, and always Preview first.</p><p><strong>Record with headphones.</strong> Monitoring through speakers lets the microphone re-capture the playback, causing echo and, at worst, feedback squeal.</p><p><strong>On macOS</strong>, if Audacity records silence, check <strong>System Settings → Privacy &amp; Security → Microphone</strong> and confirm Audacity is allowed. You may need to quit and relaunch after granting permission.</p><p><strong>On Fedora KDE</strong>, the Flatpak build runs in a sandbox. If your microphone or interface doesn&#x27;t appear in the device toolbar, use <strong>Flatseal</strong> to confirm audio permissions, make sure PipeWire is running, and try selecting the PulseAudio host in Audacity&#x27;s device toolbar. For low-latency multitrack work you can route Audacity through JACK/PipeWire.</p><p><strong>On Windows 11</strong>, if Audacity records silence even though microphone access is granted, check <strong>Sound settings → More sound settings → Recording tab</strong> — right-click your microphone and confirm it&#x27;s set as Default Device. Also ensure the microphone isn&#x27;t exclusively claimed by another app. If you&#x27;re using an external USB audio interface, WASAPI Exclusive mode gives the lowest latency but prevents other apps from using the same device simultaneously — switch to WASAPI Shared if that&#x27;s a problem.</p><p><strong>Set the project sample rate before recording.</strong> The <strong>Project Rate</strong> (bottom-left) defaults to 44100 Hz, which is fine for most uses; use 48000 Hz if your audio will accompany video. Mixing sample rates between tracks forces resampling and can subtly degrade quality.</p>]]></content:encoded>
    </item>
    <item>
      <title>GIMP</title>
      <link>https://www.steven-legg.com/blog/gimp-tutorial</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/gimp-tutorial</guid>
      <pubDate>Wed, 18 Mar 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Tutorials</category>
      <description>Comprehensive GIMP tutorial for macOS Tahoe (Apple Silicon), Fedora 43 KDE, and Windows 11 — tools, layers, selections, colour correction, and export.</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/70f985af9d5420e62566764dbdec77fefee4a3a5-1280x1280.png?w=1200&amp;fit=crop&amp;auto=format" alt="GIMP"></p><p>GIMP (GNU Image Manipulation Program) is a free, open-source raster image editor — a capable alternative to Adobe Photoshop. It handles photo retouching, digital painting, graphic design, and image compositing. It&#x27;s one of the most mature open-source applications available, with a large plugin ecosystem and scripting support (Python-Fu and Script-Fu).</p><h2>Installation</h2><h3>macOS (Apple Silicon)</h3><p>GIMP is distributed as a universal binary for macOS. Download from gimp.org/downloads. Open the <code>.dmg</code> and drag GIMP to Applications.</p><p>Via Homebrew:</p><p>brew install --cask gimp</p><p><strong>Note:</strong> GIMP on macOS requires XQuartz (an X11 implementation) for older builds, but modern builds (2.10.36+ / 3.x) are native Cocoa apps and no longer need XQuartz. If you&#x27;re on a recent version, you don&#x27;t need to install XQuartz.</p><h3>Fedora KDE</h3><p>GIMP is in the Fedora repositories:</p><p>sudo dnf install gimp</p><p>Or via Flatpak for the latest version:</p><p>flatpak install flathub org.gimp.GIMP</p><p>Placeholder — GIMP on first launch showing the default single-window layout.</p><h3>Windows 11</h3><p>GIMP has an official Windows installer. Download the 64-bit <code>.exe</code> from gimp.org/downloads. Run the installer — no XQuartz or compatibility layer is needed; GIMP runs natively on Windows. Alternatively, install via <strong>winget</strong>:</p><p>winget install GIMP.GIMP</p><p>GIMP on Windows 11 is fully featured and the interface is identical to the Linux version. All tools, layer modes, Script-Fu, Python-Fu, and import/export formats work the same way. GIMP 3.x brings improved HiDPI scaling on Windows — if you&#x27;re on a high-resolution display, the 3.x release candidate or stable version is worth using.</p><h2>Interface Overview</h2><p>By default on modern GIMP versions, the interface is in <strong>single-window mode</strong>, with all panels docked together. If it&#x27;s in multi-window mode (floating panels), switch to single-window via <strong>Windows → Single-Window Mode</strong>.</p><p>The main areas are: the <strong>Toolbox</strong> (left — all the tools), <strong>Tool Options</strong> (below the toolbox — settings for the active tool), the <strong>Canvas</strong> (centre — your image), the <strong>Layers / Channels / Paths</strong> panel (right), and the <strong>Brushes / Patterns / Gradients</strong> panel (also right, tabbed).</p><p>Placeholder — annotated GIMP single-window interface.</p><h2>Opening and Creating Images</h2><p>Open an existing image: <strong>File → Open</strong> (Ctrl O). GIMP supports JPEG, PNG, TIFF, WebP, PSD (Photoshop), BMP, GIF, and many others.</p><p>Create a new canvas: <strong>File → New</strong> (Ctrl N). Set width, height, resolution (72 PPI for screen, 300 PPI for print), and colour mode (RGB for most work, Grayscale for black and white).</p><p>To open as a layer on top of an existing image (useful for compositing): <strong>File → Open as Layers</strong>.</p><h2>The Toolbox</h2><p>GIMP has a large toolbox. Here are the tools you&#x27;ll use most often:</p><h3>Selection Tools</h3><p><strong>Rectangle Select</strong> (R) — draw a rectangular selection. <strong>Ellipse Select</strong> (E) — draw an elliptical/circular selection. <strong>Free Select (Lasso)</strong> (F) — draw a freehand selection. <strong>Fuzzy Select (Magic Wand)</strong> (U) — select a contiguous region of similar colour. <strong>Select by Colour</strong> (Shift U) — select all pixels of a similar colour across the whole image. <strong>Scissors Select</strong> (I) — intelligent edge-following selection tool.</p><p>Placeholder — the GIMP toolbox with selection tools visible.</p><h3>Paint Tools</h3><p><strong>Pencil</strong> (N) — hard-edged painting. <strong>Paintbrush</strong> (P) — soft-edged painting. <strong>Eraser</strong> (Shift E) — erase pixels (makes them transparent on a layer with an alpha channel). <strong>Airbrush</strong> — pressure-sensitive painting that builds up colour. <strong>Bucket Fill</strong> (Shift B) — fill a selection or region with colour or pattern. <strong>Gradient</strong> (G) — draw a colour gradient.</p><h3>Transform Tools</h3><p><strong>Move</strong> (M) — move layers, selections, or paths. <strong>Scale</strong> (Shift T) — resize a layer or selection. <strong>Rotate</strong> (Shift R) — rotate a layer or selection. <strong>Crop</strong> (Shift C) — crop the canvas or clip a layer. <strong>Perspective</strong> — distort a layer to adjust its perspective. <strong>Flip</strong> (Shift F) — mirror horizontally or vertically.</p><h3>Other Essential Tools</h3><p><strong>Clone</strong> (C) — paint using another area of the image as the source. Used for retouching blemishes and unwanted objects. <strong>Healing</strong> (H) — like Clone but blends with surrounding texture. Better for skin and organic surfaces. <strong>Dodge/Burn</strong> (Shift D) — lighten (dodge) or darken (burn) areas by painting over them. <strong>Smudge</strong> — blend/smear pixels. <strong>Text</strong> (T) — add text as an editable text layer.</p><h2>Layers</h2><p>Layers are the fundamental building block of non-destructive image editing in GIMP. Each layer is an independent plane of pixels that stacks on top of others. Changes to one layer don&#x27;t affect others.</p><p>Placeholder — the layers panel with multiple layers and different blend modes.</p><h3>Layer Operations</h3><p>The <strong>Layers panel</strong> (right side) shows all layers, from top to bottom in stacking order. Operations:</p><p><strong>New layer</strong>: click the + button at the bottom of the Layers panel, or use <strong>Layer → New Layer</strong> (Shift Ctrl N). <strong>Duplicate layer</strong>: <strong>Layer → Duplicate Layer</strong> (Shift Ctrl D). <strong>Delete layer</strong>: click the trash icon. <strong>Reorder layers</strong>: drag layers up or down in the panel. <strong>Hide/show</strong>: click the eye icon. <strong>Merge down</strong>: <strong>Layer → Merge Down</strong> — combines a layer with the one below it.</p><h3>Layer Blend Modes</h3><p>Each layer has a <strong>blend mode</strong> that controls how it interacts with layers beneath it. The most useful blend modes are: <strong>Normal</strong> (default), <strong>Multiply</strong> (darkens — like two transparencies stacked), <strong>Screen</strong> (lightens — good for glows), <strong>Overlay</strong> (increases contrast), <strong>Soft Light</strong> (gentle contrast), <strong>Difference</strong> (inverts based on the layer beneath), and <strong>Hue/Saturation/Colour</strong> (affect only that aspect of the layer below).</p><h3>Layer Opacity</h3><p>The <strong>Opacity</strong> slider at the top of the Layers panel controls how transparent the active layer is. 100% is fully opaque; 0% is invisible. This is commonly used to blend adjustment layers at reduced strength.</p><h2>Selections and Masking</h2><h3>Refining Selections</h3><p>After making a selection, refine it with: <strong>Select → Feather</strong> (soften the edges), <strong>Select → Grow/Shrink</strong> (expand or contract by pixels), and <strong>Select → Invert</strong> (Ctrl I) (select everything except the current selection).</p><p>To add to a selection, hold Shift while drawing a new selection. To subtract from a selection, hold Ctrl.</p><h3>Quick Mask</h3><p>Press Shift Q to enter Quick Mask mode. The selection is shown as a red overlay. Paint with black to remove from the selection, white to add to it. Press Shift Q again to convert back to a marching ants selection. This is the most precise way to make complex selections.</p><p>Placeholder — Quick Mask mode with the unselected area shown in red.</p><h3>Layer Masks</h3><p>A layer mask controls the transparency of parts of a layer non-destructively. Right-click a layer in the Layers panel and choose <strong>Add Layer Mask</strong>. Paint with black on the mask to hide parts of the layer, white to reveal. The original layer pixels are never destroyed.</p><h2>Colour Correction</h2><p>GIMP&#x27;s colour correction tools are under the <strong>Colours</strong> menu.</p><h3>Levels</h3><p><strong>Colours → Levels</strong> adjusts the black point, white point, and midtone gamma of the image. Drag the black input triangle right to set the darkest point; drag the white input triangle left to set the brightest point. Drag the output sliders to limit the tonal range. Click <strong>Auto</strong> for an automatic correction.</p><p>Placeholder — the Levels dialog with histogram and input/output triangles.</p><h3>Curves</h3><p><strong>Colours → Curves</strong> is the most powerful tonal adjustment. The diagonal line maps input values (x-axis) to output values (y-axis). Click to add control points and drag to reshape the curve. An S-curve (pull highlights up, shadows down) adds contrast. Work on the composite RGB channel first, then individual R, G, B channels for colour grading.</p><p>Placeholder — the Curves dialog with a gentle S-curve for contrast.</p><h3>Hue-Saturation</h3><p><strong>Colours → Hue-Saturation</strong> adjusts the overall hue shift, saturation, and lightness. Select &quot;All&quot; to affect every colour, or select a specific colour range (R, Y, G, C, B, M) to target just that range.</p><h3>Colour Balance</h3><p><strong>Colours → Colour Balance</strong> adds warm or cool casts independently to shadows, midtones, and highlights. Useful for matching footage colours or creating a stylised grade.</p><h2>Retouching</h2><h3>Clone Tool</h3><p>Select the Clone tool (C). Ctrl+click to set the source point, then paint over the area you want to fix — GIMP copies pixels from the source to the brush. Use a soft brush and a source point near the area you&#x27;re fixing so texture and tone match.</p><h3>Heal Tool</h3><p>The Heal tool works similarly to Clone but blends the cloned pixels with the surrounding texture, making it more seamless for skin and complex textures. Ctrl+click to set the source, then paint to heal.</p><h3>Spot Healing with Script-Fu</h3><p>For a quick automatic heal, try <strong>Filters → Enhance → Heal Selection</strong> (if installed via the Resynthesizer plugin — see below). Select the area to remove, run the filter, and GIMP synthesises a plausible replacement from surrounding pixels.</p><h2>Filters and Plugins</h2><p>GIMP&#x27;s <strong>Filters</strong> menu contains a large library of built-in filters: blur (Gaussian, motion, lens), sharpen (unsharp mask), distort (warp, ripple), render (clouds, plasma, noise), and more.</p><h3>Recommended Plugins</h3><p><strong>Resynthesizer</strong> — adds content-aware fill (Heal Selection). Install on Fedora:</p><p>sudo dnf install gimp-resynthesizer</p><p>On macOS, download from the Resynthesizer GitHub releases and place the <code>.so</code> or <code>.py</code> files in <code>~/Library/Application Support/GIMP/2.10/plug-ins/</code> (GIMP 2.x) or the equivalent GIMP 3.x plug-ins path.</p><p><strong>G&#x27;MIC</strong> — a massive collection of image processing filters (colour grading, denoising, artistic effects, frequency separation). Install on Fedora:</p><p>sudo dnf install gimp-plugin-gmic</p><p>On macOS, download the G&#x27;MIC installer from gmic.eu. On Windows 11, the G&#x27;MIC installer is available from the same page — it detects GIMP automatically and places the plugin in the correct folder.</p><p>To install the <strong>Resynthesizer</strong> plugin on Windows, download the compiled <code>.exe</code> Windows installer from the Resynthesizer GitHub releases page and run it.</p><h2>Working with Text</h2><p>Select the Text tool (T). Click on the canvas to create a text layer. Type your text; use the Tool Options to set font, size, colour, and alignment. The text remains editable as long as you don&#x27;t flatten or merge the text layer.</p><p>To apply effects to text (like a drop shadow), right-click the text layer and select <strong>Alpha to Selection</strong>, then apply effects to a new layer below it. Or use <strong>Filters → Light and Shadow → Drop Shadow</strong> directly.</p><h2>Saving and Exporting</h2><p>GIMP&#x27;s native format is <strong>XCF</strong> — it preserves all layers, masks, and guides. Always save as XCF while working.</p><p>To export to a web-ready format (JPEG, PNG, WebP), use <strong>File → Export As</strong> (Shift Ctrl E). The export dialog lets you configure quality and format-specific options without affecting your XCF file.</p><p>For PNG (lossless, supports transparency): leave compression at 6 for a balance of file size and speed.</p><p>For JPEG (lossy, no transparency): 80–90 quality is a good default for high quality with reasonable file size. Check <strong>Progressive</strong> for web use.</p><p>For WebP: use 80–90 quality for lossy, or enable lossless compression.</p><p>Placeholder — the Export As dialog with JPEG quality settings.</p><h2>Key Keyboard Shortcuts</h2><p>ActionmacOSLinux / Windows New image⌘ NCtrl N Open image⌘ OCtrl O Save (XCF)⌘ SCtrl S Export as⌘ Shift ECtrl Shift E Undo⌘ ZCtrl Z Redo⌘ YCtrl Y Zoom in++ Zoom out-- Fit imageShift ⌘ EShift Ctrl E Select all⌘ ACtrl A Deselect all⌘ Shift ACtrl Shift A Invert selection⌘ ICtrl I Flatten image⌘ Shift MCtrl Shift M Quick Mask toggleShift QShift Q Foreground colour pickerOO Swap fg/bg coloursXX</p><h2>Tips and Gotchas</h2><p><strong>Use layers for everything.</strong> Never edit directly on the Background layer. Duplicate it first (Shift Ctrl D) and work on the copy, keeping the original untouched at the bottom.</p><p><strong>GIMP&#x27;s undo history is generous</strong> but finite. Set the undo steps in <strong>Edit → Preferences → Environment → Maximum undo history size</strong>. The default (around 64MB) is usually sufficient.</p><p><strong>Script-Fu console</strong> (<strong>Filters → Script-Fu → Console</strong>) lets you run Scheme scripts against the open image. Python-Fu is also available for Python scripts. This is powerful for batch operations.</p><p><strong>On macOS</strong>, GIMP 2.10 uses a single-window mode that can feel slightly different from Photoshop. GIMP 3.x (currently in release candidates) improves macOS integration significantly — if 3.x is stable when you read this, install that version.</p><p><strong>On Fedora KDE</strong>, GIMP is well-integrated. If HiDPI scaling looks wrong, adjust the display scaling in GIMP&#x27;s preferences: <strong>Edit → Preferences → Interface → Display → Monitors → Dot-for-dot</strong> — uncheck this and set the correct DPI for your monitor.</p><p><strong>On Windows 11</strong>, GIMP stores user data (scripts, brushes, plug-ins, fonts) in <code>%APPDATA%\GIMP\&lt;version&gt;\</code>. Add custom brushes by placing <code>.gbr</code> or <code>.gih</code> files in the Brushes subfolder there, then refreshing brushes in <strong>Windows → Dockable Dialogs → Brushes → Refresh</strong>. If GIMP is slow to start on Windows, it&#x27;s usually indexing fonts — go to <strong>Edit → Preferences → Folders → Fonts</strong> and remove any folders you don&#x27;t need.</p><p><strong>Customise your toolbox.</strong> Go to <strong>Edit → Preferences → Interface → Toolbox</strong> to choose which tools appear and in what order. Remove tools you never use to reduce clutter.</p>]]></content:encoded>
    </item>
    <item>
      <title>KDenLive</title>
      <link>https://www.steven-legg.com/blog/kdenlive-tutorial</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/kdenlive-tutorial</guid>
      <pubDate>Mon, 16 Mar 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Tutorials</category>
      <description>Comprehensive KDenLive tutorial for macOS Tahoe (Apple Silicon), Fedora 43 KDE, and Windows 11 — project setup, timeline editing, effects, audio, and export.</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/4dd3c8fd706308cf028173fdb21f2e9e8c360b38-512x512.png?w=1200&amp;fit=crop&amp;auto=format" alt="KDenLive"></p><p>KDenLive (KDE Non-Linear Video Editor) is a free, open-source video editor that supports multi-track editing, a wide range of formats (including ProRes, H.264, HEVC, and more), a GPU-accelerated preview, and a comprehensive effects library. It&#x27;s a capable alternative to DaVinci Resolve for most editing tasks, and it&#x27;s particularly well-integrated on KDE Plasma.</p><h2>Installation</h2><h3>macOS (Apple Silicon)</h3><p>Download the <code>.dmg</code> from kdenlive.org/download. KDenLive is distributed as a universal binary and runs natively on Apple Silicon. Open the <code>.dmg</code>, drag KDenLive to Applications, and launch it.</p><p>Via Homebrew:</p><p>brew install --cask kdenlive</p><p><strong>Note:</strong> On first launch, macOS may warn that KDenLive is from an unidentified developer. Go to <strong>System Settings → Privacy &amp; Security</strong> and click &quot;Open Anyway&quot;.</p><h3>Fedora KDE</h3><p>Install via Flatpak for the latest version:</p><p>flatpak install flathub org.kde.kdenlive</p><p>Or via DNF (may be an older version):</p><p>sudo dnf install kdenlive</p><p>Placeholder — KDenLive on first launch.</p><h3>Windows 11</h3><p>KDenLive has an official Windows installer. Download the <code>.exe</code> from kdenlive.org/download — it bundles MLT, FFmpeg, and all required libraries. Run the installer (administrator rights recommended). Alternatively, install via <strong>winget</strong>:</p><p>winget install KDE.Kdenlive</p><p>KDenLive on Windows 11 supports the same project formats, effects, and export codecs as the Linux version. GPU-accelerated preview works via Direct3D/OpenGL on compatible NVIDIA and AMD cards — enable this in <strong>Settings → Configure KDenLive → Playback → GPU rendering</strong>. If certain audio formats won&#x27;t decode, install <strong>K-Lite Codec Pack Basic</strong> alongside KDenLive.</p><h2>Interface Overview</h2><p>KDenLive&#x27;s default layout has four main areas: the <strong>Project Bin</strong> (top-left, your media), the <strong>Clip Monitor</strong> (top-centre, preview source clips), the <strong>Project Monitor</strong> (top-right, preview the timeline), and the <strong>Timeline</strong> (bottom, where you assemble your edit). The <strong>Effect Stack</strong> panel appears when you apply effects to a clip.</p><p>Placeholder — annotated KDenLive interface with project bin, monitors, and timeline.</p><h3>Customising the Layout</h3><p>KDenLive&#x27;s panels are dockable and movable. Drag any panel header to rearrange. Save your layout via <strong>View → Layout → Save Layout</strong>. There are built-in layouts for different tasks (Editing, Audio, Effects) accessible from <strong>View → Layout</strong>.</p><h2>Creating a New Project</h2><p>Go to <strong>File → New</strong> (or Ctrl N). The project settings dialog asks for:</p><p><strong>Project folder</strong> — where to save the project file and any renders. <strong>Profile</strong> — the resolution, frame rate, and colour space. Common profiles: HD 1080p 25fps, HD 1080p 30fps, UHD 4K 25fps, UHD 4K 30fps. Match the profile to your footage&#x27;s native format whenever possible.</p><p>Placeholder — new project dialog showing profile and folder settings.</p><p>If your footage has mixed formats, KDenLive will prompt you to adjust the profile when you first add a clip. Generally, match the profile to your primary footage.</p><h2>Importing Media</h2><p>Drag files directly from your file manager into the <strong>Project Bin</strong>, or right-click the Project Bin and choose <strong>Add Clip or Folder</strong>. KDenLive creates proxy clips and thumbnail previews in the background.</p><p>Supported media types include: video (MP4, MOV, MKV, ProRes, HEVC, WebM, AVI), audio (MP3, WAV, FLAC, AAC, OGG), and images (JPEG, PNG, SVG, TIFF). Sequences of numbered image files can be imported as image sequences.</p><p>Placeholder — the Project Bin with imported video, audio, and image clips.</p><h3>Proxy Clips</h3><p>For high-resolution footage (4K, ProRes), enable <strong>proxy clips</strong> so the timeline stays responsive during editing. Go to <strong>Project → Project Settings → Proxy Clips</strong> and enable proxies. KDenLive generates low-resolution proxy files in the background; editing uses these proxies but the final render uses the originals.</p><h2>Timeline Editing</h2><p>Drag clips from the Project Bin to the timeline to add them. The timeline has multiple video tracks (V1, V2, …) and audio tracks (A1, A2, …). Higher-numbered video tracks overlay lower ones — use V2 for titles, overlays, and picture-in-picture.</p><p>Placeholder — the timeline with video clips on V1, a title on V2, and audio on A1.</p><h3>The Toolbar and Edit Modes</h3><p>The toolbar above the timeline contains the editing tools. The most important are:</p><p><strong>Selection tool</strong> (S) — click to select, drag to move clips. <strong>Razor / Blade tool</strong> (X) — click on a clip to cut it at that point. <strong>Slip tool</strong> — slide the content of a clip without changing its duration on the timeline. <strong>Spacer tool</strong> (Shift+Space) — move all clips to the right of the cursor simultaneously.</p><h3>Trimming Clips</h3><p>Hover over the start or end edge of a clip until the trim cursor appears, then drag to extend or shorten the clip. Trimming reveals or hides frames from the original media — it doesn&#x27;t delete them.</p><p>For precise trimming, double-click a clip to open it in the Clip Monitor, then set In and Out points with I and O before dragging it to the timeline.</p><h3>Cutting and Splitting</h3><p>Press Shift+R to cut all clips at the playhead position on all tracks. Press R to cut only the selected clip. Use the Razor tool (X) to click-cut at specific points.</p><h3>Ripple Delete</h3><p>Select a clip and press Delete to remove it, leaving a gap. Press Shift+Delete to ripple delete — this removes the clip and closes the gap by moving all downstream clips left.</p><h2>Transitions</h2><p>To add a transition between two adjacent clips, right-click the cut point between them and choose <strong>Add Transition</strong>. Select a transition type (Dissolve, Wipe, Slide, etc.). Drag the transition&#x27;s edges to adjust its duration.</p><p>Placeholder — a dissolve transition between two clips on the timeline.</p><p>The most common transition is <strong>Dissolve</strong> (cross-fade). For cut-based editing, simply trimming clips to touch each other with no overlap is usually preferable to heavy use of transitions.</p><h2>Effects</h2><p>KDenLive has a comprehensive effects library. Open the <strong>Effects</strong> panel (Ctrl+6 or from the View menu). Browse or search for an effect, then drag it onto a clip on the timeline to apply it. The <strong>Effect Stack</strong> shows all effects applied to the selected clip.</p><p>Placeholder — effects browser on the left, effect stack on the right showing applied effects.</p><h3>Useful Effects</h3><p><strong>Colour Correction</strong> (under Video → Colour) — basic level, contrast, saturation adjustments. <strong>Colour Grading</strong> (3-way colour wheel for shadows/mids/highlights) — for cinematic looks. <strong>Crop, Scale, Position</strong> — resize and reposition clips. <strong>Blur</strong> — Gaussian blur for privacy or depth-of-field effect. <strong>Sharpen</strong> — unsharp mask for clarity. <strong>Speed Change</strong> — slow motion or fast motion.</p><h3>Keyframing Effects</h3><p>Most effect parameters can be keyframed over time. Click the keyframe icon next to a parameter in the Effect Stack to enable keyframing. Move the playhead to a point in time, set the parameter value, and a keyframe is added. Add keyframes at different points to animate the effect.</p><h2>Titles</h2><p>Go to <strong>Project → Add Title Clip</strong> to open the Title Editor. Type your text, select a font, colour, and size. You can add shapes, images, and gradient backgrounds. Click <strong>Create Title</strong> to add it to the Project Bin, then drag it to the timeline on a track above your video (V2 or higher).</p><p>Placeholder — the title editor with a title being composed.</p><h2>Audio</h2><h3>Audio Levels and Mixing</h3><p>Every track in the timeline has a volume fader and mute/solo buttons on the left of the track header. Right-click a clip to <strong>Set audio level</strong> for that specific clip. Use the <strong>Audio Mixer</strong> panel (View → Audio Mixer) for a more detailed per-track mixing view.</p><h3>Keyframing Volume</h3><p>To fade audio in or out, click the <strong>Keyframe</strong> icon on an audio clip. Add keyframes at the start and end of the fade and set the volume to 0 at the ends. This is more precise than using a transition-based fade.</p><h3>Audio Effects</h3><p>Apply audio effects from the Effects panel → Audio section. Useful ones include: <strong>Normalise</strong> (bring peaks to a target level), <strong>Compressor</strong> (reduce dynamic range), <strong>Equalizer</strong> (adjust frequency response), and <strong>Noise Reduction</strong> (remove background hiss).</p><h2>Exporting (Rendering)</h2><p>When your edit is complete, go to <strong>Project → Render</strong> (Ctrl+Return). The Render dialog shows:</p><p><strong>Format/Codec presets</strong> — choose from common presets on the left. For most web and sharing use cases, use <strong>H.264 + AAC (MP4)</strong>. For archival or further editing, use <strong>ProRes</strong> (macOS) or <strong>FFV1</strong> (lossless, Linux-friendly). For YouTube, use the <strong>YouTube</strong> or <strong>H.265 + AAC</strong> presets.</p><p><strong>Output file</strong> — choose where to save the rendered file.</p><p><strong>Render only this zone</strong> — check this if you&#x27;ve set In/Out points on the timeline and only want to render part of the project.</p><p>Click <strong>Render to File</strong> to begin. Progress is shown in the Render dialog. KDenLive renders in the background so you can continue editing.</p><p>Placeholder — the render dialog with H.264 MP4 preset and output file settings.</p><h2>Key Keyboard Shortcuts</h2><p>ActionShortcut Play/PauseSpace Play backwardsJ StopK Play forwardsL Go to beginningHome Go to endEnd Cut all tracks at playheadShift R Cut selected clipR Ripple deleteShift Delete Select toolS Razor toolX Zoom in timeline+ Zoom out timeline- Fit timeline to window0 Add/remove guide markerG RenderCtrl Return UndoCtrl Z RedoCtrl Shift Z</p><h2>Tips and Gotchas</h2><p><strong>Enable proxy clips for 4K footage.</strong> Without proxies, editing 4K on lower-end hardware is painfully slow. KDenLive&#x27;s proxy system is automatic once enabled in project settings.</p><p><strong>Save frequently.</strong> KDenLive has an autosave feature (<strong>Settings → Configure KDenLive → Environment → Auto Save</strong>) but saving manually with Ctrl S is good practice. Project files are small XML files.</p><p><strong>Use guide markers.</strong> Press G to add a guide marker at the playhead. Name your markers (intro, section 1, credits, etc.) to navigate large projects quickly.</p><p><strong>On macOS</strong>, KDenLive may have issues with some video formats that require additional codecs. If a clip won&#x27;t import or plays without audio, install the extra codecs via Homebrew: <code>brew install ffmpeg</code>.</p><p><strong>On Fedora KDE</strong>, if you installed via Flatpak and GPU acceleration isn&#x27;t working, check <strong>Settings → Configure KDenLive → Playback</strong> and ensure the GPU rendering option is enabled. You may need to install the <code>mesa-va-drivers</code> or <code>nvidia-vaapi-driver</code> package depending on your GPU.</p><p><strong>On Windows 11</strong>, KDenLive stores its configuration and render cache in <code>%APPDATA%\kdenlive</code>. If you run into render issues, clearing the cache from <strong>Settings → Configure KDenLive → Environment → Clear Cache</strong> often resolves them. For 4K ProRes workflows on Windows, ensure the Apple ProRes codec is installed (it comes bundled with QuickTime or Apple&#x27;s codec installer for Windows) for the best compatibility. The proxy clip system works identically to Linux — enable it in project settings for smoother 4K editing.</p>]]></content:encoded>
    </item>
    <item>
      <title>Darktable</title>
      <link>https://www.steven-legg.com/blog/darktable-tutorial</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/darktable-tutorial</guid>
      <pubDate>Sat, 14 Mar 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Tutorials</category>
      <description>Comprehensive Darktable tutorial for macOS Tahoe (Apple Silicon), Fedora 43 KDE, and Windows 11 — import, lighttable, darkroom, colour grading, and export.</description>
      <content:encoded><![CDATA[<p>Darktable is a free, open-source RAW photo processor and digital darkroom — a full alternative to Adobe Lightroom. It works non-destructively: your original files are never modified, and every edit is stored as a set of instructions in a sidecar file or its internal database. It supports a huge range of RAW formats and runs on macOS, Linux, and Windows.</p><h2>Installation</h2><h3>macOS (Apple Silicon)</h3><p>Download the <code>.dmg</code> from darktable.org/install. Choose the Apple Silicon (arm64) build. Open the <code>.dmg</code> and drag Darktable to Applications.</p><p>Via Homebrew:</p><p>brew install --cask darktable</p><p><strong>Note:</strong> On first launch, macOS may show a security warning because Darktable is not notarised by Apple. Go to <strong>System Settings → Privacy &amp; Security</strong> and click &quot;Open Anyway&quot;.</p><h3>Fedora KDE</h3><p>Install via Flatpak (recommended — gets the latest version faster than the DNF repo):</p><p>flatpak install flathub org.darktable.Darktable</p><p>Or via DNF:</p><p>sudo dnf install darktable</p><p>Placeholder — Darktable on first launch.</p><h3>Windows 11</h3><p>Darktable has official Windows support. Download the Windows installer (<code>.exe</code>) from darktable.org/install and run it as Administrator. Alternatively, install via <strong>winget</strong>:</p><p>winget install darktable.darktable</p><p>Darktable on Windows 11 is fully featured — all modules, masking, colour calibration, and export options are available. The interface is identical to macOS and Linux. Darktable supports <strong>OpenCL GPU acceleration</strong> on Windows via NVIDIA CUDA, AMD ROCm-compatible drivers, and Intel GPU drivers. On first launch, go to <strong>Preferences → Processing → OpenCL</strong> and enable it if your GPU is listed.</p><h2>Interface Overview</h2><p>Darktable has three primary views, selected from the top bar: <strong>Lighttable</strong> (photo library and organisation), <strong>Darkroom</strong> (individual photo editing), and <strong>Map</strong> (geotagging). There&#x27;s also <strong>Slideshow</strong>, <strong>Print</strong>, and <strong>Tethering</strong> for connected cameras.</p><p>Placeholder — the Darktable view switcher at the top of the window.</p><h2>Importing Photos</h2><p>Darktable doesn&#x27;t move or copy files by default — it just adds them to its library database. Photos stay in their current location on disk.</p><p>To import: in the Lighttable view, click <strong>Import</strong> in the top-left panel. You can import a single image, a folder, or directly from a memory card. Set a <strong>Project name</strong> and <strong>Destination</strong> if you want Darktable to copy files from a card to a new folder as it imports.</p><p>Placeholder — the import dialog showing folder and card import options.</p><h3>Importing from a Memory Card</h3><p>Connect your camera or card reader. In the Import dialog, click <strong>Camera</strong> or browse to the card&#x27;s folder. Set the destination folder, name format (e.g., <code>$(YEAR)/$(MONTH)-$(DAY)/$(FILE_NAME)</code>), and click <strong>Import</strong>. Darktable will copy the RAW files and add them to the library.</p><h2>The Lighttable</h2><p>The Lighttable is your photo library. Photos are displayed in a grid. Use the scroll wheel to zoom the grid, or drag the zoom slider bottom-right. Click a photo to select it; double-click to open it in the Darkroom.</p><h3>Culling and Rating</h3><p>Press F1–F5 to assign star ratings (1–5 stars). Press R to mark a photo as rejected. Use the <strong>Filter</strong> bar at the top to show only rated, unrated, or rejected images.</p><p>Press Z to enter fullscreen zoom view for a single image — useful for checking focus and sharpness before rating.</p><p>Placeholder — lighttable grid with star ratings on thumbnails.</p><h3>Collections and Filters</h3><p>In the left panel of the Lighttable, the <strong>Collections</strong> module lets you filter your library by roll/folder, date, camera, lens, tag, colour label, and more. This is how you navigate between shoots without nested folder trees.</p><h2>The Darkroom</h2><p>Double-click any photo in the Lighttable to open it in the Darkroom. This is where all editing happens. The image fills the centre; the right panel has the module stack; the left panel has history, snapshots, and presets.</p><p>Placeholder — the Darkroom view with module stack on the right.</p><h3>The Processing Pipeline</h3><p>Darktable applies modules in a fixed order (the <em>pixel pipeline</em>). Each module does one thing — exposure, colour, noise reduction, sharpening — and they&#x27;re stacked bottom-to-top. The order matters: a module applied earlier in the pipeline affects all subsequent modules.</p><p>Darktable uses two module workflows: the legacy <strong>display-referred</strong> workflow and the modern <strong>scene-referred</strong> workflow. For new users on current Darktable versions (4.x), scene-referred is the default and is recommended — it&#x27;s physically accurate and more flexible for HDR content.</p><h2>Key Modules to Learn First</h2><h3>Exposure</h3><p>The <strong>Exposure</strong> module adjusts the overall brightness of the image in EV (exposure value) steps. It also has a <strong>Black level correction</strong> slider to set the true black point. Start here for global brightness adjustments.</p><p>Placeholder — the Exposure module with EV and black-level sliders.</p><h3>White Balance</h3><p>The <strong>White balance</strong> module corrects colour temperature. Use the <strong>Colour picker</strong> (eyedropper) to click a neutral grey in the image for automatic correction, or manually adjust the <strong>Temperature</strong> and <strong>Tint</strong> sliders. You can also select a preset (Daylight, Cloudy, Shade, etc.) from the dropdown.</p><h3>Filmic RGB</h3><p><strong>Filmic RGB</strong> is the central tone-mapping module in scene-referred workflow. It maps the scene&#x27;s linear light values to the display&#x27;s limited range. The key controls are:</p><p><strong>White relative exposure</strong> — how many stops above 18% grey should clip to white. <strong>Black relative exposure</strong> — how many stops below grey should clip to black. <strong>Contrast</strong> — the overall S-curve contrast in the midtones. <strong>Latitude</strong> — how wide the linear (undistorted) region of the curve is.</p><p>Most of the time, adjust White and Black relative exposure until the histogram sits comfortably within the frame, then tweak contrast to taste.</p><p>Placeholder — Filmic RGB tone curve and exposure range sliders.</p><h3>Colour Calibration</h3><p><strong>Colour calibration</strong> handles white balance and colour grading in scene-referred workflow. It replaces the older Hue/Saturation module for primary colour work. Use the <strong>Illuminant</strong> picker to set white balance (works similarly to the White Balance module), and use the channel mixer for precise colour grading.</p><h3>Tone Equalizer</h3><p>The <strong>Tone equalizer</strong> lets you brighten or darken specific tonal zones (shadows, midtones, highlights) independently using a simple graphic EQ-style interface. It&#x27;s the cleanest way to do dodging and burning globally. Hold Ctrl and scroll over any zone in the image to adjust that zone&#x27;s brightness directly on the photo.</p><p>Placeholder — tone equalizer with per-zone brightness controls.</p><h3>Noise Reduction (profiled)</h3><p>The <strong>Denoise (profiled)</strong> module uses camera-specific noise profiles to reduce luminance and chroma noise. Select your camera model and ISO from the dropdowns (or let Darktable auto-detect from EXIF). Use the <strong>Non-local means</strong> or <strong>Wavelets</strong> mode — Wavelets generally preserves more detail. Increase <strong>Strength</strong> for high-ISO images.</p><h3>Sharpening — Diffuse or Sharpen</h3><p>The <strong>Diffuse or sharpen</strong> module handles sharpening and local contrast enhancement. For basic capture sharpening, use the <strong>Dehaze</strong> or <strong>Sharpen</strong> preset as a starting point. Avoid over-sharpening — view the image at 100% while adjusting.</p><h2>Masking</h2><p>Every module in the Darkroom can be applied to the whole image or restricted to a <strong>mask</strong>. Click the mask icon at the bottom of any module to enable masking. Darktable supports parametric masks (by colour, luminosity, or hue), drawn masks (shapes and gradients), and raster masks (from a selection).</p><p><strong>Drawn masks</strong> are most useful for basic adjustments. Click the shape tools (brush, gradient, circle, ellipse, path) to draw the area you want to affect. Feather the edges with the <strong>Feathering</strong> slider.</p><p>Placeholder — gradient mask applied to the exposure module, brightening only the sky.</p><h2>Presets and Styles</h2><p>A <strong>preset</strong> saves the settings of one module for reuse. Right-click the module header to create a preset from current settings. Presets appear in the module&#x27;s dropdown for quick application.</p><p>A <strong>style</strong> saves the settings of <em>multiple</em> modules together as a named package — the equivalent of a Lightroom preset. Export styles from <strong>Lighttable → Styles → Export</strong>, import them via <strong>Import</strong>. You can find free community styles online (search &quot;darktable styles&quot;).</p><h2>Exporting</h2><p>In the Lighttable, select the photos you want to export (click, or Ctrl+A for all). In the right panel, open the <strong>Export</strong> module. Key settings:</p><p><strong>File format</strong> — JPEG for sharing/web, TIFF for high-quality archival. <strong>Quality</strong> — 90–95 for JPEG. <strong>Output colour profile</strong> — sRGB for web, AdobeRGB or Display P3 for print. <strong>Max size</strong> — set pixel width/height limits, or leave at 0 for original size. <strong>Destination</strong> — choose a folder, or send directly to an external application.</p><p>Click <strong>Export</strong> to begin. A progress bar appears in the top bar.</p><p>Placeholder — the export module with format, quality, and output path settings.</p><h2>Key Keyboard Shortcuts</h2><p>ActionShortcut Switch to LighttableL Switch to DarkroomD Zoom 100%Z Fit image to windowF Toggle module on/offCtrl click module header Rate 1–5 stars1–5 Reject photoR Remove rating0 Copy history stackCtrl C Paste history stackCtrl V UndoCtrl Z Show/hide panelsTab</p><h2>Tips and Gotchas</h2><p><strong>Use the histogram as your guide.</strong> Aim to keep your histogram within bounds in the Darkroom — blown highlights or crushed blacks lose recoverable detail. Enable the <strong>Overexposure indicator</strong> (O) and <strong>Rawprepare clipping indicator</strong> to catch clipping early.</p><p><strong>Learn the scene-referred workflow before trying the legacy modules.</strong> The legacy Levels, Curves, and Hue/Saturation modules work in a display-referred context and mix poorly with scene-referred modules like Filmic RGB and Colour Calibration.</p><p><strong>Back up your Darktable database.</strong> All your edits are stored in <code>~/.config/darktable/library.db</code> (Linux) or <code>~/Library/Application Support/darktable/library.db</code> (macOS). Back this up regularly — without it, you lose all your edit history.</p><p><strong>On Apple Silicon</strong>, Darktable uses OpenCL for GPU-accelerated processing. If your Mac has a discrete GPU or the Apple Silicon GPU is recognised, enable OpenCL in <strong>Preferences → Processing → OpenCL</strong> for faster exports and module previews.</p><p><strong>On Fedora KDE</strong>, the Flatpak version is generally the most up-to-date. If colour management looks wrong, ensure your monitor profile is set correctly in KDE&#x27;s <strong>System Settings → Color Corrections</strong>.</p><p><strong>On Windows 11</strong>, Darktable&#x27;s library database is stored at <code>C:\Users\&lt;username&gt;\AppData\Local\darktable\library.db</code>. Back this up regularly — it contains all your edit history. If Darktable launches slowly, check whether Windows Defender is scanning the database folder; adding an exclusion for your Darktable data folder can significantly speed things up. For colour management, assign your monitor ICC profile in <strong>Windows Settings → System → Display → Colour Profile</strong> and point Darktable to it in <strong>Preferences → Processing → Output colour profile</strong>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Obsidian</title>
      <link>https://www.steven-legg.com/blog/obsidian-tutorial</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/obsidian-tutorial</guid>
      <pubDate>Thu, 12 Mar 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Tutorials</category>
      <description>Comprehensive Obsidian tutorial for macOS Tahoe (Apple Silicon), Fedora 43 KDE, and Windows 11 — vaults, Markdown, links, plugins, and workflows.</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/3dd4374425b4dd3facc1489a6d9b9a5cbabcccb5-513x482.jpg?w=1200&amp;fit=crop&amp;auto=format" alt="Obsidian"></p><p>Obsidian is a local-first Markdown note-taking app built around the idea of linked notes. Unlike Notion, all your data lives as plain <code>.md</code> files in a folder on your computer — no account required for basic use, no internet dependency, and no vendor lock-in. It&#x27;s fast, highly extensible through plugins, and particularly well-suited to building a personal knowledge base or &quot;second brain&quot;.</p><h2>Installation</h2><h3>macOS (Apple Silicon)</h3><p>Download the <code>.dmg</code> from obsidian.md. The app is a universal binary — it runs natively on Apple Silicon with no Rosetta translation. Open the <code>.dmg</code>, drag Obsidian to Applications, and launch it.</p><p>Via Homebrew:</p><p>brew install --cask obsidian</p><h3>Fedora KDE</h3><p>The recommended method on Fedora is Flatpak:</p><p>flatpak install flathub md.obsidian.Obsidian</p><p>An AppImage is also available from the Obsidian website if you prefer. Download it, make it executable, and run it:</p><p>chmod +x Obsidian-*.AppImage<br/>./Obsidian-*.AppImage</p><p>Placeholder — Obsidian first launch vault selection screen.</p><h3>Windows 11</h3><p>Download the <code>.exe</code> installer from obsidian.md. The installer runs per-user by default and requires no administrator rights. Alternatively, install via <strong>winget</strong>:</p><p>winget install Obsidian.Obsidian</p><p>Obsidian on Windows 11 is identical to the macOS and Linux versions — all plugins, themes, and features work the same way. Your vault is a regular Windows folder; place it anywhere you like. If you want it to sync with OneDrive, put the vault folder inside your OneDrive folder, but do not also enable Obsidian Sync simultaneously or you&#x27;ll risk file conflicts.</p><h2>Vaults</h2><p>When you first open Obsidian you&#x27;re asked to create or open a <strong>vault</strong>. A vault is simply a folder on your filesystem. Every <code>.md</code> file inside that folder is a note. Obsidian stores its configuration in a hidden <code>.obsidian/</code> sub-folder within the vault.</p><p>You can have multiple vaults for different purposes — for example, one for work notes and one for personal knowledge. Switch between them from the vault switcher in the bottom-left corner.</p><p><strong>Where to put your vault:</strong> Anywhere is fine. For automatic backups, put it inside a synced folder (iCloud Drive on macOS, or a Syncthing/rclone folder on Fedora). Do <em>not</em> put a vault inside Dropbox and sync it simultaneously with Obsidian Sync — this can cause conflicts.</p><h2>Markdown Basics</h2><p>Notes are plain Markdown files. Here are the most common elements:</p><p># Heading 1<br/>## Heading 2<br/>### Heading 3<br/><br/>**bold**&nbsp;&nbsp; *italic*&nbsp;&nbsp; ~~strikethrough~~&nbsp;&nbsp; `inline code`<br/><br/>- Bullet item<br/>- Another item<br/>&nbsp; - Nested item<br/><br/>1. Numbered item<br/>2. Another item<br/><br/>- [ ] Checkbox (incomplete)<br/>- [x] Checkbox (complete)<br/><br/>&gt; Blockquote<br/><br/>```python<br/># Fenced code block<br/>print(&quot;Hello, world!&quot;)<br/>```<br/><br/>[Link text](https://example.com)<br/>![[note-name]]&nbsp;&nbsp; <br/>[[note-name]]</p><h2>The Interface</h2><p>Obsidian&#x27;s interface has three main columns: the <strong>left sidebar</strong> (file explorer, search, bookmarks), the <strong>editor</strong> (one or more tabs/panes), and the <strong>right sidebar</strong> (backlinks, outgoing links, outline, tags).</p><p>Placeholder — annotated Obsidian interface with sidebars and editor.</p><h3>Editor Modes</h3><p>Obsidian has two editor modes: <strong>Source mode</strong> (shows raw Markdown) and <strong>Live Preview</strong> (renders Markdown inline as you type, like a WYSIWYG editor). Toggle between them in the top-right of any note, or set a default in <strong>Settings → Editor → Default editing mode</strong>.</p><p>There&#x27;s also a <strong>Reading view</strong> (fully rendered, non-editable) accessible by clicking the book icon or pressing ⌘/Ctrl E.</p><h2>Linking Notes</h2><p>The core feature of Obsidian is bidirectional linking. Type <code>[[</code> to open a link picker — start typing a note name and select from the dropdown. This creates an internal link. When you open the target note, its <strong>Backlinks</strong> panel shows all the notes that link to it.</p><p>Placeholder — the [[link picker]] autocomplete dropdown.</p><h3>The Graph View</h3><p>Open <strong>Graph view</strong> (⌘/Ctrl G) to see a visual map of all your notes and how they link to each other. Each note is a node; each link is an edge. Highly connected notes appear larger. This is useful for spotting isolated notes and finding unexpected connections between topics.</p><p>Placeholder — graph view of a vault with many linked notes.</p><h3>Embeds</h3><p>Prefix a link with <code>!</code> to embed the contents of another note inline: <code>![[note-name]]</code>. You can also embed specific sections by adding a heading: <code>![[note-name#Section Heading]]</code>, or embed images: <code>![[photo.jpg]]</code>.</p><h2>Key Keyboard Shortcuts</h2><p>ActionmacOSLinux / Windows Open command palette⌘ PCtrl P Quick switcher (open note)⌘ OCtrl O Search in all notes⌘ Shift FCtrl Shift F Toggle left sidebar⌘ ←Ctrl ← Toggle right sidebar⌘ →Ctrl → New note⌘ NCtrl N Toggle reading/editing view⌘ ECtrl E Open graph view⌘ GCtrl G Bold⌘ BCtrl B Italic⌘ ICtrl I Insert link⌘ KCtrl K</p><h2>Plugins</h2><p>Obsidian has two categories of plugins: <strong>Core plugins</strong> (built-in, toggle on/off in Settings) and <strong>Community plugins</strong> (third-party, installable from within the app).</p><h3>Essential Core Plugins to Enable</h3><p>Go to <strong>Settings → Core plugins</strong> and enable these: <strong>Backlinks</strong> (see what links to the current note), <strong>Outline</strong> (table of contents from headings), <strong>Daily notes</strong> (create a new note for today with one click), <strong>Templates</strong> (insert pre-written content), <strong>Tags</strong> (tag pane in sidebar), and <strong>Bookmarks</strong> (pin frequently used notes).</p><h3>Recommended Community Plugins</h3><p>Go to <strong>Settings → Community plugins → Browse</strong> to install. These are worth installing early:</p><p><strong>Dataview</strong> — query your notes like a database. Write <code>dataview</code> code blocks that return lists, tables, and tasks matching criteria from your notes&#x27; frontmatter and inline fields. This is one of the most powerful plugins in the ecosystem.</p><p><strong>Calendar</strong> — adds a calendar widget in the sidebar, one cell per day, with indicators showing which days have daily notes. Click any day to open or create its daily note.</p><p><strong>Templater</strong> — a more powerful version of the built-in Templates plugin. Supports dynamic content (current date, cursor position, user prompts) and can run JavaScript.</p><p><strong>Excalidraw</strong> — embed hand-drawn-style diagrams and sketches directly inside your notes.</p><p><strong>Advanced Tables</strong> — makes editing Markdown tables much less painful. Tab between cells, auto-formats columns.</p><p>Placeholder — the community plugin browser inside Obsidian settings.</p><h2>Daily Notes Workflow</h2><p>The daily note pattern is the most common Obsidian workflow. Each day gets one note (e.g., <code>2026-06-03.md</code>) that acts as a journal, inbox, and task list for that day.</p><p>Enable the Daily notes core plugin and configure: <strong>Date format</strong> (<code>YYYY-MM-DD</code> is standard), <strong>New file location</strong> (e.g., a <code>Journal/</code> folder), and a <strong>Template</strong>. A simple daily note template looks like this:</p><p># {{date:YYYY-MM-DD}} — {{date:dddd}}<br/><br/>## Tasks<br/>- [ ]<br/><br/>## Notes<br/><br/><br/>## Links<br/></p><p>Press ⌘/Ctrl Shift D (or the calendar plugin icon) to open today&#x27;s daily note instantly.</p><h2>Sync and Backup</h2><h3>macOS</h3><p>Put your vault folder inside iCloud Drive (<code>~/Library/Mobile Documents/iCloud~md~obsidian/Documents/</code>) for automatic iCloud sync to iPhone/iPad. Alternatively, use Obsidian Sync (paid) for end-to-end encrypted sync with version history. Third-party options like Dropbox or Git also work.</p><h3>Fedora KDE</h3><p>Use <strong>Syncthing</strong> for peer-to-peer sync between devices — it&#x27;s free, open source, and doesn&#x27;t route data through a cloud server. Install it:</p><p>sudo dnf install syncthing</p><p>Enable and start the service:</p><p>systemctl --user enable --now syncthing</p><p>Then open <code>http://127.0.0.1:8384</code> in your browser to configure Syncthing and add the vault folder. Add your other devices (Mac, phone) to sync with.</p><p>For Git-based backup, initialise a repo inside your vault and push to a private repository on GitHub or Codeberg. The <strong>Obsidian Git</strong> community plugin automates commits and pushes on a schedule.</p><h3>Windows 11</h3><p>On Windows, <strong>OneDrive</strong> is the easiest automatic sync option — place your vault inside your OneDrive folder and it syncs to all your Windows devices and the OneDrive web. For cross-platform sync (Windows to macOS or Android), use <strong>Syncthing</strong> (free, peer-to-peer) or <strong>Obsidian Sync</strong> (paid, end-to-end encrypted). Install Syncthing on Windows via:</p><p>winget install SyncthingCommunity.SyncTray</p><p>The <strong>Obsidian Git</strong> community plugin works on Windows provided Git is installed (<code>winget install Git.Git</code>). After installing Git, restart Obsidian, install the plugin, and configure it the same way as on other platforms.</p><h2>Tips and Gotchas</h2><p><strong>Start with fewer plugins.</strong> It&#x27;s tempting to install everything immediately. Learn the basics first — plain notes and links — before adding plugins. Each plugin has a learning curve.</p><p><strong>Use frontmatter for metadata.</strong> YAML frontmatter at the top of a note (between <code>---</code> lines) stores structured metadata like tags, dates, and status that Dataview and other plugins can query.</p><p>---<br/>tags: [programming, python]<br/>created: 2026-06-03<br/>status: in-progress<br/>---</p><p><strong>Don&#x27;t over-organise folders.</strong> Links and tags are more flexible than deep folder hierarchies. Many people use a nearly flat folder structure and rely on links and search to find things.</p><p><strong>On Fedora KDE</strong> with the Flatpak, fonts and some UI elements may look slightly different from the macOS version. If system fonts look off, install a font like Inter and set it in <strong>Settings → Appearance → Font</strong>.</p><p><strong>On Windows 11</strong>, Obsidian handles high-DPI displays well but check <strong>Settings → Appearance → Interface font size</strong> if text looks too small or large on your monitor. If you&#x27;re using OneDrive to sync, make sure <strong>Files On-Demand</strong> is enabled in OneDrive settings — otherwise it may try to download files in a way that conflicts with Obsidian&#x27;s file watcher.</p>]]></content:encoded>
    </item>
    <item>
      <title>Notion</title>
      <link>https://www.steven-legg.com/blog/notion-tutorial</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/notion-tutorial</guid>
      <pubDate>Tue, 10 Mar 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Tutorials</category>
      <description>Comprehensive Notion tutorial for macOS Tahoe (Apple Silicon), Fedora 43 KDE, and Windows 11 — setup, pages, databases, templates, and workflow tips.</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/1c19b8b4deaf1a9b79aefe44e45890bc628a20c1-225x225.png?w=1200&amp;fit=crop&amp;auto=format" alt="Notion"></p><p>Notion is an all-in-one workspace that combines notes, databases, kanban boards, wikis, and calendars in a single app. It can replace a collection of separate apps — or become a chaotic mess if you don&#x27;t have a clear structure from the start. This guide walks through installation, core concepts, and practical workflows.</p><h2>Installation</h2><h3>macOS (Apple Silicon)</h3><p>Download the Mac app from notion.so/desktop. The download is a universal binary that runs natively on Apple Silicon — no Rosetta required. Drag <strong>Notion.app</strong> to your Applications folder and launch it.</p><p>Alternatively, install via Homebrew:</p><p>brew install --cask notion</p><p>Placeholder — Notion download page or Homebrew install in Terminal.</p><h3>Fedora KDE</h3><p>Notion doesn&#x27;t publish an official Linux package, but a community-maintained Flatpak is available on Flathub and is the recommended way to install it:</p><p>flatpak install flathub notion-app-enhanced</p><p>If you prefer the official web app as a native-feeling wrapper, <strong>Notion Enhanced</strong> is a good Flatpak that adds extra features. After installing, launch from your application menu or with:</p><p>flatpak run notion-app-enhanced</p><p>Placeholder — Notion open on Fedora KDE.</p><h3>Windows 11</h3><p>Notion has a first-class Windows desktop app. Download it from notion.so/desktop and run the installer — no administrator rights required. Alternatively, install via <strong>winget</strong> in Windows Terminal or PowerShell:</p><p>winget install Notion.Notion</p><p>Notion on Windows 11 is a native Electron app and behaves identically to the macOS version — all the same keyboard shortcuts work (with Ctrl in place of ⌘), and all features are available. Sign in with your Notion account on first launch.</p><h2>Understanding the Interface</h2><p>Notion&#x27;s interface has three main areas: the <strong>sidebar</strong> (left), the <strong>editor</strong> (centre), and optionally a <strong>right panel</strong> for comments and page info.</p><p>The sidebar contains your workspace, favourited pages, private pages, and shared pages. Everything in Notion is a <em>page</em> — pages can contain other pages, databases, text, media, and embeds.</p><p>Placeholder — annotated Notion interface overview.</p><h3>Key Keyboard Shortcuts</h3><p>Learning these shortcuts dramatically speeds up your workflow:</p><p>ActionmacOSLinux / Windows New page⌘ NCtrl N Open search⌘ PCtrl P Toggle sidebar⌘ \Ctrl \ Insert block menu// Turn block into…⌘ /Ctrl / Bold⌘ BCtrl B Italic⌘ ICtrl I Inline code⌘ ECtrl E Duplicate block⌘ DCtrl D Move block up/down⌘ Shift ↑/↓Ctrl Shift ↑/↓</p><h2>Pages and Blocks</h2><p>Everything in Notion is built from <strong>blocks</strong>. A block is any discrete unit of content: a paragraph, a heading, an image, a to-do, a code snippet, an embed. Blocks can be dragged and reordered freely.</p><p>To insert a block, type / anywhere in the editor to open the block menu. Start typing to filter — for example, / then &quot;todo&quot; inserts a checkbox, &quot;/image&quot; inserts an image block, &quot;/code&quot; inserts a code block.</p><p>Placeholder — the slash command block menu.</p><h3>Common Block Types</h3><p>The most useful block types to know are: <strong>Text</strong> (plain paragraph), <strong>Heading 1/2/3</strong>, <strong>Bulleted list</strong>, <strong>Numbered list</strong>, <strong>To-do list</strong> (checkboxes), <strong>Toggle</strong> (collapsible section), <strong>Quote</strong>, <strong>Code</strong>, <strong>Callout</strong> (highlighted note box), <strong>Divider</strong>, <strong>Image</strong>, <strong>Video</strong>, <strong>Table</strong>, and <strong>Page</strong> (embed a sub-page inline).</p><h3>Nesting Pages</h3><p>Pages can be nested inside other pages indefinitely. This is the foundation of a wiki-style structure. In the sidebar, click the <strong>+</strong> next to any page to add a sub-page, or type / then &quot;Page&quot; inside the editor to embed a page inline.</p><h2>Databases</h2><p>Databases are where Notion becomes genuinely powerful. A database is a structured collection of pages, each page being a row with custom properties (columns). The same database can be viewed as a table, board, list, calendar, gallery, or timeline.</p><h3>Creating a Database</h3><p>Type / then select a database view type — for example, &quot;Table&quot; creates a table database. Every row is a full Notion page you can open and edit.</p><p>Placeholder — a Notion table database showing rows, columns, and property types.</p><h3>Properties</h3><p>Database properties (columns) define what metadata each entry has. Key property types are: <strong>Text</strong>, <strong>Number</strong>, <strong>Select</strong> (single choice tag), <strong>Multi-select</strong> (multiple tags), <strong>Date</strong>, <strong>Checkbox</strong>, <strong>URL</strong>, <strong>Person</strong>, <strong>Relation</strong> (link to another database), and <strong>Formula</strong> (compute a value from other properties).</p><h3>Views</h3><p>Click <strong>+ Add a view</strong> at the top of any database to add an alternate view. Each view can have its own filter, sort, and grouping — the underlying data is always the same. For example, you might have a Table view for editing, a Board view grouped by status, and a Calendar view grouped by due date, all on the same database.</p><p>Placeholder — board view of a database, cards grouped by status column.</p><h3>Filters and Sorts</h3><p>Click <strong>Filter</strong> to show only rows matching a condition (e.g., &quot;Status is In Progress&quot;, &quot;Due date is before today&quot;). Click <strong>Sort</strong> to order rows by a property. Filters and sorts are per-view and don&#x27;t affect other views or the data itself.</p><h2>Relations and Rollups</h2><p>A <strong>Relation</strong> property links entries in one database to entries in another. This is how you build a relational system in Notion — for example, linking a Tasks database to a Projects database so each task knows which project it belongs to.</p><p>A <strong>Rollup</strong> property uses a relation to pull aggregated information from the linked database. For example, a rollup on your Projects database could count how many tasks are completed, sum their estimated hours, or show the earliest due date.</p><p>Placeholder — relation and rollup property configuration.</p><h2>Templates</h2><p>Templates let you create new pages or database entries with pre-filled content and structure. In a database, click the dropdown arrow next to the <strong>New</strong> button to create or select a template. For standalone pages, type / then &quot;Template button&quot; to add an in-page button that generates a new page from a template.</p><p>Notion also has a gallery of pre-made templates at notion.so/templates. Duplicating a community template to your workspace is a good starting point.</p><h2>Practical Workflows</h2><h3>Personal Task Manager</h3><p>Create a Table database called &quot;Tasks&quot;. Add properties: <strong>Status</strong> (Select: To Do / In Progress / Done), <strong>Priority</strong> (Select: High / Medium / Low), <strong>Due Date</strong> (Date), <strong>Project</strong> (Relation to a Projects database). Add a Board view grouped by Status for a kanban feel, and a Calendar view for due dates.</p><h3>Reading List</h3><p>Create a Gallery database called &quot;Reading List&quot;. Properties: <strong>Status</strong> (Select: To Read / Reading / Finished), <strong>Genre</strong> (Multi-select), <strong>Rating</strong> (Select: ★ through ★★★★★), <strong>Cover</strong> (Files &amp; media). Use the gallery view with &quot;Cover&quot; as the preview image for a visual bookshelf.</p><h3>Personal Wiki / Second Brain</h3><p>Create a root page called &quot;Home&quot; or &quot;Dashboard&quot;. Under it, create top-level pages for major areas of your life — Work, Learning, Projects, Reference, Journal. Use sub-pages freely. Use the <strong>Linked database</strong> feature to surface database views on your Home page without duplicating data.</p><h2>Tips and Gotchas</h2><p><strong>Notion works best with an intentional structure.</strong> Start simple — one page, a few sub-pages — and add complexity only when you feel the need. The most common mistake is building elaborate systems before you know what you actually need.</p><p><strong>The web clipper</strong> (browser extension) lets you save web pages, articles, and highlights directly to a Notion database. Install it from the Chrome Web Store or Firefox Add-ons.</p><p><strong>Offline support is limited.</strong> Notion requires an internet connection to sync. On both macOS and Linux, previously loaded pages are cached, but creating new content offline is unreliable. If offline note-taking is critical, consider Obsidian instead (see the Obsidian guide).</p><p><strong>On Fedora KDE</strong>, the Flatpak version may occasionally lag behind the latest desktop app release. If you need the very latest features, use Notion in a browser (Firefox or Chromium) instead.</p><p><strong>On Windows 11</strong>, Notion runs well with no special configuration. If you want Notion to start with Windows, right-click the system tray icon and enable <strong>Launch on login</strong>. The web clipper browser extension works with Edge, Chrome, and Firefox on Windows exactly as it does on other platforms.</p><p><strong>Exporting your data.</strong> You can export all your pages as Markdown + CSV at <strong>Settings → Export all workspace content</strong>. Do this periodically as a backup.</p>]]></content:encoded>
    </item>
    <item>
      <title>The Midnight Library</title>
      <link>https://www.steven-legg.com/blog/the-midnight-library-matt-haig</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/the-midnight-library-matt-haig</guid>
      <pubDate>Fri, 20 Feb 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Books</category>
      <description>A personal review of Matt Haig&#39;s The Midnight Library — the book I listened to in the Target backroom when I needed to sit with the question of where my life had gone, and what I might have done diffe</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/aa67b30fb30e6ec10ab63e7f99f7479d7e592d43-1675x934.jpg?w=1200&amp;fit=crop&amp;auto=format" alt="Cover art for Matt Haig&#39;s novel The Midnight Library."></p><p>I listened to <em>The Midnight Library</em> as an audiobook while I was working at Target. I was pretty depressed at the time. The job involved a lot of solitary work in the back — going up and down a ladder, stocking product that, more often than not, would sit there until it was close to its expiration date and then come back down for markdown or disposal. There&#x27;s something about that particular kind of work that gives your mind too much room. You can&#x27;t really listen to anything that demands attention, but you also can&#x27;t escape your own thoughts. An audiobook in one ear was the closest thing to company I could manage.</p><p>What I needed, honestly, was to sulk. To go back over the long list of things I felt I had done wrong, decisions I wished I could take back, turns I&#x27;d taken that I was sure had landed me in the wrong life. The questions kept circling: where would I be if I hadn&#x27;t made those decisions? How would I be different? Would I even still be me?</p><p>That&#x27;s the territory Matt Haig&#x27;s book walks into, and what I found striking is that he doesn&#x27;t try to talk you out of any of it. Nora&#x27;s story — the protagonist, who finds herself in a library between life and death where each book is a version of the life she could have lived — sits squarely with the inner suffering of day-to-day living, with regret, with grief, with the weight of compounding bad days. It doesn&#x27;t dismiss any of that. It doesn&#x27;t reframe it as a gift or a lesson or a stepping stone. It just lets it be what it is.</p><p>And then, slowly, it unfolds something else. Without ever turning preachy, without slipping into the saccharine register that so many books about depression collapse into, it works its way toward the idea that the best life you have is the one you&#x27;re actually living. Not because the others would have been worse — some of them genuinely wouldn&#x27;t have been — but because the one you&#x27;re in is the only one you can actually meet, change, or be present for. The book earns that conclusion. It doesn&#x27;t hand it to you.</p><p>What I appreciated most was how Haig avoids the two failure modes I usually associate with this kind of story. He doesn&#x27;t moralize, and he doesn&#x27;t perform optimism. The prose isn&#x27;t trying to fix you. It&#x27;s just sitting with you, walking through the question alongside you, and trusting that you&#x27;re capable of arriving somewhere on your own.</p><p>The way I describe it now: it&#x27;s <em>a book for when you&#x27;re tired of sulking but can&#x27;t just put on a happy face to ignore it — a wonderful, emotional, and well-constructed read.</em></p><p>I think about it more often than I expected to.</p>]]></content:encoded>
    </item>
    <item>
      <title>PlayStation 2</title>
      <link>https://www.steven-legg.com/blog/playstation-2</link>
      <guid isPermaLink="true">https://www.steven-legg.com/blog/playstation-2</guid>
      <pubDate>Tue, 10 Feb 2026 12:00:00 GMT</pubDate>
      <dc:creator>Steven Legg</dc:creator>
      <category>Games</category>
      <description>I never owned a PS2 as a kid — I played it with an older-brother figure up the street. A look back at the best-selling console ever: its library, its futuristic boot-up, modding it today, and those fa</description>
      <content:encoded><![CDATA[<p><img src="https://cdn.sanity.io/images/mo87nuz0/production/5dd0f03ddabf80f706c8f0a1f0e0e3cb7f8b419d-1920x1080.webp?w=1200&amp;fit=crop&amp;auto=format" alt="A Sony PlayStation 2 console."></p><p>I never had a PS2 of my own. But the woman who ran the daycare I went to lived just up the street, and her son was genuinely awesome — kind of an older-brother figure for me, which meant a lot as an only child. The only times I played PS2 as a kid were with him.</p><p>The PS2 had such an awesome library of games, and in my opinion one of the best boot-up animations ever put on a console. It felt so futuristic for the time — you could honestly argue the UI still feels futuristic today. And a modded PS2 with four controllers is an absolutely amazing setup in 2026. You can digitally load an entire library onto the console. Don&#x27;t get me wrong, I love physical games and you can still use those — but the disc drives on these older machines just aren&#x27;t holding up well 20 years later.</p><figure><img src="https://cdn.sanity.io/images/mo87nuz0/production/704f0e3baffc8b08b90e42fe7cc0fd5e1f1efd81-2880x1800.png?w=1200&amp;fit=crop&amp;auto=format" alt="The PlayStation 2 boot-up screen." loading="lazy"></figure><p>That iconic boot-up screen — the towers of light rising out of the dark. Still one of the most futuristic-feeling intros ever put on a console.</p><p>The disc drive has been the single most common point of failure across my Gamecubes, PS1, Dreamcast, and Wii. For the GameCube specifically, my nostalgia is just too strong: I need the physical games and a working disc laser, because I love those tiny GameCube discs and the box art too much to go any other way. Same goes for my Game Boy, Game Boy Color, and Game Boy Advance Pokémon games. (The only game I feel I&#x27;m still missing for the GameCube right now is Kirby Air Ride.)</p><p>But back to the PS2. I recently sold mine to a friend, simply because I wasn&#x27;t playing it enough at the moment. I&#x27;ll get another eventually — a modded PS2 slim. The white one looks killer, but I&#x27;ll always reach for the black.</p><p>The one thing that still trips me up about PlayStation is the buttons. I love that Sony didn&#x27;t just go with the conventional ABXY layout — but my brain never quite learned to read △ ◯ ✕ ▢ on sight. I still fumble with a PlayStation controller, honestly — but I really do love using the PS5 controller with my Linux and Mac machines.</p><p>The PS2 is an absolutely incredible, legendary console, and the sales back that up. With roughly 160 million units sold, it&#x27;s still the best-selling video game console of all time — and it wasn&#x27;t close among its own generation. The GameCube sold around 21.7 million, the original Xbox around 24 million, and the Sega Dreamcast under 10 million. The PS2 didn&#x27;t just win its era; it lapped it. A big part of that was how much console you got for the money: a massive game catalog, a built-in DVD player when those were still expensive on their own, and backward compatibility with PS1 games.</p><p>It has also aged remarkably well. Plenty of consoles from that time feel like relics now, but the PS2&#x27;s library, its interface, and the thriving modding scene around it mean it&#x27;s still genuinely fun to own and play. I&#x27;m not as deep on the PlayStation lineup as I am on the Nintendo side, but I know for a fact the PS2 and the PS4 were — and still are — absolutely fire.</p><p>If you want to see an expert console modder in action, check out ModzvilleUSA on YouTube. Lots of great content there.</p>]]></content:encoded>
    </item>
  </channel>
</rss>
