Congratulations!

[Valid Atom 1.0] This is a valid Atom 1.0 feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://the.taoofmac.com/space/RecentChanges?format=atom

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="https://taoofmac.com/static/css/atom.xslt"?>
  3. <feed xmlns="http://www.w3.org/2005/Atom">
  4. <title>Tao of Mac</title>
  5. <subtitle>The Tao of Mac is the personal wiki of Rui Carmo, featuring a technology-oriented blog, links to articles, several compilations of resources around various key technology topics, and a collection of photos and videos.</subtitle>
  6. <link rel="alternate" type="text/xml" href="https://taoofmac.com"/>
  7. <link rel="self" type="application/atom+xml" href="https://taoofmac.com/atom.xml"/>
  8. <id>https://taoofmac.com/atom.xml</id>
  9. <updated>2026-05-16T14:54:47+00:00</updated>
  10. <rights>CC Attribution-NonCommercial-NoDerivs 3.0</rights>
  11. <entry>
  12. <title>Announcing ios-linuxkit: Linux on iPad, the Hard Way</title>
  13. <id>https://taoofmac.com/space/blog/2026/05/16/1130?utm_content=atom</id>
  14. <published>2026-05-16T11:30:00+00:00</published>
  15. <updated>2026-05-16T14:46:37+00:00</updated>
  16. <author>
  17. <name>Rui Carmo</name>
  18. <uri>https://taoofmac.com</uri>
  19. </author>
  20. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/blog/2026/05/16/1130?utm_content=atom"/>
  21. <content type="html"><![CDATA[
  22. <p class="lead">I&#8217;m done waiting for Apple to fix things. And one of the <a href="https://rcarmo.github.io?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">things I think should exist</a> is a decent way to run Linux binaries on my iPad.</p>
  23. <p>And after almost six months messing about with ARM emulation in various forms, I can finally do something about it.</p>
  24. <p/><figure><img alt="ios-linuxkit running on my M1 iPad Pro" src="https://taoofmac.com/media/blog/2026/05/16/1130/OZlxHaGdF4hPGii61UCh42eeEL4=/ios-linuxkit-hero.jpg" width="2048" height="1430" style="max-width: 100% !important;height: auto !important;"/><figcaption>ios-linuxkit running on my M1 iPad Pro</figcaption></figure><p/>
  25. <p>Put bluntly, the lack of hypervisor support on <a href="/space/com/apple/ios" rel="next" style="color: #0000cc;">iOS</a> should be an embarrassment to Apple&#8211;an EUR 1400 iPad Pro with an M4 chip can&#8217;t run Docker, can&#8217;t run a VM, can&#8217;t do any of the things I do daily on an EUR 50 ARM board. Apple has the hardware support, the kernel entitlements, and has chosen to keep it locked away.</p>
  26. <p><a href="https://github.com/rcarmo/ios-linuxkit?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>ios-linuxkit</code></a> is my answer to that, or at least as much of an answer as you can get without Apple&#8217;s cooperation. It&#8217;s a Linux runtime for <a href="/space/com/apple/ios" rel="next" style="color: #0000cc;">iOS</a> that provides a working AArch64 userland on iPhone and iPad&#8211;shells, compilers, package managers, language runtimes, the lot&#8211;without JIT, without RWX memory, without <code>MAP_JIT</code>, without any of the things Apple won&#8217;t let you have.</p>
  27. <p>The base is the <code>ish-arm64</code> branch of <a href="https://ish.app/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">iSH</a>, which implements a threaded-code interpreter (they call it &#8220;Asbestos&#8221;) that translates ARM64 Linux instructions through precompiled gadget dispatch. No runtime code generation means no App Store policy violations, which means it can actually ship. The trade-off is performance&#8211;you&#8217;re not getting native speed, you&#8217;re getting &#8220;fast enough for a shell and some compilers.&#8221;</p>
  28. <p>It&#8217;s fast in human terms, although my use of <a href="/space/dev/golang" rel="next" style="color: #0000cc;">Go</a> and Bun mask a lot of the underlying limitations.</p>
  29. <a class="anchor" id="anchor-why-now" rel="anchor" href="/space/blog/2026/05/16/1130#why-now" style="color: #0000cc;"><h2 id="why-now">Why Now</h2></a><p>The timing comes down to converging interests: I have been deep in emulation land since <a href="/space/notes/2025/12/31/1830" rel="next" style="color: #0000cc;">the holidays</a>, and even though the <code>ish-arm64</code>&#8217;s &#8220;gadget&#8221; emulator is quite a different beast from the na&#239;ve block-level JITs I&#8217;ve been bolting onto <a href="https://github.com/rcarmo/macemu-jit?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">BasiliskII and SheepShaver</a>, I have been developing all of them on the <a href="/space/reviews/2026/04/11/1900" rel="next" style="color: #0000cc;">Orange Pi 6 Plus</a> board I have been testing for a few months, so they share roughly the same approach:</p>
  30. <ul>
  31. <li>Bolt on a VNC server (or an emulated console) so I can connect to it from my iPad</li>
  32. <li>Build out several test harnesses (build, base smoke tests, tracing harnesses and automated application testing)</li>
  33. <li>Figure out what to do (this is the hard part, and I&#8217;ve learned quite a bit across the various emulators)</li>
  34. <li>Figure out where it breaks (<a href="/space/dev/golang" rel="next" style="color: #0000cc;">Go</a>, <a href="/space/dev/java" rel="next" style="color: #0000cc;">Java</a>, etc.) and why</li>
  35. <li>Hand out the drudgery (like test runs and automated fixes) to a <a href="https://rcarmo.github.io/projects/piclaw/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>piclaw</code></a> instance in clearly defined piecemeal specs so I get nice reports and debugging output I can review in a clean web UI</li>
  36. </ul>
  37. <p>I wouldn&#8217;t have had the time or energy to do this without Codex, but I certainly wouldn&#8217;t have been able to do it without the <a href="/space/reviews/2026/04/11/1900" rel="next" style="color: #0000cc;">Orange Pi</a> as a test bed. Having an ARM 12-core SBC with 16GB RAM I could devote to this, despite a tad constraining (I would have preferred 32 so I could run more builds and test matrices concurrently) was a major enabler here.</p>
  38. <a class="anchor" id="anchor-what-ive-been-doing-with-it" rel="anchor" href="/space/blog/2026/05/16/1130#what-ive-been-doing-with-it" style="color: #0000cc;"><h2 id="what-ive-been-doing-with-it">What I&#8217;ve been doing with it</h2></a><p>The fork started as a bring-up exercise, but has turned into something more focused: making the runtime stable and tested enough that you can actually <em>develop</em> on it. The current validation gate has 82 core tests passing on Alpine ARM64, with workload coverage across <a href="/space/dev/golang" rel="next" style="color: #0000cc;">Go</a>, <a href="/space/dev/rust" rel="next" style="color: #0000cc;">Rust</a>, Bun, Node, <a href="/space/dev/python" rel="next" style="color: #0000cc;">Python</a>, <a href="/space/dev/java" rel="next" style="color: #0000cc;">Java</a>, Zig, and a few others. </p>
  39. <p>And since I&#8217;ve seen quite a few people trying to run AI coding agents on iOS, there&#8217;s a separate set of AI CLI harness tests that installs, runs and does cursory tests on most current agent tools (spoiler: Claude Code was a complete and utter pain to get to run. Everyone else&#8217;s mostly &#8220;just worked&#8221; after a few cycles of JS runtime/kernel call cleanup passes, theirs was just broken).</p>
  40. <p>The harness testing is AI-driven&#8211;I pointed <a href="https://rcarmo.github.io/projects/piclaw/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>piclaw</code></a> at it with a custom <code>gdb</code> skill and let it grind through failures, fix them, and re-run. The <em>strategy</em> is mine (which syscalls to prioritise, what the &#8220;gadget&#8221; fixes should look like, where to invest in performance), but the mechanical detection/fix loop is the kind of thing that would have taken months by hand.</p>
  41. <a class="anchor" id="anchor-why-this-matters" rel="anchor" href="/space/blog/2026/05/16/1130#why-this-matters" style="color: #0000cc;"><h2 id="why-this-matters">Why this matters</h2></a><p>Because <a href="https://rcarmo.github.io?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">I think it is a thing that should exist</a>, yes, but also because I want to run things like <a href="https://github.com/rcarmo/gi?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>gi</code></a> (which is still WIP) on my iPad.</p>
  42. <p>Especially <a href="/space/dev/golang" rel="next" style="color: #0000cc;">Go</a> binaries, which never ran in the original <a href="https://ish.app/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">iSH</a>. And despite my love for remote sessions, I don&#8217;t want to run all of it on a server, nor via a UI proxied from somewhere else&#8211;I want to do some of it <em>locally</em>, in a terminal, with my workspace on the device. </p>
  43. <p>Bun, V8 and Go work. Alpine&#8217;s <code>apk</code> means I can easily get pretty much every single CLI tool I need to work too, without the compromises <a href="/space/apps/a-shell" rel="next" style="color: #0000cc;">a-Shell</a> (which I still love, by the way) imposed. And since I have been hacking away at my own flavor of <a href="/space/apps/ghostty" rel="next" style="color: #0000cc;">Ghostty</a> in <a href="https://github.com/rcarmo/ghostty-web?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>rcarmo/ghostty-web</code></a>, I was able to swap the dated <a href="https://ish.app/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">iSH</a> terminal with something that <em>looks</em> right.</p>
  44. <p>It&#8217;s not fast (well, it <em>is</em>, much faster than the original, but not <em>native</em> fast). It&#8217;s not a replacement for HyperKit on iOS (if we ever get it back). But it&#8217;s mine, I can fix it and make it faster to some degree, and <em>works for me</em>.</p>
  45. <p>And since I have <em>zero</em> intention of bringing it to the App Store myself (or even paying Apple $99 for the privilege of running it on my own hardware without plugging my iPad into my laptop weekly, which is something the EU should <em>really</em> ding on Apple for), I am going to maintain it and add more fixes, keeping it open source so that other people can build better, more polished tools.</p>
  46. <p>You&#8217;re welcome.</p>
  47. <br/>
  48. ]]></content>
  49. <category term="arm64" label="arm64" />
  50. <category term="ios" label="ios" />
  51. <category term="runtime" label="runtime" />
  52. <category term="ipad" label="ipad" />
  53. <category term="linux" label="linux" />
  54. <category term="development" label="development" />
  55. <category term="ish" label="ish" />
  56. </entry>
  57. <entry>
  58. <title>AI Speech Technologies</title>
  59. <id>https://taoofmac.com/space/ai/speech?utm_content=atom</id>
  60. <published>2025-05-01T18:15:00+00:00</published>
  61. <updated>2026-05-16T14:05:46+00:00</updated>
  62. <author>
  63. <name>Rui Carmo</name>
  64. <uri>https://taoofmac.com</uri>
  65. </author>
  66. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/ai/speech?utm_content=atom"/>
  67. <content type="html"><![CDATA[
  68. <p class="lead">This page is a collection of notes and links related to <a href="/space/ai" rel="next" style="color: #0000cc;">AI</a> speech technologies, including Text-to-Speech (TTS), Speech-to-Text (STT), voice synthesis, voice cloning, and other related frippery in the modern <a href="/space/ai" rel="next" style="color: #0000cc;">AI</a> space.</p>
  69. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/ai/speech#resources" style="color: #0000cc;"><h2 id="resources">Resources</h2></a><p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  70. <thead>
  71. <tr style="border-top: 1px solid #aaa;">
  72. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Field</th>
  73. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  74. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  75. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  76. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  77. </tr>
  78. </thead>
  79. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  80. <tr style="border-top: 1px solid #aaa;">
  81. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Generative Audio</td>
  82. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Models</td>
  83. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  84. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/suno-ai/bark?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">bark</a></td>
  85. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a text-prompted genereative audio model</p></td>
  86. </tr>
  87. <tr style="border-top: 1px solid #aaa;">
  88. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Speech Agents</td>
  89. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  90. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  91. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/RunanywhereAI/rcli?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">RCLI</a></td>
  92. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an on-device Apple Silicon voice agent for macOS that combines STT, local LLM inference, TTS, 38 local actions, and document RAG in a low-latency TUI/CLI.</p></td>
  93. </tr>
  94. <tr style="border-top: 1px solid #aaa;">
  95. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/dograh-hq/dograh?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">dograh</a></td>
  96. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Open source voice agent platform.</p></td>
  97. </tr>
  98. <tr style="border-top: 1px solid #aaa;">
  99. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  100. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/hkjarral/Asterisk-AI-Voice-Agent?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Asterisk-AI-Voice-Agent</a></td>
  101. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An Asterisk-based AI voice agent project integrating telephony with voice AI workflows.</p></td>
  102. </tr>
  103. <tr style="border-top: 1px solid #aaa;">
  104. <td rowspan="14" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Speech Recognition</td>
  105. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Libraries</td>
  106. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/argmaxinc/WhisperKit?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">WhisperKit</a></td>
  107. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Swift package that integrates Whisper with Apple&#8217;s CoreML</p></td>
  108. </tr>
  109. <tr style="border-top: 1px solid #aaa;">
  110. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Models</td>
  111. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  112. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/collabora/WhisperLive?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">WhisperLive</a></td>
  113. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a real-time text-to-speech system based on Whisper</p></td>
  114. </tr>
  115. <tr style="border-top: 1px solid #aaa;">
  116. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/usefulsensors/moonshine?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">moonshine</a></td>
  117. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a family of models optimized for fast and accurate automatic speech recognition on resource-constrained devices. Designed to run efficiently on smaller hardware.</p></td>
  118. </tr>
  119. <tr style="border-top: 1px solid #aaa;">
  120. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  121. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/huggingface/distil-whisper?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">distil-whisper</a></td>
  122. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a distilled version of whisper that is 6 times faster</p></td>
  123. </tr>
  124. <tr style="border-top: 1px solid #aaa;">
  125. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  126. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ggerganov/whisper.cpp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">whisper.cpp</a></td>
  127. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a C++ implementation of whisper that can run in consumer hardware</p></td>
  128. </tr>
  129. <tr style="border-top: 1px solid #aaa;">
  130. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/openai/whisper?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">whisper</a></td>
  131. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a general purpose speech recognition model</p></td>
  132. </tr>
  133. <tr style="border-top: 1px solid #aaa;">
  134. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  135. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  136. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/TypeWhisper/typewhisper-mac?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">TypeWhisper</a></td>
  137. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A macOS dictation and transcription app that can use Apple&#8217;s speech stack as well as other local on-device engines, with optional prompt-driven post-processing.</p></td>
  138. </tr>
  139. <tr style="border-top: 1px solid #aaa;">
  140. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cjpais/Handy?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Handy</a></td>
  141. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An offline, cross-platform speech-to-text app built with Tauri that transcribes locally. Uses Whisper and Parakeet models without sending audio to the cloud.</p></td>
  142. </tr>
  143. <tr style="border-top: 1px solid #aaa;">
  144. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/matthartman/ghost-pepper?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Ghost Pepper</a></td>
  145. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a 100% local macOS hold-to-talk speech-to-text menu bar app with WhisperKit transcription and local LLM cleanup.</p></td>
  146. </tr>
  147. <tr style="border-top: 1px solid #aaa;">
  148. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/msf/dictate?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">dictate</a></td>
  149. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Go-based local voice-to-text tool for Linux terminals that streams whisper.cpp transcription to stdout, files, or keystroke injection for dictating into focused terminal apps.</p></td>
  150. </tr>
  151. <tr style="border-top: 1px solid #aaa;">
  152. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  153. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/bugbakery/audapolis?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">audapolis</a></td>
  154. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an editor for spoken-word audio with automatic transcription</p></td>
  155. </tr>
  156. <tr style="border-top: 1px solid #aaa;">
  157. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  158. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Vaibhavs10/insanely-fast-whisper?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">insanely-fast-whisper</a></td>
  159. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An opinionated CLI for audio transcription</p></td>
  160. </tr>
  161. <tr style="border-top: 1px solid #aaa;">
  162. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Transcription Tools</td>
  163. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  164. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/chidiwilliams/buzz?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">buzz</a></td>
  165. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A cross-platform Whisper desktop app that works quite well on the Mac (including speaker diarization)</p></td>
  166. </tr>
  167. <tr style="border-top: 1px solid #aaa;">
  168. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  169. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/davidamacey/OpenTranscribe?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">OpenTranscribe</a></td>
  170. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an open-source all-in-one recording transcription and diarization stack</p></td>
  171. </tr>
  172. <tr style="border-top: 1px solid #aaa;">
  173. <td rowspan="18" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Speech Synthesis</td>
  174. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Implementations</td>
  175. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  176. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/taf2/pocket-tts.c?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pocket-tts.c</a></td>
  177. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A minimal, dependency-free C scaffold for Pocket-TTS, aimed at CPU-only TTS. Includes a tiny CLI in the flux2.c style.</p></td>
  178. </tr>
  179. <tr style="border-top: 1px solid #aaa;">
  180. <td rowspan="9" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Models</td>
  181. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/samuel-vitorino/sopro?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sopro</a></td>
  182. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a lightweight text-to-speech model</p></td>
  183. </tr>
  184. <tr style="border-top: 1px solid #aaa;">
  185. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  186. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/SesameAILabs/csm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">csm</a></td>
  187. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a speech generation model from Sesame that generates RVQ audio codes from text and audio inputs.</p></td>
  188. </tr>
  189. <tr style="border-top: 1px solid #aaa;">
  190. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/canopyai/Orpheus-TTS?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Orpheus-TTS</a></td>
  191. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an open-source text-to-speech system built on Llama-3b</p></td>
  192. </tr>
  193. <tr style="border-top: 1px solid #aaa;">
  194. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/resemble-ai/chatterbox?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">chatterbox</a></td>
  195. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a text-to-speech model that can generate expressive speech with a variety of styles and emotions.</p></td>
  196. </tr>
  197. <tr style="border-top: 1px solid #aaa;">
  198. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  199. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/2noise/ChatTTS?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ChatTTS</a></td>
  200. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a text-to-speech model designed specifically for dialogue scenarios, with decent prosody</p></td>
  201. </tr>
  202. <tr style="border-top: 1px solid #aaa;">
  203. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/CorentinJ/Real-Time-Voice-Cloning?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Real-Time-Voice-Cloning</a></td>
  204. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a PyTorch implementation of a voice cloning model</p></td>
  205. </tr>
  206. <tr style="border-top: 1px solid #aaa;">
  207. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/collabora/WhisperSpeech?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">WhisperSpeech</a></td>
  208. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a text-to-speech system built by inverting Whisper</p></td>
  209. </tr>
  210. <tr style="border-top: 1px solid #aaa;">
  211. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  212. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/yl4579/StyleTTS2?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">StyleTTS2</a></td>
  213. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A text to speech model that supports style diffusion</p></td>
  214. </tr>
  215. <tr style="border-top: 1px solid #aaa;">
  216. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"/>
  217. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/snakers4/silero-models?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">silero-models</a></td>
  218. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Multi-language neural text-to-speech models</p></td>
  219. </tr>
  220. <tr style="border-top: 1px solid #aaa;">
  221. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Resources</td>
  222. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://calbryant.uk/blog/training-a-new-ai-voice-for-piper-tts-with-only-a-single-phrase/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Training a voice for piper TTS</a></td>
  223. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a detailed walkthrough of how to customize a voice model</p></td>
  224. </tr>
  225. <tr style="border-top: 1px solid #aaa;">
  226. <td rowspan="7" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  227. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  228. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jamiepine/voicebox?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Voicebox</a></td>
  229. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an open-source voice cloning studio with DAW-like features, local-first voice synthesis powered by Qwen3-TTS, multi-track timeline editor, and REST API</p></td>
  230. </tr>
  231. <tr style="border-top: 1px solid #aaa;">
  232. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/kyutai-labs/pocket-tts?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pocket-tts</a></td>
  233. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A lightweight text-to-speech (TTS) application designed to run efficiently on CPUs that supports voice cloning</p></td>
  234. </tr>
  235. <tr style="border-top: 1px solid #aaa;">
  236. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  237. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/abus-aikorea/voice-pro?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">voice-pro</a></td>
  238. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a toolkit for doing speech processing and voice cloning</p></td>
  239. </tr>
  240. <tr style="border-top: 1px solid #aaa;">
  241. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/denizsafak/abogen?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">abogen</a></td>
  242. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tool for generating audiobooks from text using the Kokoro open weights model</p></td>
  243. </tr>
  244. <tr style="border-top: 1px solid #aaa;">
  245. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/rany2/edge-tts?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">edge-tts</a></td>
  246. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a text-to-speech module that leverages the Microsoft Edge TTS API</p></td>
  247. </tr>
  248. <tr style="border-top: 1px solid #aaa;">
  249. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/souzatharsis/podcastfy?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">podcastfy</a></td>
  250. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tool for generating podcasts from text</p></td>
  251. </tr>
  252. <tr style="border-top: 1px solid #aaa;">
  253. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  254. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/myshell-ai/OpenVoice?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">OpenVoice</a></td>
  255. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tool that enables accurate voice cloning with multi-lingual support and flexible style control.</p></td>
  256. </tr>
  257. </tbody>
  258. </table>
  259. <br/>
  260. ]]></content>
  261. <category term="speech" label="speech" />
  262. <category term="stt" label="stt" />
  263. <category term="synthesis" label="synthesis" />
  264. <category term="ai" label="ai" />
  265. <category term="cloning" label="cloning" />
  266. <category term="voice" label="voice" />
  267. <category term="tts" label="tts" />
  268. <category term="whisper" label="whisper" />
  269. </entry>
  270. <entry>
  271. <title>Unexpected Synology Woes</title>
  272. <id>https://taoofmac.com/space/blog/2026/05/15/1330?utm_content=atom</id>
  273. <published>2026-05-15T13:30:00+00:00</published>
  274. <updated>2026-05-15T13:30:00+00:00</updated>
  275. <author>
  276. <name>Rui Carmo</name>
  277. <uri>https://taoofmac.com</uri>
  278. </author>
  279. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/blog/2026/05/15/1330?utm_content=atom"/>
  280. <content type="html"><![CDATA[
  281. <p class="lead">Last weekend my <a href="/space/blog/2020/04/04/2310" rel="next" style="color: #0000cc;">DS1019+</a> decided, for some unfathomable reason, to stop working after I took it out of the closet, dusted it and put it back, and I have feelings about it.</p>
  282. <p>In fact, I&#8217;ve had them throughout the whole week, because it&#8217;s taken forever to get most of my home services up again.</p>
  283. <p>Fortunately, my home automation and a few other things are spread among my <a href="/space/os/linux/distributions/proxmox" rel="next" style="color: #0000cc;">Proxmox</a> nodes, but I had a <em>bunch</em> of things running on that NAS, and I wanted to document what happened because someone else might have the same issues I did and end up here.</p>
  284. <a class="anchor" id="anchor-symptoms" rel="anchor" href="/space/blog/2026/05/15/1330#symptoms" style="color: #0000cc;"><h2 id="symptoms">Symptoms</h2></a><p>The machine booted up (power LED initially blinking, solid green status LED, disk activity almost immediately), but would not show up on the network.</p>
  285. <p>Both LAN interfaces would be up, but issued <em>zero</em> packets. No DHCP requests, no link-local addressing, not even replies to <code>arping</code> (and yes, I knew the MAC addresses of the machine, because that&#8217;s the kind of thing I keep tabs on). I plugged in my MacBook and my <a href="/space/reviews/2025/05/15/2230" rel="next" style="color: #0000cc;">MiniBook X</a> on each interface, rebooted, and saw&#8230; nothing.</p>
  286. <p><code>tcpdump</code> saw nothing at all. I thought it might be some sort of OS glitch (which is why I tried both laptops), but no luck.</p>
  287. <p>So I tried to reset it to factory configuration. You have two reset levels, the first of which only resets your admin password and network settings, the second has you reinstall the OS without losing data.</p>
  288. <p>But nothing worked, and <a href="/space/com/synology" rel="next" style="color: #0000cc;">Synology</a>&#8217;s tooling just couldn&#8217;t find the NAS or connect to it.</p>
  289. <a class="anchor" id="anchor-recovery" rel="anchor" href="/space/blog/2026/05/15/1330#recovery" style="color: #0000cc;"><h2 id="recovery">Recovery</h2></a><p>The first thing I did was set up <a href="https://github.com/vdsm/virtual-dsm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Virtual DSM</a> on <code>borg</code> to see if I could, in the direst of emergencies, access our off-site <a href="/space/com/microsoft/azure" rel="next" style="color: #0000cc;">Azure</a> backups. That <em>sort</em> of worked, but the experience was so fiddly that I was reminded of all of HyperBackup&#8217;s pitfalls in one fell swoop&#8211;most notably that I effectively need a Synology to get at that data, which is not something I want to rely on.</p>
  290. <p>Yes, there is a HyperBackup desktop application. No, it did not work for me&#8211;it apparently expects you to download backup files from the cloud to your local machine, and I need to be able to directly restore files from Azure, period.</p>
  291. <p>After filing a ticket with Synology about my unresponsive system, they sent me an AI-generated troubleshooting list, in the middle of which was a step I could not find anywhere in their online documentation: <em>booting the machine without any disks</em>.</p>
  292. <p><em>That</em> apparently also automatically reset settings (which is, in retrospect, weird, because it feels like <em>something</em> should be stored in the chassis for this kind of emergency), and I was finally able to discover it on the network, reset the admin password, reconfigure the network, etc.</p>
  293. <p>So if you have the same symptoms, this might save your day. And, as it turns out, be the prelude to an entire week of pain, because mine spent the past five days or so grinding through data scrubbing. Because that is a thing it felt like doing, and I&#8217;ve been coping with the fallout since then&#8211;extremely slow access, very slow response times as I tried to double-check services and settings, etc.</p>
  294. <a class="anchor" id="anchor-what-didnt-work-right" rel="anchor" href="/space/blog/2026/05/15/1330#what-didnt-work-right" style="color: #0000cc;"><h2 id="what-didnt-work-right">What Didn&#8217;t Work Right</h2></a><p>First of all, all my <a href="/space/os/linux/docker" rel="next" style="color: #0000cc;">Docker</a> containers were gone. Container Manager, for some reason, does not preserve any settings in this scenario, and if I didn&#8217;t have <a href="/space/os/linux/docker/portainer" rel="next" style="color: #0000cc;">Portainer</a> installed and a copy of (most of) my stacks in <a href="/space/apps/gitea" rel="next" style="color: #0000cc;">Gitea</a>, this would have been enough for me to never again run containers on a Synology.</p>
  295. <p>As it was, I was able to point <a href="https://github.com/rcarmo/piclaw?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>piclaw</code></a> to the machine and have it reconstruct all critical services in a few hours (it would have been much faster if it wasn&#8217;t doing scrubbing). And, as it turns out, there was also enough residual info in the underlying Docker daemon itself to fill in most of the gaps.</p>
  296. <p>But barring that, there were a bunch of things that made recovery a pretty stressful endeavor:</p>
  297. <ul>
  298. <li>The mobile apps (DS Finder and the like) were useless in finding or diagnosing the issue at every step.</li>
  299. <li>The web site did not list disk removal as a troubleshooting step (at least not that I could see, since it went straight into the dual-step reset procedure).</li>
  300. <li>The timing documented for holding the reset button for reset 1 (4 seconds) was <em>not</em> accurate. It was more like 20, and I feared for a moment I might end up triggering reset 2, which would require reinstalling the OS.</li>
  301. <li>Synology&#8217;s desktop tools are, to be brief, very poorly maintained and look like something out of the 90s, even down to the Windows look on macOS.</li>
  302. </ul>
  303. <p>So even for an &#8220;appliance&#8221; NAS, the experience could be much better.</p>
  304. <a class="anchor" id="anchor-lets-have-an-adventure" rel="anchor" href="/space/blog/2026/05/15/1330#lets-have-an-adventure" style="color: #0000cc;"><h2 id="lets-have-an-adventure">Let&#8217;s Have an Adventure</h2></a><p>Resetting the configuration had zero impact on my data&#8211;at least so far as I can tell. Shares, users, all the regular stuff was preserved, and after a few glitches with cloud backups (because disk scrubbing made them fail overnight twice), everything seems in order.</p>
  305. <p>But since the machine spent so long simultaneously scrubbing and swapping as I tried to restore services, it&#8217;s clear that I cannot rely on it for interactive use anymore.</p>
  306. <p>Synology doesn&#8217;t really let me upgrade RAM on the thing (you sort of can, but it&#8217;s already capped at the maximum RAM the J4125 can officially support), so I&#8217;ve started removing stuff from it&#8211;most of the Docker services I&#8217;ve been running there for years are now moving into <a href="/space/os/linux/distributions/proxmox" rel="next" style="color: #0000cc;">Proxmox</a> microVMs or <a href="/space/os/linux/lxc" rel="next" style="color: #0000cc;">LXC</a>s running elsewhere, and are either going to use the Synology as a &#8220;dumb&#8221; NAS and mount storage directly, or be backed up to it using <a href="https://github.com/marcpope/borgbackupserver?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Borg Backup Server</a> (which is going to be the only new Docker container running on it).</p>
  307. <p>I&#8217;ve already moved <a href="/space/os/linux/docker/portainer" rel="next" style="color: #0000cc;">Portainer</a> and <a href="/space/apps/gitea" rel="next" style="color: #0000cc;">Gitea</a> off it, and having them run (even with very constrained resources) on separate microVMs in an N150 makes a world of difference&#8211;so much so that I have to wonder why I put up with the J4125&#8217;s slowness for years.</p>
  308. <p>I set <a href="/space/os/linux/distributions/proxmox" rel="next" style="color: #0000cc;">Proxmox</a> to snapshot both VMs daily (and added a temporary direct-to-cloud <a href="/space/cli/restic" rel="next" style="color: #0000cc;"><code>restic</code></a> backup), and am now slowly moving the rest. Or, rather <a href="https://github.com/rcarmo/piclaw?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>piclaw</code></a> is doing that. I had it draft a plan to group containers and create target VMs/LXCs, and the agent is now merrily <a href="/space/cli/rsync" rel="next" style="color: #0000cc;"><code>rsync</code></a>ing data and container configs out of the Synology.</p>
  309. <a class="anchor" id="anchor-mid-term" rel="anchor" href="/space/blog/2026/05/15/1330#mid-term" style="color: #0000cc;"><h2 id="mid-term">Mid-Term</h2></a><p>After the dust settles, I am going to move all of my backups out of the Synology ecosystem&#8211;I currently rely on HyperBackup to back up my data to <a href="/space/com/microsoft/azure" rel="next" style="color: #0000cc;">Azure</a>, but the recovery attempt was so off-putting that I am going to look into using <a href="/space/cli/restic" rel="next" style="color: #0000cc;"><code>restic</code></a> directly to Azure.</p>
  310. <p><a href="https://github.com/garethgeorge/backrest?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Backrest</a> looks like a nice way to do that, with the added benefit that <code>restic</code> backups (which I have already been using for years) seem to work better with Azure storage tiering (and thus might even be cheaper in the long run).</p>
  311. <br/>
  312. ]]></content>
  313. <category term="proxmox" label="proxmox" />
  314. <category term="synology" label="synology" />
  315. <category term="backups" label="backups" />
  316. <category term="storage" label="storage" />
  317. <category term="nas" label="nas" />
  318. <category term="homelab" label="homelab" />
  319. <category term="docker" label="docker" />
  320. </entry>
  321. <entry>
  322. <title>Emulation</title>
  323. <id>https://taoofmac.com/space/emulation?utm_content=atom</id>
  324. <published>2005-06-09T09:38:12+00:00</published>
  325. <updated>2026-05-14T22:40:20+00:00</updated>
  326. <author>
  327. <name>Rui Carmo</name>
  328. <uri>https://taoofmac.com</uri>
  329. </author>
  330. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/emulation?utm_content=atom"/>
  331. <content type="html"><![CDATA[
  332. <p class="lead">Emulation and hardware virtualization software of various descriptions, most of them obsolete by now:</p>
  333. <p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  334. <thead>
  335. <tr style="border-top: 1px solid #aaa;">
  336. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  337. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  338. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  339. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  340. </tr>
  341. </thead>
  342. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  343. <tr style="border-top: 1px solid #aaa;">
  344. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">8-bit</td>
  345. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  346. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Jean-MarcHarvengt/MCUME?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MCUME</a></td>
  347. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a multi-system emulator for microcontrollers</p></td>
  348. </tr>
  349. <tr style="border-top: 1px solid #aaa;">
  350. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/floooh/chips-test?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">chips-test</a></td>
  351. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a collection of <a href="https://floooh.github.io/tiny8bit/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Tiny Emus</a> for
  352. 8-bit systems</p></td>
  353. </tr>
  354. <tr style="border-top: 1px solid #aaa;">
  355. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Amiga</td>
  356. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2008</td>
  357. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://sourceforge.net/projects/maxuae/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MaxUAE</a></td>
  358. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Somewhat dead, with only Power PC binaries available.</p></td>
  359. </tr>
  360. <tr style="border-top: 1px solid #aaa;">
  361. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.rcdrummond.net/uae/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">UAE</a></td>
  362. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Cross-platform Amiga emulator</p></td>
  363. </tr>
  364. <tr style="border-top: 1px solid #aaa;">
  365. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  366. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/midwan/amiberry?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">amiberry</a></td>
  367. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>optimized for ARM cpus</p></td>
  368. </tr>
  369. <tr style="border-top: 1px solid #aaa;">
  370. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Arcade</td>
  371. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2010</td>
  372. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://openemu.sourceforge.net?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Open Emu</a></td>
  373. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A modular emulator that can be used as a Quartz Composer plug-in</p></td>
  374. </tr>
  375. <tr style="border-top: 1px solid #aaa;">
  376. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2011</td>
  377. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.emulaunch.com/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Emulaunch</a></td>
  378. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A multi-emulator front-end suitable for use on a TV</p></td>
  379. </tr>
  380. <tr style="border-top: 1px solid #aaa;">
  381. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  382. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Provenance-Emu/Provenance?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Provenance</a></td>
  383. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an iOS and tvOS multi-emulator frontend</p></td>
  384. </tr>
  385. <tr style="border-top: 1px solid #aaa;">
  386. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">C64</td>
  387. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  388. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/randyrossi/bmc64?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">bmc64</a></td>
  389. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a &#8220;bare metal&#8221; C64 emulator for the Raspberry Pi</p></td>
  390. </tr>
  391. <tr style="border-top: 1px solid #aaa;">
  392. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  393. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/SensoriumEmbedded/TeensyROM?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">TeensyROM</a></td>
  394. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a ROM emulator, fast loader, MIDI and internet cartridge for Commodore 64/128</p></td>
  395. </tr>
  396. <tr style="border-top: 1px solid #aaa;">
  397. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">DEC</td>
  398. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  399. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/rscott2049/DECstation2040?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">DECstation2040</a></td>
  400. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A RP2040 based DECstation emulator (the workstations I used in college)</p></td>
  401. </tr>
  402. <tr style="border-top: 1px solid #aaa;">
  403. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Emulation</td>
  404. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/86Box/86Box?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">86Box</a></td>
  405. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a low level x86 emulator for running older operating systems and software.</p></td>
  406. </tr>
  407. <tr style="border-top: 1px solid #aaa;">
  408. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  409. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/amcchord/M5Tab-Macintosh?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">M5Tab-Macintosh</a></td>
  410. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>68040 emulator on an ESP32-P4 with video rendering and input handling capabilities.</p></td>
  411. </tr>
  412. <tr style="border-top: 1px solid #aaa;">
  413. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/kstenerud/Musashi?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Musashi</a></td>
  414. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A portable Motorola 68000 CPU emulator core used in many classic system emulators</p></td>
  415. </tr>
  416. <tr style="border-top: 1px solid #aaa;">
  417. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Gameboy</td>
  418. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2008</td>
  419. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.bannister.org/software/ba.htm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Boycott Advance</a></td>
  420. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>GBA emulator. Universal binary.</p></td>
  421. </tr>
  422. <tr style="border-top: 1px solid #aaa;">
  423. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Gaming</td>
  424. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.bannister.org/software/kigb.htm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">KiGB</a></td>
  425. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Gameboy/Gameboy colour emulator.</p></td>
  426. </tr>
  427. <tr style="border-top: 1px solid #aaa;">
  428. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Generic x86</td>
  429. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="/space/apps/Q" rel="nofollow" style="color: #0000cc;">QEMU</a></td>
  430. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Q</p></td>
  431. </tr>
  432. <tr style="border-top: 1px solid #aaa;">
  433. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="/space/com/microsoft/virtual_pc" rel="nofollow" style="color: #0000cc;">Virtual PC</a></td>
  434. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Used to be the best option for running Windows on Power PC</p></td>
  435. </tr>
  436. <tr style="border-top: 1px solid #aaa;">
  437. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2010</td>
  438. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="/space/links/2011/03/25/1840" rel="nofollow" style="color: #0000cc;">DOSBox</a></td>
  439. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Boxer</p></td>
  440. </tr>
  441. <tr style="border-top: 1px solid #aaa;">
  442. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Graphics</td>
  443. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  444. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/carlosefr/retroarch-shaders?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">retroarch-shaders</a></td>
  445. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a collection of finetuned shaders to replicate CRT looks on Retroarch</p></td>
  446. </tr>
  447. <tr style="border-top: 1px solid #aaa;">
  448. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">IBM PC</td>
  449. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  450. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/dbalsom/martypc?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">martypc</a></td>
  451. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a cycle-accurate IBM PC/XT emulator written in Rust</p></td>
  452. </tr>
  453. <tr style="border-top: 1px solid #aaa;">
  454. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  455. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://cmaiolino.wordpress.com/dosbian?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Dosbian</a></td>
  456. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a lightweight distribution for Raspberry Pi that boots directly into DOSBox</p></td>
  457. </tr>
  458. <tr style="border-top: 1px solid #aaa;">
  459. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://felix86.com/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">felix86</a></td>
  460. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a low-level x86 emulator for RISC-V platforms</p></td>
  461. </tr>
  462. <tr style="border-top: 1px solid #aaa;">
  463. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ericjenott/Evertop?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Evertop</a></td>
  464. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an ultra low power, ultra long battery solar PC</p></td>
  465. </tr>
  466. <tr style="border-top: 1px solid #aaa;">
  467. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jhhoward/Faux86?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Faux86</a></td>
  468. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>designed to be run &#8216;bare metal&#8217; on a Raspberry Pi</p></td>
  469. </tr>
  470. <tr style="border-top: 1px solid #aaa;">
  471. <td rowspan="20" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Mac</td>
  472. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2011</td>
  473. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cebix/macemu?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Basilisk II and SheepShaver</a></td>
  474. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>the most stable emulators for Motorola-based Macs, but maintained and
  475. released via an obscure forum, so quite annoying to keep up to date</p></td>
  476. </tr>
  477. <tr style="border-top: 1px solid #aaa;">
  478. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  479. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/InvisibleUp/uvmac?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">&#181;vMac</a></td>
  480. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An attempt to modernize the vMac source code</p></td>
  481. </tr>
  482. <tr style="border-top: 1px solid #aaa;">
  483. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/macmade/Macintosh-ROMs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Macintosh ROMs</a></td>
  484. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>quite amazed to see these in the wild</p></td>
  485. </tr>
  486. <tr style="border-top: 1px solid #aaa;">
  487. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://www.gryphel.com/c/minivmac?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Mini vMac</a></td>
  488. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>The most straightforward Mac emulator out there</p></td>
  489. </tr>
  490. <tr style="border-top: 1px solid #aaa;">
  491. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  492. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/TaraHoleInIt/MinivMacArduino?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MinivMacArduino</a></td>
  493. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Port of Mini vMac to the Arduino framework (Kind of)</p></td>
  494. </tr>
  495. <tr style="border-top: 1px solid #aaa;">
  496. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/clehner/macemu?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">nacemu</a></td>
  497. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>for of Basilisk and SheepShaver with networking support</p></td>
  498. </tr>
  499. <tr style="border-top: 1px solid #aaa;">
  500. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/evansm7/pico-mac?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pico-umac</a></td>
  501. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>embeds the umac emulator into a Rasbperry Pi Pico, complete with VGA mono output</p></td>
  502. </tr>
  503. <tr style="border-top: 1px solid #aaa;">
  504. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/evansm7/umac?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">umac</a></td>
  505. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a minimalist Apple Macintosh 128K/512K emulator</p></td>
  506. </tr>
  507. <tr style="border-top: 1px solid #aaa;">
  508. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/noshbar/Ultibo-Mini_vMac?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Ultibo-Mini_vMac</a></td>
  509. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A minivmac fork to be built against Ultibo instead of out-of-date SDL2</p></td>
  510. </tr>
  511. <tr style="border-top: 1px solid #aaa;">
  512. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://www.macrelix.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MacRelix</a></td>
  513. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Unix-like environment that runs in classic Mac OS</p></td>
  514. </tr>
  515. <tr style="border-top: 1px solid #aaa;">
  516. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  517. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/all2coolnick/pico-mac-nano?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pico-mac-nano</a></td>
  518. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a minimal Mac emulator using an RP2040 and a tiny LCD</p></td>
  519. </tr>
  520. <tr style="border-top: 1px solid #aaa;">
  521. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ekbann/rpi-basilisk2-sdl2-nox?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">rpi-basilisk2-sdl2-nox</a></td>
  522. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a script to build Basilisk II on a Raspberry Pi with no X11 dependencies</p></td>
  523. </tr>
  524. <tr style="border-top: 1px solid #aaa;">
  525. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/twvd/snow?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">snow</a></td>
  526. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a new classic 68K Mac emulator that emphasises accurate emulation and debugging features</p></td>
  527. </tr>
  528. <tr style="border-top: 1px solid #aaa;">
  529. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://www.macintoshrepository.org/44146-mr-browser?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MR Browser</a></td>
  530. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a package manager for emulated classic Macs</p></td>
  531. </tr>
  532. <tr style="border-top: 1px solid #aaa;">
  533. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  534. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/autc04/Retro68?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Retro68</a></td>
  535. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A GCC-based cross-compilation environment for building 68K and PowerPC Macintosh software, including modern hobby projects and tiny utilities for classic Mac emulators.</p></td>
  536. </tr>
  537. <tr style="border-top: 1px solid #aaa;">
  538. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/likeablob/cydintosh?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Cydintosh</a></td>
  539. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Macintosh Plus emulator port for the Cheap Yellow Display ESP32 board, bundled with a few tiny 68k Mac applications and repurposed as a smart-home status display.</p></td>
  540. </tr>
  541. <tr style="border-top: 1px solid #aaa;">
  542. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/retrotheory/pico-mac?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pico-mac</a></td>
  543. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Runs the umac emulator on a Raspberry Pi Pico, with VGA output.</p></td>
  544. </tr>
  545. <tr style="border-top: 1px solid #aaa;">
  546. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/vitorallo/macframe-releases?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Macframe</a></td>
  547. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An IBM mainframe emulator for macOS distributed as release downloads</p></td>
  548. </tr>
  549. <tr style="border-top: 1px solid #aaa;">
  550. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://www.gryphel.com/c/sw/sysutils/speedmtr/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">speedmtr</a></td>
  551. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A classic Mac benchmarking utility distributed via Gryphel (archive of classic Mac software)</p></td>
  552. </tr>
  553. <tr style="border-top: 1px solid #aaa;">
  554. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://www.v68k.org/advanced-mac-substitute/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Advanced Mac Substitute</a></td>
  555. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An API-level reimplementation of classic 68K Mac OS that runs old Mac applications without an Apple ROM or original system software.</p></td>
  556. </tr>
  557. <tr style="border-top: 1px solid #aaa;">
  558. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Multi-system</td>
  559. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  560. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/JMBeresford/retrom?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">retrom</a></td>
  561. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a centralized management service that serves up web-based emulated games</p></td>
  562. </tr>
  563. <tr style="border-top: 1px solid #aaa;">
  564. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">N64</td>
  565. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2010</td>
  566. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://code.google.com/p/mupen64plus?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">mupen64plus</a></td>
  567. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a less polished but cross-platform alternative</p></td>
  568. </tr>
  569. <tr style="border-top: 1px solid #aaa;">
  570. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.sixtyforce.com/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Sixtyforce</a></td>
  571. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A N64 emulator with the ability to render games in high resolution.</p></td>
  572. </tr>
  573. <tr style="border-top: 1px solid #aaa;">
  574. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Newton</td>
  575. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  576. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/pguyot/Einstein?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Einstein</a></td>
  577. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Newton MessagePad emulator for multiple platforms</p></td>
  578. </tr>
  579. <tr style="border-top: 1px solid #aaa;">
  580. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Nintendo 3DS</td>
  581. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  582. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://citra-emu.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Citra</a></td>
  583. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>formerly available for Android with motion controls</p></td>
  584. </tr>
  585. <tr style="border-top: 1px solid #aaa;">
  586. <td rowspan="9" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Other</td>
  587. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  588. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/buserror/libmui?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">libmui</a></td>
  589. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a <em>brilliant</em> Classic MacOS &amp; GS/OS widget library for linux used in the
  590. Apple IIe emulator</p></td>
  591. </tr>
  592. <tr style="border-top: 1px solid #aaa;">
  593. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/buserror/mii_emu?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">mii_emu</a></td>
  594. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an Apple IIe Emulator for Linux</p></td>
  595. </tr>
  596. <tr style="border-top: 1px solid #aaa;">
  597. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/pdewacht/oberon-risc-emu?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">oberon-risc-emu</a></td>
  598. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Emulator for the Oberon RISC machine</p></td>
  599. </tr>
  600. <tr style="border-top: 1px solid #aaa;">
  601. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://twisteros.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Twister OS</a></td>
  602. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a set of UI themes and prebuilt ARM images to turn XFCE into faithful
  603. reproductions of older OSes</p></td>
  604. </tr>
  605. <tr style="border-top: 1px solid #aaa;">
  606. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  607. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/habedi/rocket68?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">rocket68</a></td>
  608. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>C11 Motorola 68000 CPU emulator library focused on correctness, precise
  609. cycle counting, and easy embedding into retro projects.</p></td>
  610. </tr>
  611. <tr style="border-top: 1px solid #aaa;">
  612. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jevonlipsey/pico-ios?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Pocket8 / pico-ios</a></td>
  613. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Native PICO-8 companion for iOS that embeds the official engine via WASM, adding instant save/load states, adaptive controls, and a smart library for cartridges.</p></td>
  614. </tr>
  615. <tr style="border-top: 1px solid #aaa;">
  616. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/rochus-keller/OberonSystem3Native?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">OberonSystem3Native</a></td>
  617. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Native port of Oberon System 3 for modern Windows units, complete with
  618. build scripts, packaging artifacts, and usage notes.</p></td>
  619. </tr>
  620. <tr style="border-top: 1px solid #aaa;">
  621. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://oberon.ethz.ch/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Oberon System (ETH)</a></td>
  622. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Official ETH Zurich archive for the Oberon language and operating system,
  623. including System 3 downloads, documentation, and research notes.</p></td>
  624. </tr>
  625. <tr style="border-top: 1px solid #aaa;">
  626. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://www.projectoberon.com/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Project Oberon</a></td>
  627. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Niklaus Wirth&#8217;s Project Oberon site: the book, FPGA schematics, and step-
  628. by-step guides to recreate Oberon hardware.</p></td>
  629. </tr>
  630. <tr style="border-top: 1px solid #aaa;">
  631. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">PalmOS</td>
  632. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  633. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cloudpilot-emu/cloudpilot-emu?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">cloudpilot-emu</a></td>
  634. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a cloud-based emulator for running PalmOS applications that works on the iPhone</p></td>
  635. </tr>
  636. <tr style="border-top: 1px solid #aaa;">
  637. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/meepingsnesroms/Mu?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Mu</a></td>
  638. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>PalmOS Emulator</p></td>
  639. </tr>
  640. <tr style="border-top: 1px solid #aaa;">
  641. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Psion</td>
  642. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Treeki/WindEmu?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">WindEmu</a></td>
  643. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>emulator for Psion Series 5mx (Windermere)</p></td>
  644. </tr>
  645. <tr style="border-top: 1px solid #aaa;">
  646. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">RISC-V</td>
  647. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  648. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ringtailsoftware/uvm32?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">uvm32</a></td>
  649. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a minimalist, dependency-free virtual machine sandbox that emulates a 32-bit RISC-V CPU that can run DooM</p></td>
  650. </tr>
  651. <tr style="border-top: 1px solid #aaa;">
  652. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  653. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/wkoszek/emuko?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Emuko</a></td>
  654. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Fast RISC-V emulator written in Rust that can boot Linux and targets modern systems.</p></td>
  655. </tr>
  656. <tr style="border-top: 1px solid #aaa;">
  657. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Retrocomputing</td>
  658. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  659. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/TomHarte/CLK?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Clock Signal</a></td>
  660. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a multi-system emulator that works beautifully on a Mac</p></td>
  661. </tr>
  662. <tr style="border-top: 1px solid #aaa;">
  663. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  664. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://benbridle.com/projects/bedrock?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Bedrock</a></td>
  665. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>8-bit virtual computer system specification with assembler/emulators for PC, web, and Nintendo DS</p></td>
  666. </tr>
  667. <tr style="border-top: 1px solid #aaa;">
  668. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  669. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/rommapp/romm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">RomM</a></td>
  670. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A beautiful self-hosted ROM manager and player with metadata scraping, browser-based UI, and built-in EmulatorJS/RuffleRS players for hosting and sharing emulation collections.</p></td>
  671. </tr>
  672. <tr style="border-top: 1px solid #aaa;">
  673. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Sinclair</td>
  674. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2010</td>
  675. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://fuse-for-macosx.sourceforge.net/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Fuse</a></td>
  676. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A recent port of the cross-platform ZX Spectrum emulator</p></td>
  677. </tr>
  678. <tr style="border-top: 1px solid #aaa;">
  679. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://k1.dyndns.org/Develop/projects/zxsp-osx/distributions/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">zxsp</a></td>
  680. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Emulates a range of Z80-based devices, including the ZX81 I started out with.</p></td>
  681. </tr>
  682. <tr style="border-top: 1px solid #aaa;">
  683. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  684. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/fruit-bat/pico-zxspectrum?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pico-zxspectrum</a></td>
  685. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a ZX Spectrum emulator for for the Raspberry Pico RP2040 MCU</p></td>
  686. </tr>
  687. <tr style="border-top: 1px solid #aaa;">
  688. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  689. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/antirez/zx2040?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">zx2040</a></td>
  690. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a ZX Spectrum emulator for the Raspberry Pi Pico</p></td>
  691. </tr>
  692. <tr style="border-top: 1px solid #aaa;">
  693. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  694. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://zxmini.speccy.org/en/index.html?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ZXBaremulator</a></td>
  695. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a complete ZX Spectrum 48K/128K/+2A bare-metal emulator</p></td>
  696. </tr>
  697. <tr style="border-top: 1px solid #aaa;">
  698. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Switch</td>
  699. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  700. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Ryujinx/Ryujinx?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Ryujinx</a></td>
  701. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Very good performance on Apple Silicon</p></td>
  702. </tr>
  703. <tr style="border-top: 1px solid #aaa;">
  704. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  705. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/sudachi-emu/sudachi?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sudachi</a></td>
  706. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Another yuzu fork</p></td>
  707. </tr>
  708. <tr style="border-top: 1px solid #aaa;">
  709. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Terminals</td>
  710. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  711. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mmastrac/blaze?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Blaze</a></td>
  712. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a VT420 terminal emulator written in Rust</p></td>
  713. </tr>
  714. <tr style="border-top: 1px solid #aaa;">
  715. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  716. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  717. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/retronas/retronas?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">retronas</a></td>
  718. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>network storage for different retro computers and consoles</p></td>
  719. </tr>
  720. <tr style="border-top: 1px solid #aaa;">
  721. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Wii U</td>
  722. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  723. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cemu-project/Cemu?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Cemu</a></td>
  724. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Very good performance on Apple Silicon</p></td>
  725. </tr>
  726. <tr style="border-top: 1px solid #aaa;">
  727. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Wii/GameCube</td>
  728. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2011</td>
  729. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.dolphin-emulator.com/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Dolphin</a></td>
  730. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An amazing Wii and GameCube emulator</p></td>
  731. </tr>
  732. <tr style="border-top: 1px solid #aaa;">
  733. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Windows</td>
  734. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  735. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/AndreRH/hangover?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">hangover</a></td>
  736. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>enables running Win32 applications on aarch64 Linux using various DLLs
  737. for improved performance.</p></td>
  738. </tr>
  739. <tr style="border-top: 1px solid #aaa;">
  740. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  741. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/PluMGMK/vbesvga.drv?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">vbesvga.drv</a></td>
  742. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"/>
  743. </tr>
  744. <tr style="border-top: 1px solid #aaa;">
  745. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/TibixDev/winboat?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">winboat</a></td>
  746. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Windows VM wrapper that uses RDP and RemoteApp to render apps on Linux</p></td>
  747. </tr>
  748. </tbody>
  749. </table>
  750. <br/>
  751. ]]></content>
  752. </entry>
  753. <entry>
  754. <title>restic</title>
  755. <id>https://taoofmac.com/space/cli/restic?utm_content=atom</id>
  756. <published>2023-03-11T14:23:00+00:00</published>
  757. <updated>2026-05-14T21:40:34+00:00</updated>
  758. <author>
  759. <name>Rui Carmo</name>
  760. <uri>https://taoofmac.com</uri>
  761. </author>
  762. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/cli/restic?utm_content=atom"/>
  763. <content type="html"><![CDATA[
  764. <blockquote>
  765. <p class="lead">This page is a stub.</p>
  766. </blockquote>
  767. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/cli/restic#resources" style="color: #0000cc;"><h2 id="resources">Resources</h2></a><ul>
  768. <li><a href="https://github.com/swampapp/swamp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Swamp</a>, a GNOME application to
  769.  browse <code>restic</code> repositories.</li>
  770. <li><a href="https://github.com/rustic-rs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Rustic</a>, a <a href="/space/dev/rust" rel="next" style="color: #0000cc;">Rust</a> alternative.</li>
  771. <li><a href="https://github.com/ad-on-is/resticity?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Resticity</a>, a Web GUI for <code>restic</code></li>
  772. <li><a href="https://github.com/dpbriggs/borgtui?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">BorgTUI</a>, a BorgBackup TUI that can
  773.    also work with <code>rustic</code>.</li>
  774. </ul>
  775. <br/>
  776. ]]></content>
  777. <category term="sync" label="sync" />
  778. <category term="cloud" label="cloud" />
  779. <category term="backup" label="backup" />
  780. </entry>
  781. <entry>
  782. <title>The Siri For Families Apple Will Never Build</title>
  783. <id>https://taoofmac.com/space/blog/2026/05/14/1220?utm_content=atom</id>
  784. <published>2026-05-14T12:20:00+00:00</published>
  785. <updated>2026-05-14T16:40:13+00:00</updated>
  786. <author>
  787. <name>Rui Carmo</name>
  788. <uri>https://taoofmac.com</uri>
  789. </author>
  790. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/blog/2026/05/14/1220?utm_content=atom"/>
  791. <content type="html"><![CDATA[
  792. <p class="lead">The <a href="/space/links/2026/04/21/0730" rel="next" style="color: #0000cc;">Ternus announcement</a> got me thinking about the one thing I keep wishing <a href="/space/com/apple" rel="next" style="color: #0000cc;">Apple</a> would build and almost certainly never will: a family-scoped AI assistant that actually works across all our devices.</p>
  793. <p>I don&#8217;t mean a frontier model or a &#8220;reasoning engine&#8221;&#8211;just a competent, context-aware agent that understands my family as a unit. The shared calendar, the school schedules, the medication reminders, who&#8217;s picking up whom and when. The kind of thing that Apple Intelligence was <em>supposed</em> to be, except pointed at the problem that would actually matter most to the people who are already deep in the ecosystem and paying for it.</p>
  794. <p>I am married with two kids. Between us we have more Apple devices than I care to count&#8211;and we are <em>exactly</em> the demographic Apple loves to put in keynote photos. And yet <a href="/space/com/apple/icloud" rel="next" style="color: #0000cc;">iCloud</a> treats us as completely separate customers who happen to share a credit card. Family Sharing is a permissions layer bolted onto individual accounts, and it shows in every single interaction&#8211;shared photo libraries (still broken), purchase management (still confusing), screen time (still adversarial rather than collaborative). Twenty-four years of <em>&#8220;digital hub&#8221;</em> strategy, and this is where we are.</p>
  795. <a class="anchor" id="anchor-what-i-actually-want" rel="anchor" href="/space/blog/2026/05/14/1220#what-i-actually-want" style="color: #0000cc;"><h2 id="what-i-actually-want">What I Actually Want</h2></a><p>Here&#8217;s what a competent family agent could do without being creepy&#8211;and in most cases, without even needing to leave the device:</p>
  796. <ul>
  797. <li>Know that my son has a test on Thursday and hasn&#8217;t opened the revision material since Monday. A gentle nudge (to him), not a surveillance report.</li>
  798. <li>Track our medication schedule and ping people (or me, if an elderly relative misses a window) without turning into a clinical monitoring tool.</li>
  799. <li>Surface things on <a href="/space/com/apple/tv" rel="next" style="color: #0000cc;">Apple TV</a> that match what we <em>actually</em> watch, not what the recommendation engine wants us to try.</li>
  800. <li>Coordinate pickup times, grocery lists, meal plans&#8211;the sort of mundane family logistics that currently live in a group chat and three different apps.</li>
  801. <li>Make <a href="/space/com/apple/icloud" rel="next" style="color: #0000cc;">iCloud</a> file sharing work the way a shared family folder should, rather than the absurd permissions mess it currently is.</li>
  802. <li>Do smarter photo sharing&#8211;not just a wholesale shared library, but understanding who&#8217;s took the photos, where and sharing only relevant stuff to  family without it being an all-or-nothing proposition.</li>
  803. <li>Better family e-mail, better event handling, better package tracking across household members.</li>
  804. </ul>
  805. <p>I also want it to let me keep my parents and in-laws in the loop. Most of the above also applies to extended family, especially if you have elderly parents who need help managing their medications, appointments, and social connections. A family agent could be a lifeline for them without being intrusive.</p>
  806. <p>None of this is exotic. Apple already does the understated version of some of it&#8211;surfacing birthdays, suggesting contacts to call at specific times, the quiet little iOS touches that work well precisely <em>because</em> they don&#8217;t try to be clever. A family agent would just be more of that, but with understated functionality across the whole household instead of locked to a single Apple ID.</p>
  807. <p>And <em>none of it requires SOTA models</em>, or selling out to Gemini. A 4B parameter model running on-device&#8211;the sort of thing I&#8217;ve been <a href="/space/reviews/2026/04/11/1900" rel="next" style="color: #0000cc;">running on an ARM SBC</a> for months&#8211;would handle the intent parsing and coordination.</p>
  808. <p>The hard part isn&#8217;t the AI. It never was. It&#8217;s the will, the focus and the willingness to execute, and that&#8217;s where Apple has been asleep at the wheel for over a decade&#8211;and I am not going to hold my breath that Ternus will be the one to wake them up in things like APIs and interoperability that would actually make this possible by third parties.</p>
  809. <p>They <em>should</em> have an absurd advantage here: they own the OS, the hardware, the sync layer, the health stack, the media stack, the calendar, the reminders. Nobody else even comes close to that vertical. And they&#8217;ve done <em>nothing</em> with it.</p>
  810. <p>I know this is possible because I&#8217;ve been <a href="https://github.com/rcarmo/gi?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">building something like it myself</a>&#8211;a personal agent that fits in a single <a href="/space/dev/golang" rel="next" style="color: #0000cc;">Go</a> binary and a <a href="/space/db/sqlite" rel="next" style="color: #0000cc;">SQLite</a> database, carries its own scripts and state, and runs on anything from a Raspberry Pi to a desktop. The <a href="https://github.com/rcarmo/piclaw?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">TypeScript-based version</a> already manages my homelab, files links to my wiki, coordinates across machines, and does it all with about 300MB of RAM (the Go version should take up 30).</p>
  811. <p>I built this on the equivalent of a Raspberry Pi, but Apple can&#8217;t do it with a trillion-dollar platform because they won&#8217;t treat families as anything other than a billing construct.</p>
  812. <p>Just to add insult to injury, <em>I could do most of what I wanted</em> if we were in the Google ecosystem. But on iCloud it&#8217;s impossible to access shared tasklists (or even anything else, really) with any sort of standard protocol and documented API. For Google (or even Outlook), most of it is accessible.</p>
  813. <p>Every Apple equivalent is there, but they just refuse to connect them, or let anyone use them.</p>
  814. <a class="anchor" id="anchor-the-automation-graveyard" rel="anchor" href="/space/blog/2026/05/14/1220#the-automation-graveyard" style="color: #0000cc;"><h2 id="the-automation-graveyard">The Automation Graveyard</h2></a><p>I know I&#8217;ve banged on this drum for years, but Apple has spent the better part of a decade systematically <em>breaking</em> OS automation, and they&#8217;ve done it so thoroughly that it&#8217;s hard to believe it&#8217;s accidental.</p>
  815. <p><a href="/space/dev/applescript" rel="next" style="color: #0000cc;">AppleScript</a> is on life support. Automator was effectively killed. <a href="/space/apps/shortcuts" rel="next" style="color: #0000cc;">Shortcuts</a> was supposed to replace both, and instead became an App Store for workflow fragments that nobody maintains and that break with every major OS update. The Shortcuts editor is still painful for anything beyond &#8220;open this app and do one thing&#8221;, and the integration points with third-party apps range from spotty to fictional.</p>
  816. <p>On <a href="/space/com/google/android" rel="next" style="color: #0000cc;">Android</a>, you can set up <a href="https://tasker.joaoapps.com/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Tasker</a> automations that trigger on location, time, sensor data, app state, notification content, Bluetooth proximity&#8211;and chain them into workflows that persist across OS updates. On Windows, I have a <a href="https://github.com/rcarmo/piclaw?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>piclaw</code></a> instance that can drive the entire desktop via <a href="https://rcarmo.github.io/piclaw-addons/addons/win-ui/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">a Windows API extension</a>. The gap between what those platforms allow and what Apple permits isn&#8217;t narrowing. It&#8217;s getting wider.</p>
  817. <p><a href="/space/apps/shortcuts" rel="next" style="color: #0000cc;">Shortcuts</a> could have been the foundation for family automation. Instead, it&#8217;s a gallery of pretty icons.</p>
  818. <a class="anchor" id="anchor-why-it-wont-happen" rel="anchor" href="/space/blog/2026/05/14/1220#why-it-wont-happen" style="color: #0000cc;"><h2 id="why-it-wont-happen">Why It Won&#8217;t Happen</h2></a><p>I suspect the real reason is structural. Apple doesn&#8217;t think of families as a product category. They think of them as a collection of individual customers who happen to share a payment method. Every design decision reflects this: iPads are still single-user devices. <a href="/space/com/apple/icloud" rel="next" style="color: #0000cc;">iCloud</a> storage is pooled, but grudgingly, and shared files live in a sort of no-man&#8217;s-land. App purchases are shared grudgingly, in a submenu of a submenu. Family Sharing is an afterthought, not a platform.</p>
  819. <p>The only thing that Apple seems to care about (after iMessage) is that we can share what we are watching on Apple TV, which has been relevant in our family for exactly zero minutes since the feature launched.</p>
  820. <p>And until someone at Apple decides that &#8220;a household of four using Apple devices&#8221; is a use case worth designing <em>for</em> rather than designing <em>around</em>, Siri will remain a single-user voice assistant that can&#8217;t reliably set a timer on the right HomePod.</p>
  821. <p>With Ternus coming from hardware, I&#8217;d like to think there&#8217;s a chance he gets that a trillion-dollar ecosystem ought to handle a shared grocery list. But I&#8217;ve been hoping Apple would sort out family sharing since iCloud launched, so I&#8217;m not holding my breath here.</p>
  822. <br/>
  823. ]]></content>
  824. <category term="family" label="family" />
  825. <category term="siri" label="siri" />
  826. <category term="ai" label="ai" />
  827. <category term="automation" label="automation" />
  828. <category term="apple" label="apple" />
  829. </entry>
  830. <entry>
  831. <title>Googlebook</title>
  832. <id>https://taoofmac.com/space/links/2026/05/14/1145?utm_content=atom</id>
  833. <published>2026-05-14T11:45:00+00:00</published>
  834. <updated>2026-05-14T12:01:34+00:00</updated>
  835. <author>
  836. <name>Rui Carmo</name>
  837. <uri>https://taoofmac.com</uri>
  838. </author>
  839. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/links/2026/05/14/1145?utm_content=atom"/>
  840. <content type="html"><![CDATA[
  841. <p><a href="https://blog.google/products-and-platforms/platforms/android/meet-googlebook/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" title="external link to https://blog.google/products-and-platforms/platforms/android/meet-googlebook/" alt="screenshot of https://blog.google/products-and-platforms/platforms/android/meet-googlebook/" style="color: #0000cc;"><img class="quicklook" src="https://taoofmac.com/thumb/links/2026/05/14/1145/640,480/vSLAYqLuwMtRAamq6_zKT9mr-fk=/large.jpg" width="320" height="240" style="max-width: 100% !important;height: auto !important;"/></a></p>
  842. <p class="lead">I am <em>very</em> late to this party (it was announced at I/O last week and I&#8217;ve been buried in other things), but Google is replacing Chromebooks with &#8220;Googlebooks&#8221;&#8211;<a href="/space/com/google/android" rel="next" style="color: #0000cc;">Android</a>-based laptops with Gemini baked in, designed to sync with your phone.</p>
  843. <p>On the face of it, this looks like yet another Google rebranding exercise, and considering what happened with the Pixel and Google&#8217;s penchant for unveiling &#8220;category defining&#8221; devices they never actually sell worldwide, My first reaction was &#8220;meh&#8221;.</p>
  844. <p>But with <a href="/space/com/google/android" rel="next" style="color: #0000cc;">Android</a>&#8217;s recent support for desktop windowing, resizable apps and <a href="/space/os/linux" rel="next" style="color: #0000cc;">Linux</a> sandboxing, this is actually <em>very</em> interesting for me&#8211;because it means you can have a laptop that runs Android apps natively, has a proper desktop shell, and can spin up a <a href="/space/os/linux" rel="next" style="color: #0000cc;">Linux</a> container for development work. All on ARM hardware.</p>
  845. <p>If they get the desktop UX right (which is a big &#8220;if&#8221; given Google&#8217;s track record with consistency&#8211;I&#8217;ve set up <a href="https://konstakang.com/devices/rpi4/LineageOS23/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Android 16 on a Pi</a> and it sucks), this could be a genuinely compelling alternative to both Chromebooks and cheap Windows laptops&#8211;especially for people who already live in the Android ecosystem and want something that doesn&#8217;t fight them the way <a href="/space/com/apple/ipad" rel="next" style="color: #0000cc;">iPadOS</a> does.</p>
  846. <br/>
  847. ]]></content>
  848. <category term="linux" label="linux" />
  849. <category term="hardware" label="hardware" />
  850. <category term="chromebook" label="chromebook" />
  851. <category term="laptops" label="laptops" />
  852. <category term="android" label="android" />
  853. <category term="google" label="google" />
  854. </entry>
  855. <entry>
  856. <title>ESP8266 (and ESP32)</title>
  857. <id>https://taoofmac.com/space/hw/esp8266?utm_content=atom</id>
  858. <published>2016-05-08T23:49:00+00:00</published>
  859. <updated>2026-05-14T07:15:29+00:00</updated>
  860. <author>
  861. <name>Rui Carmo</name>
  862. <uri>https://taoofmac.com</uri>
  863. </author>
  864. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/hw/esp8266?utm_content=atom"/>
  865. <content type="html"><![CDATA[
  866. <p class="lead">These little modules have taken hobby electronics by storm, so of course I grabbed a few of them and have been hacking away quietly on both the <code>ESP8266</code> and the <code>ESP32</code>.</p>
  867. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/hw/esp8266#resources" style="color: #0000cc;"><h2 id="resources">Resources</h2></a><p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  868. <thead>
  869. <tr style="border-top: 1px solid #aaa;">
  870. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  871. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">date</th>
  872. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  873. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  874. </tr>
  875. </thead>
  876. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  877. <tr style="border-top: 1px solid #aaa;">
  878. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Applications</td>
  879. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  880. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/memovai/mimiclaw?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MimiClaw</a></td>
  881. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Telegram-based AI assistant for ESP32-S3 using LLM APIs</p></td>
  882. </tr>
  883. <tr style="border-top: 1px solid #aaa;">
  884. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mlhpdx/hacker-news-cyd?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">hacker-news-cyd</a></td>
  885. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Hacker News reader for ESP32 Cheap Yellow Displays, with a neat Wireguard twist</p></td>
  886. </tr>
  887. <tr style="border-top: 1px solid #aaa;">
  888. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Cameras</td>
  889. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  890. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/HomeKidd/esp32-homekit-camera?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">esp32-homekit-camera</a></td>
  891. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a camera project that I keep trying to fix</p></td>
  892. </tr>
  893. <tr style="border-top: 1px solid #aaa;">
  894. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Displays</td>
  895. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  896. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/lmarzen/esp32-weather-epd?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ESP32 E-Paper Weather Display</a></td>
  897. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An ESP32 e-paper weather display project with a nice visual design for the weather screen</p></td>
  898. </tr>
  899. <tr style="border-top: 1px solid #aaa;">
  900. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  901. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://www.youtube.com/watch?v=6JCLHIXXVus&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ESP32-Cheap-Yellow-Display Audio Fixes</a></td>
  902. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a video on how to fix audio issues with the Cheap Yellow Display</p></td>
  903. </tr>
  904. <tr style="border-top: 1px solid #aaa;">
  905. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  906. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ESP32-Cheap-Yellow-Display</a></td>
  907. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a set of libraries for the ESP32-2432S028R and similar displays</p></td>
  908. </tr>
  909. <tr style="border-top: 1px solid #aaa;">
  910. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Documentation</td>
  911. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://eitherway.io/posts/esp32-buyers-guide?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ESP32 Buyer's Guide</a></td>
  912. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an updated guide to the various SKUs for 2023</p></td>
  913. </tr>
  914. <tr style="border-top: 1px solid #aaa;">
  915. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Emulation</td>
  916. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  917. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/atomic14/esp32-zxspectrum?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ESP32 Rainbow</a></td>
  918. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a ZX Spectrum emulator for the ESP32</p></td>
  919. </tr>
  920. <tr style="border-top: 1px solid #aaa;">
  921. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/hchunhui/tiny386?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">tiny386</a></td>
  922. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An x86 emulator for the ESP32 that can run Windows 95</p></td>
  923. </tr>
  924. <tr style="border-top: 1px solid #aaa;">
  925. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  926. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/retro-esp32?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Retro ESP32</a></td>
  927. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a set of emulators for ESP32, mostly targeting the Odroid Go</p></td>
  928. </tr>
  929. <tr style="border-top: 1px solid #aaa;">
  930. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Firmware</td>
  931. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  932. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/luc-github/ESP3D?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ESP3D</a></td>
  933. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>firmware for ESP8266/ESP32 boards that adds Wi-Fi/web UI control for 3D printers, CNC, and sand tables</p></td>
  934. </tr>
  935. <tr style="border-top: 1px solid #aaa;">
  936. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">GUI</td>
  937. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  938. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/slint-ui/slint?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">slint</a></td>
  939. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a GUI toolkit that can run in MCUs like the Pi pico and the ESP32</p></td>
  940. </tr>
  941. <tr style="border-top: 1px solid #aaa;">
  942. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Graphics</td>
  943. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  944. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/dejwk/roo_display?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">roo_display</a></td>
  945. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A display library for ESP32</p></td>
  946. </tr>
  947. <tr style="border-top: 1px solid #aaa;">
  948. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Hacks</td>
  949. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  950. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://chrdavis.github.io/hacking-a-mitsubishi-heat-pump-Part-1/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Hacking A Mitsubishi Heat Pump</a></td>
  951. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>I need to do this to mine</p></td>
  952. </tr>
  953. <tr style="border-top: 1px solid #aaa;">
  954. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Hardware</td>
  955. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  956. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/lhm0/wide-mcu-breadboard?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">wide-mcu-breadboard</a></td>
  957. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>3D-printable breadboard body for wide MCUs like ESP32 and Pi Pico, reusing standard spring contacts to give four free holes per pin</p></td>
  958. </tr>
  959. <tr style="border-top: 1px solid #aaa;">
  960. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">IoT</td>
  961. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  962. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jomjol/AI-on-the-edge-device?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">AI-on-the-edge-device</a></td>
  963. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an impressive water meter reader solution using an ESP32</p></td>
  964. </tr>
  965. <tr style="border-top: 1px solid #aaa;">
  966. <td rowspan="13" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Libraries</td>
  967. <td rowspan="7" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  968. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/HomeSpan/HomeSpan?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">HomeSpan</a></td>
  969. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Arduino library for creating your own ESP32-based HomeKit devices</p></td>
  970. </tr>
  971. <tr style="border-top: 1px solid #aaa;">
  972. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/NorthernMan54/rtl_433_ESP?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">rtl_433_ESP</a></td>
  973. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an Arduino library for use on ESP32 boards with to decode 433MHz sensor signals</p></td>
  974. </tr>
  975. <tr style="border-top: 1px solid #aaa;">
  976. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/RavenSystem/esp-homekit-devices?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Home Accessory Architect</a></td>
  977. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a set of libraries to create HomeKit devices</p></td>
  978. </tr>
  979. <tr style="border-top: 1px solid #aaa;">
  980. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/littlefs-project/littlefs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">littlefs</a></td>
  981. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A little fail-safe filesystem designed for MCUs</p></td>
  982. </tr>
  983. <tr style="border-top: 1px solid #aaa;">
  984. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/microsoft/devicescript?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">DeviceScript</a></td>
  985. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>TypeScript for Tiny IoT Devices (ESP32, RP2040, etc.)</p></td>
  986. </tr>
  987. <tr style="border-top: 1px solid #aaa;">
  988. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mlesniew/PicoMQTT?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">PicoMQTT</a></td>
  989. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An MQTT client and server library for ESP8266 and ESP32 devices.</p></td>
  990. </tr>
  991. <tr style="border-top: 1px solid #aaa;">
  992. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/patagonaa/esp32-ir-powermeter?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">esp32-ir-powermeter</a></td>
  993. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a library to read power usage from a digital power meter via the infrared interface</p></td>
  994. </tr>
  995. <tr style="border-top: 1px solid #aaa;">
  996. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  997. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/fdivitto/FabGL?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">FabGL</a></td>
  998. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a set of ESP32 libraries that allow for VGA output and various graphics-related functionality, as well as terminal emulation</p></td>
  999. </tr>
  1000. <tr style="border-top: 1px solid #aaa;">
  1001. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  1002. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/SwiCago/HeatPump?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">HeatPump</a></td>
  1003. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>the library to talk to Mitsubishi ACs</p></td>
  1004. </tr>
  1005. <tr style="border-top: 1px solid #aaa;">
  1006. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  1007. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/stblassitude/Adafruit_SSD1306_Wemos_OLED?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">SSD1306 Driver</a></td>
  1008. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>This driver works correctly with the 1.1.0 revision Wemos D1 OLED shields I have</p></td>
  1009. </tr>
  1010. <tr style="border-top: 1px solid #aaa;">
  1011. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2017</td>
  1012. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/knolleary/pubsubclient?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pubsubclient</a></td>
  1013. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A smaller, simpler MQTT library</p></td>
  1014. </tr>
  1015. <tr style="border-top: 1px solid #aaa;">
  1016. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/toblum/McLighting?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">McLighting</a></td>
  1017. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An RGB LED controller library</p></td>
  1018. </tr>
  1019. <tr style="border-top: 1px solid #aaa;">
  1020. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016</td>
  1021. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tuanpmt/esp_mqtt?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">esp_mqtt</a></td>
  1022. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a MQTT library with SSL support</p></td>
  1023. </tr>
  1024. <tr style="border-top: 1px solid #aaa;">
  1025. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">M5Stack</td>
  1026. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  1027. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/G4lile0/ESP32-WiFi-Hash-Monster?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">WiFi Hash Monster</a></td>
  1028. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an EAPOL sniffer (and generic Wi-Fi monitor)</p></td>
  1029. </tr>
  1030. <tr style="border-top: 1px solid #aaa;">
  1031. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://gitlab.com/mschmidl/covidsniffer?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">CovidSniffer</a></td>
  1032. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a COVID tracker BLE sniffer</p></td>
  1033. </tr>
  1034. <tr style="border-top: 1px solid #aaa;">
  1035. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Mods</td>
  1036. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1037. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/hexeguitar/ESP32_TFT_PIO?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ESP32_TFT_PIO</a></td>
  1038. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Cheap Yellow Display project with mods to improve the audio quality</p></td>
  1039. </tr>
  1040. <tr style="border-top: 1px solid #aaa;">
  1041. <td rowspan="10" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Networking</td>
  1042. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1043. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/wolfSSL/wolfip?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">wolfIP</a></td>
  1044. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a lightweight TCP/IP stack for resource-constrained MCUs with no dynamic allocations, fixed socket/buffer limits, BSD-like sockets, and a FreeRTOS port.</p></td>
  1045. </tr>
  1046. <tr style="border-top: 1px solid #aaa;">
  1047. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1048. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/bozimmerman/Zimodem?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Zimodem</a></td>
  1049. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>custom modem simulator with lots of features</p></td>
  1050. </tr>
  1051. <tr style="border-top: 1px solid #aaa;">
  1052. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/dakhnod/ESP32-Bluetooth-USB-dongle?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ESP32-Bluetooth-USB-dongle</a></td>
  1053. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>use a ESP32 device like a Bluetooth dongle</p></td>
  1054. </tr>
  1055. <tr style="border-top: 1px solid #aaa;">
  1056. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/dhansel/WifiModem?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">WifiModem</a></td>
  1057. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>ESP8266 firmware to act as a telnet modem and server</p></td>
  1058. </tr>
  1059. <tr style="border-top: 1px solid #aaa;">
  1060. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/esp32-open-mac/esp32-open-mac?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">esp32-open-mac</a></td>
  1061. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an open source Wi-Fi driver for the ESP32</p></td>
  1062. </tr>
  1063. <tr style="border-top: 1px solid #aaa;">
  1064. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/maccasoft/WifiModem?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">WifiModem</a></td>
  1065. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Hayes modem emulation for ESP8266 modules</p></td>
  1066. </tr>
  1067. <tr style="border-top: 1px solid #aaa;">
  1068. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  1069. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cnlohr/espthernet?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">espethernet</a></td>
  1070. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>direct connection to a PHY device</p></td>
  1071. </tr>
  1072. <tr style="border-top: 1px solid #aaa;">
  1073. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/martin-ger/esp32_nat_router?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ESP32 NAT Router</a></td>
  1074. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a basic router for the ESP32</p></td>
  1075. </tr>
  1076. <tr style="border-top: 1px solid #aaa;">
  1077. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2017</td>
  1078. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/martin-ger/esp_wifi_repeater?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">esp_wifi_repeater</a></td>
  1079. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An amazing Wi-Fi repeater, with basic mesh networking</p></td>
  1080. </tr>
  1081. <tr style="border-top: 1px solid #aaa;">
  1082. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tzapu/WiFiManager?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">WiFiManager</a></td>
  1083. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A library for first-boot configuration of Wi-Fi connections</p></td>
  1084. </tr>
  1085. <tr style="border-top: 1px solid #aaa;">
  1086. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Operating Systems</td>
  1087. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1088. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/MicroPythonOS/MicroPythonOS?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MicroPythonOS</a></td>
  1089. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a MicroPython-based OS for ESP32 with Android-like touch UI, app store, and OTA updates</p></td>
  1090. </tr>
  1091. <tr style="border-top: 1px solid #aaa;">
  1092. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/valdanylchuk/breezybox?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">BreezyBox</a></td>
  1093. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A BusyBox-inspired shell and virtual terminal system for ESP32</p></td>
  1094. </tr>
  1095. <tr style="border-top: 1px solid #aaa;">
  1096. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/valdanylchuk/breezydemo?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">BreezyDemo</a></td>
  1097. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A demo cyberdeck project using BreezyBox on an ESP32-S3 with LCD</p></td>
  1098. </tr>
  1099. <tr style="border-top: 1px solid #aaa;">
  1100. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  1101. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ByteWelder/Tactility?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Tactility</a></td>
  1102. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An operating system focused on ESP32</p></td>
  1103. </tr>
  1104. <tr style="border-top: 1px solid #aaa;">
  1105. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  1106. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/EtchedPixels/FUZIX?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">FUZIX</a></td>
  1107. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a minimal UNIX-like OS that can run on a variety of MCUs</p></td>
  1108. </tr>
  1109. <tr style="border-top: 1px solid #aaa;">
  1110. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/whitecatboard/Lua-RTOS-ESP32?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Lua-RTOS-ESP32</a></td>
  1111. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Lua-based RTOS for the ESP32 that also has a block-based editor</p></td>
  1112. </tr>
  1113. <tr style="border-top: 1px solid #aaa;">
  1114. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Photography</td>
  1115. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1116. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/chriko3/ObscuraOne?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Obscura One</a></td>
  1117. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An open-source screenless camera built around the ESP32-CAM with a fully 3D-printable body and Arduino firmware</p></td>
  1118. </tr>
  1119. <tr style="border-top: 1px solid #aaa;">
  1120. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Reference</td>
  1121. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1122. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/crankyoldgit/IRremoteESP8266/wiki/ESP01-Send--Receive-Circuit?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link#receiver" rel="external" style="color: #0000cc;">ESP01-Send--Receive-Circuit</a></td>
  1123. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a circuit to use the ESP-01 as an IR receiver</p></td>
  1124. </tr>
  1125. <tr style="border-top: 1px solid #aaa;">
  1126. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Resources</td>
  1127. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016</td>
  1128. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://blog.cesanta.com/esp8266-superfast-flashing-flash-esp-in-5-seconds?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ESP8266 superfast flashing</a></td>
  1129. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"/>
  1130. </tr>
  1131. <tr style="border-top: 1px solid #aaa;">
  1132. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  1133. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.esp8266.com/wiki/doku.php?id=getting-started-with-the-esp8266&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Getting Started with the ESP8266</a></td>
  1134. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Everything you need to know.</p></td>
  1135. </tr>
  1136. <tr style="border-top: 1px solid #aaa;">
  1137. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.instructables.com/id/How-to-use-the-ESP8266-01-pins/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">How to use the ESP8266-01 pins</a></td>
  1138. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Nice, straightforward overview</p></td>
  1139. </tr>
  1140. <tr style="border-top: 1px solid #aaa;">
  1141. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Runtimes</td>
  1142. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  1143. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/gysmo38/mitsubishi2MQTT?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">mitsubishi2MQTT</a></td>
  1144. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Tasmota-like firmware to control Mitsubishi ACs</p></td>
  1145. </tr>
  1146. <tr style="border-top: 1px solid #aaa;">
  1147. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  1148. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://esphome.io?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">esphome</a></td>
  1149. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>modular firmware for ESP8266 and ESP32</p></td>
  1150. </tr>
  1151. <tr style="border-top: 1px solid #aaa;">
  1152. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2017</td>
  1153. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/yesco/esp-lisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">esp-lisp</a></td>
  1154. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A tiny LISP interpreter</p></td>
  1155. </tr>
  1156. <tr style="border-top: 1px solid #aaa;">
  1157. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016</td>
  1158. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/esp8266/Arduino?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Arduino Core</a></td>
  1159. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An ESP8266 core for Arduino</p></td>
  1160. </tr>
  1161. <tr style="border-top: 1px solid #aaa;">
  1162. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/micropython/micropython?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MicroPython</a></td>
  1163. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Which also supports the ESP8266 thanks to <a href="/space/links/2016/01/29/0743" rel="nofollow" style="color: #0000cc;">this Kickstarter campaign</a></p></td>
  1164. </tr>
  1165. <tr style="border-top: 1px solid #aaa;">
  1166. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  1167. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://hackaday.com/2014/10/25/an-sdk-for-the-esp8266-wifi-chip/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">An SDK for the ESP8266 Wi-Fi Chip</a></td>
  1168. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>The early days</p></td>
  1169. </tr>
  1170. <tr style="border-top: 1px solid #aaa;">
  1171. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Security</td>
  1172. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1173. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cifertech/ESP32-DIV?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ESP32-DIV</a></td>
  1174. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Multi-band ESP32 wireless offensive/defensive toolkit for Wi-Fi, BLE and Sub-GHz testing and analysis.</p></td>
  1175. </tr>
  1176. <tr style="border-top: 1px solid #aaa;">
  1177. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1178. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Fr4nkFletcher/ESP32-Marauder-Cheap-Yellow-Display?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ESP32-Marauder-Cheap-Yellow-Display</a></td>
  1179. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A set of wireless security tools for the Cheap Yellow Display</p></td>
  1180. </tr>
  1181. <tr style="border-top: 1px solid #aaa;">
  1182. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  1183. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1184. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/MatAtBread/esp-scope?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">esp-scope</a></td>
  1185. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A web-based oscilloscope for ESP32 boards that streams ADC data to a browser UI</p></td>
  1186. </tr>
  1187. <tr style="border-top: 1px solid #aaa;">
  1188. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/valdanylchuk/xcc700?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">xcc700</a></td>
  1189. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Self-hosting mini C compiler for ESP32/Xtensa; emits relocatable ELF for ESP-IDF elf_loader</p></td>
  1190. </tr>
  1191. <tr style="border-top: 1px solid #aaa;">
  1192. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1193. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jczic/ESP32-MPY-Jama?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ESP32-MPY-Jama</a></td>
  1194. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a MicroPython IDE for the ESP32 family</p></td>
  1195. </tr>
  1196. <tr style="border-top: 1px solid #aaa;">
  1197. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1198. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Fishwaldo/esp_ghota?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">esp_ghota</a></td>
  1199. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a way to do OTA updates via GitHub</p></td>
  1200. </tr>
  1201. <tr style="border-top: 1px solid #aaa;">
  1202. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Video</td>
  1203. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  1204. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/rossumur/espflix?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">espflix</a></td>
  1205. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an inspired ESP32 video hack</p></td>
  1206. </tr>
  1207. </tbody>
  1208. </table>
  1209. <br/>
  1210. ]]></content>
  1211. <category term="hardware" label="hardware" />
  1212. <category term="microcontrollers" label="microcontrollers" />
  1213. <category term="electronics" label="electronics" />
  1214. <category term="esp32" label="esp32" />
  1215. <category term="resources" label="resources" />
  1216. <category term="expressif" label="expressif" />
  1217. <category term="mcu" label="mcu" />
  1218. <category term="esp8266" label="esp8266" />
  1219. </entry>
  1220. <entry>
  1221. <title>Arduino</title>
  1222. <id>https://taoofmac.com/space/hw/arduino?utm_content=atom</id>
  1223. <published>2016-05-28T23:44:00+00:00</published>
  1224. <updated>2026-05-14T07:15:29+00:00</updated>
  1225. <author>
  1226. <name>Rui Carmo</name>
  1227. <uri>https://taoofmac.com</uri>
  1228. </author>
  1229. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/hw/arduino?utm_content=atom"/>
  1230. <content type="html"><![CDATA[
  1231. <p class="lead">Easily the most well-known family of microcontrollers these days, which effectively kickstarted an entire wave of DIY electronics and Maker activities.</p>
  1232. <p>Although a bit limited and bulky by today&#8217;s standards, the Arduino compiler and IDE became a common staple of DIY electronics and Maker activities.</p>
  1233. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/hw/arduino#resources" style="color: #0000cc;"><h2 id="resources">Resources</h2></a><p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  1234. <thead>
  1235. <tr style="border-top: 1px solid #aaa;">
  1236. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  1237. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  1238. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  1239. </tr>
  1240. </thead>
  1241. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  1242. <tr style="border-top: 1px solid #aaa;">
  1243. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016-05</td>
  1244. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://microscheme.org/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Microscheme</a></td>
  1245. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Scheme subset designed for Atmel microcontrollers.</p></td>
  1246. </tr>
  1247. <tr style="border-top: 1px solid #aaa;">
  1248. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.ulisp.com/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">uLISP</a></td>
  1249. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A LISP interpreter tailored for Arduino boards.</p></td>
  1250. </tr>
  1251. <tr style="border-top: 1px solid #aaa;">
  1252. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2017-12</td>
  1253. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/knolleary/pubsubclient?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">PubSubClient</a></td>
  1254. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A tiny MQTT library for Arduino platforms.</p></td>
  1255. </tr>
  1256. </tbody>
  1257. </table>
  1258. <p>See also background on the <a href="/space/protocols/mqtt" rel="next" style="color: #0000cc;">MQTT</a> protocol and the <a href="/space/dev/scheme" rel="next" style="color: #0000cc;">Scheme</a> / <a href="/space/dev/lisp" rel="next" style="color: #0000cc;">LISP</a> languages for embedded development.</p>
  1259. <br/>
  1260. ]]></content>
  1261. <category term="arduino" label="arduino" />
  1262. <category term="hardware" label="hardware" />
  1263. <category term="atmel" label="atmel" />
  1264. <category term="microcontrollers" label="microcontrollers" />
  1265. <category term="archive" label="archive" />
  1266. <category term="legacy" label="legacy" />
  1267. </entry>
  1268. <entry>
  1269. <title>AI Image Generation</title>
  1270. <id>https://taoofmac.com/space/ai/image?utm_content=atom</id>
  1271. <published>2025-05-01T18:45:00+00:00</published>
  1272. <updated>2026-05-16T14:54:47+00:00</updated>
  1273. <author>
  1274. <name>Rui Carmo</name>
  1275. <uri>https://taoofmac.com</uri>
  1276. </author>
  1277. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/ai/image?utm_content=atom"/>
  1278. <content type="html"><![CDATA[
  1279. <p class="lead">This page is a collection of notes and links related to <a href="/space/ai" rel="next" style="color: #0000cc;">AI</a> image generation technologies, including Stable Diffusion, DALL-E, Midjourney, and other generative image models like Z-Image that have become prominent in the modern <a href="/space/ai" rel="next" style="color: #0000cc;">AI</a> space.</p>
  1280. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/ai/image#resources" style="color: #0000cc;"><h2 id="resources">Resources</h2></a><p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  1281. <thead>
  1282. <tr style="border-top: 1px solid #aaa;">
  1283. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Field</th>
  1284. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  1285. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  1286. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  1287. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  1288. </tr>
  1289. </thead>
  1290. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  1291. <tr style="border-top: 1px solid #aaa;">
  1292. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">3D Rendering</td>
  1293. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">NeRF Tools</td>
  1294. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1295. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nerfstudio-project/nerfstudio?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">nerfstudio</a></td>
  1296. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A tool for manipulating Neural Radiance Fields (NeRF) and rendering the scenes out as video</p></td>
  1297. </tr>
  1298. <tr style="border-top: 1px solid #aaa;">
  1299. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Diffusion Models</td>
  1300. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Image Generation</td>
  1301. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1302. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/NVlabs/Sana?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Sana</a></td>
  1303. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Efficient high-resolution image synthesis with linear diffusion transformer &#8212; fast 4K generation on laptop GPUs</p></td>
  1304. </tr>
  1305. <tr style="border-top: 1px solid #aaa;">
  1306. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Gaussian Splatting</td>
  1307. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"/>
  1308. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/apple/ml-sharp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ml-sharp</a></td>
  1309. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Apple&#8217;s ML-SHARP (Sharp Learned Attention Reduction and Pruning) framework</p></td>
  1310. </tr>
  1311. <tr style="border-top: 1px solid #aaa;">
  1312. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Web Interface</td>
  1313. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1314. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/bring-shrubbery/ml-sharp-web?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ml-sharp-web</a></td>
  1315. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Web playground for creating Gaussian Splats using Apple&#8217;s SHARP model.</p></td>
  1316. </tr>
  1317. <tr style="border-top: 1px solid #aaa;">
  1318. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">General</td>
  1319. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  1320. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1321. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/upscayl/upscayl?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">upscayl</a></td>
  1322. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an AI-based image upscaler</p></td>
  1323. </tr>
  1324. <tr style="border-top: 1px solid #aaa;">
  1325. <td rowspan="7" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Generative AI</td>
  1326. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">3D Asset Models</td>
  1327. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  1328. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Tencent/Hunyuan3D-2?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Hunyuan3D-2</a></td>
  1329. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a 3D textured asset generation model</p></td>
  1330. </tr>
  1331. <tr style="border-top: 1px solid #aaa;">
  1332. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Diffusion Models</td>
  1333. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/yousef-rafat/miniDiffusion?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">miniDiffusion</a></td>
  1334. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a minimalistic implementation of diffusion models in Python</p></td>
  1335. </tr>
  1336. <tr style="border-top: 1px solid #aaa;">
  1337. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Frame Prediction</td>
  1338. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/lllyasviel/FramePack?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">FramePack</a></td>
  1339. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a next-frame (next-frame-section) prediction neural network structure that generates videos progressively.</p></td>
  1340. </tr>
  1341. <tr style="border-top: 1px solid #aaa;">
  1342. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Image Generation Models</td>
  1343. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Alpha-VLLM/Lumina-Image-2.0?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Lumina-Image-2.0</a></td>
  1344. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Another image generation model</p></td>
  1345. </tr>
  1346. <tr style="border-top: 1px solid #aaa;">
  1347. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Video Diffusion</td>
  1348. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/thu-ml/TurboDiffusion?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">TurboDiffusion</a></td>
  1349. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A video diffusion acceleration framework claiming 100-200x end-to-end speedups (SageAttention/SLA/rCM)</p></td>
  1350. </tr>
  1351. <tr style="border-top: 1px solid #aaa;">
  1352. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Video Generation Models</td>
  1353. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1354. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Tencent/HunyuanVideo?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">HunyuanVideo</a></td>
  1355. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A pretty impressive open source video generation model</p></td>
  1356. </tr>
  1357. <tr style="border-top: 1px solid #aaa;">
  1358. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Web Interface</td>
  1359. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  1360. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Alasano/gpt-image-1-playground?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gpt-image-1-playground</a></td>
  1361. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a simple web-based interface for generating images using GPT-IMAGE-1</p></td>
  1362. </tr>
  1363. <tr style="border-top: 1px solid #aaa;">
  1364. <td rowspan="10" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Image Generation</td>
  1365. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Apple Optimization</td>
  1366. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1367. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/apple/ml-stable-diffusion?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">CoreML Stable Diffusion</a></td>
  1368. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Apple&#8217;s optimizations for CoreML</p></td>
  1369. </tr>
  1370. <tr style="border-top: 1px solid #aaa;">
  1371. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Apps</td>
  1372. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  1373. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/WaveSpeedAI/wavespeed-desktop?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">wavespeed-desktop</a></td>
  1374. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A desktop application for generating images that also supports Z-Image</p></td>
  1375. </tr>
  1376. <tr style="border-top: 1px solid #aaa;">
  1377. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Diffusion Acceleration</td>
  1378. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1379. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ChenDarYen/NitroFusion?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">NitroFusion</a></td>
  1380. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a high-fidelity, fast (single-step) SDXL diffusion model</p></td>
  1381. </tr>
  1382. <tr style="border-top: 1px solid #aaa;">
  1383. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1384. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/VoltaML/voltaML-fast-stable-diffusion?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Fast Stable Diffusion</a></td>
  1385. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Another tactic to accelerate inference</p></td>
  1386. </tr>
  1387. <tr style="border-top: 1px solid #aaa;">
  1388. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Implementations</td>
  1389. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1390. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/antirez/flux2.c?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">flux2.c</a></td>
  1391. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A pure-C FLUX.2 implementation with optional BLAS/MPS acceleration and zero Python dependencies. Focused on efficiency and portability.</p></td>
  1392. </tr>
  1393. <tr style="border-top: 1px solid #aaa;">
  1394. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  1395. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/FiditeNemini/z-image-turbo-mlx?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">z-image-turbo-mlx</a></td>
  1396. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A high-performance implementation of Z-Image using MLX acceleration</p></td>
  1397. </tr>
  1398. <tr style="border-top: 1px solid #aaa;">
  1399. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ivanfioravanti/z-image-mps?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">z-image-mps</a></td>
  1400. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An optimized implementation of Z-Image for Apple Silicon using MPS</p></td>
  1401. </tr>
  1402. <tr style="border-top: 1px solid #aaa;">
  1403. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  1404. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/martin-rizzo/AmazingZImageWorkflow?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">AmazingZImageWorkflow</a></td>
  1405. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A comprehensive workflow for generating images using Z-Image</p></td>
  1406. </tr>
  1407. <tr style="border-top: 1px solid #aaa;">
  1408. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Vector Graphics</td>
  1409. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/SagiPolaczek/NeuralSVG?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">NeuralSVG</a></td>
  1410. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An Implicit Representation for Text-to-Vector Generation</p></td>
  1411. </tr>
  1412. <tr style="border-top: 1px solid #aaa;">
  1413. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Web Interface</td>
  1414. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1415. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/automatic1111/stable-diffusion-webui?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Stable Diffusion WebUI</a></td>
  1416. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Nearly always the best, bleeding edge WebUI for SD</p></td>
  1417. </tr>
  1418. <tr style="border-top: 1px solid #aaa;">
  1419. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Multi-modal Models</td>
  1420. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Samples</td>
  1421. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1422. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/apple/ml-mgie?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ml-mgie</a></td>
  1423. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>instruction-based image self-editing</p></td>
  1424. </tr>
  1425. <tr style="border-top: 1px solid #aaa;">
  1426. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Multimodal AI</td>
  1427. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Vision Language Models</td>
  1428. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1429. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Blaizzy/mlx-vlm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MLX-VLM</a></td>
  1430. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>package for inference and fine-tuning of Vision Language Models and Omni Models on Mac using MLX with support for images, audio, and video</p></td>
  1431. </tr>
  1432. <tr style="border-top: 1px solid #aaa;">
  1433. <td rowspan="19" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Stable Diffusion</td>
  1434. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Apps</td>
  1435. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1436. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/huggingface/swift-coreml-diffusers?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">swift-coreml-diffusers</a></td>
  1437. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Hugging face&#8217;s own app, using Swift and CoreML for Apple Silicon</p></td>
  1438. </tr>
  1439. <tr style="border-top: 1px solid #aaa;">
  1440. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1441. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://apps.apple.com/us/app/draw-things-ai-generation/id6444050820?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Draw Things</a></td>
  1442. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Pre-packaged app for iOS, downloads and allows re-use of .ckpt files.</p></td>
  1443. </tr>
  1444. <tr style="border-top: 1px solid #aaa;">
  1445. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://diffusionbee.com/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">DiffusionBee</a></td>
  1446. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Pre-packaged app for macOS (M1 and Intel)</p></td>
  1447. </tr>
  1448. <tr style="border-top: 1px solid #aaa;">
  1449. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">CGI</td>
  1450. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1451. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/coolzilj/Blender-ControlNet?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Blender-ControlNet</a></td>
  1452. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Blender plugin to generate ControlNet inputs for posing figures</p></td>
  1453. </tr>
  1454. <tr style="border-top: 1px solid #aaa;">
  1455. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1456. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/carson-katri/dream-textures?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">dream-textures</a></td>
  1457. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Blender plugin for texturing models based on a text description.</p></td>
  1458. </tr>
  1459. <tr style="border-top: 1px solid #aaa;">
  1460. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Implementations</td>
  1461. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1462. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/vitoplantamura/OnnxStream?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">OnnxStream</a></td>
  1463. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Stable Diffusion XL 1.0 Base on a Raspberry Pi Zero 2 (or in 298MB of RAM)</p></td>
  1464. </tr>
  1465. <tr style="border-top: 1px solid #aaa;">
  1466. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Libraries</td>
  1467. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1468. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/oracle-samples/sd4j?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sd4j</a></td>
  1469. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Java library for Stable Diffusion that uses ONNX</p></td>
  1470. </tr>
  1471. <tr style="border-top: 1px solid #aaa;">
  1472. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Models</td>
  1473. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://huggingface.co/ByteDance/SDXL-Lightning?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">SDXL-Lightning</a></td>
  1474. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an SDXL flavor that works on only a few steps</p></td>
  1475. </tr>
  1476. <tr style="border-top: 1px solid #aaa;">
  1477. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1478. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://upscale.wiki/wiki/Model_Database?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Upscale Model Database</a></td>
  1479. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Too wide a choice, perhaps</p></td>
  1480. </tr>
  1481. <tr style="border-top: 1px solid #aaa;">
  1482. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Reference</td>
  1483. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1484. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/6174/comflowy?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">comflowy</a></td>
  1485. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a set of reference workflows and documentation for ComfyUI</p></td>
  1486. </tr>
  1487. <tr style="border-top: 1px solid #aaa;">
  1488. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/black-forest-labs/flux?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">flux</a></td>
  1489. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>minimal inference examples for FLUX.1 models</p></td>
  1490. </tr>
  1491. <tr style="border-top: 1px solid #aaa;">
  1492. <td rowspan="8" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  1493. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/6174/comflowyspace?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">comflowyspace</a></td>
  1494. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a ComfyUI desktop wrapper</p></td>
  1495. </tr>
  1496. <tr style="border-top: 1px solid #aaa;">
  1497. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1498. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ComfyUI-AnimateDiff-Evolved</a></td>
  1499. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An AnimateDiff integration for ComfyUI</p></td>
  1500. </tr>
  1501. <tr style="border-top: 1px solid #aaa;">
  1502. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/comfyanonymous/ComfyUI?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ComfyUI</a></td>
  1503. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>pretty impressive node-based UI</p></td>
  1504. </tr>
  1505. <tr style="border-top: 1px solid #aaa;">
  1506. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/invoke-ai/InvokeAI?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">InvokeAI</a></td>
  1507. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A polished UI</p></td>
  1508. </tr>
  1509. <tr style="border-top: 1px solid #aaa;">
  1510. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/leejet/stable-diffusion.cpp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">stable-diffusion.cpp</a></td>
  1511. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>stable diffusion inference on the CPU, in pure C++</p></td>
  1512. </tr>
  1513. <tr style="border-top: 1px solid #aaa;">
  1514. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ltdrdata/ComfyUI-Manager?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ComfyUI-Manager</a></td>
  1515. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A component manager for ComfyUI</p></td>
  1516. </tr>
  1517. <tr style="border-top: 1px solid #aaa;">
  1518. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/varunshenoy/opendream?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Opendream</a></td>
  1519. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A layer-oriented, non-destructive editor</p></td>
  1520. </tr>
  1521. <tr style="border-top: 1px solid #aaa;">
  1522. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1523. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/brycedrennan/imaginAIry?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">imaginAIry</a></td>
  1524. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Works well on Apple Silicon, pure CLI interface to all SD models.
  1525. Does not reuse <code>.ckpt</code> files, however, so requires separate disk cache.</p></td>
  1526. </tr>
  1527. <tr style="border-top: 1px solid #aaa;">
  1528. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Upscaling</td>
  1529. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Video Enhancement</td>
  1530. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  1531. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/k4yt3x/video2x?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">video2x</a></td>
  1532. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tool for upscaling videos using RealESRGAN and other models</p></td>
  1533. </tr>
  1534. </tbody>
  1535. </table>
  1536. <br/>
  1537. ]]></content>
  1538. <category term="dall-e" label="dall-e" />
  1539. <category term="generative" label="generative" />
  1540. <category term="ai" label="ai" />
  1541. <category term="image" label="image" />
  1542. <category term="stable diffusion" label="stable diffusion" />
  1543. <category term="midjourney" label="midjourney" />
  1544. </entry>
  1545. <entry>
  1546. <title>I Think I Figured Out What an AI IDE Looks Like</title>
  1547. <id>https://taoofmac.com/space/blog/2026/05/12/0720?utm_content=atom</id>
  1548. <published>2026-05-12T07:20:00+00:00</published>
  1549. <updated>2026-05-12T07:34:57+00:00</updated>
  1550. <author>
  1551. <name>Rui Carmo</name>
  1552. <uri>https://taoofmac.com</uri>
  1553. </author>
  1554. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/blog/2026/05/12/0720?utm_content=atom"/>
  1555. <content type="html"><![CDATA[
  1556. <p class="lead">I&#8217;ve been mulling the UX arc I&#8217;ve been going through over the past couple of years, and I think it was mostly the same for everybody:</p>
  1557. <ul>
  1558. <li>Copy/paste into a chat web UI</li>
  1559. <li>IDE with a chat sidebar (<a href="/space/apps/code" rel="next" style="color: #0000cc;">VS Code</a>, <a href="/space/apps/zed" rel="next" style="color: #0000cc;">Zed</a>, etc.)</li>
  1560. <li>TUI chat (Mistral Vibe, <a href="https://pi.dev?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>pi</code></a>, Codex CLI, Claude CLI, etc.)</li>
  1561. <li>Rich chat in a native app (Codex desktop, Claude desktop)</li>
  1562. <li>Web chat with rich interactive widgets (<a href="https://rcarmo.github.io/projects/piclaw/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>piclaw</code></a>)</li>
  1563. </ul>
  1564. <p>Since I spend <em>a lot</em> of time on my iPad, <a href="https://rcarmo.github.io/projects/piclaw/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>piclaw</code></a>&#8217;s web timeline has become my default&#8211;I can pop open the terminal or the editor at will, but coding is still a game of balancing drudgery with creativity, and the &#8220;creative&#8221; part works well in chat.</p>
  1565. <p>At least for me, using AI for my projects has been a matter of <a href="/space/blog/2026/03/08/2130" rel="next" style="color: #0000cc;">speeding up the review cycle</a>. If you open a new chat thread for every feature or fix, going back to the editor takes you away from the flow&#8211;it&#8217;s <em>much</em> easier to have the model spew the changes <em>in the chat</em>, highlight the bits you want changed, and iterate directly in it.</p>
  1566. <p>And I&#8217;ve just realised, after adding <a href="/space/com/apple/ipad" rel="next" style="color: #0000cc;">iPad</a> text highlighting and annotation support to the <a href="https://rcarmo.github.io/projects/piclaw/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>piclaw</code></a> timeline (to make it easier to point out specific things to the model), that what I&#8217;m building is a <a href="/space/apps/mathematica" rel="next" style="color: #0000cc;">Mathematica</a> notebook for code.</p>
  1567. <p>I&#8217;m sure Stephen Wolfram would be delighted to be proven right, even if this paradigm isn&#8217;t really for everybody.</p>
  1568. <p>Of course, this scales poorly when refactoring and you have a zillion modified files, but other than refactors I am the kind of person who likes small, testable iterations and still looks at the code.</p>
  1569. <p>I also think that being able to scroll back up, fish out an older interaction and re-use it (or riff on it) is powerful, and what I am planning to do next is to inject an editor pane <em>into</em> the web chat to directly review and edit code inline&#8211;not as a separate tab, but as part of the conversation flow.</p>
  1570. <p>There&#8217;s something about this that irks my <a href="/space/cli/vim" rel="next" style="color: #0000cc;"><code>vim</code></a>-addicted brain, of course, but it&#8217;s tantalising, and I quite enjoy sitting on the couch with my iPad after a long day in front of my desktop&#8211;and yes, using handwriting recognition to prompt it works great; I love living in the future.</p>
  1571. <br/>
  1572. ]]></content>
  1573. <category term="agents" label="agents" />
  1574. <category term="piclaw" label="piclaw" />
  1575. <category term="ux" label="ux" />
  1576. <category term="ipad" label="ipad" />
  1577. <category term="opinion" label="opinion" />
  1578. <category term="ide" label="ide" />
  1579. <category term="ai" label="ai" />
  1580. </entry>
  1581. <entry>
  1582. <title>Notes for May 3-10</title>
  1583. <id>https://taoofmac.com/space/notes/2026/05/10/1433?utm_content=atom</id>
  1584. <published>2026-05-10T14:33:00+00:00</published>
  1585. <updated>2026-05-11T05:30:28+00:00</updated>
  1586. <author>
  1587. <name>Rui Carmo</name>
  1588. <uri>https://taoofmac.com</uri>
  1589. </author>
  1590. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/notes/2026/05/10/1433?utm_content=atom"/>
  1591. <content type="html"><![CDATA[
  1592. <p class="lead">This was a weird week, both because I keep waking up at 5AM with my sinuses clogged, and because I feel like I&#8217;m losing momentum. Feeling almost permanently cotton-headed, sleepy due to sheer exhaustion or because of antihistamines certainly has something to do with it, but <a href="/space/blog/2026/05/09/2130" rel="next" style="color: #0000cc;">I am not exactly enthusiastic this weekend</a>.</p>
  1593. <a class="anchor" id="anchor-we-must-go-deeper" rel="anchor" href="/space/notes/2026/05/10/1433#we-must-go-deeper" style="color: #0000cc;"><h2 id="we-must-go-deeper">We Must Go Deeper</h2></a><p>I spent the latter part of the week hacking away at <a href="https://github.com/rcarmo/go-ds4?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>go-ds4</code></a> and <a href="https://github.com/rcarmo/go-pherence?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>go-pherence</code></a>, which was interesting to me not just because I am still trying to get Vulkan to work for inference on a couple of SBCs, but also because, all of a sudden, <em>a bunch of my stuff</em> converged into SIMD and <a href="/space/dev/golang" rel="next" style="color: #0000cc;">Go</a> assembly&#8211;including, of all things, an H.264 decoder I plan to add to <a href="https://github.com/rcarmo/go-rdp-android?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>go-rdp</code></a>.</p>
  1594. <p>This meant going all in on model internals again, which is something I&#8217;ve neglected for a while and that I would otherwise find fascinating were it not for my general state of tiredness.</p>
  1595. <a class="anchor" id="anchor-my-little" rel="anchor" href="/space/notes/2026/05/10/1433#my-little" style="color: #0000cc;"/><h2 id="my-little-clojure"><a class="anchor" id="anchor-my-little" rel="anchor" href="/space/notes/2026/05/10/1433#my-little" style="color: #0000cc;">My Little </a><a href="/space/dev/clojure" rel="next" style="color: #0000cc;">Clojure</a></h2><p><a href="https://github.com/rcarmo/go-joker?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>go-joker</code></a> went from &#8220;forked and interesting&#8221; to &#8220;actually competitive with Python&#8221; in about two days of focused work. Again, there is a weird serendipity and convergence across most of my other projects (like the JITs I&#8217;ve been hacking on in <a href="https://github.com/rcarmo/macemu-jit?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>macemu-jit</code></a> and <a href="https://github.com/rcarmo/previous-jit?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>previous-jit</code></a>), but this time I took out <a href="https://www.amazon.es/gp/product/0735667454/ref=as_li_tl?_encoding=UTF8&amp;tag=taoofmac-21&amp;linkCode=ur2&amp;camp=3638&amp;creative=24630&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><em>CLR via C#</em></a> and had <a href="https://openai.com/codex?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Codex</a> build a tiered IR bytecode interpreter that can in turn do <a href="/space/dev/wasm" rel="next" style="color: #0000cc;">WASM</a> compilation via <code>wazero</code> for pure numeric loops, and doesn&#8217;t have a GIL (thanks to <a href="/space/dev/golang" rel="next" style="color: #0000cc;">Go</a>routines).</p>
  1596. <p>I should really write about that, when I feel better.</p>
  1597. <a class="anchor" id="anchor-android-remoting" rel="anchor" href="/space/notes/2026/05/10/1433#android-remoting" style="color: #0000cc;"><h2 id="android-remoting">Android Remoting</h2></a><p>As part of an ongoing experiment to see just how far I can go without the Android SDK installed, I kept nudging my <a href="https://github.com/rcarmo/go-rdp-android?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Android RDP server</a> along, and am generally <em>very</em> happy with all the automated testing scaffolding I built around that, because I&#8217;ve extended it to <a href="https://github.com/rcarmo/vibes?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>vibes</code></a> and <a href="https://github.com/rcarmo/piclaw?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>piclaw</code></a> with great success.</p>
  1598. <a class="anchor" id="anchor-my-agentic-work-is-nearly-done" rel="anchor" href="/space/notes/2026/05/10/1433#my-agentic-work-is-nearly-done" style="color: #0000cc;"><h2 id="my-agentic-work-is-nearly-done">My Agentic Work Is Nearly Done</h2></a><p>I think <a href="https://github.com/rcarmo/piclaw?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>piclaw</code></a> is pretty much done by now. I backported <code>kitty</code> graphics support in the terminal (the <a href="https://github.com/rcarmo/ghostty-web?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>ghostty-web</code></a> ecosystem is pretty amazing on its own), and of course I use it constantly (I am actually typing this draft in it), and I will be doing some fixes and at least one UX release, but I need to go back and fix my Synology, redeploy a bunch of things in my homelab, and prep for more electronics projects.</p>
  1599. <p>But first, I&#8217;m going to take a nap, because I did wake up at 4AM again, crafted <a href="https://rcarmo.github.io/piclaw-addons/addons/yolo-vibe?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">a dead stupid add-on</a> and badly need to rest.</p>
  1600. <br/>
  1601. ]]></content>
  1602. <category term="clojure" label="clojure" />
  1603. <category term="notes" label="notes" />
  1604. <category term="go" label="go" />
  1605. <category term="gi" label="gi" />
  1606. <category term="piclaw" label="piclaw" />
  1607. <category term="joker" label="joker" />
  1608. <category term="macemu" label="macemu" />
  1609. <category term="rdp" label="rdp" />
  1610. <category term="android" label="android" />
  1611. <category term="vibes" label="vibes" />
  1612. <category term="weekly" label="weekly" />
  1613. </entry>
  1614. <entry>
  1615. <title>Pi.dev Ecosystem</title>
  1616. <id>https://taoofmac.com/space/ai/agentic/pi?utm_content=atom</id>
  1617. <published>2026-02-24T11:15:00+00:00</published>
  1618. <updated>2026-05-14T07:35:29+00:00</updated>
  1619. <author>
  1620. <name>Rui Carmo</name>
  1621. <uri>https://taoofmac.com</uri>
  1622. </author>
  1623. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/ai/agentic/pi?utm_content=atom"/>
  1624. <content type="html"><![CDATA[
  1625. <p class="lead">The <a href="https://pi.dev?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Pi coding agent</a> is a terminal-first assistant focused on interactive workflows, extensibility, and running local agents with practical toolchains. The primary distribution today is <a href="https://github.com/badlogic/pi-mono?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-mono</a>, which serves as the core runtime and extension point for the ecosystem.</p>
  1626. <p>For background on how Pi.dev and the agent evolved, see <a href="https://mariozechner.at/posts/2025-11-30-pi-coding-agent/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Mario Zechner&#8217;s write-up</a>.</p>
  1627. <p>This page tracks the Pi-centric projects, adapters, and clients that extend the core agent, including alternate front-ends, web access tooling, and automation bridges within the wider <a href="/space/ai/agentic" rel="next" style="color: #0000cc;">Agentic Systems</a> collection.</p>
  1628. <a class="anchor" id="anchor-ecosystem" rel="anchor" href="/space/ai/agentic/pi#ecosystem" style="color: #0000cc;"><h2 id="ecosystem">Ecosystem</h2></a><p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  1629. <thead>
  1630. <tr style="border-top: 1px solid #aaa;">
  1631. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Field</th>
  1632. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  1633. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  1634. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  1635. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  1636. </tr>
  1637. </thead>
  1638. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  1639. <tr style="border-top: 1px solid #aaa;">
  1640. <td rowspan="9" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Agent Platforms</td>
  1641. <td rowspan="32" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  1642. <td rowspan="33" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1643. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Michaelliv/mercury?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Mercury</a></td>
  1644. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Personal AI assistant that runs in pi workspaces, bridges WhatsApp/Slack/Discord, and orchestrates containerized agents per space with APIs, chat routing, and extensions.</p></td>
  1645. </tr>
  1646. <tr style="border-top: 1px solid #aaa;">
  1647. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Michaelliv/pi-generative-ui?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-generative-ui</a></td>
  1648. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Reverse-engineered generative UI extension for pi that streams interactive HTML/SVG widgets into native macOS windows via Glimpse, letting the LLM render live charts, sliders, diagrams, and dashboards.</p></td>
  1649. </tr>
  1650. <tr style="border-top: 1px solid #aaa;">
  1651. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/hazat/glimpse?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Glimpse</a></td>
  1652. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>lightweight macOS micro-UI toolkit for agent scripts using WKWebView + JSON-lines IPC, useful for pi companion windows, overlays, and generative UI experiments.</p></td>
  1653. </tr>
  1654. <tr style="border-top: 1px solid #aaa;">
  1655. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/hjanuschka/pi-gdocs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-gdocs</a></td>
  1656. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>pi extension that lets agents read and update Google Docs design docs directly, preserving comments and formatting anchors better than Markdown copy-paste.</p></td>
  1657. </tr>
  1658. <tr style="border-top: 1px solid #aaa;">
  1659. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/noahsaso/my-pi?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">my-pi</a></td>
  1660. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Personal pi extension/skill bundle that adds <code>todo</code>, <code>subagent</code>, <code>clipboard</code>, <code>notifications</code>, <code>file-watcher</code>, <code>code-ast</code>, <code>antigravity-image-gen</code>, and <code>memory</code>, plus bundled browser/search + superpowers skills.</p></td>
  1661. </tr>
  1662. <tr style="border-top: 1px solid #aaa;">
  1663. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/offline-ant/pi-tmux?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-tmux</a></td>
  1664. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>tmux helpers for pi that coordinate long-running commands via pi-semaphore locks, offering tmux-bash/capture/send/kill/coding-agent, <code>/tmux-list</code>, and the <code>/supervise &lt;task&gt;</code> orchestrator while blocking unsafe <code>git restore</code> calls from the builtin helpers.</p></td>
  1665. </tr>
  1666. <tr style="border-top: 1px solid #aaa;">
  1667. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/pasky/pi-side-agents?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-side-agents</a></td>
  1668. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>pi extension that spawns short-lived tmux/worktree side agents via <code>/agent</code>, tracks them in the statusline, offers <code>/agents</code> oversight, and provides <code>agent-setup</code> plus orchestration helpers for running asynchronous coding sprints.</p></td>
  1669. </tr>
  1670. <tr style="border-top: 1px solid #aaa;">
  1671. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/patleeman/pi-boy?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-boy</a></td>
  1672. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Goofy pi extension that runs Game Boy/Game Boy Color ROMs via a bundled mGBA bridge, rendering inline or overlay with Kitty/ANSI fallbacks, ROM picker, and audio toggles.</p></td>
  1673. </tr>
  1674. <tr style="border-top: 1px solid #aaa;">
  1675. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tmustier/pi-for-excel?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Pi for Excel</a></td>
  1676. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>open-source multi-model AI sidebar add-in for Excel with 16 built-in spreadsheet tools, MCP gateway, and workbook recovery</p></td>
  1677. </tr>
  1678. <tr style="border-top: 1px solid #aaa;">
  1679. <td rowspan="23" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Code Agents</td>
  1680. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Dicklesworthstone/pi_agent_rust?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi_agent_rust</a></td>
  1681. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>high-performance Rust port of pi-mono coding agent with instant startup, low memory footprint, and capability-gated security model</p></td>
  1682. </tr>
  1683. <tr style="border-top: 1px solid #aaa;">
  1684. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Kernel-Labs-AI/piqueue?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-queue</a></td>
  1685. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a lightweight task runner that accepts webhook tasks, requires human approval, and executes pi jobs in isolated git worktrees</p></td>
  1686. </tr>
  1687. <tr style="border-top: 1px solid #aaa;">
  1688. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/PriNova/graphone?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Graphone</a></td>
  1689. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>cross-platform desktop UI for the pi-mono coding agent, built with Tauri 2.0 and sidecar pattern</p></td>
  1690. </tr>
  1691. <tr style="border-top: 1px solid #aaa;">
  1692. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Whamp/pi-agentic-compaction?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-agentic-compaction</a></td>
  1693. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>pi extension that replaces one-shot prompt compaction with a virtual-filesystem summarizer that explores <code>/conversation.json</code> via jq/grep, supports configurable models and thinking levels, and accepts <code>/compact &lt;note&gt;</code> guidance.</p></td>
  1694. </tr>
  1695. <tr style="border-top: 1px solid #aaa;">
  1696. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Whamp/pi-token-burden?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-token-burden</a></td>
  1697. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>pi extension that parses the assembled system prompt and shows a token-budget breakdown by section with a stacked bar and drill-down table</p></td>
  1698. </tr>
  1699. <tr style="border-top: 1px solid #aaa;">
  1700. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/anthaathi/pi-companion?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-companion</a></td>
  1701. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a web, mobile and desktop client for pi.</p></td>
  1702. </tr>
  1703. <tr style="border-top: 1px solid #aaa;">
  1704. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/badlogic/pi-mono?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-mono</a></td>
  1705. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a coding agent and toolkit for building and managing LLM-driven agents and deployments.</p></td>
  1706. </tr>
  1707. <tr style="border-top: 1px solid #aaa;">
  1708. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ben-vargas/pi-packages?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-packages</a></td>
  1709. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>collection of pi packages including extensions, skills, prompt templates, and themes such as multi-provider model, firecrawl, and image-generation integrations.</p></td>
  1710. </tr>
  1711. <tr style="border-top: 1px solid #aaa;">
  1712. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/davebcn87/pi-autoresearch?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-autoresearch</a></td>
  1713. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>pi extension + skill for autonomous experiment loops that benchmarks changes, auto-commits candidates, shows a live status widget and dashboard, and keeps or reverts edits based on measured results.</p></td>
  1714. </tr>
  1715. <tr style="border-top: 1px solid #aaa;">
  1716. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/dbachelder/pi-btw?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-btw</a></td>
  1717. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>pi extension that adds a <code>/btw</code> command for immediate side questions, showing answers in an overlay without interrupting the current agent run and optionally saving the result.</p></td>
  1718. </tr>
  1719. <tr style="border-top: 1px solid #aaa;">
  1720. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/hjanuschka/pi-multi-pass?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-multi-pass</a></td>
  1721. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>multi-subscription extension for pi with automatic OAuth account rotation, TUI <code>/subs</code> and <code>/pool</code> management, and cooldown-based failover across providers.</p></td>
  1722. </tr>
  1723. <tr style="border-top: 1px solid #aaa;">
  1724. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/joelreymont/pz?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pz</a></td>
  1725. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Zig-based, single-binary drop-in replacement for the pi coding agent</p></td>
  1726. </tr>
  1727. <tr style="border-top: 1px solid #aaa;">
  1728. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/marcfargas/pi-tramp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-tramp</a></td>
  1729. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>TRAMP-like remote execution for the pi coding agent over SSH or Docker</p></td>
  1730. </tr>
  1731. <tr style="border-top: 1px solid #aaa;">
  1732. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mikeyobrien/rho?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">rho</a></td>
  1733. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an always-on personal AI operator derived from pi that runs in the background, remembers context, and checks in on a schedule across macOS, Linux, and Android</p></td>
  1734. </tr>
  1735. <tr style="border-top: 1px solid #aaa;">
  1736. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mitsuhiko/pi-draw?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-draw</a></td>
  1737. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a drawing/diagram extension for the pi coding agent by Armin Ronacher</p></td>
  1738. </tr>
  1739. <tr style="border-top: 1px solid #aaa;">
  1740. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mitsuhiko/pi-llamacpp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-llamacpp</a></td>
  1741. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Experimental pi extension that runs and manages Qwen via llama.cpp for local agent workflows.</p></td>
  1742. </tr>
  1743. <tr style="border-top: 1px solid #aaa;">
  1744. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nicobailon/pi-boomerang?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-boomerang</a></td>
  1745. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>token-efficient autonomous task execution with context collapse for pi coding agent.</p></td>
  1746. </tr>
  1747. <tr style="border-top: 1px solid #aaa;">
  1748. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nicobailon/pi-interactive-shell?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-interactive-shell</a></td>
  1749. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an interactive-shell extension for the pi coding agent with full PTY emulation and observable overlays</p></td>
  1750. </tr>
  1751. <tr style="border-top: 1px solid #aaa;">
  1752. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nicobailon/pi-mcp-adapter?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-mcp-adapter</a></td>
  1753. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Pi adapter that collapses MCP tool access into a lightweight proxy with lazy server startup, optional direct tools, and built-in MCP UI session support.</p></td>
  1754. </tr>
  1755. <tr style="border-top: 1px solid #aaa;">
  1756. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nicobailon/pi-web-access?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-web-access</a></td>
  1757. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>web search, content extraction, and video understanding plugin for the pi-mono coding agent with smart provider fallbacks</p></td>
  1758. </tr>
  1759. <tr style="border-top: 1px solid #aaa;">
  1760. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/schwa/PiApp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">PiApp</a></td>
  1761. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>toy macOS/iOS app for experimenting with the PiSwift coding agent, with Claude chat, file browser, and terminal</p></td>
  1762. </tr>
  1763. <tr style="border-top: 1px solid #aaa;">
  1764. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/svkozak/pi-acp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-acp</a></td>
  1765. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>ACP adapter that bridges pi&#8217;s RPC mode to ACP clients like Zed over JSON-RPC stdio</p></td>
  1766. </tr>
  1767. <tr style="border-top: 1px solid #aaa;">
  1768. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/xibbon/PiSwift?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">PiSwift</a></td>
  1769. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Swift port of pi-mono for embedding a coding agent in apps, with in-process subagents and prompt templates</p></td>
  1770. </tr>
  1771. <tr style="border-top: 1px solid #aaa;">
  1772. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Interfaces</td>
  1773. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Desktop</td>
  1774. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/minghinmatthewlam/pi-gui?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pi-gui</a></td>
  1775. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Electron desktop shell for pi sessions &#8212; lists workspaces and sessions, creates new conversations, and persists UI state; macOS arm64 beta with Homebrew cask planned</p></td>
  1776. </tr>
  1777. </tbody>
  1778. </table>
  1779. <br/>
  1780. ]]></content>
  1781. <category term="agentic" label="agentic" />
  1782. <category term="tools" label="tools" />
  1783. <category term="ai" label="ai" />
  1784. <category term="coding" label="coding" />
  1785. <category term="pi" label="pi" />
  1786. </entry>
  1787. <entry>
  1788. <title>SQLite</title>
  1789. <id>https://taoofmac.com/space/db/sqlite?utm_content=atom</id>
  1790. <published>2006-06-25T22:43:33+00:00</published>
  1791. <updated>2026-05-10T04:28:38+00:00</updated>
  1792. <author>
  1793. <name>Rui Carmo</name>
  1794. <uri>https://taoofmac.com</uri>
  1795. </author>
  1796. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/db/sqlite?utm_content=atom"/>
  1797. <content type="html"><![CDATA[
  1798. <p class="lead"><a href="http://www.sqlite.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">SQLite</a> is my database engine of choice for simple, no-frills stuff, and has of late become popular enough for me not to have to bother compiling it from scratch anywhere.</p>
  1799. <p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  1800. <thead>
  1801. <tr style="border-top: 1px solid #aaa;">
  1802. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  1803. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  1804. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  1805. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  1806. </tr>
  1807. </thead>
  1808. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  1809. <tr style="border-top: 1px solid #aaa;">
  1810. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Benchmarks</td>
  1811. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  1812. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cvilsmeier/go-sqlite-bench?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">go-sqlite-bench</a></td>
  1813. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a set of benchmarks for the various Go SQLite bindings</p></td>
  1814. </tr>
  1815. <tr style="border-top: 1px solid #aaa;">
  1816. <td rowspan="8" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Extensions</td>
  1817. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1818. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/russellromney/honker?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">honker</a></td>
  1819. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>SQLite extension and bindings for Postgres-style NOTIFY/LISTEN with durable queues, streams, pub/sub, and scheduling.</p></td>
  1820. </tr>
  1821. <tr style="border-top: 1px solid #aaa;">
  1822. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  1823. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/sqliteai/sqlite-js?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sqlite-js</a></td>
  1824. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an embedding of QuickJS inside SQLite to allow for in-database processing.</p></td>
  1825. </tr>
  1826. <tr style="border-top: 1px solid #aaa;">
  1827. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/sqliteai/sqlite-vector?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sqliteai-vector</a></td>
  1828. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>another, arguably less resource hungry vector extension</p></td>
  1829. </tr>
  1830. <tr style="border-top: 1px solid #aaa;">
  1831. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1832. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/asg017/sqlite-vss?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sqlite-vss</a></td>
  1833. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an extension for efficient vector search</p></td>
  1834. </tr>
  1835. <tr style="border-top: 1px solid #aaa;">
  1836. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nalgeon/sqlean.py?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sqlean.py</a></td>
  1837. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a bundle of pre-packaged extensions for <a href="/space/dev/python" rel="nofollow" style="color: #0000cc;">Python</a></p></td>
  1838. </tr>
  1839. <tr style="border-top: 1px solid #aaa;">
  1840. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://sqlpkg.org/all?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Unofficial SQLite package registry</a></td>
  1841. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an interesting set of public extensions</p></td>
  1842. </tr>
  1843. <tr style="border-top: 1px solid #aaa;">
  1844. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1845. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/asg017/sqlite-html?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sqlite-html</a></td>
  1846. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An extension for parsing HTML</p></td>
  1847. </tr>
  1848. <tr style="border-top: 1px solid #aaa;">
  1849. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2008</td>
  1850. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.gaia-gis.it/spatialite?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">SpatiaLite</a></td>
  1851. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An extension to support spatial data in conformance with OpenGIS</p></td>
  1852. </tr>
  1853. <tr style="border-top: 1px solid #aaa;">
  1854. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Forks</td>
  1855. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1856. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tursodatabase/libsql?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">libsql</a></td>
  1857. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A fork of SQLite full of niceties and creature comforts</p></td>
  1858. </tr>
  1859. <tr style="border-top: 1px solid #aaa;">
  1860. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tursodatabase/turso?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Turso</a></td>
  1861. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Rust based distributed database built on SQLite</p></td>
  1862. </tr>
  1863. <tr style="border-top: 1px solid #aaa;">
  1864. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1865. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/libsql/libsql?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">libsql</a></td>
  1866. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A fork of SQLite that allows for open contributions</p></td>
  1867. </tr>
  1868. <tr style="border-top: 1px solid #aaa;">
  1869. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1870. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/aergoio/litetree?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">litetree</a></td>
  1871. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A branching database</p></td>
  1872. </tr>
  1873. <tr style="border-top: 1px solid #aaa;">
  1874. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Networking</td>
  1875. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1876. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/FerretDB/FerretDB?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">FerretDB</a></td>
  1877. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a proxy that converts MongoDB 6.0+ wire protocol queries to Postgres or SQLite</p></td>
  1878. </tr>
  1879. <tr style="border-top: 1px solid #aaa;">
  1880. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1881. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/benbjohnson/postlite?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Postlite</a></td>
  1882. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Postgres wire protocol for remote access to SQLite</p></td>
  1883. </tr>
  1884. <tr style="border-top: 1px solid #aaa;">
  1885. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Ports</td>
  1886. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1887. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tursodatabase/limbo?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">limbo</a></td>
  1888. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a <a href="/space/dev/rust" rel="nofollow" style="color: #0000cc;">Rust</a> port of the core engine</p></td>
  1889. </tr>
  1890. <tr style="border-top: 1px solid #aaa;">
  1891. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Replication</td>
  1892. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1893. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/superfly/litefs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">litefs</a></td>
  1894. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>FUSE-based file system for replicating SQLite databases across a cluster of machines</p></td>
  1895. </tr>
  1896. <tr style="border-top: 1px solid #aaa;">
  1897. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1898. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/benbjohnson/litestream?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">litestream</a></td>
  1899. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>streaming replication</p></td>
  1900. </tr>
  1901. <tr style="border-top: 1px solid #aaa;">
  1902. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/maxpert/marmot?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">marmot</a></td>
  1903. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A distributed SQLite replicator</p></td>
  1904. </tr>
  1905. <tr style="border-top: 1px solid #aaa;">
  1906. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/rqlite/rqlite?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">rqlite</a></td>
  1907. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"/>
  1908. </tr>
  1909. <tr style="border-top: 1px solid #aaa;">
  1910. <td rowspan="7" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  1911. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1912. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/scttcper/datasette-ts?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">datasette-ts</a></td>
  1913. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A TypeScript-first Datasette-style static explorer for SQLite, with local serve and Cloudflare Workers deploy</p></td>
  1914. </tr>
  1915. <tr style="border-top: 1px solid #aaa;">
  1916. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  1917. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/sqlitebrowser/sqlitebrowser?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sqlitebrowser</a></td>
  1918. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a visual tool to manage SQLite databases</p></td>
  1919. </tr>
  1920. <tr style="border-top: 1px solid #aaa;">
  1921. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://menial.co.uk/base?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Base</a></td>
  1922. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a commercial macOS desktop app to manage databases</p></td>
  1923. </tr>
  1924. <tr style="border-top: 1px solid #aaa;">
  1925. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1926. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/frectonz/sqlite-studio?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sqlite-studio</a></td>
  1927. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a single binary SQLite explorer with an embedded web UI</p></td>
  1928. </tr>
  1929. <tr style="border-top: 1px solid #aaa;">
  1930. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1931. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cvilsmeier/sqinn-go?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sqinn-go</a></td>
  1932. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A library that makes it easy to run <code>sqlite</code> as a sidecar process in Go</p></td>
  1933. </tr>
  1934. <tr style="border-top: 1px solid #aaa;">
  1935. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://tableplus.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">TablePlus</a></td>
  1936. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a modern, native app for managing databases (commercial)</p></td>
  1937. </tr>
  1938. <tr style="border-top: 1px solid #aaa;">
  1939. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2006</td>
  1940. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://sqlitecc.sourceforge.net?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">SQLite Control Center</a></td>
  1941. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"/>
  1942. </tr>
  1943. </tbody>
  1944. </table>
  1945. <br/>
  1946. ]]></content>
  1947. </entry>
  1948. <entry>
  1949. <title>RepoBar</title>
  1950. <id>https://taoofmac.com/space/apps/repobar?utm_content=atom</id>
  1951. <published>2026-05-10T04:15:00+00:00</published>
  1952. <updated>2026-05-10T04:21:55+00:00</updated>
  1953. <author>
  1954. <name>Rui Carmo</name>
  1955. <uri>https://taoofmac.com</uri>
  1956. </author>
  1957. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/apps/repobar?utm_content=atom"/>
  1958. <content type="html"><![CDATA[
  1959. <p/><figure><img alt="RepoBar screenshot" src="https://taoofmac.com/media/apps/repobar/TCBCvfWrtd5MWBicIafyqF-Kqlk=/repobar-screenshot.png" width="2170" height="2328" style="max-width: 100% !important;height: auto !important;"/><figcaption>RepoBar screenshot</figcaption></figure><p/>
  1960. <p class="lead"><a href="https://repobar.app?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">RepoBar</a> is a neat little <a href="/space/com/apple/macos" rel="next" style="color: #0000cc;">macOS</a> utility by Peter Steinberger that surfaces the state of your GitHub repositories right in the menu bar and, unusually enough, in the terminal as well. The basic pitch is straightforward&#8212;show CI state, open issues, pull requests, and the latest release at a glance&#8212;but the more interesting bit is that it is clearly aimed at people who live inside GitHub all day and want ambient awareness without keeping a browser tab pinned open.</p>
  1961. <p>I like the premise because this is exactly the sort of small, opinionated developer utility that macOS used to produce in abundance: focused, visual, and slightly indulgent in the best possible way. It is also a nice reminder that GitHub metadata can be useful outside the browser, especially if you are juggling a few active repositories and just want to know when something goes red.</p>
  1962. <p>RepoBar is available from its own site and on GitHub, and the open repository makes it easier to judge whether its model of &#8220;repo status in the periphery&#8221; matches your own workflow.</p>
  1963. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/apps/repobar#resources" style="color: #0000cc;"><h2 id="resources">Resources</h2></a><p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  1964. <thead>
  1965. <tr style="border-top: 1px solid #aaa;">
  1966. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  1967. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  1968. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  1969. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  1970. </tr>
  1971. </thead>
  1972. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  1973. <tr style="border-top: 1px solid #aaa;">
  1974. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Releases</td>
  1975. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  1976. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/steipete/RepoBar/raw/main/appcast.xml?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">appcast.xml</a></td>
  1977. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Sparkle appcast feed for release tracking.</p></td>
  1978. </tr>
  1979. <tr style="border-top: 1px solid #aaa;">
  1980. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Source</td>
  1981. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/steipete/RepoBar?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">GitHub repository</a></td>
  1982. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Source code, issues, releases, and documentation.</p></td>
  1983. </tr>
  1984. <tr style="border-top: 1px solid #aaa;">
  1985. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Website</td>
  1986. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://repobar.app?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">RepoBar</a></td>
  1987. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Product page and downloads.</p></td>
  1988. </tr>
  1989. </tbody>
  1990. </table>
  1991. <br/>
  1992. ]]></content>
  1993. <category term="cli" label="cli" />
  1994. <category term="developer-tools" label="developer-tools" />
  1995. <category term="menu-bar" label="menu-bar" />
  1996. <category term="macos" label="macos" />
  1997. <category term="github" label="github" />
  1998. </entry>
  1999. <entry>
  2000. <title>The Local AI Moat</title>
  2001. <id>https://taoofmac.com/space/blog/2026/05/09/2130?utm_content=atom</id>
  2002. <published>2026-05-09T21:30:00+00:00</published>
  2003. <updated>2026-05-09T21:30:00+00:00</updated>
  2004. <author>
  2005. <name>Rui Carmo</name>
  2006. <uri>https://taoofmac.com</uri>
  2007. </author>
  2008. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/blog/2026/05/09/2130?utm_content=atom"/>
  2009. <content type="html"><![CDATA[
  2010. <p class="lead">Regular readers will know that I&#8217;ve spent most of the past two years shoehorning LLMs into single-board computers, partly as a learning exercise and partly because there are lots of local/&#8221;edge&#8221; applications where semantic reasoning (no matter how limited) and &#8220;interpretation&#8221; of sensor data are actually useful.</p>
  2011. <p>But now we&#8217;re at a point where <a href="https://lucumr.pocoo.org/2026/5/8/local-models/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">running a decently useful open weights model on your laptop is entirely feasible</a>.</p>
  2012. <p>This comes at what is possibly <a href="/space/links/2025/12/05/1330" rel="next" style="color: #0000cc;">the worst point in our timeline</a>, and after having started <a href="https://github.com/rcarmo/go-pherence?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">my own inference library</a> and tried hacking away at <a href="https://github.com/antirez/ds4?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">@antirez&#8217;s brilliant hack</a> within <a href="https://github.com/rcarmo/go-ds4?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">my meagre resources</a>, I feel like a serious rift is developing between the &#8220;haves&#8221; who were lucky to get hardware on time (or can splurge multiple K of European Pesos on it) and the &#8220;have nots&#8221;.</p>
  2013. <p>The societal impact of the entire thing in the always hype-driven geek community is, of course, fascinating (especially since a very small number of people have a disproportionate amount of influence in this little echo chamber), and I sometimes feel like Jane Goodall observing packs of opinionated chimpanzees, but I digress.</p>
  2014. <p>Personally, after spending the day mulling on this, I find the whole thing extremely depressing, for three reasons:</p>
  2015. <ul>
  2016. <li>Despite <a href="/space/site/disclaimer" rel="next" style="color: #0000cc;">working at a cloud provider</a>, I see computers as something inherently distributed and personal. There are a lot of latent contradictions here, yes&#8211;I&#8217;ve learned to live with them.</li>
  2017. <li>As an European citizen, the geopolitics of the asymmetrical situation we are in today regarding technology and AI in general <a href="/space/links/2026/04/13/0730" rel="next" style="color: #0000cc;">really irk me</a>, and yes, I have learned to deal with that too, but really wish I could do something about it.</li>
  2018. <li>Personally, I can&#8217;t afford to keep up. People in startups, self-employed or in very specific minuscule niches might be able to spend enough to do so, but I can&#8217;t.</li>
  2019. </ul>
  2020. <p>I&#8217;m thrifty by nature, usually plan (and over-think) my purchases years in advance, am at a point in my career (and the industry) where job security <a href="/space/links/2026/05/08/0800" rel="next" style="color: #0000cc;">is hardly a given</a> and already had <a href="/space/blog/2024/06/08/1200" rel="next" style="color: #0000cc;">at least one narrow escape</a>, so saving up every dime I can for a potential rainy day has been very much on my mind and I now agonize over stuff as simple as ordering a 70 EUR battery to revive an eight-year laptop (because, yes, I do still use old machines).</p>
  2021. <p>So there is (pardon my French) <em>absolutely no fucking way</em> I am getting decent local inference hardware anytime soon. And I count myself lucky I built <a href="/space/blog/2023/02/18/1845" rel="next" style="color: #0000cc;"><code>borg</code></a> when I did, even if that was also a painful decision at the time and it is now hopelessly outdated for most things.</p>
  2022. <p>That&#8217;s it. I&#8217;ve vented. Now I&#8217;m going to take something for my sinuses, chase it with an antihistamine, and doze off until 4AM tomorrow.</p>
  2023. <!-- Reference titles:
  2024.  [ds4]            = antirez/ds4 &#8212; DeepSeek 4 Flash local inference engine for Metal
  2025.  [armin]          = "Pushing Local Models With Focus And Polish" &#8212; Armin Ronacher (lucumr.pocoo.org)
  2026.  [rampocalypse]   = "The RAMpocalypse is Nigh" (Dec 2025)
  2027.  [go-pherence]    = rcarmo/go-pherence &#8212; personal inference library
  2028.  [go-ds4]         = rcarmo/go-ds4 &#8212; personal ds4 fork/port
  2029.  [mistral_europe] = "European AI: A Playbook to Own It" (Apr 2026)
  2030.  [cloudflare]     = "Cloudflare Cuts 20% of Workforce for the 'Agentic AI Era'" (May 2026)
  2031.  [theafter]       = "The After" (Jun 2024)
  2032.  [borg]           = "Borg, My Post-Pandemic Homelab Server" (Feb 2023)
  2033. -->
  2034. <br/>
  2035. ]]></content>
  2036. <category term="economics" label="economics" />
  2037. <category term="llm" label="llm" />
  2038. <category term="hardware" label="hardware" />
  2039. <category term="opinion" label="opinion" />
  2040. <category term="ai" label="ai" />
  2041. <category term="local-inference" label="local-inference" />
  2042. </entry>
  2043. <entry>
  2044. <title>Clojure(Script)</title>
  2045. <id>https://taoofmac.com/space/dev/clojure?utm_content=atom</id>
  2046. <published>2013-08-20T17:09:00+00:00</published>
  2047. <updated>2026-05-14T11:37:54+00:00</updated>
  2048. <author>
  2049. <name>Rui Carmo</name>
  2050. <uri>https://taoofmac.com</uri>
  2051. </author>
  2052. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/dev/clojure?utm_content=atom"/>
  2053. <content type="html"><![CDATA[
  2054. <p class="lead">Clojure is a <a href="/space/dev/lisp" rel="next" style="color: #0000cc;">LISP</a> dialect that targets the <a href="/space/dev/java" rel="next" style="color: #0000cc;">Java</a> VM - but that also happens to have a number of other back-ends, including a <a href="/space/dev/javascript" rel="next" style="color: #0000cc;">JavaScript</a> one. </p>
  2055. <p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  2056. <thead>
  2057. <tr style="border-top: 1px solid #aaa;">
  2058. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  2059. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  2060. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  2061. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  2062. </tr>
  2063. </thead>
  2064. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  2065. <tr style="border-top: 1px solid #aaa;">
  2066. <td rowspan="10" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Back-end</td>
  2067. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  2068. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/babashka/babashka?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">babashka</a></td>
  2069. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a standalone, fast-starting clojure interpreter</p></td>
  2070. </tr>
  2071. <tr style="border-top: 1px solid #aaa;">
  2072. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  2073. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/eginez/calvin?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">calvin</a></td>
  2074. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a built tool for ClojureScript</p></td>
  2075. </tr>
  2076. <tr style="border-top: 1px solid #aaa;">
  2077. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2018</td>
  2078. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/clojerl/clojerl?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">clojerl</a></td>
  2079. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Clojure atop the Erlang BEAM VM</p></td>
  2080. </tr>
  2081. <tr style="border-top: 1px solid #aaa;">
  2082. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016</td>
  2083. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nakkaya/ferret?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Ferret</a></td>
  2084. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Clojure to C++ compiler that can target Arduino-compatible microcontrollers</p></td>
  2085. </tr>
  2086. <tr style="border-top: 1px solid #aaa;">
  2087. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2088. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/greghendershott/rackjure?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">rackjure</a></td>
  2089. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A set of Clojure semantics ported to Racket</p></td>
  2090. </tr>
  2091. <tr style="border-top: 1px solid #aaa;">
  2092. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/halgari/clojure-py?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">clojure-py</a></td>
  2093. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A <a href="/space/dev/python" rel="nofollow" style="color: #0000cc;">Python</a> implementation that compiles down to bytecode (project is stalled, but may be useful as reference)</p></td>
  2094. </tr>
  2095. <tr style="border-top: 1px solid #aaa;">
  2096. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jkk/honeysql?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">honeysql</a></td>
  2097. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A SQL statement generator</p></td>
  2098. </tr>
  2099. <tr style="border-top: 1px solid #aaa;">
  2100. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/joshaber/clojurem?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ClojureM</a></td>
  2101. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Another Objective-C compiler</p></td>
  2102. </tr>
  2103. <tr style="border-top: 1px solid #aaa;">
  2104. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/raph-amiard/clojurescript-lua?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">clojurescript-lua</a></td>
  2105. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A <a href="/space/dev/lua" rel="nofollow" style="color: #0000cc;">Lua</a> back-end</p></td>
  2106. </tr>
  2107. <tr style="border-top: 1px solid #aaa;">
  2108. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/schani/clojurec?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">clojurec</a></td>
  2109. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>This one targets both C and Objective-C</p></td>
  2110. </tr>
  2111. <tr style="border-top: 1px solid #aaa;">
  2112. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Cloud Tools</td>
  2113. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2015</td>
  2114. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nervous-systems/cljs-lambda?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">cljs-lambda</a></td>
  2115. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Leiningen plugin/template for running ClojureScript functions inside AWS Lambda</p></td>
  2116. </tr>
  2117. <tr style="border-top: 1px solid #aaa;">
  2118. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Compilers</td>
  2119. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  2120. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/squint-cljs/cherry?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">cherry</a></td>
  2121. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Experimental ClojureScript to ES6 module compiler</p></td>
  2122. </tr>
  2123. <tr style="border-top: 1px solid #aaa;">
  2124. <td rowspan="11" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Data Science</td>
  2125. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  2126. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/metasoarous/oz?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Oz</a></td>
  2127. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a data visualization and scientific document processing library for Clojure
  2128. built around Vega</p></td>
  2129. </tr>
  2130. <tr style="border-top: 1px solid #aaa;">
  2131. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2017</td>
  2132. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/JonyEpsilon/gorilla-repl?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gorilla-repl</a></td>
  2133. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Notebook style REPL with plotting features</p></td>
  2134. </tr>
  2135. <tr style="border-top: 1px solid #aaa;">
  2136. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/roryk/clojupyter?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">clojupyter</a></td>
  2137. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Jupyter notebook kernel</p></td>
  2138. </tr>
  2139. <tr style="border-top: 1px solid #aaa;">
  2140. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2015</td>
  2141. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/MichaelDrogalis/onyx?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Onyx</a></td>
  2142. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Data processing framework</p></td>
  2143. </tr>
  2144. <tr style="border-top: 1px solid #aaa;">
  2145. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://gorillalabs.github.io/sparkling/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Sparkling</a></td>
  2146. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Clojure API for Apache Spark</p></td>
  2147. </tr>
  2148. <tr style="border-top: 1px solid #aaa;">
  2149. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  2150. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Netflix/PigPen?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">PigPen</a></td>
  2151. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A DSL that compiles down to Apache Pig</p></td>
  2152. </tr>
  2153. <tr style="border-top: 1px solid #aaa;">
  2154. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/damballa/parkour?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Parkour</a></td>
  2155. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Clojure integration layer written directly against Hadoop</p></td>
  2156. </tr>
  2157. <tr style="border-top: 1px solid #aaa;">
  2158. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2159. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://cascalog.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Cascalog</a></td>
  2160. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Querying library for <a href="/space/dev/hadoop" rel="nofollow" style="color: #0000cc;">Hadoop</a>, inspired by Datalog</p></td>
  2161. </tr>
  2162. <tr style="border-top: 1px solid #aaa;">
  2163. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://incanter.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Incanter</a></td>
  2164. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A set of statistical and graphical tools</p></td>
  2165. </tr>
  2166. <tr style="border-top: 1px solid #aaa;">
  2167. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jackschultz/classify?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">classify</a></td>
  2168. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A small text classifier using OpenNLP</p></td>
  2169. </tr>
  2170. <tr style="border-top: 1px solid #aaa;">
  2171. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/weavejester/clucy?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">clucy</a></td>
  2172. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Lucene bindings</p></td>
  2173. </tr>
  2174. <tr style="border-top: 1px solid #aaa;">
  2175. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Databases</td>
  2176. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  2177. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/dscarpetti/codax?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">codax</a></td>
  2178. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a transactional, embedded database engine</p></td>
  2179. </tr>
  2180. <tr style="border-top: 1px solid #aaa;">
  2181. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Distributed Computing</td>
  2182. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016</td>
  2183. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tolitius/chazel?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Chazel</a></td>
  2184. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Hazelcast wrapper</p></td>
  2185. </tr>
  2186. <tr style="border-top: 1px solid #aaa;">
  2187. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tolitius/hface?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">hface</a></td>
  2188. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Hazelcast cluster monitor</p></td>
  2189. </tr>
  2190. <tr style="border-top: 1px solid #aaa;">
  2191. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">GUI</td>
  2192. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  2193. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/HumbleUI/HumbleUI?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">HumbleUI</a></td>
  2194. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a desktop UI framework for cross-platform applications</p></td>
  2195. </tr>
  2196. <tr style="border-top: 1px solid #aaa;">
  2197. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Graphics</td>
  2198. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  2199. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/karls/collage?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">collage</a></td>
  2200. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A high-level image processing library</p></td>
  2201. </tr>
  2202. <tr style="border-top: 1px solid #aaa;">
  2203. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Infoviz</td>
  2204. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2205. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/dribnet/strokes?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">strokes</a></td>
  2206. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An interop library for using D3, with <a href="http://s.trokes.org/dribnet?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">samples</a></p></td>
  2207. </tr>
  2208. <tr style="border-top: 1px solid #aaa;">
  2209. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/lynaghk/c2?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">C2</a></td>
  2210. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A D3-like visualization library with a standalone bundle</p></td>
  2211. </tr>
  2212. <tr style="border-top: 1px solid #aaa;">
  2213. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Job Management</td>
  2214. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016</td>
  2215. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jxa/resque-clojure?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">resque-clojure</a></td>
  2216. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Resque clone.</p></td>
  2217. </tr>
  2218. <tr style="border-top: 1px solid #aaa;">
  2219. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/metametadata/byplay?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">byplay</a></td>
  2220. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Background job queue atop PostgreSQL</p></td>
  2221. </tr>
  2222. <tr style="border-top: 1px solid #aaa;">
  2223. <td rowspan="8" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Libraries</td>
  2224. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  2225. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/glojurelang/glojure?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">glojure</a></td>
  2226. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Clojure interpreter hosted on Go, with extensible interop support.</p></td>
  2227. </tr>
  2228. <tr style="border-top: 1px solid #aaa;">
  2229. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  2230. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tonsky/clj-simple-router?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">clj-simple-router</a></td>
  2231. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A simple, order-independent Ring router</p></td>
  2232. </tr>
  2233. <tr style="border-top: 1px solid #aaa;">
  2234. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  2235. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/clj-python/libpython-clj?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">libpython-clj</a></td>
  2236. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Python interop</p></td>
  2237. </tr>
  2238. <tr style="border-top: 1px solid #aaa;">
  2239. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  2240. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://quil.info/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">quil</a></td>
  2241. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a library for interactive graphics</p></td>
  2242. </tr>
  2243. <tr style="border-top: 1px solid #aaa;">
  2244. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  2245. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://duckling.wit.ai/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">duckling</a></td>
  2246. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a library that parses text into structured data</p></td>
  2247. </tr>
  2248. <tr style="border-top: 1px solid #aaa;">
  2249. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/TheClimateCorporation/claypoole?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">claypoole</a></td>
  2250. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>improved, tunable thead pooling for concurrency primitives (pmap, etc.)</p></td>
  2251. </tr>
  2252. <tr style="border-top: 1px solid #aaa;">
  2253. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/coast-framework/coast?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Coast</a></td>
  2254. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A &#8220;full stack&#8221; web framework</p></td>
  2255. </tr>
  2256. <tr style="border-top: 1px solid #aaa;">
  2257. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/domino-clj/domino?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">domino</a></td>
  2258. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a dataflow library that allows for reactive constructs in your app</p></td>
  2259. </tr>
  2260. <tr style="border-top: 1px solid #aaa;">
  2261. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Mobile</td>
  2262. <td rowspan="8" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2263. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/clojure-android/clojure?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">clojure-android</a></td>
  2264. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"/>
  2265. </tr>
  2266. <tr style="border-top: 1px solid #aaa;">
  2267. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/oakes/lein-fruit?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">lein-fruit</a></td>
  2268. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Leiningen plugin to develop iOS apps (using <a href="http://www.robovm.org/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">RoboVM</a>)</p></td>
  2269. </tr>
  2270. <tr style="border-top: 1px solid #aaa;">
  2271. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Networking</td>
  2272. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://avout.io?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Avout</a></td>
  2273. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Distributed state in Clojure, via ZooKeeper</p></td>
  2274. </tr>
  2275. <tr style="border-top: 1px solid #aaa;">
  2276. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://http-kit.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">http-kit</a></td>
  2277. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>High-performance event-driven HTTP client/server for Clojure
  2278. (see <a href="https://github.com/ptaoussanis/clojure-web-server-benchmarks?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">benchmarks</a> and <a href="https://github.com/http-kit/lein-template?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">this leiningen template</a>)</p></td>
  2279. </tr>
  2280. <tr style="border-top: 1px solid #aaa;">
  2281. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://riemann.io?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Riemann</a></td>
  2282. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An event stream processor</p></td>
  2283. </tr>
  2284. <tr style="border-top: 1px solid #aaa;">
  2285. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/amitrathore/swarmiji?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">swarmiji</a></td>
  2286. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Simple distributed computing framework using RabbitMQ</p></td>
  2287. </tr>
  2288. <tr style="border-top: 1px solid #aaa;">
  2289. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/flatland/clojure-protobuf?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">clojure-protobuf</a></td>
  2290. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Protocol buffers support</p></td>
  2291. </tr>
  2292. <tr style="border-top: 1px solid #aaa;">
  2293. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/isaiah/vertx-clj?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">vertx-clj</a></td>
  2294. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p><a href="http://vertx.io?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">vert.x</a> adapter</p></td>
  2295. </tr>
  2296. <tr style="border-top: 1px solid #aaa;">
  2297. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Parsers</td>
  2298. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  2299. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/scsibug/feedparser-clj?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">feedparser-clj</a></td>
  2300. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>RSS feed parsing library</p></td>
  2301. </tr>
  2302. <tr style="border-top: 1px solid #aaa;">
  2303. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2304. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Engelberg/instaparse?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Instaparse</a></td>
  2305. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Generic parser library</p></td>
  2306. </tr>
  2307. <tr style="border-top: 1px solid #aaa;">
  2308. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cgrand/parsley?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Parsley</a></td>
  2309. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>DSL for creating total and truly incremental parsers in Clojure</p></td>
  2310. </tr>
  2311. <tr style="border-top: 1px solid #aaa;">
  2312. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/yogthos/markdown-clj?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">markdown-clj</a></td>
  2313. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>limited <a href="/space/markup/markdown" rel="nofollow" style="color: #0000cc;">Markdown</a> parser</p></td>
  2314. </tr>
  2315. <tr style="border-top: 1px solid #aaa;">
  2316. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ztellman/gloss?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gloss</a></td>
  2317. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A byte-format DSL especially suited to handling raw binary protocols</p></td>
  2318. </tr>
  2319. <tr style="border-top: 1px solid #aaa;">
  2320. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Resources</td>
  2321. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  2322. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://grimoire.arrdem.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Grimoire</a></td>
  2323. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A handy reference</p></td>
  2324. </tr>
  2325. <tr style="border-top: 1px solid #aaa;">
  2326. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2327. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.clojure-toolbox.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Clojure Toolbox</a></td>
  2328. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A compilation of useful Libraries</p></td>
  2329. </tr>
  2330. <tr style="border-top: 1px solid #aaa;">
  2331. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Runtimes</td>
  2332. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  2333. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jank-lang/jank?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">jank</a></td>
  2334. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Clojure dialect on LLVM with a native runtime and C++ interop</p></td>
  2335. </tr>
  2336. <tr style="border-top: 1px solid #aaa;">
  2337. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  2338. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/borkdude/sci?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sci</a></td>
  2339. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A small Clojure interpreter</p></td>
  2340. </tr>
  2341. <tr style="border-top: 1px solid #aaa;">
  2342. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Serverless</td>
  2343. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/siilisolutions/hedge?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">hedge</a></td>
  2344. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a ClojureScript serverless framework that targets both Azure Functions and AWS Lambda</p></td>
  2345. </tr>
  2346. <tr style="border-top: 1px solid #aaa;">
  2347. <td rowspan="13" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  2348. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  2349. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/gloathub/gloat?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gloat</a></td>
  2350. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Glojure automation tool</p></td>
  2351. </tr>
  2352. <tr style="border-top: 1px solid #aaa;">
  2353. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://gitlab.com/andreyorst/clojurefnl?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ClojureFnl</a></td>
  2354. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A work-in-progress Clojure-to-Fennel transpiler for running .cljf code on Lua runtimes</p></td>
  2355. </tr>
  2356. <tr style="border-top: 1px solid #aaa;">
  2357. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  2358. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nextjournal/clerk?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">clerk</a></td>
  2359. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Clojure notebook environment</p></td>
  2360. </tr>
  2361. <tr style="border-top: 1px solid #aaa;">
  2362. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tonsky/sublime-clojure?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sublime-clojure</a></td>
  2363. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Clojure extension for Sublime Text 4</p></td>
  2364. </tr>
  2365. <tr style="border-top: 1px solid #aaa;">
  2366. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2017</td>
  2367. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/oakes/Nightlight?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Nightlight</a></td>
  2368. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Embedded editor that runs inside your project</p></td>
  2369. </tr>
  2370. <tr style="border-top: 1px solid #aaa;">
  2371. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016</td>
  2372. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Quantisan/docker-clojure?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">docker-clojure</a></td>
  2373. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>The official <a href="/space/os/linux/docker" rel="nofollow" style="color: #0000cc;">Docker</a> image for Clojure, with build triggers.</p></td>
  2374. </tr>
  2375. <tr style="border-top: 1px solid #aaa;">
  2376. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/martinklepsch/tenzing?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">tenzing</a></td>
  2377. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Clojurescript application template</p></td>
  2378. </tr>
  2379. <tr style="border-top: 1px solid #aaa;">
  2380. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2381. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="/space/:https://nightcode.info" rel="nofollow" style="color: #0000cc;">Nightcode</a></td>
  2382. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An integrated IDE</p></td>
  2383. </tr>
  2384. <tr style="border-top: 1px solid #aaa;">
  2385. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://leiningen.org/grench.html?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Grenchman</a></td>
  2386. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Simple, straightforward nREPL client</p></td>
  2387. </tr>
  2388. <tr style="border-top: 1px solid #aaa;">
  2389. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cemerick/austin?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Austin</a></td>
  2390. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A ClojureScript REPL</p></td>
  2391. </tr>
  2392. <tr style="border-top: 1px solid #aaa;">
  2393. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/dgrnbrg/spyscope?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">spyscope</a></td>
  2394. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>trace-oriented debugging tools</p></td>
  2395. </tr>
  2396. <tr style="border-top: 1px solid #aaa;">
  2397. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/weavejester/codox?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Codox</a></td>
  2398. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Documentation generator that relies on function metadata</p></td>
  2399. </tr>
  2400. <tr style="border-top: 1px solid #aaa;">
  2401. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/zcaudate/lein-midje-doc?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">lein-midje-doc</a></td>
  2402. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A clever way to generate documentation from tests</p></td>
  2403. </tr>
  2404. <tr style="border-top: 1px solid #aaa;">
  2405. <td rowspan="12" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Web</td>
  2406. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  2407. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jacobobryant/biff?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Biff</a></td>
  2408. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Clojure web framework for solo developers</p></td>
  2409. </tr>
  2410. <tr style="border-top: 1px solid #aaa;">
  2411. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  2412. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/AppsFlyer/donkey?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">donkey</a></td>
  2413. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Ring-compliant server and HTTP client that uses Vert.x, with great metrics support</p></td>
  2414. </tr>
  2415. <tr style="border-top: 1px solid #aaa;">
  2416. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  2417. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/metosin/reitit?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">reitit</a></td>
  2418. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a very fast data-driven router with ring support</p></td>
  2419. </tr>
  2420. <tr style="border-top: 1px solid #aaa;">
  2421. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  2422. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/duct-framework/duct?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Duct</a></td>
  2423. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a modular web framework</p></td>
  2424. </tr>
  2425. <tr style="border-top: 1px solid #aaa;">
  2426. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2015</td>
  2427. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/metosin/ring-swagger?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ring-swagger</a></td>
  2428. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Swagger Spec for Clojure Web Apps</p></td>
  2429. </tr>
  2430. <tr style="border-top: 1px solid #aaa;">
  2431. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  2432. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://immutant.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Immutant</a></td>
  2433. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Full-blown application server</p></td>
  2434. </tr>
  2435. <tr style="border-top: 1px solid #aaa;">
  2436. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2437. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://let-caribou.in?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Caribou</a></td>
  2438. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Pretty decent back-office.</p></td>
  2439. </tr>
  2440. <tr style="border-top: 1px solid #aaa;">
  2441. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://pedestal.io?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Pedestal</a></td>
  2442. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A more complete framework</p></td>
  2443. </tr>
  2444. <tr style="border-top: 1px solid #aaa;">
  2445. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.luminusweb.net?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luminus</a></td>
  2446. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"/>
  2447. </tr>
  2448. <tr style="border-top: 1px solid #aaa;">
  2449. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.webnoir.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Noir</a></td>
  2450. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Nice (but, alas, deprecated) framework atop Ring and Compojure</p></td>
  2451. </tr>
  2452. <tr style="border-top: 1px solid #aaa;">
  2453. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ring-clojure/ring?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Ring</a></td>
  2454. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>HTTP abstractions</p></td>
  2455. </tr>
  2456. <tr style="border-top: 1px solid #aaa;">
  2457. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/weavejester/compojure?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Compojure</a></td>
  2458. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>HTTP routing middleware</p></td>
  2459. </tr>
  2460. <tr style="border-top: 1px solid #aaa;">
  2461. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Web UI</td>
  2462. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  2463. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://holmsand.github.io/reagent?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Reagent</a></td>
  2464. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A <a href="http://facebook.github.io/react/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">React</a> wrapper that is less trendy (but arguably more pragmatic) than <a href="https://github.com/swannodette/om?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Om</a></p></td>
  2465. </tr>
  2466. <tr style="border-top: 1px solid #aaa;">
  2467. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2468. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://fluentsoftware.github.io/cljs-binding/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">cljs-binding</a></td>
  2469. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>native data binding library</p></td>
  2470. </tr>
  2471. <tr style="border-top: 1px solid #aaa;">
  2472. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/holmsand/cloact?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Cloact</a></td>
  2473. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Simple ClojureScript interface to React</p></td>
  2474. </tr>
  2475. <tr style="border-top: 1px solid #aaa;">
  2476. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/pangloss/clang?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">clang</a></td>
  2477. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Bindings to AngularJS</p></td>
  2478. </tr>
  2479. </tbody>
  2480. </table>
  2481. <br/>
  2482. ]]></content>
  2483. <category term="clojurescript" label="clojurescript" />
  2484. <category term="clojure" label="clojure" />
  2485. <category term="development" label="development" />
  2486. <category term="lisp" label="lisp" />
  2487. </entry>
  2488. <entry>
  2489. <title>JavaScript</title>
  2490. <id>https://taoofmac.com/space/dev/javascript?utm_content=atom</id>
  2491. <published>2007-02-28T21:44:19+00:00</published>
  2492. <updated>2026-05-09T21:03:46+00:00</updated>
  2493. <author>
  2494. <name>Rui Carmo</name>
  2495. <uri>https://taoofmac.com</uri>
  2496. </author>
  2497. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/dev/javascript?utm_content=atom"/>
  2498. <content type="html"><![CDATA[
  2499. <p class="lead">The <a href="ECMA" rel="nofollow" style="color: #0000cc;">ECMA</a> - <a href="http://www.ecma-international.org/publications/standards/ECMA-262.HTM?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">262</a> Standard, ratified after <a href="Netscape" rel="nofollow" style="color: #0000cc;">Netscape</a> and <a href="/space/com/microsoft" rel="next" style="color: #0000cc;">Microsoft</a> (mostly) agreed to make JavaScript and JScript interoperable.</p>
  2500. <a class="anchor" id="anchor-setting-up-node" rel="anchor" href="/space/dev/javascript#setting-up-node" style="color: #0000cc;"><h2 id="setting-up-node">Setting Up Node</h2></a><p>In order to run NodeJS sanely on macOS and WSL, I&#8217;ve taken to setting up an unprivileged package install folder like so:</p>
  2501. <div class="highlight"><pre style="font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, 'Cascadia Code', 'Cascadia Mono', 'Consolas', 'DejaVu Sans Mono', 'Segoe UI Mono', 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro','Fira Code','Fira Mono', 'Droid Sans Mono', 'Courier New', monospace !important;"><span/><code>mkdir<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">HOME</span><span class="si">}</span><span class="s2">/.npm-packages"</span>
  2502.  
  2503. <span class="c1"># Add a new dotfile, without expanding $HOME</span>
  2504. cat<span class="w"> </span><span class="s">&lt;&lt; 'EOF' &gt;&gt; ~/.npmrc</span>
  2505. <span class="s">prefix=${HOME}/.npm-packages</span>
  2506. <span class="s">EOF</span>
  2507.  
  2508. <span class="c1"># Add the following five lines to .bashrc, without expanding variables:</span>
  2509.  
  2510. cat<span class="w"> </span><span class="s">&lt;&lt; 'EOF' &gt;&gt; ~/.bashrc </span>
  2511. <span class="s">NPM_PACKAGES="${HOME}/.npm-packages"</span>
  2512. <span class="s">PATH="$NPM_PACKAGES/bin:$PATH"</span>
  2513. <span class="s"># Unset manpath so we can inherit from /etc/manpath via the `manpath` command</span>
  2514. <span class="s">unset MANPATH # delete if you already modified MANPATH elsewhere in your config</span>
  2515. <span class="s">export MANPATH="$NPM_PACKAGES/share/man:$(manpath)"</span>
  2516. <span class="s">EOF</span>
  2517. </code></pre></div>
  2518.  
  2519. <a class="anchor" id="anchor-ways-to-avoid-writing-javascript" rel="anchor" href="/space/dev/javascript#ways-to-avoid-writing-javascript" style="color: #0000cc;"><h2 id="ways-to-avoid-writing-javascript">Ways To Avoid Writing JavaScript</h2></a><p>I&#8217;ve taken to looking for alternative ways to develop in JavaScript that don&#8217;t require me to put up with its syntax and overall insanity. Here&#8217;s a few I like (mostly compilers, since that&#8217;s what makes the most sense for me):</p>
  2520. <p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  2521. <thead>
  2522. <tr style="border-top: 1px solid #aaa;">
  2523. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  2524. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  2525. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  2526. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  2527. </tr>
  2528. </thead>
  2529. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  2530. <tr style="border-top: 1px solid #aaa;">
  2531. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Compilers</td>
  2532. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  2533. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://imba.io?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Imba</a></td>
  2534. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>another Elm-like language that compiles ro Javascript</p></td>
  2535. </tr>
  2536. <tr style="border-top: 1px solid #aaa;">
  2537. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  2538. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://reasonml.github.io/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Reason</a></td>
  2539. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an OCaml-like language and compiler</p></td>
  2540. </tr>
  2541. <tr style="border-top: 1px solid #aaa;">
  2542. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2018</td>
  2543. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://elm-lang.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Elm</a></td>
  2544. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A functional language that compiles to <a href="JavaScript" rel="nofollow" style="color: #0000cc;">JavaScript</a></p></td>
  2545. </tr>
  2546. <tr style="border-top: 1px solid #aaa;">
  2547. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Gozala/wisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">wisp</a></td>
  2548. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A homoiconic LISP dialect with <a href="/space/dev/clojure" rel="nofollow" style="color: #0000cc;">Clojure</a> syntax and macros</p></td>
  2549. </tr>
  2550. <tr style="border-top: 1px solid #aaa;">
  2551. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/pythonium/pythonium?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pythonium</a></td>
  2552. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A <a href="/space/dev/python" rel="nofollow" style="color: #0000cc;">Python</a>3 to <a href="JavaScript" rel="nofollow" style="color: #0000cc;">JavaScript</a> translator</p></td>
  2553. </tr>
  2554. <tr style="border-top: 1px solid #aaa;">
  2555. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2017</td>
  2556. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://opalrb.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Opal</a></td>
  2557. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A <a href="/space/dev/ruby" rel="nofollow" style="color: #0000cc;">Ruby</a> transpiler</p></td>
  2558. </tr>
  2559. </tbody>
  2560. </table>
  2561. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/dev/javascript#resources" style="color: #0000cc;"><h2 id="resources">Resources</h2></a><p>Most of these are library-independent. Check my <a href="dev/javascript/jquery" rel="nofollow" style="color: #0000cc;">jQuery</a> page for more, since there&#8217;s an entire sub-culture that believes it to be JavaScript programming in and by its own&#8230;</p>
  2562. <p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  2563. <thead>
  2564. <tr style="border-top: 1px solid #aaa;">
  2565. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  2566. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  2567. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  2568. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  2569. </tr>
  2570. </thead>
  2571. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  2572. <tr style="border-top: 1px solid #aaa;">
  2573. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">AI</td>
  2574. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  2575. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/axa-group/nlp.js?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">nlp.js</a></td>
  2576. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a natural language processing library for bots</p></td>
  2577. </tr>
  2578. <tr style="border-top: 1px solid #aaa;">
  2579. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Animation</td>
  2580. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2018</td>
  2581. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://ptsjs.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Pts</a></td>
  2582. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Processing-like library</p></td>
  2583. </tr>
  2584. <tr style="border-top: 1px solid #aaa;">
  2585. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  2586. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/juliangarnier/anime/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">anime</a></td>
  2587. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an impressive lightweight JavaScript animation library</p></td>
  2588. </tr>
  2589. <tr style="border-top: 1px solid #aaa;">
  2590. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  2591. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/fand/vfx-js?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">vfx-js</a></td>
  2592. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a library for creating visual effects</p></td>
  2593. </tr>
  2594. <tr style="border-top: 1px solid #aaa;">
  2595. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/kepano/defuddle?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">defuddle</a></td>
  2596. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an implementation of the readability algorithm</p></td>
  2597. </tr>
  2598. <tr style="border-top: 1px solid #aaa;">
  2599. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Audio</td>
  2600. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  2601. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/foobar404/Wave.js?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Wave.js</a></td>
  2602. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a themable audio visualizer</p></td>
  2603. </tr>
  2604. <tr style="border-top: 1px solid #aaa;">
  2605. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Automation</td>
  2606. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2018</td>
  2607. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/n8n-io/n8n?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">n8n</a></td>
  2608. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Zapier alternative that is Open Core, but requires licensing for most uses</p></td>
  2609. </tr>
  2610. <tr style="border-top: 1px solid #aaa;">
  2611. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  2612. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/activepieces/activepieces?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">activepieces</a></td>
  2613. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>another self-hostable Zapier alternative (MIT Licensed)</p></td>
  2614. </tr>
  2615. <tr style="border-top: 1px solid #aaa;">
  2616. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">CAD</td>
  2617. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  2618. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mmiscool/BREP?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">BREP</a></td>
  2619. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a feature-based modeling playground with BREP-style workflows on triangle meshes</p></td>
  2620. </tr>
  2621. <tr style="border-top: 1px solid #aaa;">
  2622. <td rowspan="7" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Charting</td>
  2623. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2010</td>
  2624. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://highcharts.com/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Highcharts</a></td>
  2625. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A very comprehensive charting library</p></td>
  2626. </tr>
  2627. <tr style="border-top: 1px solid #aaa;">
  2628. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2629. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.gojs.net/latest/index.html?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">GoJS</a></td>
  2630. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A commercial charting and diagramming library</p></td>
  2631. </tr>
  2632. <tr style="border-top: 1px solid #aaa;">
  2633. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2018</td>
  2634. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/antvis/f2?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">F2</a></td>
  2635. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an elegant charting library for mobile</p></td>
  2636. </tr>
  2637. <tr style="border-top: 1px solid #aaa;">
  2638. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  2639. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Kanaries/graphic-walker?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Graphic Walker</a></td>
  2640. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An embeddable Tableau-like dashboard UI, also available for Jupyter</p></td>
  2641. </tr>
  2642. <tr style="border-top: 1px solid #aaa;">
  2643. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tremorlabs/tremor?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">tremor</a></td>
  2644. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a React library for creating semi-interactive dashboards.</p></td>
  2645. </tr>
  2646. <tr style="border-top: 1px solid #aaa;">
  2647. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://observablehq.com/plot?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Observable Plot</a></td>
  2648. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A nice D3 wrapper that makes a lot of it much more intuitive</p></td>
  2649. </tr>
  2650. <tr style="border-top: 1px solid #aaa;">
  2651. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  2652. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/aerugo/simplegantt?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">simplegantt</a></td>
  2653. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a simple Gantt chart library for restricted environments</p></td>
  2654. </tr>
  2655. <tr style="border-top: 1px solid #aaa;">
  2656. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Data Structures</td>
  2657. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2017</td>
  2658. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/rtfeldman/seamless-immutable?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">seamless-immutable</a></td>
  2659. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Immutable data structures a la Mori</p></td>
  2660. </tr>
  2661. <tr style="border-top: 1px solid #aaa;">
  2662. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2018</td>
  2663. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/imrefazekas/knockout.sync.js?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">knockout.sync.js</a></td>
  2664. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A nice nockout extension that allows you to sync data among clients and backends</p></td>
  2665. </tr>
  2666. <tr style="border-top: 1px solid #aaa;">
  2667. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  2668. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/automerge/automerge?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">automerge</a></td>
  2669. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a library of data structures for building collaborative applications in JavaScript, using CRDTs</p></td>
  2670. </tr>
  2671. <tr style="border-top: 1px solid #aaa;">
  2672. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Frameworks</td>
  2673. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  2674. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mastrojs/mastro?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">mastro</a></td>
  2675. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a very simple framework on performance and simplicity</p></td>
  2676. </tr>
  2677. <tr style="border-top: 1px solid #aaa;">
  2678. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Games</td>
  2679. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2010</td>
  2680. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.kesiev.com/akihabara/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Akibahara</a></td>
  2681. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A wonderful set of small libraries to clone 8-bit era arcade games</p></td>
  2682. </tr>
  2683. <tr style="border-top: 1px solid #aaa;">
  2684. <td rowspan="18" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Graphics</td>
  2685. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2008</td>
  2686. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://blog.thejit.org/javascript-information-visualization-toolkit-jit/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">JS Infoviz Toolkit</a></td>
  2687. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A pretty comprehensive set of resources</p></td>
  2688. </tr>
  2689. <tr style="border-top: 1px solid #aaa;">
  2690. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2009</td>
  2691. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.mrspeaker.net/2009/12/03/particle-system-with-html5-canvas/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Parcycle</a></td>
  2692. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A particle system for Canvas</p></td>
  2693. </tr>
  2694. <tr style="border-top: 1px solid #aaa;">
  2695. </tr>
  2696. <tr style="border-top: 1px solid #aaa;">
  2697. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2010</td>
  2698. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://raphaeljs.com/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Raphael</a></td>
  2699. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A vector graphics library</p></td>
  2700. </tr>
  2701. <tr style="border-top: 1px solid #aaa;">
  2702. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2011</td>
  2703. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/paperjs/paper.js?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">paper.js</a></td>
  2704. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>open source vector graphics scripting framework that runs on top of Canvas</p></td>
  2705. </tr>
  2706. <tr style="border-top: 1px solid #aaa;">
  2707. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2012</td>
  2708. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://impactjs.com/ejecta?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Ejecta</a></td>
  2709. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A fast GL-backed canvas library for iOS</p></td>
  2710. </tr>
  2711. <tr style="border-top: 1px solid #aaa;">
  2712. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2713. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://jonobr1.github.io/two.js/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Two.js</a></td>
  2714. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An intriguing API that supports a number of back-ends (svg, canvas and WebGL)</p></td>
  2715. </tr>
  2716. <tr style="border-top: 1px solid #aaa;">
  2717. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://svgjs.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">svgjs</a></td>
  2718. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A lightweight library for SVG handling</p></td>
  2719. </tr>
  2720. <tr style="border-top: 1px solid #aaa;">
  2721. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  2722. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/gre/glsl-transition?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">glsl-transition</a></td>
  2723. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A library that uses GL shaders for transitions</p></td>
  2724. </tr>
  2725. <tr style="border-top: 1px solid #aaa;">
  2726. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2015</td>
  2727. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jwagner/smartcrop.js?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">smartcrop.js</a></td>
  2728. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Content-aware image cropping</p></td>
  2729. </tr>
  2730. <tr style="border-top: 1px solid #aaa;">
  2731. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  2732. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://fabricjs.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Fabric.js</a></td>
  2733. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>supports various kinds of canvas manipulation, including image filters</p></td>
  2734. </tr>
  2735. <tr style="border-top: 1px solid #aaa;">
  2736. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/BinaryMuse/planetary.js?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Planetary.js</a></td>
  2737. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Another globe visualization library</p></td>
  2738. </tr>
  2739. <tr style="border-top: 1px solid #aaa;">
  2740. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/leeoniya/uPlot?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">uPlot</a></td>
  2741. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>extremely fast timeseries plotting</p></td>
  2742. </tr>
  2743. <tr style="border-top: 1px solid #aaa;">
  2744. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/syt123450/giojs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Gio.JS</a></td>
  2745. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Globe visualization library</p></td>
  2746. </tr>
  2747. <tr style="border-top: 1px solid #aaa;">
  2748. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/timqian/chart.xkcd?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">chart.xkcd</a></td>
  2749. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>various XKCD-styled chart types</p></td>
  2750. </tr>
  2751. <tr style="border-top: 1px solid #aaa;">
  2752. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/vasturiano/globe.gl?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">globe.gl</a></td>
  2753. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Very nice globe visualization component, with animated overlays, arcs, etc.</p></td>
  2754. </tr>
  2755. <tr style="border-top: 1px solid #aaa;">
  2756. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  2757. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/riccardoscalco/textures?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Textures</a></td>
  2758. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a lovely way to do SVG-based hatch fills for charts</p></td>
  2759. </tr>
  2760. <tr style="border-top: 1px solid #aaa;">
  2761. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  2762. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/aeroheim/midori?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">midori</a></td>
  2763. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a library for animating image backgrounds with cinematic effects</p></td>
  2764. </tr>
  2765. <tr style="border-top: 1px solid #aaa;">
  2766. <td rowspan="16" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Libraries</td>
  2767. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  2768. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/dashersw/cote?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">cote</a></td>
  2769. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a zero-configuration microservices framework</p></td>
  2770. </tr>
  2771. <tr style="border-top: 1px solid #aaa;">
  2772. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/daybrush/moveable?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">moveable</a></td>
  2773. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>GUI library for drawing editors</p></td>
  2774. </tr>
  2775. <tr style="border-top: 1px solid #aaa;">
  2776. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/developit/htm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">htm</a></td>
  2777. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a JSX-like library</p></td>
  2778. </tr>
  2779. <tr style="border-top: 1px solid #aaa;">
  2780. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nextapps-de/flexsearch?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">flexsearch</a></td>
  2781. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a full-text indexer for browser and server-side</p></td>
  2782. </tr>
  2783. <tr style="border-top: 1px solid #aaa;">
  2784. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/rchipka/node-osmosis?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">osmosis</a></td>
  2785. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an HTML parsing library with Xpath support</p></td>
  2786. </tr>
  2787. <tr style="border-top: 1px solid #aaa;">
  2788. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tactivos/azure-sync?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">azure-sync</a></td>
  2789. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>syncs from local filesystem to blob storage</p></td>
  2790. </tr>
  2791. <tr style="border-top: 1px solid #aaa;">
  2792. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  2793. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/AsyncBanana/microdiff?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">microdiff</a></td>
  2794. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a fast object diff library</p></td>
  2795. </tr>
  2796. <tr style="border-top: 1px solid #aaa;">
  2797. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/piscinajs/piscina?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">piscina</a></td>
  2798. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a cleverly named task pool</p></td>
  2799. </tr>
  2800. <tr style="border-top: 1px solid #aaa;">
  2801. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://htmx.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">htmx</a></td>
  2802. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a nice, compact, Ajax library</p></td>
  2803. </tr>
  2804. <tr style="border-top: 1px solid #aaa;">
  2805. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  2806. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/astoilkov/main-thread-scheduling?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">main-thread-scheduling</a></td>
  2807. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a library for scheduling tasks on the main thread</p></td>
  2808. </tr>
  2809. <tr style="border-top: 1px solid #aaa;">
  2810. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  2811. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/0xchasercat/mochi?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">mochi</a></td>
  2812. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>High-fidelity browser automation and fingerprinting library for Bun.</p></td>
  2813. </tr>
  2814. <tr style="border-top: 1px solid #aaa;">
  2815. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Digicreon/muJS?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">muJS</a></td>
  2816. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A lightweight AJAX navigation library &#8212; 5KB alternative to Turbo and htmx</p></td>
  2817. </tr>
  2818. <tr style="border-top: 1px solid #aaa;">
  2819. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/VolodymyrBaydalka/docx-preview?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">docx-preview</a></td>
  2820. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>browser renderer for .docx files using HTML/CSS output</p></td>
  2821. </tr>
  2822. <tr style="border-top: 1px solid #aaa;">
  2823. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/meshesha/pptxviewjs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pptxviewjs</a></td>
  2824. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>lightweight web component/renderer for PPTX file previews</p></td>
  2825. </tr>
  2826. <tr style="border-top: 1px solid #aaa;">
  2827. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/sheetjs/sheetjs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">xlsx</a></td>
  2828. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>spreadsheet parsing/export library used for rendering Excel workbooks in browsers</p></td>
  2829. </tr>
  2830. <tr style="border-top: 1px solid #aaa;">
  2831. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://htmx.org/extensions/sse/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">htmx SSE</a></td>
  2832. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Server-Sent Events extension for htmx</p></td>
  2833. </tr>
  2834. <tr style="border-top: 1px solid #aaa;">
  2835. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Markup</td>
  2836. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2007</td>
  2837. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://ejohn.org/projects/javascript-diff-algorithm/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Diff Algorithm</a></td>
  2838. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Text diffing</p></td>
  2839. </tr>
  2840. <tr style="border-top: 1px solid #aaa;">
  2841. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2842. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://craig.is/making/rainbows?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Rainbow</a></td>
  2843. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A nice syntax highlighter</p></td>
  2844. </tr>
  2845. <tr style="border-top: 1px solid #aaa;">
  2846. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://filepicker.github.io/codeblock.js/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Codeblock.js</a></td>
  2847. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A nice way to provide code samples.</p></td>
  2848. </tr>
  2849. <tr style="border-top: 1px solid #aaa;">
  2850. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Mobile</td>
  2851. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  2852. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://expo.io?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Expo</a></td>
  2853. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Good React Native wrapper/accelerator</p></td>
  2854. </tr>
  2855. <tr style="border-top: 1px solid #aaa;">
  2856. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://nativescript.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">NativeScript</a></td>
  2857. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Native mobile development with nice Vue support. Probably my favorite so far</p></td>
  2858. </tr>
  2859. <tr style="border-top: 1px solid #aaa;">
  2860. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://ionicframework.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Ionic</a></td>
  2861. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Good Angular, Vue and React Native wrapper/accelerator</p></td>
  2862. </tr>
  2863. <tr style="border-top: 1px solid #aaa;">
  2864. <td rowspan="7" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Runtimes</td>
  2865. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://bellard.org/quickjs/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">QuickJS</a></td>
  2866. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>supports compilation to standalone binaries</p></td>
  2867. </tr>
  2868. <tr style="border-top: 1px solid #aaa;">
  2869. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  2870. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/aflin/rampart?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">rampart</a></td>
  2871. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A minimal footprint runtime/stack with full text search, sql, lmdb,
  2872. redis, https, websockets, curl, crypt and more</p></td>
  2873. </tr>
  2874. <tr style="border-top: 1px solid #aaa;">
  2875. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/oven-sh/bun?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Bun</a></td>
  2876. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an all-in-one runtime and NPM client written in Zig</p></td>
  2877. </tr>
  2878. <tr style="border-top: 1px solid #aaa;">
  2879. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  2880. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/kaluma-project/kaluma?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">kaluma</a></td>
  2881. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>tiny and efficient JavaScript runtime for RP2040 (Raspberry Pi Pico)</p></td>
  2882. </tr>
  2883. <tr style="border-top: 1px solid #aaa;">
  2884. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/robertkrimen/otto?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">otto</a></td>
  2885. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a JavaScript interpreter written in <a href="/space/dev/golang" rel="nofollow" style="color: #0000cc;">Go</a></p></td>
  2886. </tr>
  2887. <tr style="border-top: 1px solid #aaa;">
  2888. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  2889. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/quickjs-ng/quickjs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">quickjs-ng</a></td>
  2890. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a fork of QuickJS</p></td>
  2891. </tr>
  2892. <tr style="border-top: 1px solid #aaa;">
  2893. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  2894. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/bellard/mquickjs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MicroQuickJS</a></td>
  2895. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a minimal port of QuickJS for microcontrollers</p></td>
  2896. </tr>
  2897. <tr style="border-top: 1px solid #aaa;">
  2898. <td rowspan="9" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  2899. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2011</td>
  2900. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.phantomjs.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">PhantomJS</a></td>
  2901. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A complete <a href="http://en.wikipedia.org/wiki/WebKit?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">WebKit</a> renderer, since obsoleted.</p></td>
  2902. </tr>
  2903. <tr style="border-top: 1px solid #aaa;">
  2904. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2012</td>
  2905. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/subtleGradient/javascript.tmbundle?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">javascript.tmbundle</a></td>
  2906. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An indispensable &#8220;TextMate&#8221;:apps/TextMate add-on (the autocompletion features alone are priceless)</p></td>
  2907. </tr>
  2908. <tr style="border-top: 1px solid #aaa;">
  2909. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016</td>
  2910. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ekalinin/nodeenv?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">nodeenv</a></td>
  2911. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A sane way to install multiple versions of Node in segregated environments.
  2912. Downloads prebuilt binaries on macOS, Linux and Windows.</p></td>
  2913. </tr>
  2914. <tr style="border-top: 1px solid #aaa;">
  2915. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/facebookincubator/create-react-app?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">create-react-app</a></td>
  2916. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A bootstrap tool for React apps.</p></td>
  2917. </tr>
  2918. <tr style="border-top: 1px solid #aaa;">
  2919. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2017</td>
  2920. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/zeit/pkg?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pkg</a></td>
  2921. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Package Node projects into an executable</p></td>
  2922. </tr>
  2923. <tr style="border-top: 1px solid #aaa;">
  2924. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  2925. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/vercel/pkg?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pkg</a></td>
  2926. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Package Node apps into standalone binaries</p></td>
  2927. </tr>
  2928. <tr style="border-top: 1px solid #aaa;">
  2929. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  2930. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/statelyai/xstate?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">xstate</a></td>
  2931. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>JavaScript and TypeScript finite state machines and statecharts.</p></td>
  2932. </tr>
  2933. <tr style="border-top: 1px solid #aaa;">
  2934. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  2935. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/hexojs/hexo?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Hexo</a></td>
  2936. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a static site generator</p></td>
  2937. </tr>
  2938. <tr style="border-top: 1px solid #aaa;">
  2939. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  2940. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/vercel-labs/portless?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">portless</a></td>
  2941. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Node-based CLI that runs your dev server through a local proxy so every service gets a stable <name>.localhost URL (with HTTPS/2, host sync, and auto-managed ports for subdomains/worktrees).</name></p></td>
  2942. </tr>
  2943. <tr style="border-top: 1px solid #aaa;">
  2944. <td rowspan="23" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">UI</td>
  2945. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2007</td>
  2946. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://simile.mit.edu/timeline/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Timeline</a></td>
  2947. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a draggable timeline widget</p></td>
  2948. </tr>
  2949. <tr style="border-top: 1px solid #aaa;">
  2950. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2011</td>
  2951. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://jweir.github.com/colorwheel/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Color Wheel</a></td>
  2952. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A color picker component</p></td>
  2953. </tr>
  2954. <tr style="border-top: 1px solid #aaa;">
  2955. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://stephencelis.com/projects/timeframe?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link#example_information" rel="external" style="color: #0000cc;">Timeframe</a></td>
  2956. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Amazing calendar widget with support for date range selection.</p></td>
  2957. </tr>
  2958. <tr style="border-top: 1px solid #aaa;">
  2959. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2012</td>
  2960. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ccampbell/mousetrap?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Mousetrap</a></td>
  2961. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a very nice way to handle keyboard shortcuts</p></td>
  2962. </tr>
  2963. <tr style="border-top: 1px solid #aaa;">
  2964. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/sporritt/jsplumb/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">jsPlumb</a></td>
  2965. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Yahoo pipes-like library</p></td>
  2966. </tr>
  2967. <tr style="border-top: 1px solid #aaa;">
  2968. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2969. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://buunguyen.github.io/rainbow.js?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">rainbow.js</a></td>
  2970. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A slim progress bar</p></td>
  2971. </tr>
  2972. <tr style="border-top: 1px solid #aaa;">
  2973. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://github.hubspot.com/odometer?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Odometer</a></td>
  2974. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A library for counters with smooth transitions</p></td>
  2975. </tr>
  2976. <tr style="border-top: 1px solid #aaa;">
  2977. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://ricostacruz.com/nprogress?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">nprogress</a></td>
  2978. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Another slim progress bar</p></td>
  2979. </tr>
  2980. <tr style="border-top: 1px solid #aaa;">
  2981. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ChiperSoft/Kalendae?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Kalendae</a></td>
  2982. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a very impressive, framework-agnostic date picker</p></td>
  2983. </tr>
  2984. <tr style="border-top: 1px solid #aaa;">
  2985. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/matthewmueller/date?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">date</a></td>
  2986. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A date parser that can take pseudo-natural language strings</p></td>
  2987. </tr>
  2988. <tr style="border-top: 1px solid #aaa;">
  2989. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  2990. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://framerjs.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Framerjs</a></td>
  2991. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>For designing interactive prototypes</p></td>
  2992. </tr>
  2993. <tr style="border-top: 1px solid #aaa;">
  2994. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2015</td>
  2995. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/aFarkas/lazysizes?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">lazysizes</a></td>
  2996. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>For lazy image loading</p></td>
  2997. </tr>
  2998. <tr style="border-top: 1px solid #aaa;">
  2999. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/bevacqua/dragula?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">dragula</a></td>
  3000. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a cute drag and drop library</p></td>
  3001. </tr>
  3002. <tr style="border-top: 1px solid #aaa;">
  3003. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2018</td>
  3004. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/zircleUI/zircleUI?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">zircleUI</a></td>
  3005. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Vue-based framework for developing zoomable UIs (especially nice for touchscreen displays)</p></td>
  3006. </tr>
  3007. <tr style="border-top: 1px solid #aaa;">
  3008. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  3009. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/alyssaxuu/flowy?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Flowy</a></td>
  3010. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a library for implementing flowchart editors with drag and drop</p></td>
  3011. </tr>
  3012. <tr style="border-top: 1px solid #aaa;">
  3013. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/scrumpy/tiptap?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">tiptap</a></td>
  3014. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a nicely featured editor component for Vue.js</p></td>
  3015. </tr>
  3016. <tr style="border-top: 1px solid #aaa;">
  3017. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  3018. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/arwes/arwes?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">arwes</a></td>
  3019. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a React-based framework with a futuristic look and feel</p></td>
  3020. </tr>
  3021. <tr style="border-top: 1px solid #aaa;">
  3022. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/neutralinojs/neutralinojs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">neutralino</a></td>
  3023. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a lightweight alternative to Electron</p></td>
  3024. </tr>
  3025. <tr style="border-top: 1px solid #aaa;">
  3026. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/sampotts/plyr?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">plyr</a></td>
  3027. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a customizable HTML5 video player component</p></td>
  3028. </tr>
  3029. <tr style="border-top: 1px solid #aaa;">
  3030. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  3031. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/yue/yue?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Yue</a></td>
  3032. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a cross-platform C++ library for writing desktop apps</p></td>
  3033. </tr>
  3034. <tr style="border-top: 1px solid #aaa;">
  3035. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  3036. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/lowlighter/mizu?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">mizu</a></td>
  3037. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a lightweight HTML templating library for any-side rendering with support for custom elements</p></td>
  3038. </tr>
  3039. <tr style="border-top: 1px solid #aaa;">
  3040. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/shadcn-ui/ui?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">shadcn-ui</a></td>
  3041. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a nice-looking React component library</p></td>
  3042. </tr>
  3043. <tr style="border-top: 1px solid #aaa;">
  3044. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  3045. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/zumerlab/zumly?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Zumly</a></td>
  3046. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a JavaScript library for hierarchical zoom navigation and structured zoomable user interfaces with pluggable transition drivers.</p></td>
  3047. </tr>
  3048. <tr style="border-top: 1px solid #aaa;">
  3049. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Web Frameworks</td>
  3050. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  3051. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/honojs/hono?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Hono</a></td>
  3052. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>another lightweight web framework, focusing on edge platforms</p></td>
  3053. </tr>
  3054. <tr style="border-top: 1px solid #aaa;">
  3055. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">WebGL</td>
  3056. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  3057. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/txstc55/moebius-effect-threejs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">moebius-effect-threejs</a></td>
  3058. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Moebius/cel-shading effect implemented in Three.js using custom shaders &#8212; specular, diffuse, and outline passes for a stylised hand-drawn look</p></td>
  3059. </tr>
  3060. </tbody>
  3061. </table>
  3062. <br/>
  3063. ]]></content>
  3064. <category term="resources" label="resources" />
  3065. <category term="languages" label="languages" />
  3066. <category term="programming" label="programming" />
  3067. <category term="scripting" label="scripting" />
  3068. </entry>
  3069. <entry>
  3070. <title>AirPlay</title>
  3071. <id>https://taoofmac.com/space/com/apple/airplay?utm_content=atom</id>
  3072. <published>2012-01-21T12:29:43+00:00</published>
  3073. <updated>2026-05-08T19:17:51+00:00</updated>
  3074. <author>
  3075. <name>Rui Carmo</name>
  3076. <uri>https://taoofmac.com</uri>
  3077. </author>
  3078. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/com/apple/airplay?utm_content=atom"/>
  3079. <content type="html"><![CDATA[
  3080. <p class="lead">AirPlay is a generic name for a number of <a href="/space/com/apple" rel="next" style="color: #0000cc;">Apple</a> technologies, the most interesting of which is its <a href="/space/protocols/http" rel="next" style="color: #0000cc;">HTTP</a>-based photo and video sharing protocol.</p>
  3081. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/com/apple/airplay#resources" style="color: #0000cc;"><h2 id="resources">Resources</h2></a><p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  3082. <thead>
  3083. <tr style="border-top: 1px solid #aaa;">
  3084. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  3085. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  3086. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  3087. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  3088. </tr>
  3089. </thead>
  3090. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  3091. <tr style="border-top: 1px solid #aaa;">
  3092. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">AirPlay 2</td>
  3093. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  3094. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/lmcgartland/airplay2-rs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">airplay2-rs</a></td>
  3095. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Open-source AirPlay 2 audio sender in Rust &#8212; mDNS discovery, RAOP/RTSP pairing, ALAC encoding, buffered audio sync</p></td>
  3096. </tr>
  3097. <tr style="border-top: 1px solid #aaa;">
  3098. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  3099. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/openairplay/airplay2-receiver?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">airplay2-receiver</a></td>
  3100. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Python-based AirPlay 2 receiver</p></td>
  3101. </tr>
  3102. <tr style="border-top: 1px solid #aaa;">
  3103. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/openairplay/goplay2?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">goplay2</a></td>
  3104. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Go-based AirPlay 2 receiver</p></td>
  3105. </tr>
  3106. <tr style="border-top: 1px solid #aaa;">
  3107. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Receivers</td>
  3108. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  3109. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/neon443/AirAP?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">AirAP</a></td>
  3110. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>iOS receiver for AirPlay</p></td>
  3111. </tr>
  3112. <tr style="border-top: 1px solid #aaa;">
  3113. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  3114. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/FDH2/UxPlay?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">UxPlay</a></td>
  3115. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Generic Linux mirroring daemon with AirPlay v2 and video mirroring support</p></td>
  3116. </tr>
  3117. <tr style="border-top: 1px solid #aaa;">
  3118. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  3119. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/FD-/RPiPlay?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">RPiPlay</a></td>
  3120. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Raspberry Pi-compatible AirPlay mirroring server</p></td>
  3121. </tr>
  3122. <tr style="border-top: 1px solid #aaa;">
  3123. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/lrusak/shairport-display-qt?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">shairport-display-qt</a></td>
  3124. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Qt display frontend for shairport</p></td>
  3125. </tr>
  3126. <tr style="border-top: 1px solid #aaa;">
  3127. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mikebrady/shairport-sync?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">shairport-sync</a></td>
  3128. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>AirPlay audio receiver &#8212; what I use on a Pi 3</p></td>
  3129. </tr>
  3130. <tr style="border-top: 1px solid #aaa;">
  3131. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2012</td>
  3132. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/juhovh/shairplay?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">shairplay</a></td>
  3133. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>AirPlay/RAOP server library</p></td>
  3134. </tr>
  3135. <tr style="border-top: 1px solid #aaa;">
  3136. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Reference</td>
  3137. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://nto.github.com/AirPlay.html?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Unofficial Protocol Specs</a></td>
  3138. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Protocol documentation including mirroring</p></td>
  3139. </tr>
  3140. <tr style="border-top: 1px solid #aaa;">
  3141. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  3142. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://code.google.com/p/airplay-nmt/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">airplay-nmt</a></td>
  3143. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>C-based server for embedded devices</p></td>
  3144. </tr>
  3145. <tr style="border-top: 1px solid #aaa;">
  3146. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/rcarmo/pyairplay?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pyairplay</a></td>
  3147. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Protocol testbed</p></td>
  3148. </tr>
  3149. </tbody>
  3150. </table>
  3151. <br/>
  3152. ]]></content>
  3153. </entry>
  3154. <entry>
  3155. <title>Docker</title>
  3156. <id>https://taoofmac.com/space/os/linux/docker?utm_content=atom</id>
  3157. <published>2013-09-02T10:30:00+00:00</published>
  3158. <updated>2026-05-08T19:13:44+00:00</updated>
  3159. <author>
  3160. <name>Rui Carmo</name>
  3161. <uri>https://taoofmac.com</uri>
  3162. </author>
  3163. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/os/linux/docker?utm_content=atom"/>
  3164. <content type="html"><![CDATA[
  3165. <p class="lead">The new hotness in the Linux container space (because nobody remembers <code>LXC</code> anymore).</p>
  3166. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/os/linux/docker#resources" style="color: #0000cc;"><h2 id="resources">Resources</h2></a><p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  3167. <thead>
  3168. <tr style="border-top: 1px solid #aaa;">
  3169. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  3170. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  3171. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  3172. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  3173. </tr>
  3174. </thead>
  3175. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  3176. <tr style="border-top: 1px solid #aaa;">
  3177. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Base Images</td>
  3178. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2015</td>
  3179. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/gliderlabs/docker-alpine?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gliderlabs/alpine</a></td>
  3180. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A minimal Alpine Linux base image</p></td>
  3181. </tr>
  3182. <tr style="border-top: 1px solid #aaa;">
  3183. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/phusion/baseimage-docker?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">phusion/baseimage-docker</a></td>
  3184. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an arguably sane Ubuntu base image</p></td>
  3185. </tr>
  3186. <tr style="border-top: 1px solid #aaa;">
  3187. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">CLI</td>
  3188. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/codekitchen/dinghy?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">codekitchen/dinghy</a></td>
  3189. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a nice wrapper that sets up a host NFS server and other niceties</p></td>
  3190. </tr>
  3191. <tr style="border-top: 1px solid #aaa;">
  3192. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/j-bennet/wharfee?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Wharfee</a></td>
  3193. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a nice CLI wrapper</p></td>
  3194. </tr>
  3195. <tr style="border-top: 1px solid #aaa;">
  3196. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  3197. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Yelp/dockersh?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">dockersh</a></td>
  3198. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Segregate logged in users into different containers</p></td>
  3199. </tr>
  3200. <tr style="border-top: 1px solid #aaa;">
  3201. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Distros</td>
  3202. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  3203. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://coreos.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Core OS</a></td>
  3204. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a lightweight distro focused on containers, since acquired by RedHat</p></td>
  3205. </tr>
  3206. <tr style="border-top: 1px solid #aaa;">
  3207. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">GUI</td>
  3208. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  3209. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/louislam/dockge?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Dockge</a></td>
  3210. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a self-hosted, stack-oriented Docker Compose manager with a reactive UI</p></td>
  3211. </tr>
  3212. <tr style="border-top: 1px solid #aaa;">
  3213. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  3214. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/getarcaneapp/arcane?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Arcane</a></td>
  3215. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Portainer alternative</p></td>
  3216. </tr>
  3217. <tr style="border-top: 1px solid #aaa;">
  3218. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016</td>
  3219. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="/space/os/linux/docker/portainer" rel="nofollow" style="color: #0000cc;">Portainer</a></td>
  3220. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a simple NodeJS Web UI</p></td>
  3221. </tr>
  3222. <tr style="border-top: 1px solid #aaa;">
  3223. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2015</td>
  3224. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/SUSE/Portus)?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Portus</a></td>
  3225. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A registry front-end that works with the v2 registry and has some user management features.</p></td>
  3226. </tr>
  3227. <tr style="border-top: 1px solid #aaa;">
  3228. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  3229. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tobegit3hub/seagull?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Seagull</a></td>
  3230. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Web UI for container management</p></td>
  3231. </tr>
  3232. <tr style="border-top: 1px solid #aaa;">
  3233. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Mac Alternatives</td>
  3234. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  3235. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/heyvito/podman-macos?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">podman-macos</a></td>
  3236. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a menubar item to manage <tt>podman machine</tt>, which is in turn available on Homebrew</p></td>
  3237. </tr>
  3238. <tr style="border-top: 1px solid #aaa;">
  3239. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/lima-vm/lima?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">lima</a></td>
  3240. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a possible replacement for Docker Desktop on Mac</p></td>
  3241. </tr>
  3242. <tr style="border-top: 1px solid #aaa;">
  3243. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  3244. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ailispaw/boot2docker-xhyve?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">boot2docker-xhyve</a></td>
  3245. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a clean way to run Docker inside Hypervisor.framework</p></td>
  3246. </tr>
  3247. <tr style="border-top: 1px solid #aaa;">
  3248. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Network</td>
  3249. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2018</td>
  3250. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jpetazzo/pipework?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pipework</a></td>
  3251. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>map physical interfaces to specific containers</p></td>
  3252. </tr>
  3253. <tr style="border-top: 1px solid #aaa;">
  3254. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2015</td>
  3255. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/socketplane/socketplane?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">socketplane</a></td>
  3256. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Auto-discovery and OVS for inter-host traffic</p></td>
  3257. </tr>
  3258. <tr style="border-top: 1px solid #aaa;">
  3259. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  3260. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/weaveworks/weave?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">weave</a></td>
  3261. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>inter-host tunneling, with encryption</p></td>
  3262. </tr>
  3263. <tr style="border-top: 1px solid #aaa;">
  3264. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">OCI Tools</td>
  3265. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  3266. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/docker-slim/docker-slim?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">docker-slim</a></td>
  3267. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>performs simple runtime analysis to remove unnecessary libraries and slim down images</p></td>
  3268. </tr>
  3269. <tr style="border-top: 1px solid #aaa;">
  3270. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2018</td>
  3271. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/projectatomic/buildah?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">buildah</a></td>
  3272. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a CLI tool for builting OCI container images from <code>Dockerfile</code>s</p></td>
  3273. </tr>
  3274. <tr style="border-top: 1px solid #aaa;">
  3275. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Orchestration</td>
  3276. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2015</td>
  3277. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://kubernetes.io?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Kubernetes</a></td>
  3278. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>The current industry favorite</p></td>
  3279. </tr>
  3280. <tr style="border-top: 1px solid #aaa;">
  3281. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.rancher.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Rancher</a></td>
  3282. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Still arguably one of the nicer options in 2018</p></td>
  3283. </tr>
  3284. <tr style="border-top: 1px solid #aaa;">
  3285. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Other runtimes</td>
  3286. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  3287. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/apple/containerd?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">container</a></td>
  3288. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Apple&#8217;s own container host, with a Docker-like interface</p></td>
  3289. </tr>
  3290. <tr style="border-top: 1px solid #aaa;">
  3291. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  3292. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/containerd/nerdctl?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">nerdctl</a></td>
  3293. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>can be used to manage containers in containerd/k3s</p></td>
  3294. </tr>
  3295. <tr style="border-top: 1px solid #aaa;">
  3296. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  3297. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/containers/libpod?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">podman</a></td>
  3298. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>aims for 1:1 CLI parity (see also Buildah and Skopeo)</p></td>
  3299. </tr>
  3300. <tr style="border-top: 1px solid #aaa;">
  3301. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2018</td>
  3302. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://www.sylabs.io?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Singularity</a></td>
  3303. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a different take on containers, not quite OCI compliant</p></td>
  3304. </tr>
  3305. <tr style="border-top: 1px solid #aaa;">
  3306. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">PaaS</td>
  3307. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  3308. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/CapRover/CapRover?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">CapRover</a></td>
  3309. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a nice web front-end for Docker Swarm</p></td>
  3310. </tr>
  3311. <tr style="border-top: 1px solid #aaa;">
  3312. <td rowspan="11" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  3313. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2026</td>
  3314. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/kOlapsis/maintenant?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">maintenant</a></td>
  3315. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Single-container monitoring stack &#8212; auto-discovers Docker services, built-in dashboards, alerts, uptime checks, no config needed</p></td>
  3316. </tr>
  3317. <tr style="border-top: 1px solid #aaa;">
  3318. <td rowspan="7" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2025</td>
  3319. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Mcrich23/Container-Compose?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Container-Compose</a></td>
  3320. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>docker compose for Apple&#8217;s container engine</p></td>
  3321. </tr>
  3322. <tr style="border-top: 1px solid #aaa;">
  3323. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cirruslabs/tart?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">tart</a></td>
  3324. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a macOS VM manager targeting CI/CD applications</p></td>
  3325. </tr>
  3326. <tr style="border-top: 1px solid #aaa;">
  3327. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/crazy-max/diun?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Diun</a></td>
  3328. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A tool to monitor Docker images and notify when updates are available</p></td>
  3329. </tr>
  3330. <tr style="border-top: 1px solid #aaa;">
  3331. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/krallin/tini?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">tini</a></td>
  3332. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tiny init system for Docker containers, to handle zombie processes and reaping</p></td>
  3333. </tr>
  3334. <tr style="border-top: 1px solid #aaa;">
  3335. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/psviderski/uncloud?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">uncloud</a></td>
  3336. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a lightweight clustering and container orchestration tool</p></td>
  3337. </tr>
  3338. <tr style="border-top: 1px solid #aaa;">
  3339. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/psviderski/unregistry?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">unregistry</a></td>
  3340. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tool for directly copying images between servers without a registry.</p></td>
  3341. </tr>
  3342. <tr style="border-top: 1px solid #aaa;">
  3343. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tilt-dev/tilt?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">tilt</a></td>
  3344. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tool for managing local development environments, with a focus on Kubernetes and Docker</p></td>
  3345. </tr>
  3346. <tr style="border-top: 1px solid #aaa;">
  3347. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  3348. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jesseduffield/lazydocker/blob/master/README.md?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">lazydocker</a></td>
  3349. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a nice TUI for Docker management, with usage charts and easy stack/compose viewing (Portainer for terminals)</p></td>
  3350. </tr>
  3351. <tr style="border-top: 1px solid #aaa;">
  3352. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  3353. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/89luca89/distrobox?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">distrobox</a></td>
  3354. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a nice wrapper for sandbox management</p></td>
  3355. </tr>
  3356. <tr style="border-top: 1px solid #aaa;">
  3357. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/abiosoft/colima?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">colima</a></td>
  3358. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a macOS VM container manager that replaces Docker desktop and works well with <code>brew</code>.</p></td>
  3359. </tr>
  3360. </tbody>
  3361. </table>
  3362. <a class="anchor" id="anchor-setting-up" rel="anchor" href="/space/os/linux/docker#setting-up" style="color: #0000cc;"><h2 id="setting-up-boot2docker-manually-on-parallels">Setting up <code>boot2docker</code> manually on Parallels</h2></a><p>Since I don&#8217;t have Parallels Pro, I run Docker on my older Macs like this:</p>
  3363. <ul>
  3364. <li>Download a <a href="https://github.com/boot2docker/boot2docker/releases?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">recent release</a> and put the ISO someplace safe</li>
  3365. <li>Create a new VM manually by dragging the ISO to Parallels (use the <code>Shared</code> or <code>NAT</code> network type)</li>
  3366. <li>After first boot, use <code>fdisk</code> to create a primary partition in <code>/dev/sda</code> and format it using <code>mkfs.ext4 -L boot2docker-data /dev/sda1</code></li>
  3367. <li>Reboot so that it gets mounted and used for certificate storage</li>
  3368. <li>Do <code>brew install docker</code> (which gets you the CLI)</li>
  3369. <li>Set up port forwarding for port 2376 and a local port to the VM&#8217;s SSH port</li>
  3370. <li>SSH into the VM (<code>docker</code>/<code>tcuser</code>) and copy the <code>*.pem</code> files from <code>/var/lib/boot2docker/tls</code> to your <code>~/.docker</code> folder</li>
  3371. <li>Set and export <code>DOCKER_HOST</code> and <code>DOCKER_TLS_VERIFY</code> accordingly:</li>
  3372. </ul>
  3373. <div class="highlight"><pre style="font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, 'Cascadia Code', 'Cascadia Mono', 'Consolas', 'DejaVu Sans Mono', 'Segoe UI Mono', 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro','Fira Code','Fira Mono', 'Droid Sans Mono', 'Courier New', monospace !important;"><span/><span class="nb">export</span><span class="w"> </span><span class="nv">DOCKER_HOST</span><span class="o">=</span>localhost:2376
  3374. <span class="nb">export</span><span class="w"> </span><span class="nv">DOCKER_TLS_VERIFY</span><span class="o">=</span><span class="m">1</span>
  3375. </pre></div><a class="anchor" id="anchor-useful" rel="anchor" href="/space/os/linux/docker#useful" style="color: #0000cc;"><h2 id="useful-dockerfile-snippets">Useful <code>Dockerfile</code> Snippets</h2></a><p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  3376. <thead>
  3377. <tr style="border-top: 1px solid #aaa;">
  3378. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Base Image</th>
  3379. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Description</th>
  3380. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Dockerfile snippet</th>
  3381. </tr>
  3382. </thead>
  3383. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  3384. <tr style="border-top: 1px solid #aaa;">
  3385. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Ubuntu</td>
  3386. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Installing the Oracle JDK (and setting the EULA)</td>
  3387. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><pre style="font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, 'Cascadia Code', 'Cascadia Mono', 'Consolas', 'DejaVu Sans Mono', 'Segoe UI Mono', 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro','Fira Code','Fira Mono', 'Droid Sans Mono', 'Courier New', monospace !important;">RUN echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections \
  3388. &amp;&amp; add-apt-repository -y ppa:webupd8team/java \
  3389. &amp;&amp; apt-get install -y java-common oracle-java8-installer oracle-java8-set-default \
  3390. &amp;&amp; rm -rf /var/cache/oracle-jdk8-installer
  3391. </pre></td>
  3392. </tr>
  3393. </tbody>
  3394. </table>
  3395. <a class="anchor" id="anchor-building-the-docker-registry-from-scratch-on-arm-too" rel="anchor" href="/space/os/linux/docker#building-the-docker-registry-from-scratch-on-arm-too" style="color: #0000cc;"><h2 id="building-the-docker-registry-from-scratch-on-arm-too">Building The Docker Registry From Scratch (on ARM, too!)</h2></a><p>Very simple, really, once you have <a href="/space/dev/golang" rel="next" style="color: #0000cc;">Go</a> installed. Quite quick on a <a href="/space/hw/raspberry_pi" rel="next" style="color: #0000cc;">Raspberry Pi</a> 2, too:</p>
  3396. <div class="highlight"><pre style="font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, 'Cascadia Code', 'Cascadia Mono', 'Consolas', 'DejaVu Sans Mono', 'Segoe UI Mono', 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro','Fira Code','Fira Mono', 'Droid Sans Mono', 'Courier New', monospace !important;"><span/><span class="nb">export</span><span class="w"> </span><span class="nv">GOPATH</span><span class="o">=</span><span class="nv">$HOME</span>/go
  3397. <span class="nb">export</span><span class="w"> </span><span class="nv">PATH</span><span class="o">=</span><span class="nv">$GOPATH</span>/bin:<span class="nv">$PATH</span>
  3398. <span class="c1"># this fetches godep and golint</span>
  3399. go<span class="w"> </span>get<span class="w"> </span>github.com/tools/godep<span class="w"> </span>github.com/golang/lint/golint
  3400. <span class="c1"># this fetches and builds the registry</span>
  3401. go<span class="w"> </span>get<span class="w"> </span>github.com/docker/distribution/cmd/registry
  3402. <span class="c1"># test it with the default config</span>
  3403. <span class="nv">$GOPATH</span>/bin/registry<span class="w"> </span><span class="nv">$GOPATH</span>/src/github.com/docker/distribution/cmd/registry/config.yml
  3404. </pre></div><a class="anchor" id="anchor-restarting-a-container-automatically-in-docker-compose" rel="anchor" href="/space/os/linux/docker#restarting-a-container-automatically-in-docker-compose" style="color: #0000cc;"><h2 id="restarting-a-container-automatically-in-docker-compose">Restarting a Container Automatically in Docker Compose</h2></a><p>Since <code>watchtower</code> only does updates and not restarts (which seems like a missed opportunity), this simple snippet will restart a container at a specific time every day:</p>
  3405. <div class="highlight"><pre style="font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, 'Cascadia Code', 'Cascadia Mono', 'Consolas', 'DejaVu Sans Mono', 'Segoe UI Mono', 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro','Fira Code','Fira Mono', 'Droid Sans Mono', 'Courier New', monospace !important;"><span/><code><span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="s">"3"</span>
  3406. <span class="nt">services</span><span class="p">:</span>
  3407.  
  3408. <span class="w">  </span><span class="nt">myservice</span><span class="p">:</span>
  3409. <span class="w">    </span><span class="nt">container_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">myservice</span>
  3410.  
  3411. <span class="w">  </span><span class="nt">restarter</span><span class="p">:</span>
  3412. <span class="w">    </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">docker:cli</span>
  3413. <span class="w">    </span><span class="nt">restart</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">unless-stopped</span>
  3414. <span class="w">    </span><span class="nt">volumes</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="s">"/var/run/docker.sock:/var/run/docker.sock"</span><span class="p p-Indicator">]</span>
  3415. <span class="w">    </span><span class="nt">entrypoint</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="s">"/bin/sh"</span><span class="p p-Indicator">,</span><span class="s">"-c"</span><span class="p p-Indicator">]</span>
  3416. <span class="w">    </span><span class="nt">command</span><span class="p">:</span>
  3417. <span class="w">      </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="p p-Indicator">|</span>
  3418. <span class="w">        </span><span class="no">while true; do</span>
  3419. <span class="w">          </span><span class="no">current_epoch=$$(date +%s)</span>
  3420. <span class="w">          </span><span class="no">target_epoch=$$(( $$(date -d "05:00" +%s) + 86400 ))</span>
  3421. <span class="w">          </span><span class="no">sleep_seconds=$$(( target_epoch - current_epoch ))</span>
  3422. <span class="w">          </span><span class="no">echo "$$(date) + $$sleep_seconds seconds"</span>
  3423. <span class="w">          </span><span class="no">sleep $$sleep_seconds</span>
  3424.  
  3425. <span class="w">          </span><span class="no">docker restart myservice</span>
  3426. <span class="w">        </span><span class="no">done</span>
  3427. </code></pre></div>
  3428. <br/>
  3429. ]]></content>
  3430. </entry>
  3431. </feed>
  3432.  
  3433.  
  3434.  

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid Atom 1.0" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=http%3A//the.taoofmac.com/space/RecentChanges%3Fformat%3Datom

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda