pig-monkey.com - generalhttps://pig-monkey.com/2026-02-12T20:37:00-08:00Tracking Investments with Ledger2026-02-12T00:00:00-08:002026-02-12T20:37:00-08:00Pig Monkeytag:pig-monkey.com,2026-02-12:/2026/02/ledger-investments/<p>I have a few investment accounts I track with <a href="https://www.ledger-cli.org/">Ledger</a>. Ledger has <a href="https://ledger-cli.org/doc/ledger3.html#Currency-and-Commodities">ways of tracking commodities</a> that are too complex for me. My investments are index funds of different flavors. I neither know nor care to know what individual components they consist of. They mostly manage themselves. I do want …</p><p>I have a few investment accounts I track with <a href="https://www.ledger-cli.org/">Ledger</a>. Ledger has <a href="https://ledger-cli.org/doc/ledger3.html#Currency-and-Commodities">ways of tracking commodities</a> that are too complex for me. My investments are index funds of different flavors. I neither know nor care to know what individual components they consist of. They mostly manage themselves. I do want to know their balance, but I do not care to think about them more than a few times per year, so the up-to-date-ness factor can be pretty low (which is the complete opposite of everything else that I track in Ledger).</p>
<p>I represent these things in Ledger using an asset account for the fund, with subaccounts for contributions, earnings, and fees.</p>
<p>Contributions into the accounts are entered as soon as they happen, since those contributions are being debited out of an account where the up-to-date-ness factor is critical. So a transfer from my bank account to my Roth IRA may look like this:</p>
<div class="highlight"><pre><span></span><code><span class="mf">2025</span><span class="o">-</span><span class="mf">02</span><span class="o">-</span><span class="mf">01</span><span class="w"> </span><span class="n">Investment</span><span class="w"> </span><span class="n">Company</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Invest</span><span class="p">:</span><span class="n">RothIRA</span><span class="p">:</span><span class="kr">Cont</span><span class="n">ributions</span><span class="w"> </span><span class="err">$</span><span class="mf">1000.00</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Bank</span><span class="p">:</span><span class="n">Checking</span><span class="w"></span>
</code></pre></div>
<p>Earnings and fees are tracked, but I only make those entries about once per quarter. However, the investment companies provide monthly statements. That level of granularity can be useful to have stored. So when I perform my quarterly updates, I’ll download each of the monthly statements from the past quarter and use them to make three sets of entries – two per month for the three months in the quarter. For example, in January 2026 I might make entries for the 2025 Q4 activity such as:</p>
<div class="highlight"><pre><span></span><code><span class="mf">2025</span><span class="o">-</span><span class="mf">10</span><span class="o">-</span><span class="mf">31</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">Investment</span><span class="w"> </span><span class="n">Company</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Invest</span><span class="p">:</span><span class="n">RothIRA</span><span class="p">:</span><span class="n">Earnings</span><span class="w"> </span><span class="err">$</span><span class="mf">79.05</span><span class="w"></span>
<span class="w"> </span><span class="n">Income</span><span class="p">:</span><span class="n">Invest</span><span class="p">:</span><span class="n">Earnings</span><span class="w"></span>
<span class="mf">2025</span><span class="o">-</span><span class="mf">10</span><span class="o">-</span><span class="mf">31</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">Investment</span><span class="w"> </span><span class="n">Company</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Fees</span><span class="p">:</span><span class="n">Invest</span><span class="w"> </span><span class="err">$</span><span class="mf">1.05</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Invest</span><span class="p">:</span><span class="n">RothIRA</span><span class="p">:</span><span class="n">Fees</span><span class="w"></span>
<span class="mf">2025</span><span class="o">-</span><span class="mf">11</span><span class="o">-</span><span class="mf">30</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">Investment</span><span class="w"> </span><span class="n">Company</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Invest</span><span class="p">:</span><span class="n">RothIRA</span><span class="p">:</span><span class="n">Earnings</span><span class="w"> </span><span class="err">$</span><span class="mf">103.25</span><span class="w"></span>
<span class="w"> </span><span class="n">Income</span><span class="p">:</span><span class="n">Invest</span><span class="p">:</span><span class="n">Earnings</span><span class="w"></span>
<span class="mf">2025</span><span class="o">-</span><span class="mf">11</span><span class="o">-</span><span class="mf">30</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">Investment</span><span class="w"> </span><span class="n">Company</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Fees</span><span class="p">:</span><span class="n">Invest</span><span class="w"> </span><span class="err">$</span><span class="mf">2.20</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Invest</span><span class="p">:</span><span class="n">RothIRA</span><span class="p">:</span><span class="n">Fees</span><span class="w"></span>
<span class="mf">2025</span><span class="o">-</span><span class="mf">12</span><span class="o">-</span><span class="mf">31</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">Investment</span><span class="w"> </span><span class="n">Company</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Invest</span><span class="p">:</span><span class="n">RothIRA</span><span class="p">:</span><span class="n">Earnings</span><span class="w"> </span><span class="err">$</span><span class="o">-</span><span class="mf">13.82</span><span class="w"></span>
<span class="w"> </span><span class="n">Income</span><span class="p">:</span><span class="n">Invest</span><span class="p">:</span><span class="n">Earnings</span><span class="w"></span>
<span class="mf">2025</span><span class="o">-</span><span class="mf">12</span><span class="o">-</span><span class="mf">31</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">Investment</span><span class="w"> </span><span class="n">Company</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Fees</span><span class="p">:</span><span class="n">Invest</span><span class="w"> </span><span class="err">$</span><span class="mf">1.31</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Invest</span><span class="p">:</span><span class="n">RothIRA</span><span class="p">:</span><span class="n">Fees</span><span class="w"></span>
</code></pre></div>
<p>Before making the first entry, I will ask Ledger for the balance of <code>Assets:Invest:RothIRA</code> as of 2025-10-01 and confirm that the value matches the October statement’s opening balance. I will then read the total earnings and fees from the October statement and make the two October entries in my journal. Then I ask Ledger for the balance of the account as of 2025-10-31 and make sure the reported value matches the statement’s closing balance. Rinse and repeat for the next two months. I can ignore any contributions mentioned on the statement because those entries were already entered in my journal whenever I made the contribution.</p>
<p>These transactions are marked as cleared with the <code>*</code> symbol as I write the entry because the data comes direct from the statement of past activity. There is no separate <a href="/2020/08/reconciling-ledger/">reconciliation process</a>.</p>
<p>The PDF statements themselves then get stored, but (unlike <a href="/2020/08/receipts-ledger/">receipts, invoices, and checks</a>) that happens in a different repository.</p>
<p>Doing things this way allows me to query for the value of the accounts (as of the last quarter or so), have some idea of how they are performing, and keep track of fees. I don’t really care to know any more details than this, nor do I care to think about these accounts with any more frequency than this.</p>Tax Payments with Ledger2026-02-11T00:00:00-08:002026-02-11T20:37:31-08:00Pig Monkeytag:pig-monkey.com,2026-02-11:/2026/02/tax-payments-ledger/<p>How I record taxes in <a href="https://www.ledger-cli.org/">Ledger</a> is pretty simple. In my demonstration of <a href="/2026/02/salary-ledger/">how I record salary payments</a> the example entry included tax deductions that show the basic account structure.</p>
<div class="highlight"><pre><span></span><code><span class="mf">2025</span><span class="o">-</span><span class="mf">12</span><span class="o">-</span><span class="mf">26</span><span class="w"> </span><span class="n">Acme</span><span class="w"> </span><span class="n">Inc</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Bank</span><span class="p">:</span><span class="n">Checking</span><span class="w"> </span><span class="err">$</span><span class="mf">1000.00</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Tax</span><span class="p">:</span><span class="n">Federal</span><span class="p">:</span><span class="n">FY2025</span><span class="w"> </span><span class="err">$</span><span class="mf">200.00</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Tax …</span></code></pre></div><p>How I record taxes in <a href="https://www.ledger-cli.org/">Ledger</a> is pretty simple. In my demonstration of <a href="/2026/02/salary-ledger/">how I record salary payments</a> the example entry included tax deductions that show the basic account structure.</p>
<div class="highlight"><pre><span></span><code><span class="mf">2025</span><span class="o">-</span><span class="mf">12</span><span class="o">-</span><span class="mf">26</span><span class="w"> </span><span class="n">Acme</span><span class="w"> </span><span class="n">Inc</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Bank</span><span class="p">:</span><span class="n">Checking</span><span class="w"> </span><span class="err">$</span><span class="mf">1000.00</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Tax</span><span class="p">:</span><span class="n">Federal</span><span class="p">:</span><span class="n">FY2025</span><span class="w"> </span><span class="err">$</span><span class="mf">200.00</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Tax</span><span class="p">:</span><span class="n">State</span><span class="p">:</span><span class="n">FY2025</span><span class="w"> </span><span class="err">$</span><span class="mf">50.00</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Insurance</span><span class="p">:</span><span class="n">Medical</span><span class="w"> </span><span class="err">$</span><span class="mf">20.00</span><span class="w"></span>
<span class="w"> </span><span class="n">Income</span><span class="p">:</span><span class="n">Salary</span><span class="w"></span>
</code></pre></div>
<p>I pay state and federal taxes, so I have two main accounts: <code>Expenses:Tax:Federal</code> and <code>Expenses:Tax:State</code>.</p>
<p>Tax payments (and refunds for overpayments) can occur in years other than the tax years that the payments are related to. This requires some way to query transactions by tax years rather than just the posting date. You could do this by tagging the transactions, but I prefer to use a fourth account level to indicate the fiscal year. Thus my 2025 taxes live in <code>Expenses:Tax:Federal:FY2025</code> and <code>Expenses:Tax:State:FY2025</code>.</p>
<p>If I pay an accountant to help me file taxes, I will log the payment against the <code>Expenses:Tax:Preparation</code> account, which uses the same fiscal year subaccount.</p>
<div class="highlight"><pre><span></span><code><span class="mf">2026</span><span class="o">-</span><span class="mf">02</span><span class="o">-</span><span class="mf">01</span><span class="w"> </span><span class="n">The</span><span class="w"> </span><span class="n">Accountant</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Tax</span><span class="p">:</span><span class="n">Preparation</span><span class="p">:</span><span class="n">FY2025</span><span class="w"> </span><span class="err">$</span><span class="mf">100.00</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Bank</span><span class="p">:</span><span class="n">Checking</span><span class="w"></span>
</code></pre></div>
<p>If I receive a federal refund in March, I will debit it out of the appropriate tax account. I also tag these transactions with <code>refund-tax</code> so I can easily query them later.</p>
<div class="highlight"><pre><span></span><code><span class="mf">2026</span><span class="o">-</span><span class="mf">03</span><span class="o">-</span><span class="mf">15</span><span class="w"> </span><span class="n">IRS</span><span class="w"></span>
<span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="mf">2025</span><span class="w"> </span><span class="n">Tax</span><span class="w"> </span><span class="n">Refund</span><span class="w"></span>
<span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="p">:</span><span class="n">refund</span><span class="o">-</span><span class="n">tax</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Bank</span><span class="p">:</span><span class="n">Checking</span><span class="w"> </span><span class="err">$</span><span class="mf">1000.00</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Tax</span><span class="p">:</span><span class="n">Federal</span><span class="p">:</span><span class="n">FY2025</span><span class="w"></span>
</code></pre></div>
<p>If instead I discover that I still owe federal taxes in March, I will credit the payment into the appropriate tax account. I tag these transactions with <code>final-tax</code> so I can easily query them later.</p>
<div class="highlight"><pre><span></span><code><span class="mf">2026</span><span class="o">-</span><span class="mf">03</span><span class="o">-</span><span class="mf">15</span><span class="w"> </span><span class="n">IRS</span><span class="w"></span>
<span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="mf">2025</span><span class="w"> </span><span class="n">Federal</span><span class="w"> </span><span class="n">Taxes</span><span class="w"></span>
<span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="p">:</span><span class="n">final</span><span class="o">-</span><span class="n">tax</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Tax</span><span class="p">:</span><span class="n">Federal</span><span class="p">:</span><span class="n">FY2025</span><span class="w"> </span><span class="err">$</span><span class="mf">1000.00</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Bank</span><span class="p">:</span><span class="n">Checking</span><span class="w"></span>
</code></pre></div>
<p>Some years I have made quarterly estimated tax payments instead of having taxes withheld from my paycheck. These entries look as you would expect, but I tag them with <code>estimated-tax</code> as well as the quarter number for future queries.</p>
<div class="highlight"><pre><span></span><code><span class="mf">2025</span><span class="o">-</span><span class="mf">09</span><span class="o">-</span><span class="mf">02</span><span class="w"> </span><span class="n">IRS</span><span class="w"></span>
<span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="mf">2025</span><span class="w"> </span><span class="n">Q3</span><span class="w"> </span><span class="n">Estimated</span><span class="w"> </span><span class="n">Tax</span><span class="w"></span>
<span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="p">:</span><span class="n">estimated</span><span class="o">-</span><span class="n">tax</span><span class="p">:</span><span class="n">q3</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Tax</span><span class="p">:</span><span class="n">Federal</span><span class="p">:</span><span class="n">FY2025</span><span class="w"> </span><span class="err">$</span><span class="mf">1000.00</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Bank</span><span class="p">:</span><span class="n">Checking</span><span class="w"></span>
</code></pre></div>
<p>The bottom line with all of this is that I can do a simple <code>ledger balance fy2025</code> and see a complete and easy to understand picture of my 2025 taxes. Or I can run <code>ledger balance expenses:tax:federal</code> to see what I’ve paid in federal taxes over the past 14 years, broken out by year.</p>
<p>As with most things related to Ledger, this seems like pretty basic stuff when you’re doing it but becomes a superpower when you realize how most of the rest of the world lives.</p>Salary Tracking with Ledger2026-02-10T00:00:00-08:002026-02-10T17:54:02-08:00Pig Monkeytag:pig-monkey.com,2026-02-10:/2026/02/salary-ledger/<p>In my previous <a href="/tag/plaintextaccounting/">descriptions of how I perform plain text accounting</a> I did not discuss logging salary income with <a href="https://www.ledger-cli.org/">Ledger</a>. My basic strategy is to create an entry with all the same data that appears on the paystub. The only number that actually matters to me is whatever amount ends …</p><p>In my previous <a href="/tag/plaintextaccounting/">descriptions of how I perform plain text accounting</a> I did not discuss logging salary income with <a href="https://www.ledger-cli.org/">Ledger</a>. My basic strategy is to create an entry with all the same data that appears on the paystub. The only number that actually matters to me is whatever amount ends up in my bank account, but it is still important to have withholdings documented for later querying.</p>
<p>A simplified entry would look like this:</p>
<div class="highlight"><pre><span></span><code><span class="mf">2025</span><span class="o">-</span><span class="mf">12</span><span class="o">-</span><span class="mf">26</span><span class="w"> </span><span class="n">Acme</span><span class="w"> </span><span class="n">Inc</span><span class="w"></span>
<span class="w"> </span><span class="n">Assets</span><span class="p">:</span><span class="n">Bank</span><span class="p">:</span><span class="n">Checking</span><span class="w"> </span><span class="err">$</span><span class="mf">1000.00</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Tax</span><span class="p">:</span><span class="n">Federal</span><span class="p">:</span><span class="n">FY2025</span><span class="w"> </span><span class="err">$</span><span class="mf">200.00</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Tax</span><span class="p">:</span><span class="n">State</span><span class="p">:</span><span class="n">FY2025</span><span class="w"> </span><span class="err">$</span><span class="mf">50.00</span><span class="w"></span>
<span class="w"> </span><span class="nb">Exp</span><span class="n">enses</span><span class="p">:</span><span class="n">Insurance</span><span class="p">:</span><span class="n">Medical</span><span class="w"> </span><span class="err">$</span><span class="mf">20.00</span><span class="w"></span>
<span class="w"> </span><span class="n">Income</span><span class="p">:</span><span class="n">Salary</span><span class="w"></span>
</code></pre></div>
<p>At the time of entry, I store a PDF of the paystub <a href="/2020/08/receipts-ledger/">just like a receipt</a>. (In Ye Olden Days this came from scanning a piece of paper, but now I just download the PDF from a web site.) This entry will be <a href="/2020/08/reconciling-ledger/">reconciled</a> and get cleared with the <code>*</code> mark the next time I login to the bank account and verify the amount I received.</p>
<p>If I want to know how much money the employer or a government thinks I made last year, I can just ask Ledger for the balance of the <code>Income:Salary</code> account.</p>
<div class="highlight"><pre><span></span><code>$ ledger balance income:salary --period <span class="m">2025</span>
<span class="nv">$-</span><span class="m">1270</span>.00 Income:Salary
</code></pre></div>
<p>However, this number has no real bearing on my reality. What is much more useful to me is the ability to query how much money I actually received last year, e.g. my take-home pay. I can do this by asking Ledger to show the balance of the bank account, limiting it to postings that involved the <code>Income:Salary</code> account.</p>
<div class="highlight"><pre><span></span><code>$ ledger balance assets:bank:checking -l <span class="s2">"any(account =~ /Income:Salary/)"</span> --period <span class="m">2025</span>
<span class="nv">$1000</span>.00 Assets:Bank:Checking
</code></pre></div>
<p>If the only financial relationship you have with your employer is them giving you money in the form of a salary, then you could simplify this by just asking Ledger for the balance of transactions in the bank account from that payee.</p>
<div class="highlight"><pre><span></span><code>$ ledger balance assets:bank:checking and <span class="s2">"@Acme Inc"</span> --period <span class="m">2025</span>
</code></pre></div>
<p>However, my employer sells stuff, and sometimes I buy that stuff, so for me the above query would show me my salary less my employee purchases. Which is mostly worthless.</p>
<p>When I receive a W-2 after the end of the year, I check all of its entries – gross pay, pre- and post-tax deductions, etc – against Ledger with a simple <code>ledger balance "@Acme Inc" --period 2025</code>. Having all this data stored locally in queryable plain text, rather than needing to access some web portal or read through various PDFs like a prehistoric savage, is a key life strategy for me.</p>Night Moves2026-01-25T00:00:00-08:002026-01-25T10:58:36-08:00Pig Monkeytag:pig-monkey.com,2026-01-25:/2026/01/night-moves/<p>After falling out of the habit for a few months, I resumed my <a href="/2024/07/night-run/">night runs</a> at the end of December. I’ve been back into it for about a month now. It’s great, speed-running <a href="https://vogelmusic.bandcamp.com/track/night-city">night city</a>, just me and the coyotes.</p>
<p><a href="https://www.flickr.com/photos/pigmonkey/55060498646/in/dateposted/" title="After Dark"><img src="https://live.staticflickr.com/65535/55060498646_fd8091f84d_c.jpg" width="800" height="600" alt="After Dark"/></a></p>
<p>New to this cycle, I now stop at …</p><p>After falling out of the habit for a few months, I resumed my <a href="/2024/07/night-run/">night runs</a> at the end of December. I’ve been back into it for about a month now. It’s great, speed-running <a href="https://vogelmusic.bandcamp.com/track/night-city">night city</a>, just me and the coyotes.</p>
<p><a href="https://www.flickr.com/photos/pigmonkey/55060498646/in/dateposted/" title="After Dark"><img src="https://live.staticflickr.com/65535/55060498646_fd8091f84d_c.jpg" width="800" height="600" alt="After Dark"/></a></p>
<p>New to this cycle, I now stop at one of those outdoor fitness areas near the end of my run and knock out some pull-ups. (It turns out using a bar is in fact easier than my normal <a href="/2025/07/pull-ups/">finger pull-ups</a>.) There’s usually a couple other weirdos there.</p>Link Log 2026-01-212026-01-21T00:00:00-08:002026-01-21T21:07:04-08:00Pig Monkeytag:pig-monkey.com,2026-01-21:/2026/01/link-log-20260121/<p><a href="https://www.altcinc.com/work/chimera">Chimera</a></p>
<p><a href="https://andykirkpatrick.substack.com/p/vbl-2023">VBL 2023</a></p>
<p><a href="https://www.shibuya.film/series/white-rabbit">White Rabbit</a></p>
<p><a href="https://om.co/2025/05/18/designing-a-life/">Designing a Life</a></p>
<p><a href="https://tante.cc/2026/01/08/personal-computing/">Personal computing</a></p>
<p><a href="https://obsoletearchive.substack.com/p/when-sega-built-the-most-extreme">When Sega Built the Most Extreme Arcade Cabinet</a></p>
<p><a href="https://www.rollingstone.com/feature/beat-godfather-meets-glitter-mainman-william-burroughs-interviews-david-bowie-92508/">Beat Godfather Meets Glitter Mainman: William Burroughs Interviews David Bowie</a></p>
<p><a href="https://www.flickr.com/photos/pigmonkey/55054892549/in/dateposted/" title="Tam Cruising"><img src="https://live.staticflickr.com/65535/55054892549_877046309f_c.jpg" width="800" height="600" alt="Tam Cruising"/></a></p>I brush my teeth while standing on one foot.2026-01-10T00:00:00-08:002026-01-10T10:43:27-08:00Pig Monkeytag:pig-monkey.com,2026-01-10:/2026/01/toothbrush-balance/<p>It takes about two minute to <a href="/2025/07/how-to-brush-teeth/">brush your teeth</a>. These two minutes are an opportunity to improve balance and ankle strength. Sometimes I switch feet halfway through, other times I’m feeling more ambitious and will balance on one foot in the morning and the other that night.</p>Better Living Through Getting Stomped2026-01-07T00:00:00-08:002026-01-07T17:13:11-08:00Pig Monkeytag:pig-monkey.com,2026-01-07:/2026/01/thai-massage/<p>Four years ago I started going to a <a href="https://en.wikipedia.org/wiki/Traditional_Thai_massage">Thai massage</a> parlor.</p>
<p>This is the practice where they walk on your back, drive their elbows and the heel of their palms into you, and sometimes tie your limbs into knots. My findings are that the older and smaller the Thai lady …</p><p>Four years ago I started going to a <a href="https://en.wikipedia.org/wiki/Traditional_Thai_massage">Thai massage</a> parlor.</p>
<p>This is the practice where they walk on your back, drive their elbows and the heel of their palms into you, and sometimes tie your limbs into knots. My findings are that the older and smaller the Thai lady, the more brutally she stomps on you. I spend much of the session attempting to practice the <a href="https://en.wikipedia.org/wiki/Vipassana_movement#S._N._Goenka">Vipassana body sweep</a> technique under duress and trying not to vocalize the pain. It’s great and I love it.</p>
<p>They would of course lessen the pressure if asked, but this is both incompatible with my male ego and would go against the teachings of the Bodhisattva in the incarnation known as Patrick Swayze.</p>
<video width="1280" controls>
<source src="/media/video/road_house-pain-dont-hurt.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
<p>If I were a rich man I would go monthly, but I am not, so I limit myself to three or four times per year. I consider this a component of my prana-bindu training.</p>Just Another Saturday2026-01-06T00:00:00-08:002026-01-06T22:15:54-08:00Pig Monkeytag:pig-monkey.com,2026-01-06:/2026/01/power-outage/<p>Two weeks ago I <a href="https://sfstandard.com/2025/12/22/san-francisco-blackout-what-we-know-pge/">lost power</a> from about 14:00 till about 21:00. This had negligible impact on my day. I took out <a href="https://www.sofirnlight.com/products/sofirn-lt1-anduril-2-0-rechargeable-camping-lantern">my lamp</a> and continued with the itinerary. My time was spent:</p>
<ul>
<li>Drinking tea<sup class="footnote-ref" id="fnref:stove"><a rel="footnote" href="#fn:stove" title="see footnote">1</a></sup></li>
<li>Lifting <a href="/2025/10/resistance-regime/">Harambe</a></li>
<li>Reading <a href="https://en.wikipedia.org/wiki/Sentimental_Education">Flaubert</a></li>
<li>Pursuing satori</li>
</ul>
<p>It was just another Saturday afternoon …</p><p>Two weeks ago I <a href="https://sfstandard.com/2025/12/22/san-francisco-blackout-what-we-know-pge/">lost power</a> from about 14:00 till about 21:00. This had negligible impact on my day. I took out <a href="https://www.sofirnlight.com/products/sofirn-lt1-anduril-2-0-rechargeable-camping-lantern">my lamp</a> and continued with the itinerary. My time was spent:</p>
<ul>
<li>Drinking tea<sup class="footnote-ref" id="fnref:stove"><a rel="footnote" href="#fn:stove" title="see footnote">1</a></sup></li>
<li>Lifting <a href="/2025/10/resistance-regime/">Harambe</a></li>
<li>Reading <a href="https://en.wikipedia.org/wiki/Sentimental_Education">Flaubert</a></li>
<li>Pursuing satori</li>
</ul>
<p>It was just another Saturday afternoon.</p>
<p><a href="https://www.flickr.com/photos/pigmonkey/55028213606/in/dateposted/" title="Power Outage Leg Day"><img src="https://live.staticflickr.com/65535/55028213606_1d717ca9b2_c.jpg" width="800" height="600" alt="Power Outage Leg Day"/></a></p>
<blockquote>
<p>I threw Lee and Brian at judo today. Lee is 14, and Brian is 13 but taller and heavier.</p>
<p>I told Sibylla & she asked what my teacher had said. I said he had said it was very good.</p>
<p>Sibylla said that didn’t sound very character-building. I said most authorities on child psychology said a child should be given encouragement and reinforcement. Sib said Bandura and who else? I said everybody else. I didn’t say that the authorities also said a parent had to be able to set limits because I was afraid she might suddenly decide to make up for lost time and set a lot of limits.</p>
<p>Sibylla said: Well just remember Richie, becoming the great judo champion is not the end of the story.</p>
<p>I said I didn’t think I was the great judo champion just because I could beat Lee and Brian at Bermondsey Boys Junior Judo.</p>
<p>Sibylla said: It isn’t a question of beating X and Y. What if there’s no one you can’t beat? It’s a question of perfecting your skill and achieving satori. What on earth are they teaching you in this class?</p>
<p>I said we mainly concentrated on learning how to throw people to the ground. Sib said: Must I do <em>everything</em> myself? She was grinning from ear to ear.</p>
</blockquote>
<p>Helen Dewitt, <a href="https://en.wikipedia.org/wiki/The_Last_Samurai_(novel)">The Last Samurai</a></p>
<div id="footnotes">
<h2>Notes</h2>
<ol>
<li id="fn:stove"><a rev="footnote" href="#fnref:stove" class="footnote-return" title="return to article">↵</a> Of course I had to boil water on my gas stove like a savage instead of using the electric kettle.</li>
</ol>
</div>Concerning the Tawashi2025-12-29T00:00:00-08:002025-12-29T16:58:28-08:00Pig Monkeytag:pig-monkey.com,2025-12-29:/2025/12/tawashi/<p>I scrub my dishes and kitchen counter tops with a <a href="https://en.kamenoko-tawashi.co.jp/">Kamenoko Tawashi</a>. The palm fiber of the Tawashi is stiff enough for a good scouring, but does not scratch anything. It doesn’t hold onto food scraps the way some other brushes do. It dries relatively quickly when hung from …</p><p>I scrub my dishes and kitchen counter tops with a <a href="https://en.kamenoko-tawashi.co.jp/">Kamenoko Tawashi</a>. The palm fiber of the Tawashi is stiff enough for a good scouring, but does not scratch anything. It doesn’t hold onto food scraps the way some other brushes do. It dries relatively quickly when hung from its wire loop or placed in a two-piece soap dish, thus supporting <a href="/2019/02/scouring/">my war on sponges</a>. I use the #1 size, which is small enough to fit comfortably in my hand and to be shoved into drink ware. It is the perfect kitchen brush.</p>
<p>I use the same brush for about two years before replacing it. Every few months I toss it in <a href="/2019/12/pressure-cooker-sterilization/">the kitchen autoclave</a>. I could keep them for longer, but I give my Tawashi enough unintentional haircuts when cleaning knives that I’m usually ready for a new one after a couple years.</p>
<p>The only other brushes I use in the kitchen are a <a href="https://www.oxo.com/bottle-brush.html">bottle brush</a> and straw brush. I also have one of those <a href="https://www.amazon.com/exec/obidos/ASIN/B00FKBR1ZG/">chainmail scrubbers</a> for my cast iron, but the Tawashi gets used much more often.</p>
<p><a href="https://www.flickr.com/photos/pigmonkey/55013238595/in/dateposted/" title="Tawashi, Mamison, Sal Suds"><img src="https://live.staticflickr.com/65535/55013238595_c36d7a532d_c.jpg" width="800" height="600" alt="Tawashi, Mamison, Sal Suds"/></a></p>
<p>The Tawashi, <a href="/2019/07/cleaner/">my Sal Suds spray</a>, and my pink <a href="https://nymag.com/strategist/2017/05/the-best-rubber-gloves-for-dishwashing-are-from-korea.html">Mamison gloves</a> complete my kitchen ablution armaments. (The pink color is critical for maximum cleaning.)</p>
<p>Tawashi are made by a number of manufacturers. Many are garbage. Those from Kamenoko are consistently good. I avoid it if it does not come in the orange wrapper with the picture of the turtle on it.</p>Link Log 2025-12-282025-12-28T00:00:00-08:002025-12-28T21:42:37-08:00Pig Monkeytag:pig-monkey.com,2025-12-28:/2025/12/link-log-20251228/<p><a href="https://www.libraryofuseless.com/">Library of Useless</a></p>
<p><a href="https://www.everydaycommentary.com/www.everydaycommentary.com/2025/12/23/to-oil-or-not-to-oil">To Oil or not to Oil</a></p>
<p><a href="https://www.persuasion.community/p/the-woke-right-stands-at-the-door">The Woke Right Stands At the Door</a></p>
<p><a href="https://strengthaxis.substack.com/p/free-gift-the-smart-lifters-band">The Smart Lifter’s Band Training System</a></p>
<p><a href="https://www.xda-developers.com/your-unpowered-ssd-is-slowly-losing-your-data/">The unpowered SSDs in your drawer are slowly losing your data</a></p>
<p><a href="https://www.propublica.org/article/rx-inspector-prescription-drug-lookup">Rx Inspector: ProPublica’s New Tool Provides Drug Info the FDA Won’t</a></p>
<p><a href="https://www.flickr.com/photos/pigmonkey/54865784752/" title="Fortune"><img src="https://live.staticflickr.com/65535/54865784752_4f6961b9a1_z.jpg" width="480" height="640" alt="Fortune"/></a></p>The Hero We Need2025-12-16T00:00:00-08:002025-12-16T15:16:16-08:00Pig Monkeytag:pig-monkey.com,2025-12-16:/2025/12/influencer/<p><a href="https://en.wikipedia.org/wiki/Influencer_(film)">Influencer</a> is mistakenly billed as a horror film, but is actually an inspirational story of a young woman using her murder island to try to make the world a better place by pruning the insta-face-twat-tok-tuber population.</p>
<p>I eagerly awaited the sequel, and can now report that <a href="https://en.wikipedia.org/wiki/Influencers_(film)">Influencers</a> is even better …</p><p><a href="https://en.wikipedia.org/wiki/Influencer_(film)">Influencer</a> is mistakenly billed as a horror film, but is actually an inspirational story of a young woman using her murder island to try to make the world a better place by pruning the insta-face-twat-tok-tuber population.</p>
<p>I eagerly awaited the sequel, and can now report that <a href="https://en.wikipedia.org/wiki/Influencers_(film)">Influencers</a> is even better than the first one. I am here for the Influencer Cinematic Universe.</p>
<p>Whoever composed the score clearly spent a lot of time listening to <a href="https://en.wikipedia.org/wiki/The_Girl_with_the_Dragon_Tattoo_(soundtrack)">The Girl with the Dragon Tattoo soundtrack</a> (and who among us has not). Specifically they seem to be a big fan of <a href="https://www.nin.wiki/Pinned_And_Mounted">track 4</a>.</p>A Gentleman's Calling Card2025-12-04T00:00:00-08:002025-12-04T18:05:01-08:00Pig Monkeytag:pig-monkey.com,2025-12-04:/2025/12/calling-card/<p>To my great surprise, my stock of calling cards is running low.</p>
<p>I had a batch of calling cards printed last December. I explicitly wanted calling cards, not business cards. Something with just my name, telephone, and email address. Nothing else. I ordered samples from the typical on-demand business card …</p><p>To my great surprise, my stock of calling cards is running low.</p>
<p>I had a batch of calling cards printed last December. I explicitly wanted calling cards, not business cards. Something with just my name, telephone, and email address. Nothing else. I ordered samples from the typical on-demand business card printing websites, but I didn’t like any of them. Most were too glossy or printed on too thin a stock. I knew I wanted something I could write on with a fountain pen (for this is what separates us from savages), in case I desired to share information in addition to what was printed on the card.</p>
<p>Eventually I realized that what I wanted was a letterpress printed card. I found a letterpress printer, requested samples, and confirmed they were perfect. Tasteful thickness, subtle off-white coloring. I placed an order.</p>
<p>This was done mostly as a joke. Who actually needs calling cards today? I figured the batch would last me years. Two weeks ago, as I was restocking a jacket pocket before going out for the evening, I was shocked to find the box mostly empty. It turns out, as a gentleman, a man about town, a <em>bon vivant</em>, calling cards are actually useful.</p>
<p>Anyway, I have my calling cards printed by <a href="https://hobancards.com/">Hoban</a>. They sent out a holiday coupon today, so I reordered another batch.</p>
<p>If you see me at a soiree, ask for a card.</p>Link Log 2025-11-242025-11-24T00:00:00-08:002025-11-24T20:15:05-08:00Pig Monkeytag:pig-monkey.com,2025-11-24:/2025/11/link-log-20251124/<p><a href="https://brainbaking.com/post/2025/11/thumbs-up/">Thumbs Up</a></p>
<p><a href="https://www.bbc.co.uk/news/special/2014/newsspec_8703/index.html">Gunther, Christine and Otto</a></p>
<p><a href="https://www.robinsloan.com/lab/all-that-is-solid/">All that is solid melts into code</a></p>
<p><a href="https://www.theatlantic.com/technology/archive/2025/09/minneapolis-church-shooting-influencers/684083/">The Mass Shooters Are Performing for One Another</a></p>
<p><a href="https://arstechnica.com/information-technology/2025/08/the-personhood-trap-how-ai-fakes-human-personality/">The personhood trap: How AI fakes human personality</a></p>
<p><a href="https://www.theatlantic.com/ideas/archive/2025/09/unilateral-disarmament/684086/">America Surrenders in the Global Information Wars</a></p>
<p><a href="https://old.reddit.com/r/AskHistorians/comments/12lwoi/the_respective_roles_of_ninja_and_shinobi/">The respective roles of Ninja and Shinobi</a></p>
<p><a href="https://www.youtube.com/watch?v=Q1DUvTm-eHo">This Corrosion (Lisa Cuthbert, 2012)</a></p>
<p><a href="https://www.youtube.com/watch?v=wD4hB4o79w0">How to …</a></p><p><a href="https://brainbaking.com/post/2025/11/thumbs-up/">Thumbs Up</a></p>
<p><a href="https://www.bbc.co.uk/news/special/2014/newsspec_8703/index.html">Gunther, Christine and Otto</a></p>
<p><a href="https://www.robinsloan.com/lab/all-that-is-solid/">All that is solid melts into code</a></p>
<p><a href="https://www.theatlantic.com/technology/archive/2025/09/minneapolis-church-shooting-influencers/684083/">The Mass Shooters Are Performing for One Another</a></p>
<p><a href="https://arstechnica.com/information-technology/2025/08/the-personhood-trap-how-ai-fakes-human-personality/">The personhood trap: How AI fakes human personality</a></p>
<p><a href="https://www.theatlantic.com/ideas/archive/2025/09/unilateral-disarmament/684086/">America Surrenders in the Global Information Wars</a></p>
<p><a href="https://old.reddit.com/r/AskHistorians/comments/12lwoi/the_respective_roles_of_ninja_and_shinobi/">The respective roles of Ninja and Shinobi</a></p>
<p><a href="https://www.youtube.com/watch?v=Q1DUvTm-eHo">This Corrosion (Lisa Cuthbert, 2012)</a></p>
<p><a href="https://www.youtube.com/watch?v=wD4hB4o79w0">How to Dance Goth</a></p>
<video width="1280" controls>
<source src="/media/video/audrey_hepburn-individual_rights.mkv" type="video/mp4">
Your browser does not support the video tag.
</video>There's this leather daddy I keep running into at different shows.2025-11-23T00:00:00-08:002025-11-23T22:18:28-08:00Pig Monkeytag:pig-monkey.com,2025-11-23:/2025/11/leather-daddy/<p>He’s about 8 ft tall and dresses like Brian Eno circa 1974 but with more makeup. Anytime I go to a show that I know nothing about, I look around to see if I spot him towering over the crowd. If he’s there, I know it’ll be …</p><p>He’s about 8 ft tall and dresses like Brian Eno circa 1974 but with more makeup. Anytime I go to a show that I know nothing about, I look around to see if I spot him towering over the crowd. If he’s there, I know it’ll be a good show.</p>
<p>He should publish an iCalendar feed.</p>Resistance Regime2025-10-23T00:00:00-07:002025-10-23T21:07:08-07:00Pig Monkeytag:pig-monkey.com,2025-10-23:/2025/10/resistance-regime/<p>For the past four months or so I’ve been doing push, pull, and leg days with <a href="https://pig-monkey.com/2025/07/muscle-machine/">my Harambe System</a>. This differs from the push and pull days of the standard <a href="https://harambesystem.com/pages/gorillagainsworkout">Harambe</a> and <a href="https://www.jaquishbiomedical.com/pages/preview-x3-programs">X3</a> programs (both of which are mostly the same) that I had been doing previously.</p>
<ul>
<li>Push: <a href="https://www.youtube.com/shorts/n6tqsjMrAS8">Bench …</a></li></ul><p>For the past four months or so I’ve been doing push, pull, and leg days with <a href="https://pig-monkey.com/2025/07/muscle-machine/">my Harambe System</a>. This differs from the push and pull days of the standard <a href="https://harambesystem.com/pages/gorillagainsworkout">Harambe</a> and <a href="https://www.jaquishbiomedical.com/pages/preview-x3-programs">X3</a> programs (both of which are mostly the same) that I had been doing previously.</p>
<ul>
<li>Push: <a href="https://www.youtube.com/shorts/n6tqsjMrAS8">Bench press</a>, <a href="https://www.youtube.com/watch?v=zCwYIguYyIc">overhead press</a>, tricep extension (<a href="https://www.youtube.com/watch?v=SMRkz6vuBe0">standing</a>, <a href="https://www.youtube.com/watch?v=XuXQ38ILGAk">seated</a>, or <a href="https://www.youtube.com/watch?v=n0Wek5hNCvY">lying</a> depending on my mood)</li>
<li>Pull: <a href="https://www.youtube.com/watch?v=AmE6chaRxzU">Deadlift</a>, <a href="https://www.youtube.com/watch?v=XByIBZGh0V0">bent-over row</a>, bicep curl (<a href="https://www.youtube.com/shorts/VEojAZxcsx4">Ferro</a> and <a href="https://www.youtube.com/watch?v=EupY4PaIztY">drag</a>)</li>
<li>Leg: <a href="https://www.youtube.com/watch?v=_n8RtIIXzp0">static lunge</a>, <a href="https://www.youtube.com/watch?v=Ewrkp3n2_ak">front squat</a>, <a href="https://www.youtube.com/watch?v=nB5DgxZgy0U">back squat</a>, <a href="https://www.youtube.com/shorts/1ewELpQNkUg">calf raises</a></li>
</ul>
<p>I cycle through the days over the course of the week.</p>
<ul>
<li>Monday: Push</li>
<li>Tuesday: Pull</li>
<li>Wednesday: Leg</li>
<li>Thursday: Push</li>
<li>Friday: Pull</li>
<li>Saturday: Rest</li>
<li>Sunday: Rest</li>
</ul>
<p>For a time I did a second leg day on Saturday, but I found this negatively impacted my riding. I ride a bike seven days a week, and usually I’ll end up doing a longer ride on Saturday or Sunday. I don’t consider riding a bike to be exercise – its just how I get around – so I count both Saturday and Sunday as “rest” days, even though really every day is leg day. But when I did a focused leg day with the bands over the weekend, my legs would never get a chance to recover.</p>
<p>I don’t intentionally vary the resistance from day to day. Mostly I’ve been doing two sets to fatigue. I generally aim for 12-15 full reps, and 3-6 at diminishing range. If I can do more than 20 reps in a set, I take it to mean I need <a href="https://harambesystem.com/pages/band-stacking-chart">more resistance</a>. The exception is for calf raises, where I prefer to go lighter and do around 30 reps in a set. If I am pressed for time I’ll go back to the standard <a href="https://www.youtube.com/watch?v=MKx2gpBOlGQ">one set to fatigue</a>. Sometimes, just to mix things up, I’ll do three sets of 10-10-max (as in <a href="https://harambesystem.com/pages/workout">Harambe’s PPL program</a>). In that case, I aim for my max on that last set to be 10 to 12 reps. If I can do more than that it means I should be stacking more bands.</p>
<p>Two months ago I bought the discontinued <a href="https://harambesystem.com/products/the-travel-plate">Travel Plate</a> when Harambe was blowing it out on sale. I now stack this on top of the Cyberplate when doing bench press and deadlift. This effectively shortens the length of the bands. When bench pressing, it allows me to have resistance as soon as the bar leaves my chest (actually there’s a little resistance even with the bar just lying on my chest). When deadlifting, it means I’m pulling resistance as soon as the bar leaves the foam block. It makes both movements more difficult. I had to step down to a lighter band configuration for both. I don’t find it useful for any of the other movements, but I like it for those two. (And it should be mentioned that in both cases, the bands do not contact the upper plate at all, so the fact that I’m using an actual UHMW plate is irrelevant – one could accomplish the same thing with a piece of plywood or a <a href="https://old.reddit.com/r/ResistanceBand/comments/1kexp0c/mid_40s_looking_for_guidance/mqmgd2f/">cutting board</a>.)</p>
<ul class="thumbs">
<li>
<a href="https://www.flickr.com/photos/pigmonkey/54875081837/in/dateposted/" title="Harambe Bench Press: Stacked Plates"><img src="https://live.staticflickr.com/65535/54875081837_2b80c1307d_w.jpg" width="400" height="300" alt="Harambe Bench Press: Stacked Plates"/></a>
</li>
<li>
<a href="https://www.flickr.com/photos/pigmonkey/54876193044/in/dateposted/" title="Harambe Deadlift: Stacked Plates"><img src="https://live.staticflickr.com/65535/54876193044_04b3439416_w.jpg" width="400" height="300" alt="Harambe Deadlift: Stacked Plates"/></a>
</li>
</ul>Huysmans on Social Media2025-09-16T00:00:00-07:002025-09-16T18:08:16-07:00Pig Monkeytag:pig-monkey.com,2025-09-16:/2025/09/bourgeois-doctrinaires/<blockquote>
<p>… he discovered the free-thinkers, those bourgeois doctrinaires who clamoured for absolute liberty in order to stifle the opinions of other people, to be nothing but a set of greedy, shameless hypocrites whose intelligence he rated lower than the village cobbler’s.</p>
</blockquote>
<p>J. K. Huysmans, <a href="https://en.wikipedia.org/wiki/À_rebours">Against Nature (À rebours)</a>, translated by …</p><blockquote>
<p>… he discovered the free-thinkers, those bourgeois doctrinaires who clamoured for absolute liberty in order to stifle the opinions of other people, to be nothing but a set of greedy, shameless hypocrites whose intelligence he rated lower than the village cobbler’s.</p>
</blockquote>
<p>J. K. Huysmans, <a href="https://en.wikipedia.org/wiki/À_rebours">Against Nature (À rebours)</a>, translated by Robert Baldick</p>
<p><a href="https://www.flickr.com/photos/pigmonkey/54791742377/in/dateposted/" title="Luncheon with Huysmans"><img src="https://live.staticflickr.com/65535/54791742377_1083ba55cd_c.jpg" width="800" height="600" alt="Luncheon with Huysmans"/></a></p>