<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tips on xdg.me</title>
    <link>https://xdg.me/tips/</link>
    <description>More than a tweet and less than an essay</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>xdg@xdg.me (David Golden)</managingEditor>
    <webMaster>xdg@xdg.me (David Golden)</webMaster>
    <copyright>Unless otherwise noted, text and media are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Code samples licensed under The MIT License.</copyright>
    <lastBuildDate>Wed, 26 Nov 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://xdg.me/tips/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Resources for verbal communication skills</title>
      <link>https://xdg.me/resources-for-verbal-communication-skills/</link>
      <pubDate>Wed, 26 Nov 2025 00:00:00 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/resources-for-verbal-communication-skills/</guid>
      <description>&lt;p&gt;This list targets &lt;strong&gt;verbal communication in the workplace&lt;/strong&gt; for people in the
tech industry. Some links may have ideas that apply to written communications
or public speaking, but that is not the focus.&lt;/p&gt;
&lt;p&gt;I do not have personal experience with all of these, but I hope this list is
still a useful jumping off point for people looking to level up their
communication skills.&lt;/p&gt;
&lt;p&gt;If you have suggestions of things to add, please tell me!  My contact info is
at the bottom of the page.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Mentor matching platforms</title>
      <link>https://xdg.me/mentor-platforms/</link>
      <pubDate>Wed, 18 May 2022 00:00:00 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/mentor-platforms/</guid>
      <description>&lt;p&gt;I wrote &lt;a href=&#34;https://xdg.me/mentor-engineers/&#34;&gt;How to mentor software engineers&lt;/a&gt;, but not
everyone has access to mentors and mentees around them.  Some companies have
sprung up to try to help match people up.  Here are some I&amp;rsquo;ve found:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://get-merit.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Merit&lt;/a&gt; (free): tech mentorship, focused on under-networked tech workers&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://mentorsintech.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Mentors in Tech&lt;/a&gt; (free): mentorship for US community college students who are trying to break into tech&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.codementor.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CodeMentor&lt;/a&gt; (paid): paid mentorship for software developers&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://mentorcruise.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;MentorCruise&lt;/a&gt; (paid):  paid mentorship from senior engineers and engineering managers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you know of others I should add, please let me know.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Human-readable bytes like &#39;ls -lh&#39; in Go</title>
      <link>https://xdg.me/human-readable-bytes/</link>
      <pubDate>Mon, 10 Jan 2022 00:00:00 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/human-readable-bytes/</guid>
      <description>&lt;p&gt;I once had a feature request for &amp;ldquo;human-readable bytes like &lt;code&gt;ls -lh&lt;/code&gt;&amp;rdquo;.
&lt;em&gt;Surely, there must be a library for that&lt;/em&gt;, I thought.&lt;/p&gt;
&lt;p&gt;But &lt;code&gt;ls -lh&lt;/code&gt; has special, irregular semantics I couldn&amp;rsquo;t find all implemented
together in the same library!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use no decimal or unit suffix for values under 1024 bytes: 0 or
897&lt;/li&gt;
&lt;li&gt;Use one decimal if the integer part is a single digit: 1.0 K or
9.9 M&lt;/li&gt;
&lt;li&gt;Use no decimal if the integer part is more than one digit: 10 K or 582
M&lt;/li&gt;
&lt;li&gt;Aggressively round up: 999 M + 1 byte rounds up to 1 G&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you ever have a similar request, here&amp;rsquo;s some Go code you can use.  Unlike
&lt;code&gt;ls -lh&lt;/code&gt;, this does add a space between the number and the suffix.  It&amp;rsquo;s also
generic to any base or suffixes you want.  See my &lt;a href=&#34;https://github.com/xdg/zzz-humanbytes&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;demo
repo&lt;/a&gt; for more examples and test cases.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Articles on equity comp and value</title>
      <link>https://xdg.me/articles-on-equity-compensation/</link>
      <pubDate>Fri, 30 Jul 2021 00:00:00 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/articles-on-equity-compensation/</guid>
      <description>&lt;div class=&#34;aside&#34;&gt;
&lt;p&gt;As I wrote &lt;a href=&#34;https://xdg.me/equity-comp&#34;&gt;&lt;em&gt;How to think about equity
compensation&lt;/em&gt;&lt;/a&gt;, I found the following articles helpful:&lt;/p&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://medium.com/swlh/a-no-b-s-guide-to-startup-stock-option-grants-526a8bc33c2b&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;A No B.S. Guide to Startup Stock Option Grants&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://medium.com/journal-of-empirical-entrepreneurship/dissecting-startup-failure-by-stage-34bb70354a36&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Dissecting startup failure rates by stage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tanay.substack.com/p/employee-compensation-and-one-year&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Employee compensation and one-year equity grants&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.pragmaticengineer.com/equity-for-software-engineers/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Equity 101 for Software Engineers at Big Tech and Startups&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://startupljackson.com/post/135800367395/how-to-get-rich-in-tech-guaranteed&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;How to get rich in tech, guaranteed.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.fundz.net/what-is-series-a-funding-series-b-funding-and-more&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Series A, B, C Funding: Averages, Investors, Valuations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.investopedia.com/articles/personal-finance/102015/series-b-c-funding-what-it-all-means-and-how-it-works.asp&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Series A, B, C Funding: How It Works&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.cloudways.com/blog/startup-funding-stages/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Startup Funding Stages You Should Know About&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.cbinsights.com/research/venture-capital-funnel-2/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;The Venture Capital Funnel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.holloway.com/g/equity-compensation/sections/typical-employee-equity-levels&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Typical Employee Equity Levels&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.angellist.com/blog/angellist-unicorn-rate&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;What Percentage of AngelList Seed-Stage Startups Become Unicorns?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://andrewchen.com/venture-capital-returns/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Why startups are hard — the math of venture capital returns tells the story&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://every.to/napkin-math/you-probably-shouldn-t-work-at-a-startup-9387b632-345c-4a22-bac0-3cb92f0eecf1#%23&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;You Probably Shouldn’t Work at a Startup&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional articles since then:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Why the Apache2 License</title>
      <link>https://xdg.me/why-apache2/</link>
      <pubDate>Sun, 23 May 2021 00:00:00 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/why-apache2/</guid>
      <description>&lt;p&gt;For any open source work, I always pick the &lt;a href=&#34;https://opensource.org/licenses/Apache-2.0&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Apache2
License&lt;/a&gt; if I have the
choice.  It&amp;rsquo;s not as short and simple as the &lt;a href=&#34;https://opensource.org/licenses/MIT&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;MIT
License&lt;/a&gt;, but it has one killer feature:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Apache2 is the only popular open source license that makes explicit
provision for licensing contributions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the key paragraph:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol start=&#34;5&#34;&gt;
&lt;li&gt;Submission of Contributions.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Unless You explicitly state otherwise, any Contribution intentionally
submitted for inclusion in the Work by You to the Licensor shall be under
the terms and conditions of this License, without any additional terms or
conditions.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Using git merge --no-ff</title>
      <link>https://xdg.me/git-merge-no-ff/</link>
      <pubDate>Tue, 13 Apr 2021 00:00:00 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/git-merge-no-ff/</guid>
      <description>&lt;p&gt;When working with git, I like linear history because otherwise merging
concurrent feature branches makes the history graph look like spaghetti.&lt;/p&gt;
&lt;p&gt;Two common ways to get a linear history are squashing and rebasing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Squashing&lt;/strong&gt; applies all the changes on the feature branch as a single linear
commit on the target branch.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# Before squashing:

A---B---C main
     \
      D---E---F feature

# After squashing:

A---B---C---G(=D+E+F) main
     \
      D---E---F feature
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Rebasing&lt;/strong&gt; moves &lt;code&gt;D-E-F&lt;/code&gt; to the tip of main.  A normal merge will
fast-forward, keeping the history linear.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Craft of coding reading list</title>
      <link>https://xdg.me/craft-of-coding/</link>
      <pubDate>Fri, 19 Feb 2021 00:00:00 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/craft-of-coding/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m sharing a list of recommendations to help software developers learn &lt;strong&gt;the
practice of software development&lt;/strong&gt; as a combination of craft and career. I use
this for recommendations for new junior engineers.&lt;/p&gt;
&lt;p&gt;The items are generally language-agnostic. They cover topics including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Professional behaviors and human interactions&lt;/li&gt;
&lt;li&gt;Software design principles and heuristics&lt;/li&gt;
&lt;li&gt;Testing best practices&lt;/li&gt;
&lt;li&gt;Development practices and patterns to reduce errors&lt;/li&gt;
&lt;li&gt;War stories about projects gone wrong&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Highly recommended for entry-level developers:&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Convert Google Doc to Markdown</title>
      <link>https://xdg.me/google-doc-to-markdown/</link>
      <pubDate>Sun, 25 Oct 2020 00:00:00 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/google-doc-to-markdown/</guid>
      <description>&lt;p&gt;Occasionally, I want to convert a Google Doc to Markdown in a way that
preserves links and at least some of the formatting. I&amp;rsquo;ve tried various online
recommendations and been disappointed.&lt;/p&gt;
&lt;p&gt;Here is the approach I&amp;rsquo;m using lately:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Google doc, select the menu item &lt;code&gt;File → Download → Microsoft Word (docx)&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the DOCX file to &lt;a href=&#34;https://x.com/benbalter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;@benbalter&amp;rsquo;s&lt;/a&gt; free &lt;a href=&#34;https://word2md.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Word to Markdown Converter&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
    </item>
    
    <item>
      <title>Curated links on better technical interviewing</title>
      <link>https://xdg.me/better-technical-interviewing/</link>
      <pubDate>Sun, 25 Oct 2020 00:00:00 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/better-technical-interviewing/</guid>
      <description>&lt;p&gt;&lt;strong&gt;The software industry&amp;rsquo;s usual approach to interviewing and hiring
is terrible&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m keeping an evergreen list about problems that exist and what people are
doing about it.&lt;/p&gt;
&lt;p&gt;Also, see my own long-form article, &lt;a href=&#34;https://xdg.me/interviewing-engineers&#34;&gt;&lt;em&gt;&lt;strong&gt;Interviewing Engineers&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;aside&#34;&gt;
&lt;p&gt;The list is roughly alphabetized by title, with a few short notes to remind
me about key points.  Suggestions for additions are welcome!&lt;/p&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.urth.org/2017/07/14/a-technical-hiring-process/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;em&gt;A Technical Hiring Process&lt;/em&gt;&lt;/a&gt; (Dave Rolsky)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More interviewers in the room, fewer interviews overall&lt;/li&gt;
&lt;li&gt;Homework followed by 2nd round pairing on homework&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://slack.engineering/a-walkthrough-guide-to-finding-an-engineering-job-at-slack/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;em&gt;A Walkthrough Guide to Finding an Engineering Job at Slack&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Resources for system design interview prep</title>
      <link>https://xdg.me/resources-for-system-design-interview-prep/</link>
      <pubDate>Wed, 16 Sep 2020 00:00:00 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/resources-for-system-design-interview-prep/</guid>
      <description>&lt;p&gt;&lt;strong&gt;You have to do a systems design interview and you have no idea what that means?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A systems design or architecture interview is a conversation about how to
build a software system given real world assumptions about scale, constraints
and tradeoffs.&lt;/p&gt;
&lt;p&gt;Typically this means drawing boxes for components like load
balancers, web servers, databases, caching layers, etc. and describing how
they work together to deliver the desired service.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;There is no right answer!  What matters is how well you can talk it
through.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Fat arrow autocorrect</title>
      <link>https://xdg.me/fat-arrow-autocorrect/</link>
      <pubDate>Fri, 14 Aug 2020 00:00:00 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/fat-arrow-autocorrect/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;thumbnail.png&#34; alt=&#34;fat arrow&#34;&gt;&lt;/p&gt;
&lt;p&gt;For any programming language that uses &lt;code&gt;=&amp;gt;&lt;/code&gt;, I like to add &lt;code&gt;,,&lt;/code&gt; as
an abbreviation to type it faster and with less pinky stretch.&lt;/p&gt;
&lt;p&gt;In vim, that&amp;rsquo;s done like this:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;iab ,, =&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can use the abbreviation/autocorrect feature in your editor to do the
same.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Combining vim-closer with pumvisible</title>
      <link>https://xdg.me/combining-vim-closer-with-pumvisible/</link>
      <pubDate>Tue, 10 Dec 2019 00:00:00 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/combining-vim-closer-with-pumvisible/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using &lt;a href=&#34;https://github.com/rstacruz/vim-closer&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;vim-closer&lt;/a&gt; for a
while as a lightweight parenthesis/bracket closing plugin.  I like it because
it only fires when I hit enter, and it&amp;rsquo;s pretty lightweight and non-invasive.&lt;/p&gt;
&lt;p&gt;Recently, I switched my code-completion setup to
&lt;a href=&#34;https://github.com/neoclide/coc.nvim&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;coc.nvim&lt;/a&gt;, but was frustrated that Go&amp;rsquo;s
&lt;code&gt;gopls&lt;/code&gt; preselect puts vim&amp;rsquo;s completion pop-up menu into the &amp;ldquo;selected&amp;rdquo; state,
which takes over the behavior of the enter key to accept the selection (c.f.
&lt;a href=&#34;http://vimdoc.sourceforge.net/htmldoc/insert.html#ins-completion-menu&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;menu completion state
2&lt;/a&gt;).
Here&amp;rsquo;s an example:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How I migrated my blog from Wordpress to Hugo</title>
      <link>https://xdg.me/how-i-migrated-my-blog-from-wordpress-to-hugo/</link>
      <pubDate>Mon, 22 Oct 2018 00:00:00 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/how-i-migrated-my-blog-from-wordpress-to-hugo/</guid>
      <description>&lt;p&gt;When I decided to migrate my old Wordpress blog to a new, Hugo-based
website, I thought I&amp;rsquo;d write down my notes along the way and make a
detailed migration guide.  Unfortunately, best laid plans go awry and by
the time I was done, I only had a few notes and didn&amp;rsquo;t remember all the
context.&lt;/p&gt;
&lt;p&gt;Nevertheless, I&amp;rsquo;m sharing what notes I do have, so that even if it&amp;rsquo;s not a
&amp;ldquo;detailed&amp;rdquo; guide, I can at least give some pointers to someone else
attempting the same thing.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Setting up a Perl development environment with plenv</title>
      <link>https://xdg.me/setting-up-a-perl-development-environment-with-plenv/</link>
      <pubDate>Mon, 19 Jan 2015 09:56:20 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/setting-up-a-perl-development-environment-with-plenv/</guid>
      <description>&lt;p&gt;This is a slightly modified copy of something I posted internally at work about setting up a development environment using &lt;a href=&#34;https://github.com/tokuhirom/plenv&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;plenv&lt;/a&gt;, which keeps your working Perl isolated from your system Perl. Many expert Perl developers already have some variation of this, but I&amp;rsquo;m posting it as a public service for people who&amp;rsquo;ve wanted this but never got around to it.&lt;/p&gt;
&lt;p&gt;(I &lt;a href=&#34;https://xdg.me/blog/how-i-manage-new-perls-with-perlbrew/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;used to use perlbrew&lt;/a&gt;, but switched to plenv and haven&amp;rsquo;t looked back).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Putting social media on cruise-control</title>
      <link>https://xdg.me/putting-my-social-media-on-cruise-control/</link>
      <pubDate>Tue, 23 Oct 2012 22:52:15 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/putting-my-social-media-on-cruise-control/</guid>
      <description>&lt;p&gt;&lt;strong&gt;I&amp;rsquo;m not very good with social media.&lt;/strong&gt; I get overwhelmed with all the posts.&lt;/p&gt;
&lt;p&gt;Yes, I occasionally share my blog posting. I occasionally &amp;ndash; very occasionally &amp;ndash; share interesting articles. I occasionally ask a question or make a snarky comment. But, really, my posting is &lt;strong&gt;totally haphazard&lt;/strong&gt;. It doesn&amp;rsquo;t build any presence and it doesn&amp;rsquo;t fit my workflow. &lt;strong&gt;I need a better system&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;So here&amp;rsquo;s my plan:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Anything I want to share, I&amp;rsquo;m going to put on &lt;a href=&#34;http://xdaveg.tumblr.com/&#34; title=&#34;xdg&#39;s link blog&#34; target=&#34;_blank&#34;&gt;Tumblr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Anything on Tumblr will get picked up by &lt;a href=&#34;http://ifttt.com/&#34; title=&#34;If This Then That&#34; target=&#34;_blank&#34;&gt;IFTTT&lt;/a&gt; and sent to &lt;a href=&#34;http://bufferapp.com/&#34; title=&#34;Buffer&#34; target=&#34;_blank&#34;&gt;Buffer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Buffer will space out posts to Twitter, App.net, Facebook and LinkedIn&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;why-tumblr&#34;&gt;Why Tumblr?&lt;/h2&gt;
&lt;p&gt;I don&amp;rsquo;t expect anyone to read my Tumblr, but &lt;strong&gt;posting is so easy&lt;/strong&gt; that I&amp;rsquo;ll use it as &lt;strong&gt;single-collection point&lt;/strong&gt; for things I want to share. For example:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Giving thanks as thanks</title>
      <link>https://xdg.me/giving-thanks-as-thanks/</link>
      <pubDate>Mon, 29 Aug 2011 15:06:26 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/giving-thanks-as-thanks/</guid>
      <description>&lt;p&gt;Ricardo wrote an article &lt;a href=&#34;http://rjbs.manxome.org/rubric/entry/1906&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&amp;ldquo;promoting little gifts&amp;rdquo;&lt;/a&gt;, which &lt;a href=&#34;https://x.com/perlbuzz&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;@perlbuzz&lt;/a&gt; tweeted as &lt;a href=&#34;https://x.com/perlbuzz/status/106377273384505344&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&amp;ldquo;giving little gifts as thanks&amp;rdquo;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I like that idea, and it inspired me to remind people to please also &lt;strong&gt;consider just giving &amp;ldquo;thanks&amp;rdquo;, too&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Sure, I&amp;rsquo;d love a song or a small ebook (and maybe I should set up a wishlist), but &lt;strong&gt;I also love getting an email saying thanks&lt;/strong&gt;, particularly when it is from someone I don&amp;rsquo;t already know telling me that they like a module I released to CPAN or telling me how they are using my code to solve some problem they have. &lt;strong&gt;Email is cheap, but still has huge impact&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Fixing screen brightness on Thinkpad X201 and Ubuntu 10.10</title>
      <link>https://xdg.me/fixing-screen-brightness-on-thinkpad-x201-and-ubuntu-10-10/</link>
      <pubDate>Sun, 27 Feb 2011 16:05:31 +0000</pubDate>
      <author>xdg@xdg.me (David Golden)</author>
      <guid>https://xdg.me/fixing-screen-brightness-on-thinkpad-x201-and-ubuntu-10-10/</guid>
      <description>&lt;p&gt;I just tried installing &lt;a href=&#34;http://www.ubuntu.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Ubuntu&lt;/a&gt; 10.10 on my &lt;a href=&#34;http://shop.lenovo.com/SEUILibrary/controller/e/web/LenovoPortal/en_US/catalog.workflow:category.details?current-catalog-id=12F0696583E04D86B9B79B0FEC01C087&amp;amp;current-category-id=4F2AFFFF52964FE2BCF0CC608A649A77&amp;amp;action=init&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Thinkpad X201&lt;/a&gt;. For the most part, everything worked right away and on an SSD drive, it felt blazingly fast.&lt;/p&gt;
&lt;p&gt;However, the screen brightness controls did not work. Some online research suggested adding &lt;code&gt;acpi_osi=Linux&lt;/code&gt; to the kernel boot parameters and I also found a tip in the &lt;a href=&#34;http://www.mjmwired.net/kernel/Documentation/laptops/thinkpad-acpi.txt&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;thinkpad-acpi driver documentation&lt;/a&gt; for how to force-enable it (over the native Linux ACPI driver).&lt;/p&gt;
&lt;p&gt;First, edit your &lt;code&gt;/etc/default/grub&lt;/code&gt; file to add &lt;code&gt;acpi_osi=Linux&lt;/code&gt; and &lt;code&gt;acpi_backlight=vendor&lt;/code&gt; arguments to &lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT&lt;/code&gt;. It should look something like this:&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
