42 lines
5.8 KiB
XML
42 lines
5.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<?xml-stylesheet type="text/xsl" href="/simple-atom.xslt"?>
|
||
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
|
||
<title>joshua.seigler.net - software</title>
|
||
<subtitle>Personal homepage of Joshua Seigler</subtitle>
|
||
<link href="https://joshua.seigler.net//feeds/software.xml" rel="self" />
|
||
<link href="https://joshua.seigler.net/" />
|
||
<updated>2025-06-28T00:00:00Z</updated>
|
||
<id>https://joshua.seigler.net/</id>
|
||
<author>
|
||
<name></name>
|
||
</author>
|
||
<entry>
|
||
<title>Tools of the trade</title>
|
||
<link href="https://joshua.seigler.net/posts/tools-of-the-trade/" />
|
||
<updated>2025-05-15T00:00:00Z</updated>
|
||
<id>https://joshua.seigler.net/posts/tools-of-the-trade/</id>
|
||
<content type="html"><p>Everyone has different tools that they find especially effective. Here are some I have found with a few words about why I like them.</p>
|
||
<blockquote>
|
||
<p>Update: I made a <a href="https://joshua.seigler.net/uses">/uses</a> page that lists these tools and many others I like.</p>
|
||
</blockquote>
|
||
<h3 id="mise-en-place" tabindex="-1"><a class="header-anchor" href="https://joshua.seigler.net/posts/tools-of-the-trade/#mise-en-place" aria-hidden="true"></a> <a href="https://mise.jdx.dev/" target="_blank" rel="noopener">mise-en-place</a></h3>
|
||
<p>Universal dev tool version manager. Specify tool versions in a config file and this tool can ensure that they are installed and active when entering the project directory. Amazing for getting a new dev environment set up in seconds. Replaces <code>asdf</code>, <code>nvm</code>, <code>pyenv</code>, <code>venv</code>, <code>rbenv</code>, and many other tool-specific version managers. Supports an incredible number of tools thanks to compatibility with <code>asdf</code>.</p>
|
||
<p>It also supports installing specific global tools, like <code>angular-cli</code> from <code>npm</code>, or <code>stack-pr</code> from <code>pipx</code>.</p>
|
||
<h3 id="stack-pr" tabindex="-1"><a class="header-anchor" href="https://joshua.seigler.net/posts/tools-of-the-trade/#stack-pr" aria-hidden="true"></a> <a href="https://github.com/modular/stack-pr" target="_blank" rel="noopener">stack-pr</a></h3>
|
||
<p>Open source tool for <a href="https://www.stacking.dev/" target="_blank" rel="noopener">stacking PRs</a>.</p>
|
||
<p>PR stacks are, as far as I can tell, the best way to manage large features in git. I first heard about this practice in a series of blog posts from Graphite, a company offering free PR-stacking software and related paid services. But you don’t need a custom CI flow or managed service for stacking to work - this CLI tool or one of the others at <a href="https://www.stacking.dev/" target="_blank" rel="noopener">stacking.dev</a> can take care of this.</p>
|
||
<p>If you start using PR stacks your whole company will start copying you.</p>
|
||
<h3 id="xc" tabindex="-1"><a class="header-anchor" href="https://joshua.seigler.net/posts/tools-of-the-trade/#xc" aria-hidden="true"></a> <a href="https://xcfile.dev/" target="_blank" rel="noopener">xc</a></h3>
|
||
<p>Markdown based task runner.</p>
|
||
<p>Define tasks in code blocks in markdown, and call them from the CLI. Serves as both task definition and documentation.</p>
|
||
<h3 id="pd2slack" tabindex="-1"><a class="header-anchor" href="https://joshua.seigler.net/posts/tools-of-the-trade/#pd2slack" aria-hidden="true"></a> <a href="https://github.com/sidpremkumar/pd2slack" target="_blank" rel="noopener">pd2slack</a></h3>
|
||
<p>Simple python script to update the members of a Slack group such as <code>@oncall</code> to match the active member(s) of a PagerDuty schedule. This replaces several expensive SAAS services.</p>
|
||
<h3 id="syncthing" tabindex="-1"><a class="header-anchor" href="https://joshua.seigler.net/posts/tools-of-the-trade/#syncthing" aria-hidden="true"></a> <a href="https://syncthing.net/" target="_blank" rel="noopener">SyncThing</a></h3>
|
||
<p>P2P alternative to Dropbox, supports mobile and desktop. Synchronize folders of content across all my devices.</p>
|
||
<h3 id="obsidian" tabindex="-1"><a class="header-anchor" href="https://joshua.seigler.net/posts/tools-of-the-trade/#obsidian" aria-hidden="true"></a> <a href="https://obsidian.md/" target="_blank" rel="noopener">Obsidian</a></h3>
|
||
<p>For notes and reference. Sync across devices with <code>syncthing</code>.</p>
|
||
<h3 id="keepassxc" tabindex="-1"><a class="header-anchor" href="https://joshua.seigler.net/posts/tools-of-the-trade/#keepassxc" aria-hidden="true"></a> <a href="https://keepassxc.org/" target="_blank" rel="noopener">KeePassXC</a></h3>
|
||
<p>For passwords. Sync across devices with <code>syncthing</code>.</p>
|
||
</content>
|
||
</entry>
|
||
</feed>
|