|
6 | 6 | <description>Recent content in Jason Scheirer on the Internet on Jason Scheirer</description>
|
7 | 7 | <generator>Hugo -- gohugo.io</generator>
|
8 | 8 | <language>en</language>
|
9 |
| - <lastBuildDate>Fri, 13 Dec 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://www.jasonscheirer.com/index.xml" rel="self" type="application/rss+xml" /> |
| 9 | + <lastBuildDate>Sat, 14 Dec 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://www.jasonscheirer.com/index.xml" rel="self" type="application/rss+xml" /> |
10 | 10 | <item>
|
11 |
| - <title>Uses</title> |
| 11 | + <title>Tools I Use to Live My Glamorous Life</title> |
12 | 12 | <link>https://www.jasonscheirer.com/uses/</link>
|
13 |
| - <pubDate>Fri, 13 Dec 2024 00:00:00 +0000</pubDate> |
| 13 | + <pubDate>Sat, 14 Dec 2024 00:00:00 +0000</pubDate> |
14 | 14 |
|
15 | 15 | <guid>https://www.jasonscheirer.com/uses/</guid>
|
16 | 16 | <description><h1 id="development">Development</h1>
|
|
20 | 20 | <li>I am primarily a <a href="https://github.com/fastapi/fastapi">FastAPI</a> user, and I am better than average at doing async programming (which sucks and is bad, but it&rsquo;s fun to do bad things)</li>
|
21 | 21 | <li>I primarily choose Postgres as my database</li>
|
22 | 22 | <li>I reluctantly use Ruby at my office</li>
|
23 |
| -<li>I do most of my personal tasks in Go</li> |
| 23 | +<li>I do most of my personal dev projects in Go</li> |
24 | 24 | <li>If you ask me to write something in C++ I will say no but I <em>will</em> write C++ to spite you</li>
|
25 |
| -<li>I prefer Linux desktop to Mac at this point</li> |
| 25 | +<li>I prefer Linux on the desktop to Mac on the desktop at this point |
| 26 | +<ul> |
| 27 | +<li>I do not value my time or sanity</li> |
| 28 | +<li>If something is reliable, I get bored and self-destructive so I need to be in a state of crisis in all aspects of my life and a Linux desktop fills that need in this space</li> |
| 29 | +</ul> |
| 30 | +</li> |
26 | 31 | <li>I usually prefer Debian stable or one of its relatives for servers and Alpine for container base images</li>
|
27 | 32 | <li>I use <a href="https://tailwindcss.com/">Tailwind</a> at home, <a href="https://sass-lang.com/">Sass</a> at work</li>
|
28 | 33 | <li>I use <a href="https://www.solidjs.com/">Solid</a> and <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">plain old JS</a> at home, <a href="https://react.dev/">React</a> at work</li>
|
|
34 | 39 | <li>Most of my polyglot development is via <a href="https://code.visualstudio.com/">VS Code</a></li>
|
35 | 40 | <li>I am forcing myself to use <a href="https://zed.dev/">Zed</a> more too, just because monocultures are a Bad Idea and VSC is a monoculture now</li>
|
36 | 41 | <li>I like using <a href="https://ebitengine.org/">Ebitengine</a> to make silly 2D games</li>
|
37 |
| -<li>I like <a href="https://github.com/dandavison/delta">git-delta</a> for command line diffing</li> |
38 |
| -<li>I usually use zsh and start out with <a href="https://ohmyz.sh/">oh-my-zsh</a> on new systems</li> |
| 42 | +<li>I also (rarely) play around with <a href="https://www.lexaloffle.com/picotron.php">Picotron</a>, <a href="https://www.lexaloffle.com/pico-8.php">Pico-8</a>, <a href="https://tic80.com/">TIC-80</a> and <a href="https://love2d.org/">LÖVE</a> for the same</li> |
| 43 | +</ul> |
| 44 | +<h2 id="command-line">Command line</h2> |
| 45 | +<ul> |
39 | 46 | <li><a href="https://github.com/jasonbot/dotfiles">Here is the bootstrap set of dotfiles I use</a> on new computers</li>
|
| 47 | +<li>I use zsh and bash almost equally, though I think I have more zsh machines now</li> |
| 48 | +<li>I usually start out with <a href="https://ohmyz.sh/">oh-my-zsh</a> or <a href="https://github.com/ohmybash/oh-my-bash">oh-my-bash</a> on new systems</li> |
| 49 | +<li>I use <a href="https://github.com/nvm-sh/nvm">nvm</a>, <a href="https://github.com/pyenv/pyenv">pyenv</a> and <a href="https://github.com/rbenv/rbenv">rbenv</a> to manage node/python/ruby installs</li> |
| 50 | +<li>I use <code>grep</code>, <a href="https://github.com/BurntSushi/ripgrep"><code>rg</code></a> and <a href="https://github.com/ggreer/the_silver_searcher"><code>ag</code></a> in descending order of frequency</li> |
| 51 | +<li>I like <a href="https://github.com/dandavison/delta">git-delta</a> for command line diffing</li> |
| 52 | +</ul> |
| 53 | +<h3 id="it-came-from-userspace">It Came from Userspace</h3> |
| 54 | +<ul> |
| 55 | +<li>I always add <code>~/.local/bin</code> and <code>~/bin/</code> to my <code>$PATH</code> so I can manage my own binaries without superuser perms</li> |
| 56 | +<li>I download <a href="https://code.visualstudio.com/download">VS Code</a> and <a href="https://go.dev/doc/install">Go</a> (setting <code>$GOPATH</code> to <code>~/.go</code>) from tarballs and manage them myself, adding <code>~/go/bin</code> and <code>~/VSCode-linux-x64/bin</code> to <code>$PATH</code> &ndash; that way I don&rsquo;t need to deal with native packages or elevated install permissions</li> |
| 57 | +<li>Same with <a href="https://deno.com/">Deno</a></li> |
| 58 | +<li>Currently in <code>~/bin</code>: <code>btm</code> <code>slirp4netns</code><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> <code>tmux</code> <code>tic80</code> (static binaries acquired from their release pages)</li> |
40 | 59 | </ul>
|
41 | 60 | <h2 id="cloud-stuff">Cloud Stuff</h2>
|
42 | 61 | <ul>
|
|
53 | 72 | <li>Hosted on <a href="https://pages.github.com/">Github Pages</a> through the magic of <a href="https://docs.github.com/en/github/working-with-github-pages/configuring-a-custom-domain-for-your-github-pages-site">a CNAME</a>.</li>
|
54 | 73 | <li><strong>Fonts</strong>: I&rsquo;m using <a href="https://pampatype.com/reforma">Reforma</a>, <a href="https://rsms.me/inter/">Inter</a> and <a href="https://github.com/0xType/0xProto">0xProto</a> (hosted here and not on Google Fonts).</li>
|
55 | 74 | </ul>
|
56 |
| -<h1 id="hardware">Hardware</h1> |
57 |
| -<p>I have a handful of computers I use regularly!</p> |
58 |
| -<ul> |
59 |
| -<li>An older Legion desktop running <a href="https://nobaraproject.org/">Nobara</a> for gaming and general computing</li> |
60 |
| -<li><a href="https://pine64.org/devices/pinebook_pro/">Pinebook Pro</a> for remote terminal stuff and a lightweight Miniflux client</li> |
61 |
| -<li><a href="https://aokzoestore.com/products/aokzoe-8-inch-amd%C2%AE-ryzen%C2%AE-6800u">AOKZOE A1</a> for handheld PC gaming, also using its Gnome desktop as a portable development setup</li> |
62 |
| -<li>Whatever the smallest iPhone is on the market at the time for doomscrolling</li> |
63 |
| -</ul> |
64 | 75 | <h1 id="productivity">Productivity</h1>
|
65 |
| -<h2 id="visual-artifacts">Visual Artifacts</h2> |
| 76 | +<h2 id="producing-and-manipulating-visual-artifacts">Producing and Manipulating Visual Artifacts</h2> |
66 | 77 | <ul>
|
67 | 78 | <li><a href="https://monodraw.helftone.com/">Monodraw</a> for cool text-mode diagrams</li>
|
68 | 79 | <li><a href="https://www.xara.com/us/photo-graphic-designer/">Xara Photo and Graphic Designer</a> as I have muscle memeory and it&rsquo;s fast to make drawings in</li>
|
69 | 80 | <li><a href="https://www.gimp.org/">The Gimp</a> for quick raster touchups</li>
|
70 |
| -<li><a href="https://graphviz.org/">Graphviz</a> come along for the party, too</li> |
71 | 81 | <li><a href="https://flathub.org/apps/org.inkscape.Inkscape">Inkscape</a> to touch up SVGs</li>
|
72 | 82 | <li><a href="https://d2lang.com/">D2</a> for diagrams as code &ndash; I like it in terms of how clean the language looks, how clean the output looks, and how easy it is to use</li>
|
73 | 83 | <li><a href="https://mermaid.js.org/">Mermaid</a> for diagrams extensively because it&rsquo;s everywhere, mark a code block as <code>mermaid</code> in markdown and you get the rendering for free in things like Obsidian and on Github</li>
|
| 84 | +<li><a href="https://graphviz.org/">Graphviz</a> comes along for the party, too &ndash; it&rsquo;s old but it gets the job done for a large range of jobs</li> |
74 | 85 | </ul>
|
75 | 86 | <h2 id="desktop-apps">Desktop Apps</h2>
|
76 | 87 | <h3 id="mac">Mac</h3>
|
|
85 | 96 | <h3 id="linux">Linux</h3>
|
86 | 97 | <ul>
|
87 | 98 | <li><a href="https://flathub.org/apps/me.kozec.syncthingtk">Syncthing</a> to move files around easily</li>
|
88 |
| -<li><a href="https://flathub.org/apps/org.gnome.Rhythmbox3">Rhythmbox</a> to hbndle my large music library</li> |
| 99 | +<li><a href="https://flathub.org/apps/org.gnome.Rhythmbox3">Rhythmbox</a> to handle my large music library</li> |
89 | 100 | <li><a href="https://flathub.org/apps/org.gnome.Boxes">Boxes</a> for light virtualization work</li>
|
90 | 101 | <li><a href="https://flathub.org/apps/app.devsuite.Ptyxis">Ptyxis</a> as my terminal emulator</li>
|
91 | 102 | <li><a href="https://podman-desktop.io/">Podman Desktop</a> for container-fu</li>
|
|
101 | 112 | <li><a href="https://miniflux.app/">Miniflux</a> for keeping up on news</li>
|
102 | 113 | <li><a href="https://about.gitea.com/">Gitea</a> for hosting my private repos but considering the upgrade to Forgejo</li>
|
103 | 114 | </ul>
|
104 |
| -<h1 id="toys">Toys</h1> |
| 115 | +<h1 id="computer-hardware">Computer Hardware</h1> |
| 116 | +<h2 id="general-purpose-computing-and-development">General-Purpose Computing and Development</h2> |
| 117 | +<p>I have a handful of computers I use regularly!</p> |
| 118 | +<ul> |
| 119 | +<li>An older Legion desktop running <a href="https://nobaraproject.org/">Nobara</a> for gaming and general computing</li> |
| 120 | +<li><a href="https://pine64.org/devices/pinebook_pro/">Pinebook Pro</a> running <a href="https://manjaro.org/products/download/arm">Manjaro</a> for remote terminal stuff and as a lightweight Miniflux client</li> |
| 121 | +<li><a href="https://aokzoestore.com/products/aokzoe-8-inch-amd%C2%AE-ryzen%C2%AE-6800u">AOKZOE A1</a> running <a href="https://chimeraos.org/">ChimeraOS</a> for handheld PC gaming, also using its Gnome desktop as a portable development setup</li> |
| 122 | +<li><a href="https://en.wikipedia.org/wiki/IPhone_13">Whatever the smallest iPhone is</a> on the market at the time for doomscrolling</li> |
| 123 | +</ul> |
| 124 | +<h2 id="toys">Toys</h2> |
105 | 125 | <ul>
|
106 | 126 | <li><a href="https://en.shanling.com/product/259">Shanling Q1</a> for listening to music outside of my home office</li>
|
107 | 127 | <li><a href="https://anbernic.com/products/rg35xx">RG35XX</a> running <a href="https://github.com/Turro75/MyMinUI">MyMinUI</a> for video games during my commute hours</li>
|
108 | 128 | <li><a href="https://flipperzero.one/">Flipper</a> that I never break the law with</li>
|
109 | 129 | </ul>
|
| 130 | +<h1 id="non-computer-hardware">Non-Computer Hardware</h1> |
| 131 | +<ul> |
| 132 | +<li>The <a href="https://www.peakdesign.com/products/everyday-backpack">Peak Design Everyday Backpack</a> as a backpack</li> |
| 133 | +</ul> |
| 134 | +<div class="footnotes" role="doc-endnotes"> |
| 135 | +<hr> |
| 136 | +<ol> |
| 137 | +<li id="fn:1"> |
| 138 | +<p>This is missing in ChimeraOS for some reason and the only part absent from a working podman setup on my handheld&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p> |
| 139 | +</li> |
| 140 | +</ol> |
| 141 | +</div> |
110 | 142 | </description><category domain="https://www.jasonscheirer.com//tags/uses">uses</category>
|
111 | 143 |
|
112 | 144 | </item>
|
|
184 | 216 | </p>
|
185 | 217 | <p>
|
186 | 218 | <figure>
|
187 |
| - <img src="https://www.jasonscheirer.com/images/playing-classicube-at-work/ss2.png" alt="Success &amp;ndash; logged in" /> |
| 219 | + <img src="https://www.jasonscheirer.com/images/playing-classicube-at-work/ss2.png" alt="Success &ndash; logged in" /> |
188 | 220 | </figure>
|
189 | 221 |
|
190 | 222 |
|
@@ -1602,22 +1634,22 @@ That is, instead of <code>socket.wait()</code> we could call <cod
|
1602 | 1634 | <h2 id="backend-server">Backend server</h2>
|
1603 | 1635 | <p>The backend server is a simple Go server with an even simpler API:</p>
|
1604 | 1636 | <table>
|
1605 |
| -<thead> |
1606 |
| -<tr> |
1607 |
| -<th>Endpoint</th> |
1608 |
| -<th>Purpose</th> |
1609 |
| -</tr> |
1610 |
| -</thead> |
1611 |
| -<tbody> |
1612 |
| -<tr> |
1613 |
| -<td><code>/print</code></td> |
1614 |
| -<td>Enqueues a print job and returns a unique ID</td> |
1615 |
| -</tr> |
1616 |
| -<tr> |
1617 |
| -<td><code>/job/:id</code></td> |
1618 |
| -<td>Returns the status of the job, along with the image if it&rsquo;s been taken</td> |
1619 |
| -</tr> |
1620 |
| -</tbody> |
| 1637 | + <thead> |
| 1638 | + <tr> |
| 1639 | + <th>Endpoint</th> |
| 1640 | + <th>Purpose</th> |
| 1641 | + </tr> |
| 1642 | + </thead> |
| 1643 | + <tbody> |
| 1644 | + <tr> |
| 1645 | + <td><code>/print</code></td> |
| 1646 | + <td>Enqueues a print job and returns a unique ID</td> |
| 1647 | + </tr> |
| 1648 | + <tr> |
| 1649 | + <td><code>/job/:id</code></td> |
| 1650 | + <td>Returns the status of the job, along with the image if it&rsquo;s been taken</td> |
| 1651 | + </tr> |
| 1652 | + </tbody> |
1621 | 1653 | </table>
|
1622 | 1654 | <p>The only thing to be aware of is that only one job can be running at a time. The way we get around this is very simple: a single goroutine waiting for jobs running in a loop. That&rsquo;s it. That&rsquo;s the synchronization mechanism. A goroutine and a channel.</p>
|
1623 | 1655 | <p>Jobs are stored in a <a href="https://github.com/boltdb/bolt">Bolt</a> database, which has all the ACID properties I want in a database while being stupid simple to use. Like, easier than Sqlite. I know, right?</p>
|
|
0 commit comments