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. <feed xmlns="http://www.w3.org/2005/Atom">
  3. <title>Tao of Mac</title>
  4. <subtitle>Keeping Things Simple</subtitle>
  5. <link rel="alternate" type="text/xml" href="https://taoofmac.com"/>
  6. <link rel="self" type="application/atom+xml" href="https://taoofmac.com/atom.xml"/>
  7. <id>https://taoofmac.com/atom.xml</id>
  8. <updated>2024-07-25T08:00:00+00:00</updated>
  9. <rights>CC Attribution-NonCommercial-NoDerivs 3.0</rights>
  10. <entry>
  11. <title>Nice Things that Apple doesn’t let us have (on an iPad)</title>
  12. <id>https://taoofmac.com/space/blog/2024/07/25/0900</id>
  13. <published>2024-07-25T08:00:00+00:00</published>
  14. <updated>2024-07-25T08:00:00+00:00</updated>
  15. <author>
  16. <name>Rui Carmo</name>
  17. <uri>https://taoofmac.com</uri>
  18. </author>
  19. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/blog/2024/07/25/0900"/>
  20. <content type="html"><![CDATA[
  21. <p class="lead">This is a follow-up to a couple of previous ramblings (<a href="/space/blog/2024/07/14/1430" rel="next" style="color: #0000cc;">last week</a> and <a href="/space/blog/2024/07/03/2000" rel="next" style="color: #0000cc;">before</a>) about the iPad and its limitations, and is a list of things that I would <em>love</em> to have on an iPad, but that Apple <em>still</em> doesn&#8217;t really want us to in 2024, <em>fourteen years</em> since <a href="/space/links/2010/01/27/1950" rel="next" style="color: #0000cc;">the iPad&#8217;s debut</a>.</p>
  22. <p>Call it product vision, use cases, or just plain old monopolistic behaviour, but I&#8217;m going to list them here in the hope that someone at Apple reads this and realises that they could make a <em>lot</em> of people happy by just flipping a few switches.</p>
  23. <p>Oh, and having more enlightened App Review guidelines. But I digress.</p>
  24. <a class="anchor" id="anchor-a-native-terminal" rel="anchor" href="/space/blog/2024/07/25/0900#a-native-terminal" style="color: #0000cc;"><h2 id="a-native-terminal">A Native Terminal</h2></a><p>This is the number one, all-day, every day annoyance that I have. We&#8217;ve had <a href="/space/cli/ssh" rel="next" style="color: #0000cc;"><code>ssh</code></a> clients since the very beginning of iOS, but we never got a first-party one, let alone one with enough command-line capabilities to do simple scripting.</p>
  25. <p>And yes, I know that is a can of worms, and that nobody would be completely happy with whatever Apple decided to include inside such a thing. But it&#8217;s completely feasible <em>now</em>.</p>
  26. <p>Like I mentioned <a href="/space/blog/2024/07/03/2000" rel="next" style="color: #0000cc;">two weeks ago</a>, <a href="/space/apps/a-shell" rel="next" style="color: #0000cc;">a-Shell</a> goes a long way towards fixing that, and proves that you can do an incredible amount of stuff with a simple sandboxed environment (that is even extensible via <a href="/space/dev/wasm" rel="next" style="color: #0000cc;">WASM</a> binaries).</p>
  27. <a class="anchor" id="anchor-jited-emulation" rel="anchor" href="/space/blog/2024/07/25/0900#jited-emulation" style="color: #0000cc;"><h2 id="jited-emulation">JITed Emulation</h2></a><p>Yes, game emulators are a thing. Fine. I honestly don&#8217;t care&#8211;what I do care about is having something like <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, sadly, seems to have gone into maintenance mode) to have a <em>better</em> terminal sandbox that could at least run emulated binaries at a usable pace.</p>
  28. <p>And I&#8217;m using <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> as an example because I&#8217;ve been using it for far longer than <a href="/space/blog/2024/07/14/1430" rel="next" style="color: #0000cc;">UTM SE</a>, which, as I wrote <a href="/space/blog/2024/07/14/1430" rel="next" style="color: #0000cc;">only last week</a>, is borderline unusable but tantalisingly close to what I would love to have as a mobile development environment.</p>
  29. <p>Other people (besides emulators) have more mainstream uses for JITs (like browser engines), and I really think this could be solved with a new application entitlement (and more knowledgeable people in App Review, but I want to avoid going down that rabbit hole&#8211;I&#8217;ll just say that I recently helped a pretty big company navigate that, and my blood pressure didn&#8217;t improve).</p>
  30. <p>But even if <a href="/space/blog/2024/07/14/1430" rel="next" style="color: #0000cc;">UTM SE</a> could employ an actual JIT, there are literally much better ways to give developers usable tools.</p>
  31. <a class="anchor" id="anchor-hypervisor-support" rel="anchor" href="/space/blog/2024/07/25/0900#hypervisor-support" style="color: #0000cc;"><h2 id="hypervisor-support">Hypervisor Support</h2></a><p>This is the Brontosaurus in the room, and the thing that frustrates me the most about the iPad from a purely technical perspective.</p>
  32. <p>It&#8217;s a fact that Apple decided to remove <code>Hypervisor.framework</code> from XNU in iOS 16.4. This was done in October 2023, just as M-series chips finished taking over the top tiers of the iPad portfolio.</p>
  33. <p>I&#8217;m not a conspiracy theorist, but removing support for something that most of your &#8220;Pro&#8221; tablet hardware portfolio could leverage to run third-party software with tremendous benefits (and perhaps taking Apple out of the equation) seems&#8230; biased?</p>
  34. <p>Maybe <em>this</em> is the sort of thing the European Union should be looking into next. Just saying. Because, you see, <em>removing the ability to run third-party software via virtualization when your hardware supports it should also be seen as an anti-competitive move</em>.</p>
  35. <p>Now, this is not an immediately appealing prospect for just about anybody (usability-wise), but just imagine if I could take my Windows on ARM image, copy it over to an iPad and <em>use it to work all day</em> without downloading any more apps from the App Store.</p>
  36. <p>I know it&#8217;s technically feasible. People have made it work on jailbroken iPads&#8211;and not just &#8220;work&#8221;, but <em>work</em> properly.</p>
  37. <p>And, after <em>years</em> of running Windows on ARM on several machines (including the MacBook I&#8217;m revising this on) I have a pretty good idea of how well it would work for me.</p>
  38. <p>Sure, Parallels did a lot of polishing on the Mac, but <a href="/space/apps/utm" rel="next" style="color: #0000cc;">UTM</a> works nearly as well and very few, if any of Parallels&#8217; desktop integration features would be needed or make sense on an iPad.</p>
  39. <p>And I don&#8217;t even <em>want</em> a desktop environment, as long as I get a console and some sort of filesystem integration&#8211;the base wrappers that we&#8217;ve had to run <a href="/space/os/linux/docker" rel="next" style="color: #0000cc;">Docker</a> and Linux VMs on the Mac would be more than enough.</p>
  40. <p>But that reminds me&#8230;</p>
  41. <a class="anchor" id="anchor-a-proper-filesystem" rel="anchor" href="/space/blog/2024/07/25/0900#a-proper-filesystem" style="color: #0000cc;"><h2 id="a-proper-filesystem">A Proper Filesystem</h2></a><p>Files is a half-hearted, half-baked attempt at giving people just enough Finder features that they forget about the complete mess that lies underneath, and as someone who constantly deals with iOS file providers as I use <a href="/space/apps/a-shell" rel="next" style="color: #0000cc;">a-Shell</a> to access <a href="https://workingcopy.app?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Working Copy</a> repositories or <a href="https://blink.sh?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Blink</a>&#8217;s excellent <a href="/space/cli/vim" rel="next" style="color: #0000cc;"><code>vim</code></a> to power-edit some <a href="/space/apps/ia_writer" rel="next" style="color: #0000cc;">iA Writer</a> long-form, I would love to see it metaphorically taken out behind Apple Park and shot (politely), or at least given a very stern talking to.</p>
  42. <p>Oh, wait, Apple Park is a circle. Nevermind.</p>
  43. <a class="anchor" id="anchor-pairing-an-apple-watch-starring-apple-health" rel="anchor" href="/space/blog/2024/07/25/0900#pairing-an-apple-watch-starring-apple-health" style="color: #0000cc;"><h2 id="pairing-an-apple-watch-starring-apple-health">Pairing an Apple Watch (starring Apple Health)</h2></a><p>I would <em>love</em> to ditch my iPhone, get a cellular Apple Watch instead and just pair it to my iPad mini&#8211;which, by the way, cannot do voice calls, but I&#8217;m going to let that one slide because this list is already getting too long and I understand about handset certification.</p>
  44. <p>We <em>finally</em> got a Health app on the iPad that is actually good enough to use (in general), so the only real reason for tethering the watch to an iPhone is&#8230; making sure people buy one even if their lifestyle, professional constraints (or even handicaps) make it pointless to have it.</p>
  45. <a class="anchor" id="anchor-handling-multiple-audio-devices" rel="anchor" href="/space/blog/2024/07/25/0900#handling-multiple-audio-devices" style="color: #0000cc;"><h2 id="handling-multiple-audio-devices">Handling Multiple Audio Devices</h2></a><p>This is a hobbyist musician&#8217;s gripe (and, of course, also a hipster podcaster&#8217;s concern, so I suspect it might get more visibility that way), but the iPad is completely hopeless at handling external audio devices.</p>
  46. <p>MIDI, being a simple signalling protocol, works fine, but multi-channel audio, despite (finally) getting a modicum of support in Logic Pro for iPad, is still a mess and isn&#8217;t properly supported anywhere in the iPad&#8217;s standard UI.</p>
  47. <p>So routing inbound and outbound audio along different device paths falls somewhere between a crapshoot and no option at all.</p>
  48. <a class="anchor" id="anchor-use-the-trackpad-in-continuity" rel="anchor" href="/space/blog/2024/07/25/0900#use-the-trackpad-in-continuity" style="color: #0000cc;"><h2 id="use-the-trackpad-in-continuity">Use The Trackpad in Continuity</h2></a><p>And finally, being unable to control a Mac&#8217;s mouse with a local trackpad or mouse when you use Continuity to extend (or mirror) your Mac&#8217;s display to an iPad makes me absolutely certain that Apple does not want people to run macOS on an iPad, either vicariously or by proxy.</p>
  49. <p><code>$DIVINITY</code> forbid that I should be able to use my iPad to use my desktop Mac from my couch. That would be <em>too much</em>, and certainly a missed opportunity for me to by a MacBook Air.</p>
  50. <p>Oh, and I just realized that I was only able to use a mouse with my iPad in 2016 because <a href="/space/blog/2016/11/06/1930" rel="next" style="color: #0000cc;">there were workarounds</a>. We only got official mouse and trackpad support <a href="/space/links/2020/03/18/1232" rel="next" style="color: #0000cc;">four years later</a> anyway&#8230;</p>
  51. <a class="anchor" id="anchor-bonus-round-multi-user-support" rel="anchor" href="/space/blog/2024/07/25/0900#bonus-round-multi-user-support" style="color: #0000cc;"><h2 id="bonus-round-multi-user-support">Bonus Round: Multi-User Support</h2></a><p>This was the first feedback I got within minutes of this going online, and I have to agree. I&#8217;ve been so used to the way Apple thinks of iPads as single-user devices that it was a blind spot in my criticism.</p>
  52. <p>Multi-user support is already supported in educational settings, and I distinctly remember that the Nexus 7 (we actually owned two that I bought off eBay for my kids) supported that out of the box six years ago. Android tablets seem to have quietly dropped or hidden the feature as well (haven&#8217;t tried any recent ones), but even a 128GB iPad has enough storage for two people to use it comfortably for e-mail, browsing and media consumption.</p>
  53. <a class="anchor" id="anchor-conclusion" rel="anchor" href="/space/blog/2024/07/25/0900#conclusion" style="color: #0000cc;"><h2 id="conclusion">Conclusion</h2></a><p>Instead of any of these, <a href="/space/links/2024/06/10/2200" rel="next" style="color: #0000cc;">last WWDC</a> we got ChatGPT and&#8230; a calculator.</p>
  54. <p>Thank you, Apple.</p>
  55. <p>In the meantime, I will keep using <a href="/space/blog/2023/10/07/1830" rel="next" style="color: #0000cc;">my linux sidecar</a> and will be looking closely at things like the <a href="https://www.amazon.es/gp/product/B0D6QT7H44/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;">Minisforum V3</a> (which by all accounts can run Linux perfectly, &#8220;ticks all the boxes&#8221; in <a href="https://www.youtube.com/@AudioPilz?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Bad Gear</a> parlance and is already on my <a href="https://www.amazon.es/hz/wishlist/ls/5XCRIT5U42XL?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">wishlist</a>).</p>
  56. <br/>
  57. ]]></content>
  58. <category term="restrictions" label="restrictions" />
  59. <category term="platform" label="platform" />
  60. <category term="continuity" label="continuity" />
  61. <category term="watch" label="watch" />
  62. <category term="development" label="development" />
  63. <category term="eu" label="eu" />
  64. <category term="monopoly" label="monopoly" />
  65. <category term="hypervisor" label="hypervisor" />
  66. <category term="audio" label="audio" />
  67. <category term="ios" label="ios" />
  68. <category term="emulation" label="emulation" />
  69. <category term="competition" label="competition" />
  70. <category term="apple" label="apple" />
  71. <category term="ipad" label="ipad" />
  72. <category term="jit" label="jit" />
  73. </entry>
  74. <entry>
  75. <title>An Ode to ResEdit</title>
  76. <id>https://taoofmac.com/space/links/2024/07/24/0759</id>
  77. <published>2024-07-24T06:59:43+00:00</published>
  78. <updated>2024-07-24T06:59:43+00:00</updated>
  79. <author>
  80. <name>Rui Carmo</name>
  81. <uri>https://taoofmac.com</uri>
  82. </author>
  83. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/links/2024/07/24/0759"/>
  84. <content type="html"><![CDATA[
  85. <p><a href="https://eclecticlight.co/2024/07/20/managing-classic-mac-os-resources-in-resedit/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" title="external link to https://eclecticlight.co/2024/07/20/managing-classic-mac-os-resources-in-resedit/" alt="screenshot of https://eclecticlight.co/2024/07/20/managing-classic-mac-os-resources-in-resedit/" style="color: #0000cc;"><img class="quicklook" src="https://taoofmac.com/thumb/links/2024/07/24/0759/640,480/wmdO0KDGc5nltREg2GHaj3YLfow=/large.jpg" width="320" height="240" style="max-width: 100% !important;height: auto !important;"/></a></p>
  86. <p class="lead">As someone who (sometimes to the horror of his colleagues) regularly breaks out <a href="https://ghidra-sre.org/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Ghidra</a> to reverse engineer binaries, I blame it on RedEdit for having introduced me to the fine art of picking apart early Mac applications and figuring out out how they worked in such an elegant, genius way.</p>
  87. <p>I loved it dearly, and dimly remember later editions of Think C and Think Pascal having checkboxes to obfuscate some resources, but by and large you could do <em>a lot</em> with ResEdit and a 68K disassembler&#8230;</p>
  88. <br/>
  89. ]]></content>
  90. <category term="resources" label="resources" />
  91. <category term="engineering" label="engineering" />
  92. <category term="reverse" label="reverse" />
  93. <category term="rededit" label="rededit" />
  94. <category term="retrocomputing" label="retrocomputing" />
  95. <category term="classic" label="classic" />
  96. <category term="mac" label="mac" />
  97. <category term="nostalgia" label="nostalgia" />
  98. </entry>
  99. <entry>
  100. <title>LISP</title>
  101. <id>https://taoofmac.com/space/dev/lisp</id>
  102. <published>2014-05-14T21:07:22+00:00</published>
  103. <updated>2024-07-23T23:41:00+00:00</updated>
  104. <author>
  105. <name>Rui Carmo</name>
  106. <uri>https://taoofmac.com</uri>
  107. </author>
  108. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/dev/lisp"/>
  109. <content type="html"><![CDATA[
  110. <p class="lead">This started out as a mere stub while I put together some more resources, and over the years became a quite large list of LISP implementations I have kept an eye on.</p>
  111. <p>There are matching lists for <a href="/space/dev/scheme" rel="next" style="color: #0000cc;">Scheme</a> and <a href="/space/dev/clojure" rel="next" style="color: #0000cc;">Clojure</a>.</p>
  112. <!-- vale off -->
  113.  
  114. <blockquote>
  115. <p><em>Almost everybody has their own lisp implementation. Some programmers&#8217; dogs and cats probably have their own lisp implementations as well. This is great, but too often I see people omit some of the obscure but critical features that make lisp uniquely wonderful. These include read macros like #. and backreferences, gensyms, and properly escaped symbol names. If you&#8217;re going to waste everybody&#8217;s time with yet another lisp, at least do it right damnit.</em> <strong>(from the <code>femtolisp</code> README)</strong></p>
  116. </blockquote>
  117. <!-- vale on -->
  118.  
  119. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/dev/lisp#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%;">
  120. <thead>
  121. <tr style="border-top: 1px solid #aaa;">
  122. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  123. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  124. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  125. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  126. </tr>
  127. </thead>
  128. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  129. <tr style="border-top: 1px solid #aaa;">
  130. <td rowspan="7" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Common Lisp</td>
  131. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  132. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.sbcl.org/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Steel Bank</a></td>
  133. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"/>
  134. </tr>
  135. <tr style="border-top: 1px solid #aaa;">
  136. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://gitlab.com/embeddable-common-lisp/ecl/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Embeddable Common Lisp</a></td>
  137. </tr>
  138. <tr style="border-top: 1px solid #aaa;">
  139. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2017</td>
  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/tamamu/darkmatter?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">darkmatter</a></td>
  141. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A notebook-style LISP environment</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;">2015</td>
  145. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ceramic/ceramic?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Ceramic</a></td>
  146. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An Electron wrapper for shipping desktop applications</p></td>
  147. </tr>
  148. <tr style="border-top: 1px solid #aaa;">
  149. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  150. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://ccl.clozure.com/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Clozure CL</a></td>
  151. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Fast, runs on ARM, compiles down to native code, uses threads</p></td>
  152. </tr>
  153. <tr style="border-top: 1px solid #aaa;">
  154. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://common-lisp.net/project/mcclim/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">McCLIM</a></td>
  155. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A GUI toolkit for Common Lisp</p></td>
  156. </tr>
  157. <tr style="border-top: 1px solid #aaa;">
  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/robert-strandh/SICL?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">SICL</a></td>
  159. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A modular implementation of Common Lisp for mixing and matching.</p></td>
  160. </tr>
  161. <tr style="border-top: 1px solid #aaa;">
  162. <td rowspan="30" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Compilers</td>
  163. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</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/basilisp-lang/basilisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">basilisp</a></td>
  165. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Clojure-inspired LISP that compiles to Python AST at runtime</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;"><a href="https://github.com/kspalaiologos/kamilalisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">kamikalisp</a></td>
  169. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>functional and concise Lisp inspired by Haskell and APL</p></td>
  170. </tr>
  171. <tr style="border-top: 1px solid #aaa;">
  172. <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/squint?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">squint</a></td>
  173. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a lightweight ClojureScript-like language that compiles to JavaScript</p></td>
  174. </tr>
  175. <tr style="border-top: 1px solid #aaa;">
  176. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  177. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Mercerenies/gdlisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gdlisp</a></td>
  178. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>LISP for <a href="/space/apps/godot" rel="nofollow" style="color: #0000cc;">Godot</a></p></td>
  179. </tr>
  180. <tr style="border-top: 1px solid #aaa;">
  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/mbrock/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 (for WebAssembly)</a></td>
  182. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Lisp system for WebAssembly and native execution, written in Zig</p></td>
  183. </tr>
  184. <tr style="border-top: 1px solid #aaa;">
  185. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/pcostanza/slick?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">slick</a></td>
  186. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an S-expression syntax for Go</p></td>
  187. </tr>
  188. <tr style="border-top: 1px solid #aaa;">
  189. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/sasagawa888/eisl?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Easy-ISLisp</a></td>
  190. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an interpreter and compiler for ISLisp</p></td>
  191. </tr>
  192. <tr style="border-top: 1px solid #aaa;">
  193. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://macoy.me/code/macoy/cakelisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">cakelisp</a></td>
  194. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a game development oriented LISP that transpiles to C</p></td>
  195. </tr>
  196. <tr style="border-top: 1px solid #aaa;">
  197. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  198. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/picolisp/pil21?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Picolisp</a></td>
  199. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an LLVM-backed runtime</p></td>
  200. </tr>
  201. <tr style="border-top: 1px solid #aaa;">
  202. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  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/sbp/hedgehog?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">hedgehog LISP</a></td>
  204. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>compiler and interpreter for embedded devices</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://phel-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;">phel</a></td>
  208. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Clojure-inspired LISP that runs on top of PHP (of all things)</p></td>
  209. </tr>
  210. <tr style="border-top: 1px solid #aaa;">
  211. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</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/LingDong-/wax?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">wax</a></td>
  213. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A tiny programming language that transpiles to C, C++, Java, TypeScript, Python, C#, Swift, Lua and WebAssembly</p></td>
  214. </tr>
  215. <tr style="border-top: 1px solid #aaa;">
  216. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/anko/eslisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">eslisp</a></td>
  217. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a JavaScript preprocessor with sexps.</p></td>
  218. </tr>
  219. <tr style="border-top: 1px solid #aaa;">
  220. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  221. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://common-lisp.net/project/armedbear/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Armed Bear</a></td>
  222. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An interpreter and compiler that runs on the JVM</p></td>
  223. </tr>
  224. <tr style="border-top: 1px solid #aaa;">
  225. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://ferret-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;">Ferret</a></td>
  226. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A subset of Clojure that compiles down to C++ for embedded devices</p></td>
  227. </tr>
  228. <tr style="border-top: 1px solid #aaa;">
  229. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/carp-lang/Carp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Carp</a></td>
  230. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>another LISP that compiles to C, designed to work well for interactive and performance sensitive use cases like games, sound synthesis and visualizations.</p></td>
  231. </tr>
  232. <tr style="border-top: 1px solid #aaa;">
  233. <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>
  234. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Clojure atop Erlang</p></td>
  235. </tr>
  236. <tr style="border-top: 1px solid #aaa;">
  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/zylisp/zylisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">zylisp</a></td>
  238. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An updated fork of gisp, an early compiler to <a href="/space/dev/golang" rel="nofollow" style="color: #0000cc;">Go</a></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://www.ale-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;">ale</a></td>
  242. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a LISP environment in Go</p></td>
  243. </tr>
  244. <tr style="border-top: 1px solid #aaa;">
  245. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016</td>
  246. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/artagnon/rhine?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">rhine</a></td>
  247. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Clojure-inspired LISP that targets LLVM</p></td>
  248. </tr>
  249. <tr style="border-top: 1px solid #aaa;">
  250. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/bakpakin/Fennel?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Fennel</a></td>
  251. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A compiler to <a href="/space/dev/lua" rel="nofollow" style="color: #0000cc;">Lua</a></p></td>
  252. </tr>
  253. <tr style="border-top: 1px solid #aaa;">
  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/swdunlop/WaspVM?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Wasp LISP</a></td>
  255. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an interesting twist on special-purpose LISPs</p></td>
  256. </tr>
  257. <tr style="border-top: 1px solid #aaa;">
  258. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2015</td>
  259. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/chlorinejs/chlorine?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">chlorine</a></td>
  260. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A subset of Clojure that compiles to JavaScript</p></td>
  261. </tr>
  262. <tr style="border-top: 1px solid #aaa;">
  263. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/sharplispers/cormanlisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">cormanlisp</a></td>
  264. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>For Windows</p></td>
  265. </tr>
  266. <tr style="border-top: 1px solid #aaa;">
  267. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  268. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://hylang.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Hy</a></td>
  269. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Compiles down to <a href="/space/dev/python" rel="nofollow" style="color: #0000cc;">Python</a> AST, with full interop</p></td>
  270. </tr>
  271. <tr style="border-top: 1px solid #aaa;">
  272. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://pharen.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Pharen</a></td>
  273. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Compiles to <a href="/space/dev/php" rel="nofollow" style="color: #0000cc;">PHP</a></p></td>
  274. </tr>
  275. <tr style="border-top: 1px solid #aaa;">
  276. <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>
  277. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Compiles to <a href="/space/dev/javascript" rel="nofollow" style="color: #0000cc;">JavaScript</a>, with <a href="/space/dev/clojure" rel="nofollow" style="color: #0000cc;">Clojure</a> syntax</p></td>
  278. </tr>
  279. <tr style="border-top: 1px solid #aaa;">
  280. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jcla1/gisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gisp</a></td>
  281. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Generates <a href="/space/dev/golang" rel="nofollow" style="color: #0000cc;">Go</a> code via AST mapping</p></td>
  282. </tr>
  283. <tr style="border-top: 1px solid #aaa;">
  284. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jstepien/psota?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">psota</a></td>
  285. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Clojure compiler that targets the PyPy JIT</p></td>
  286. </tr>
  287. <tr style="border-top: 1px solid #aaa;">
  288. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/meric/l2l?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">l2l</a></td>
  289. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A compiler to <a href="/space/dev/lua" rel="nofollow" style="color: #0000cc;">Lua</a></p></td>
  290. </tr>
  291. <tr style="border-top: 1px solid #aaa;">
  292. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Editors</td>
  293. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  294. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cxxxr/lem?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">lem</a></td>
  295. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a configurable editor with an optional Electron front-end</p></td>
  296. </tr>
  297. <tr style="border-top: 1px solid #aaa;">
  298. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Environments</td>
  299. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  300. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/interlisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Medley Interlisp</a></td>
  301. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a recreation of the original LISP machine environments</p></td>
  302. </tr>
  303. <tr style="border-top: 1px solid #aaa;">
  304. <td rowspan="28" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Interpreters</td>
  305. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  306. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/codr7/sharpl?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sharpl</a></td>
  307. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a custom Lisp written in C#</p></td>
  308. </tr>
  309. <tr style="border-top: 1px solid #aaa;">
  310. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  311. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://codeberg.org/gsou/LCL?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">LCL</a></td>
  312. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An implementation of Common Lisp targeting Lua</p></td>
  313. </tr>
  314. <tr style="border-top: 1px solid #aaa;">
  315. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/lone-lang/lone?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">lone</a></td>
  316. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>designed to run directly on top of the Linux kernel without any dependencies, allows for standalone binaries</p></td>
  317. </tr>
  318. <tr style="border-top: 1px solid #aaa;">
  319. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/rekola/nanoclj?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">nanoclj</a></td>
  320. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tiny Clojure interpreter</p></td>
  321. </tr>
  322. <tr style="border-top: 1px solid #aaa;">
  323. <td rowspan="8" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  324. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.paulgraham.com/arc.html?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Arc</a></td>
  325. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a LISP written in Racket</p></td>
  326. </tr>
  327. <tr style="border-top: 1px solid #aaa;">
  328. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.paulgraham.com/bel.html?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Bel</a></td>
  329. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a LISP written in itself</p></td>
  330. </tr>
  331. <tr style="border-top: 1px solid #aaa;">
  332. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/eigenhombre/l1?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">L1</a></td>
  333. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A LISP interpreter written in Go</p></td>
  334. </tr>
  335. <tr style="border-top: 1px solid #aaa;">
  336. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ioccc-src/winner/blob/master/1989/jar.2.c?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">jar.2.c</a></td>
  337. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a mere snippet of C that won the IOCCC contest in&#8230; 1989</p></td>
  338. </tr>
  339. <tr style="border-top: 1px solid #aaa;">
  340. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nukata/lisp-in-go?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">lisp-in-go</a></td>
  341. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a 1-page LISP written in Go</p></td>
  342. </tr>
  343. <tr style="border-top: 1px solid #aaa;">
  344. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/rui314/minilisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">minilisp</a></td>
  345. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>another small C-based interpreter</p></td>
  346. </tr>
  347. <tr style="border-top: 1px solid #aaa;">
  348. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/yuriy-chumak/ol?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">otus lisp</a></td>
  349. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>like owl Scheme, but with FFI. Has a WASM build.</p></td>
  350. </tr>
  351. <tr style="border-top: 1px solid #aaa;">
  352. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://z3s5.com/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Z3S5</a></td>
  353. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>written in Go, and designed to be embeddable. Also part of a larger virtual LISP machine project.</p></td>
  354. </tr>
  355. <tr style="border-top: 1px solid #aaa;">
  356. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  357. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/marcpaq/arpilisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">arpilisp</a></td>
  358. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A LISP interpreter for the Raspberry Pi, implemented in a single file of ARM assembly.</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="https://github.com/planck-repl/planck?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">planck</a></td>
  362. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A stand-alone ClojureScript REPL for macOS and Linux based on JavaScriptCore.</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;"><a href="https://github.com/rxi/fe?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">fe</a></td>
  366. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an 800 LOC C interpreter</p></td>
  367. </tr>
  368. <tr style="border-top: 1px solid #aaa;">
  369. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ytakano/blisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Blisp</a></td>
  370. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>statically typed, implemented in Rust</p></td>
  371. </tr>
  372. <tr style="border-top: 1px solid #aaa;">
  373. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://justine.lol/sectorlisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sectorlisp</a></td>
  374. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A LISP interpreter that fits into a 512 byte boot sector</p></td>
  375. </tr>
  376. <tr style="border-top: 1px solid #aaa;">
  377. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  378. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.newlisp.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">newLISP</a></td>
  379. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Another interpreter</p></td>
  380. </tr>
  381. <tr style="border-top: 1px solid #aaa;">
  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/JeffBezanson/femtolisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">femtolisp</a></td>
  383. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tiny interpreter written in C</p></td>
  384. </tr>
  385. <tr style="border-top: 1px solid #aaa;">
  386. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/adam-mcdaniel/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>
  387. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tiny C++ implementation</p></td>
  388. </tr>
  389. <tr style="border-top: 1px solid #aaa;">
  390. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/janet-lang/janet?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Janet</a></td>
  391. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a modernized LISP dialect with good C interop and a single standalone runtime binary</p></td>
  392. </tr>
  393. <tr style="border-top: 1px solid #aaa;">
  394. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  395. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://t3x.org/klisp/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Kilo Lisp</a></td>
  396. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tiny interpreter</p></td>
  397. </tr>
  398. <tr style="border-top: 1px solid #aaa;">
  399. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://joker-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;">Joker</a></td>
  400. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Clojure interpreter written in Go</p></td>
  401. </tr>
  402. <tr style="border-top: 1px solid #aaa;">
  403. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2017</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/sctb/lumen?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">lumen</a></td>
  405. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A hosted LISP for Lua and Javascript</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;">2016</td>
  409. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://t3x.org/s9fes/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">s9fes</a></td>
  410. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A well-documented interpreter that can run on <a href="/space/os/plan9" rel="nofollow" style="color: #0000cc;">Plan9</a></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="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>
  414. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An interpreter for the <a href="/space/hw/arduino" rel="nofollow" style="color: #0000cc;">Arduino</a>, Adafruit M0/M4, Micro:bit, ESP8266/32, RISC-V, RP2040 and Teensy 4.x boards.</p></td>
  415. </tr>
  416. <tr style="border-top: 1px solid #aaa;">
  417. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  418. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/pixie-lang/pixie?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pixie</a></td>
  419. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An RPython-based lightweight <span class="caps">LISP</span></p></td>
  420. </tr>
  421. <tr style="border-top: 1px solid #aaa;">
  422. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/zhemao/glisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">glisp</a></td>
  423. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An embeddable <a href="/space/dev/golang" rel="nofollow" style="color: #0000cc;">Go</a> interpreter that compiles to bytecode</p></td>
  424. </tr>
  425. <tr style="border-top: 1px solid #aaa;">
  426. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Libraries</td>
  427. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  428. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ahungry/puny-gui?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">puny-gui</a></td>
  429. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a GUI toolkit for Janet</p></td>
  430. </tr>
  431. <tr style="border-top: 1px solid #aaa;">
  432. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/massung/r-cade?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">r-cade</a></td>
  433. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Racket library for doing simple retro-style games</p></td>
  434. </tr>
  435. <tr style="border-top: 1px solid #aaa;">
  436. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Operating Systems</td>
  437. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  438. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/vygr/ChrysaLisp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ChrysaLisp</a></td>
  439. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a fully self-contained hosted cross-platform OS written in LISP</p></td>
  440. </tr>
  441. <tr style="border-top: 1px solid #aaa;">
  442. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Reference</td>
  443. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</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/Benaiah/fennel-static-http?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">fennel-static-http</a></td>
  445. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an example for creating a static Fennel binary</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;">2021</td>
  449. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://clqr.boundp.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Common Lisp Quick Reference</a></td>
  450. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>ten-page concise, printable reference</p></td>
  451. </tr>
  452. <tr style="border-top: 1px solid #aaa;">
  453. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://gigamonkeys.com/book?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Practical Common Lisp</a></td>
  454. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>full online book</p></td>
  455. </tr>
  456. <tr style="border-top: 1px solid #aaa;">
  457. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://lispcookbook.github.io/cl-cookbook?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">The Common Lisp Cookbook</a></td>
  458. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>community maintained</p></td>
  459. </tr>
  460. <tr style="border-top: 1px solid #aaa;">
  461. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  462. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/kovisoft/slimv?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">slimv</a></td>
  463. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a SLIME equivalent for vim</p></td>
  464. </tr>
  465. <tr style="border-top: 1px solid #aaa;">
  466. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://marketplace.visualstudio.com/items?itemName=rheller.alive&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Alive</a></td>
  467. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>VS Code extension</p></td>
  468. </tr>
  469. <tr style="border-top: 1px solid #aaa;">
  470. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">UI</td>
  471. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  472. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/rabbibotton/clog?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">clog</a></td>
  473. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a GUI library for Common Lisp</p></td>
  474. </tr>
  475. <tr style="border-top: 1px solid #aaa;">
  476. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  477. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A web-based GUI library for Common Lisp</p></td>
  478. </tr>
  479. </tbody>
  480. </table>
  481. <br/>
  482. ]]></content>
  483. <category term="resources" label="resources" />
  484. <category term="interpreters" label="interpreters" />
  485. <category term="programming" label="programming" />
  486. <category term="implementations" label="implementations" />
  487. <category term="scheme" label="scheme" />
  488. <category term="language" label="language" />
  489. <category term="functional" label="functional" />
  490. <category term="compilers" label="compilers" />
  491. <category term="lisp" label="lisp" />
  492. </entry>
  493. <entry>
  494. <title>Scheme</title>
  495. <id>https://taoofmac.com/space/dev/scheme</id>
  496. <published>2006-05-08T11:11:41+00:00</published>
  497. <updated>2024-07-23T23:29:00+00:00</updated>
  498. <author>
  499. <name>Rui Carmo</name>
  500. <uri>https://taoofmac.com</uri>
  501. </author>
  502. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/dev/scheme"/>
  503. <content type="html"><![CDATA[
  504. <p class="lead">Scheme is a <a href="/space/dev/lisp" rel="next" style="color: #0000cc;">LISP</a> dialect that has not just gone its own way (as is usual with LISPs) but also achieved IEEE standardization. With a focus on lexical scope and tail call optimization, it actually contributed many of its ideas back into Common LISP.</p>
  505. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/dev/scheme#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%;">
  506. <thead>
  507. <tr style="border-top: 1px solid #aaa;">
  508. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  509. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  510. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  511. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  512. </tr>
  513. </thead>
  514. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  515. <tr style="border-top: 1px solid #aaa;">
  516. <td rowspan="10" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Compilers</td>
  517. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  518. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/wingo/whiffle?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">whiffle</a></td>
  519. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a minimal Scheme-to-C compiler</p></td>
  520. </tr>
  521. <tr style="border-top: 1px solid #aaa;">
  522. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://gitlab.com/spritely/guile-hoot?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">guile-hoot</a></td>
  523. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an AOT Scheme to WebAssembly compiler</p></td>
  524. </tr>
  525. <tr style="border-top: 1px solid #aaa;">
  526. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  527. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.gnu.org/software/kawa/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;">Kawa</a></td>
  528. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Scheme that runs on the JVM</p></td>
  529. </tr>
  530. <tr style="border-top: 1px solid #aaa;">
  531. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/udem-dlteam/ribbit?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ribbit</a></td>
  532. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>small and portable Scheme implementation with AOT compilation and 4K footprint</p></td>
  533. </tr>
  534. <tr style="border-top: 1px solid #aaa;">
  535. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  536. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cisco/ChezScheme?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Chez Scheme</a></td>
  537. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a high-performance Scheme compiler</p></td>
  538. </tr>
  539. <tr style="border-top: 1px solid #aaa;">
  540. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2018</td>
  541. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/vyzo/gerbil?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gerbil Scheme</a></td>
  542. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a layer over Gambit</p></td>
  543. </tr>
  544. <tr style="border-top: 1px solid #aaa;">
  545. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016</td>
  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/justinethier/cyclone?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Cyclone Scheme</a></td>
  547. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Supports multiple native threads</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://github.com/larcenists/larceny?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Larceny Scheme</a></td>
  551. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Compiles to Intel and ARM machine code</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://ryansuchocki.github.io/microscheme/?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>
  555. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A compiler for the <a href="/space/hw/arduino" rel="nofollow" style="color: #0000cc;">Arduino</a></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;"><a href="https://www.call-cc.org/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Chicken Scheme</a></td>
  559. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>One of the most well-known compilers</p></td>
  560. </tr>
  561. <tr style="border-top: 1px solid #aaa;">
  562. <td rowspan="11" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Interpreters</td>
  563. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  564. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ashinn/chibi-scheme?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">chibi-scheme</a></td>
  565. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an embeddable Scheme interpreter</p></td>
  566. </tr>
  567. <tr style="border-top: 1px solid #aaa;">
  568. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/racket/zuo?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">zuo</a></td>
  569. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tiny Racket for scripting (written in C)</p></td>
  570. </tr>
  571. <tr style="border-top: 1px solid #aaa;">
  572. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/shirok/Gauche?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Gauche</a></td>
  573. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an R7RS Scheme interpreter</p></td>
  574. </tr>
  575. <tr style="border-top: 1px solid #aaa;">
  576. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  577. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://gitlab.com/owl-lisp/owl?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">owl</a></td>
  578. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Scheme interpreter written in C, that can apparently also compile to C</p></td>
  579. </tr>
  580. <tr style="border-top: 1px solid #aaa;">
  581. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://web.cs.wpi.edu/~jshutt/kernel.html?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Kernel</a></td>
  582. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Scheme-like dialect of Lisp in which everything is a first-class object.</p></td>
  583. </tr>
  584. <tr style="border-top: 1px solid #aaa;">
  585. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  586. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://armpit.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;">armpit Scheme</a></td>
  587. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an ancient R7RS interpreter</p></td>
  588. </tr>
  589. <tr style="border-top: 1px solid #aaa;">
  590. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://ccrma.stanford.edu/software/snd/snd/s7.html?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">S7 Scheme</a></td>
  591. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a TinyScheme variant designed for embedding into other projects</p></td>
  592. </tr>
  593. <tr style="border-top: 1px solid #aaa;">
  594. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  595. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://www.gnu.org/software/guile?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Guile</a></td>
  596. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>the GNU Scheme implementation, which has a JIT</p></td>
  597. </tr>
  598. <tr style="border-top: 1px solid #aaa;">
  599. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  600. <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/schemy?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">schemy</a></td>
  601. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a .NET embeddable Scheme interpreter</p></td>
  602. </tr>
  603. <tr style="border-top: 1px solid #aaa;">
  604. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016</td>
  605. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://t3x.org/s9fes/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">s9fes</a></td>
  606. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A well-documented interpreter that can run on <a href="/space/os/plan9" rel="nofollow" style="color: #0000cc;">Plan9</a></p></td>
  607. </tr>
  608. <tr style="border-top: 1px solid #aaa;">
  609. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  610. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://ironscheme.codeplex.com/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">IronScheme</a></td>
  611. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Runs atop the .NET DLR</p></td>
  612. </tr>
  613. <tr style="border-top: 1px solid #aaa;">
  614. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Libraries</td>
  615. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  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/massung/r-cade?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">r-cade</a></td>
  617. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Racket library for doing simple retro-style games</p></td>
  618. </tr>
  619. <tr style="border-top: 1px solid #aaa;">
  620. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  621. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/evilbinary/scheme-lib?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">scheme-lib</a></td>
  622. <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 Chez</p></td>
  623. </tr>
  624. <tr style="border-top: 1px solid #aaa;">
  625. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ovenpasta/thunderchez?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">thunderchez</a></td>
  626. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>More libraries for Chez Scheme</p></td>
  627. </tr>
  628. <tr style="border-top: 1px solid #aaa;">
  629. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  630. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  631. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://marketplace.visualstudio.com/items?itemName=rheller.alive&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Alive</a></td>
  632. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>VS Code extension</p></td>
  633. </tr>
  634. <tr style="border-top: 1px solid #aaa;">
  635. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  636. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/gwatt/chez-exe?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">chez-exe</a></td>
  637. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A tool to generate standalone executables with Chez</p></td>
  638. </tr>
  639. </tbody>
  640. </table>
  641. <br/>
  642. ]]></content>
  643. <category term="resources" label="resources" />
  644. <category term="programming" label="programming" />
  645. <category term="scheme" label="scheme" />
  646. <category term="language" label="language" />
  647. <category term="functional" label="functional" />
  648. <category term="lisp" label="lisp" />
  649. </entry>
  650. <entry>
  651. <title>Llama 3.1</title>
  652. <id>https://taoofmac.com/space/links/2024/07/23/2122</id>
  653. <published>2024-07-23T20:22:00+00:00</published>
  654. <updated>2024-07-23T20:22:00+00:00</updated>
  655. <author>
  656. <name>Rui Carmo</name>
  657. <uri>https://taoofmac.com</uri>
  658. </author>
  659. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/links/2024/07/23/2122"/>
  660. <content type="html"><![CDATA[
  661. <p><a href="https://ai.meta.com/blog/meta-llama-3-1/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" title="external link to https://ai.meta.com/blog/meta-llama-3-1/" alt="screenshot of https://ai.meta.com/blog/meta-llama-3-1/" style="color: #0000cc;"><img class="quicklook" src="https://taoofmac.com/thumb/links/2024/07/23/2122/640,480/yL_1I-6U4QBBvWSqBJPSk9LZPxY=/large.jpg" width="320" height="240" style="max-width: 100% !important;height: auto !important;"/></a></p>
  662. <p class="lead">I&#8217;ve already started playing with this inside my sandbox, and even the smaller set of weights is more adroit in responses than the previous version.</p>
  663. <p>As usual I&#8217;m going to have to tediously test and re-do all my tooling prompts, but what I really want to test is the expanded context length and see how far I can push it with <code>ollama</code>.</p>
  664. <br/>
  665. ]]></content>
  666. <category term="meta" label="meta" />
  667. <category term="3.1" label="3.1" />
  668. <category term="llm" label="llm" />
  669. <category term="llama" label="llama" />
  670. <category term="ai" label="ai" />
  671. </entry>
  672. <entry>
  673. <title>Time Machine</title>
  674. <id>https://taoofmac.com/space/com/apple/time_machine</id>
  675. <published>2006-08-10T18:36:52+00:00</published>
  676. <updated>2024-07-23T07:35:00+00:00</updated>
  677. <author>
  678. <name>Rui Carmo</name>
  679. <uri>https://taoofmac.com</uri>
  680. </author>
  681. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/com/apple/time_machine"/>
  682. <content type="html"><![CDATA[
  683. <p class="lead">One of <a href="/space/com/apple/macos/leopard" rel="next" style="color: #0000cc;">Leopard&#8217;s</a> new features, aimed at ensuring people improve their
  684. backup habits and enabling intuitive restore.</p>
  685. <a class="anchor" id="anchor-freeing-up-local-snapshots" rel="anchor" href="/space/com/apple/time_machine#freeing-up-local-snapshots" style="color: #0000cc;"><h3 id="freeing-up-local-snapshots">Freeing up local snapshots</h3></a><p>If you find that the hourly snapshotting feature (which uses your
  686. internal storage) is taking up too much storage for your liking, you can
  687. toggle it off and on again to free up space:</p>
  688. <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>sudo<span class="w"> </span>tmutil<span class="w"> </span>disablelocal
  689. <span class="c1"># Wait for it to be freed up automatically</span>
  690. sudo<span class="w"> </span>tmutil<span class="w"> </span>enablelocal
  691. </code></pre></div>
  692.  
  693. <p>Or, in Big Sur, you can just</p>
  694. <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>sudo<span class="w"> </span>tmutil<span class="w"> </span>deletelocalsnapshots<span class="w"> </span>/
  695. </code></pre></div>
  696.  
  697. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/com/apple/time_machine#resources" style="color: #0000cc;"><h3 id="resources">Resources</h3></a><p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  698. <thead>
  699. <tr style="border-top: 1px solid #aaa;">
  700. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Field</th>
  701. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  702. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  703. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  704. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  705. </tr>
  706. </thead>
  707. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  708. <tr style="border-top: 1px solid #aaa;">
  709. <td rowspan="11" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"/>
  710. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Linux</td>
  711. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024-07</td>
  712. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/linuxmint/timeshift?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">timeshift</a></td>
  713. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Creates Linux filesystem snapshots using rsync+hardlinks, or BTRFS snapshots</p></td>
  714. </tr>
  715. <tr style="border-top: 1px solid #aaa;">
  716. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2009-02</td>
  717. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://launchpad.net/timevault?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Time Vault</a></td>
  718. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Linux equivalent under development.</p></td>
  719. </tr>
  720. <tr style="border-top: 1px solid #aaa;">
  721. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Reference</td>
  722. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2011-09</td>
  723. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://krypted.com/mac-os-x/mass-deploying-time-machine/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Mass Deploying Time Machine in Mac OS X Lion</a></td>
  724. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>All you ever wanted to know about scripting and CLI usage, from changing destinations to setting exclusions.</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;">2009-10</td>
  728. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.macosxhints.com/article.php?story=2009092822584146&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Create networkable, encrypted and copyable Time Machine backups</a></td>
  729. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Very neat. I&#8217;ve saved a local copy of the scripts for creating and restoring from encrypted disk images.</p></td>
  730. </tr>
  731. <tr style="border-top: 1px solid #aaa;">
  732. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2008-05</td>
  733. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://db.tidbits.com/article/9597?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Prune Your Time Machine Backups Selectively</a></td>
  734. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Using a modified version of <a href="/space/apps/grandperspective" rel="nofollow" style="color: #0000cc;">GrandPerspective</a></p></td>
  735. </tr>
  736. <tr style="border-top: 1px solid #aaa;">
  737. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://db.tidbits.com/article/9607?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Time Machine Exposed!</a></td>
  738. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Using the <code>tms</code> command line tool to explore backups</p></td>
  739. </tr>
  740. <tr style="border-top: 1px solid #aaa;">
  741. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2006-08</td>
  742. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://www.macworld.com/2006/08/firstlooks/leotimemac/index.php?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MacWorld First Looks article</a></td>
  743. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Where it is mentioned that it was supposed to work in oh, slightly different ways</p></td>
  744. </tr>
  745. <tr style="border-top: 1px solid #aaa;">
  746. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2006-03</td>
  747. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://earthlingsoft.net/ssp/blog/2008/03/x5_time_machine?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Time Machine</a></td>
  748. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a pretty good rundown, complete with under-the-hood details</p></td>
  749. </tr>
  750. <tr style="border-top: 1px solid #aaa;">
  751. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  752. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024-04</td>
  753. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/lukepistrol/TimeMachineStatus?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">TimeMachineStatus</a></td>
  754. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A simple macOS menu bar app that shows the status of Time Machine backups</p></td>
  755. </tr>
  756. <tr style="border-top: 1px solid #aaa;">
  757. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014-01</td>
  758. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/drbunsen/timewarp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Time Warp</a></td>
  759. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tool for modifying Time Machine backup behavior using weighted reservoir sampling.</p></td>
  760. </tr>
  761. <tr style="border-top: 1px solid #aaa;">
  762. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2012-08</td>
  763. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://timesoftware.free.fr/timemachineeditor/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Time Machine Editor</a></td>
  764. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An alternative scheduler that does away with the irritating defaults.</p></td>
  765. </tr>
  766. </tbody>
  767. </table>
  768. <br/>
  769. ]]></content>
  770. </entry>
  771. <entry>
  772. <title>Artificial Intelligence</title>
  773. <id>https://taoofmac.com/space/ai</id>
  774. <published>2004-01-22T21:22:58+00:00</published>
  775. <updated>2024-07-22T07:19:00+00:00</updated>
  776. <author>
  777. <name>Rui Carmo</name>
  778. <uri>https://taoofmac.com</uri>
  779. </author>
  780. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/ai"/>
  781. <content type="html"><![CDATA[
  782. <p class="lead">That grand, spacious (and long ignored) branch of computing that I never really found a reason to graduate in (big mistake I only realized 30 years later) and that, these days, deals not just with thinking machines (so-called &#8220;hard&#8221; AI), but mostly with enhancing the usefulness of machines in general by exploring mechanisms to express and manipulate harvested knowledge.</p>
  783. <p>Or just pretty pictures and weird chatbots. Either way, it seems we&#8217;re currently between <a href="http://en.wikipedia.org/wiki/Ai_winter?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">AI winters</a>, with a lot of investment in GPU hardware that still needs to prove itself consistently, measurably useful in real life use cases.</p>
  784. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/ai#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%;">
  785. <thead>
  786. <tr style="border-top: 1px solid #aaa;">
  787. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Field</th>
  788. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  789. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  790. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  791. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  792. </tr>
  793. </thead>
  794. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  795. <tr style="border-top: 1px solid #aaa;">
  796. <td rowspan="17" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">General</td>
  797. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Examples</td>
  798. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  799. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tspeterkim/flash-attention-minimal?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">flash-attention-minimal</a></td>
  800. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a minimal implementation of Flash Attention</p></td>
  801. </tr>
  802. <tr style="border-top: 1px solid #aaa;">
  803. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Frameworks</td>
  804. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tinygrad/tinygrad?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">tinygrad</a></td>
  805. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A 8000 LOC deep learning framework</p></td>
  806. </tr>
  807. <tr style="border-top: 1px solid #aaa;">
  808. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  809. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/PrefectHQ/marvin?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">marvin</a></td>
  810. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A generic wrapper for various AI APIs</p></td>
  811. </tr>
  812. <tr style="border-top: 1px solid #aaa;">
  813. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ml-explore/mlx?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MLX</a></td>
  814. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An array framework for Apple silicon</p></td>
  815. </tr>
  816. <tr style="border-top: 1px solid #aaa;">
  817. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ml-explore/mlx-examples?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">mlx-examples</a></td>
  818. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>MLX examples</p></td>
  819. </tr>
  820. <tr style="border-top: 1px solid #aaa;">
  821. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Jupyter</td>
  822. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jupyterlab/jupyter-ai?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">jupyter-ai</a></td>
  823. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an official Jupyter plugin that can handle multiple AI back-ends (although it seems less flexible than the others right now)</p></td>
  824. </tr>
  825. <tr style="border-top: 1px solid #aaa;">
  826. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Libraries</td>
  827. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Unstructured-IO/unstructured?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">unstructured</a></td>
  828. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a library for handling and segmenting unstructured data of various kinds, from text to common file formats</p></td>
  829. </tr>
  830. <tr style="border-top: 1px solid #aaa;">
  831. <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-ane-transformers?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ml-ane-transformers</a></td>
  832. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Apple&#8217;s transformers library, optimized for the Neural Engine</p></td>
  833. </tr>
  834. <tr style="border-top: 1px solid #aaa;">
  835. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2009</td>
  836. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://alchemy.cs.washington.edu/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Alchemy</a></td>
  837. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A toolkit providing a series of algorithms for statistical relational learning and probabilistic logic inference, based on Markov logic representation</p></td>
  838. </tr>
  839. <tr style="border-top: 1px solid #aaa;">
  840. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  841. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  842. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/raspberrypi/pico-tflmicro?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pico-tflmicro</a></td>
  843. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a port of TensorFlow Lite Micro to the Raspberry Pi Pico</p></td>
  844. </tr>
  845. <tr style="border-top: 1px solid #aaa;">
  846. <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>
  847. <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>
  848. </tr>
  849. <tr style="border-top: 1px solid #aaa;">
  850. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  851. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/hyperonym/basaran?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">basaran</a></td>
  852. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An Open-Source alternative to the OpenAI text completion API, with a compatible streaming API for privately hosted models.</p></td>
  853. </tr>
  854. <tr style="border-top: 1px solid #aaa;">
  855. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/oegedijk/explainerdashboard?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">explainerdashboard</a></td>
  856. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a web app that explains the workings of a (scikit-learn compatible) machine learning model</p></td>
  857. </tr>
  858. <tr style="border-top: 1px solid #aaa;">
  859. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/triton-inference-server/server?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">NVIDIA Triton Inference Server</a></td>
  860. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A high-performance inference server</p></td>
  861. </tr>
  862. <tr style="border-top: 1px solid #aaa;">
  863. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  864. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/elixir-nx/bumblebee?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Project Bumblebee</a></td>
  865. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Pre-trained and transformer neural models in Elixir.</p></td>
  866. </tr>
  867. <tr style="border-top: 1px solid #aaa;">
  868. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Vector Databases</td>
  869. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  870. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/neuml/txtai?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">txtai</a></td>
  871. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>embeddings database for semantic search</p></td>
  872. </tr>
  873. <tr style="border-top: 1px solid #aaa;">
  874. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/wizenheimer/tinkerbird?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">tinkerbird</a></td>
  875. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Vector Database atop IndexedDB</p></td>
  876. </tr>
  877. <tr style="border-top: 1px solid #aaa;">
  878. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Generative Audio</td>
  879. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">models</td>
  880. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  881. <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>
  882. <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>
  883. </tr>
  884. <tr style="border-top: 1px solid #aaa;">
  885. <td rowspan="124" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Large Language Models</td>
  886. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Agents</td>
  887. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  888. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/joaomdmoura/crewAI?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">crewAI</a></td>
  889. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a framework for orchestrating autonomous AI agents</p></td>
  890. </tr>
  891. <tr style="border-top: 1px solid #aaa;">
  892. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/metaskills/experts?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">experts</a></td>
  893. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>yet another agent tool, this time using the OpenAI assistant interface</p></td>
  894. </tr>
  895. <tr style="border-top: 1px solid #aaa;">
  896. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  897. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/TransformerOptimus/SuperAGI?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">SuperAGI</a></td>
  898. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>another AutoGPT-like harness for building GPT agents</p></td>
  899. </tr>
  900. <tr style="border-top: 1px solid #aaa;">
  901. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/aymenfurter/microagents?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">microagents</a></td>
  902. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an interesting experiment on self-editing agents</p></td>
  903. </tr>
  904. <tr style="border-top: 1px solid #aaa;">
  905. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mpaepper/llm_agents?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">llm_agents</a></td>
  906. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a simplified agent framework (doesn&#8217;t use OpenAI functions)</p></td>
  907. </tr>
  908. <tr style="border-top: 1px solid #aaa;">
  909. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Applications</td>
  910. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/chieapp/chie?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Chie</a></td>
  911. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A cross-platform dekstop application with chat history and extension support</p></td>
  912. </tr>
  913. <tr style="border-top: 1px solid #aaa;">
  914. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Copilots</td>
  915. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/eugeneyan/obsidian-copilot?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Obsidian Copilot</a></td>
  916. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an interesting take on how to use semantic search and OpenSearch&#8217;s BM25 implementation</p></td>
  917. </tr>
  918. <tr style="border-top: 1px solid #aaa;">
  919. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Demos</td>
  920. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  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/collabora/WhisperFusion?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">WhisperFusion</a></td>
  922. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an ensemble setup with WhisperSpeech, WhisperLive and Phi</p></td>
  923. </tr>
  924. <tr style="border-top: 1px solid #aaa;">
  925. <td rowspan="10" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Frameworks</td>
  926. <td rowspan="9" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  927. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/BerriAI/litellm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">litellm</a></td>
  928. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a simple, lightweight LLM wrapper</p></td>
  929. </tr>
  930. <tr style="border-top: 1px solid #aaa;">
  931. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Forethought-Technologies/AutoChain?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">AutoChain</a></td>
  932. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Yet another alternative to langchain</p></td>
  933. </tr>
  934. <tr style="border-top: 1px solid #aaa;">
  935. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Tanuki/tanuki.py?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Tanuki</a></td>
  936. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>yet another LLM framework using decorators for data validation</p></td>
  937. </tr>
  938. <tr style="border-top: 1px solid #aaa;">
  939. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/griptape-ai/griptape?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">griptape</a></td>
  940. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a <code>langchain</code> alternative with slighly better internal coding standards</p></td>
  941. </tr>
  942. <tr style="border-top: 1px solid #aaa;">
  943. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/guidance-ai/guidance?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">guidance</a></td>
  944. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Control modern language models more effectively and efficiently than traditional prompting or chaining.</p></td>
  945. </tr>
  946. <tr style="border-top: 1px solid #aaa;">
  947. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/hwchase17/langchain?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">langchain</a></td>
  948. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a composable approach for building LLM applications</p></td>
  949. </tr>
  950. <tr style="border-top: 1px solid #aaa;">
  951. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jerryjliu/llama_index?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">llama_index</a></td>
  952. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a data framework for LLM applications</p></td>
  953. </tr>
  954. <tr style="border-top: 1px solid #aaa;">
  955. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/neuml/txtai?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">txtai</a></td>
  956. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>has spinoffs for chat, workflows for medical/scientific papers, semantic search for developers and semantic search for headlines and story text</p></td>
  957. </tr>
  958. <tr style="border-top: 1px solid #aaa;">
  959. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/stoyan-stoyanov/llmflows?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">llmflows</a></td>
  960. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Yet another alternative to langchain, but with an interesting approach at defining workflows</p></td>
  961. </tr>
  962. <tr style="border-top: 1px solid #aaa;">
  963. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"/>
  964. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/danielmiessler/fabric?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">fabric</a></td>
  965. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a componentized approach to building LLM pipelines</p></td>
  966. </tr>
  967. <tr style="border-top: 1px solid #aaa;">
  968. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Front-Ends</td>
  969. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  970. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/janhq/jan?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">jan</a></td>
  971. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an open-source ChatGPT alternative that runs 100% offline (uses nitro)</p></td>
  972. </tr>
  973. <tr style="border-top: 1px solid #aaa;">
  974. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  975. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/SecureAI-Tools/SecureAI-Tools?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">SecureAI-Tools</a></td>
  976. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a self-hosted local inference front-end for chatting with document collections</p></td>
  977. </tr>
  978. <tr style="border-top: 1px solid #aaa;">
  979. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nomic-ai/gpt4all?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gpt4all</a></td>
  980. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>another self-hosted local inference front-end</p></td>
  981. </tr>
  982. <tr style="border-top: 1px solid #aaa;">
  983. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Jupyter</td>
  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/JacksonKearl/ai-book?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">LLMBook</a></td>
  985. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A VS Code notebook interface for LLMs</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/fperez/jupytee?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">jupytee</a></td>
  989. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Jupyter plugin that can handle code generation and image generation, but not switching models (GPT-4)</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/noteable-io/genai?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">genai</a></td>
  993. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Jupyter plugin that can handle code generation and fixes based on tracebacks</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;"><a href="https://github.com/santiagobasulto/ipython-gpt?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ipython-gpt</a></td>
  997. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Jupyter plugin that can handle multiple models</p></td>
  998. </tr>
  999. <tr style="border-top: 1px solid #aaa;">
  1000. <td rowspan="7" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Libraries</td>
  1001. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</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/databonsai/databonsai?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">databonsai</a></td>
  1003. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Python library that uses LLMs to perform data cleaning</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;"><a href="https://github.com/datadreamer-dev/DataDreamer?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">DataDreamer</a></td>
  1007. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>library for prompting, synthetic data generation, and training workflows</p></td>
  1008. </tr>
  1009. <tr style="border-top: 1px solid #aaa;">
  1010. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/fzliu/radients?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">radients</a></td>
  1011. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a vactorization library that can handle more than just text</p></td>
  1012. </tr>
  1013. <tr style="border-top: 1px solid #aaa;">
  1014. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1015. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ShreyaR/guardrails?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">guardrails</a></td>
  1016. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a package for validating and correcting the outputs of large language models</p></td>
  1017. </tr>
  1018. <tr style="border-top: 1px solid #aaa;">
  1019. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cpacker/MemGPT?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MemGPT</a></td>
  1020. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a memory management/summarization technique for unbounded context</p></td>
  1021. </tr>
  1022. <tr style="border-top: 1px solid #aaa;">
  1023. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jxnl/instructor?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">instructor</a></td>
  1024. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a clever library that simplifies invoking OpenAI function calls</p></td>
  1025. </tr>
  1026. <tr style="border-top: 1px solid #aaa;">
  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/minimaxir/simpleaichat?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">simpleaichat</a></td>
  1028. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A simple wrapper for the ChatGPT AI</p></td>
  1029. </tr>
  1030. <tr style="border-top: 1px solid #aaa;">
  1031. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Models</td>
  1032. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1033. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/MeetKai/functionary?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">functionary</a></td>
  1034. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>can interpret and execute functions/plugins</p></td>
  1035. </tr>
  1036. <tr style="border-top: 1px solid #aaa;">
  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/jzhang38/TinyLlama?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">TinyLlama</a></td>
  1038. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>pretraining of a 1.1B Llama model on 3 trillion tokens.</p></td>
  1039. </tr>
  1040. <tr style="border-top: 1px solid #aaa;">
  1041. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://huggingface.co/NexaAIDev/Octopus-v2?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Octopus-v2</a></td>
  1042. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a model designed for both function calling and on-device inference</p></td>
  1043. </tr>
  1044. <tr style="border-top: 1px solid #aaa;">
  1045. <td rowspan="8" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1046. <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-ferret?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ml-ferret</a></td>
  1047. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a multi-modal model from Apple</p></td>
  1048. </tr>
  1049. <tr style="border-top: 1px solid #aaa;">
  1050. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ravenscroftj/turbopilot?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">turbopilot</a></td>
  1051. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a GitHub CoPilot replacement that can run locally (CPU only)</p></td>
  1052. </tr>
  1053. <tr style="border-top: 1px solid #aaa;">
  1054. <td rowspan="7" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Reference</td>
  1055. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://blog.simonfarshid.com/native-json-output-from-gpt-4?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Native JSON Output from GPT-4</a></td>
  1056. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>tips on how to use OpenAI JSON and function calling</p></td>
  1057. </tr>
  1058. <tr style="border-top: 1px solid #aaa;">
  1059. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://dev.l1x.be/posts/2023/03/12/using-llama-with-m1-mac/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Using LLaMA with M1 Mac</a></td>
  1060. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Manual instructions for Apple Silicon</p></td>
  1061. </tr>
  1062. <tr style="border-top: 1px solid #aaa;">
  1063. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/dair-ai/Prompt-Engineering-Guide?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Prompt Engineering Guide</a></td>
  1064. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a set of lecture notes and detailed examples of prompting techniques</p></td>
  1065. </tr>
  1066. <tr style="border-top: 1px solid #aaa;">
  1067. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/imaurer/awesome-decentralized-llm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">awesome-decentralized-llm</a></td>
  1068. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a collection of LLM resources that operate independently</p></td>
  1069. </tr>
  1070. <tr style="border-top: 1px solid #aaa;">
  1071. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/linexjlin/GPTs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">GPT Prompt Archive</a></td>
  1072. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A set of sample base prompts for various LLMs</p></td>
  1073. </tr>
  1074. <tr style="border-top: 1px solid #aaa;">
  1075. <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/promptbase?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">promptbase</a></td>
  1076. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Another set of prompting techniques and detailed examples</p></td>
  1077. </tr>
  1078. <tr style="border-top: 1px solid #aaa;">
  1079. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1080. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/f/awesome-chatgpt-prompts?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">awesome-chatgpt-prompts</a></td>
  1081. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>might be a short-lived resource, but an interesting one</p></td>
  1082. </tr>
  1083. <tr style="border-top: 1px solid #aaa;">
  1084. <td rowspan="11" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Samples</td>
  1085. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1086. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/99991/SimpleTinyLlama?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">SimpleTinyLlama</a></td>
  1087. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a simple PyTorch-based implementation</p></td>
  1088. </tr>
  1089. <tr style="border-top: 1px solid #aaa;">
  1090. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/modal-labs/devlooper?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">devlooper</a></td>
  1091. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a program synthesis agent that autonomously fixes its output by running tests</p></td>
  1092. </tr>
  1093. <tr style="border-top: 1px solid #aaa;">
  1094. <td rowspan="9" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1095. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/assafelovic/gpt-researcher?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gpt-researcher</a></td>
  1096. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a simple agent that does online research on any given topic</p></td>
  1097. </tr>
  1098. <tr style="border-top: 1px solid #aaa;">
  1099. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/cbh123/narrator?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">David Attenborough narrates your life</a></td>
  1100. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A pretty hilarious image-to-description example</p></td>
  1101. </tr>
  1102. <tr style="border-top: 1px solid #aaa;">
  1103. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/danny-avila/LibreChat?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">LibreChat</a></td>
  1104. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A self-hosted ChatGPT alternative</p></td>
  1105. </tr>
  1106. <tr style="border-top: 1px solid #aaa;">
  1107. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/liamca/sharepoint-indexing-azure-cognitive-search?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">sharepoint-indexing-azure-cognitive-search</a></td>
  1108. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>provides an example of how to use Graph navigation and Cognitive Search indexing</p></td>
  1109. </tr>
  1110. <tr style="border-top: 1px solid #aaa;">
  1111. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nomic-ai/gpt4all?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gpt4all</a></td>
  1112. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>open-source LLM chatbots</p></td>
  1113. </tr>
  1114. <tr style="border-top: 1px solid #aaa;">
  1115. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/pchunduri6/rag-demystified?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Demystifying Advanced RAG Pipelines</a></td>
  1116. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An LLM-powered advanced RAG pipeline built from scratch</p></td>
  1117. </tr>
  1118. <tr style="border-top: 1px solid #aaa;">
  1119. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/widgetti/wanderlust?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Wanderlust OpenAI example using Solara</a></td>
  1120. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A simple interactive web shell with some nice features</p></td>
  1121. </tr>
  1122. <tr style="border-top: 1px solid #aaa;">
  1123. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://jaykmody.com/blog/gpt-from-scratch/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">GPT in 60 Lines of NumPy</a></td>
  1124. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tutorial on how to build a GPT model from scratch</p></td>
  1125. </tr>
  1126. <tr style="border-top: 1px solid #aaa;">
  1127. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://justine.lol/oneliners/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Bash One-Liners for LLMs</a></td>
  1128. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a collection of one-liners for various LLMs</p></td>
  1129. </tr>
  1130. <tr style="border-top: 1px solid #aaa;">
  1131. <td rowspan="64" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  1132. <td rowspan="38" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1133. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://2mb.codes/~cmb/ollama-bot/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ollama-bot</a></td>
  1134. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a rudimentary IRC bot that communicates with a local instance of ollama</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="https://github.com/DAGWorks-Inc/burr/tree/main?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">burr</a></td>
  1138. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tool for creating and managing LLM workflows</p></td>
  1139. </tr>
  1140. <tr style="border-top: 1px solid #aaa;">
  1141. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Deeptechia/geppetto?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">geppetto</a></td>
  1142. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a bot for integrating ChatGPT and DALL-E into Slack</p></td>
  1143. </tr>
  1144. <tr style="border-top: 1px solid #aaa;">
  1145. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/LostRuins/koboldcpp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">koboldcpp</a></td>
  1146. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>nn easy-to-use AI text-generation software for GGML and GGUF models based on llama.cpp</p></td>
  1147. </tr>
  1148. <tr style="border-top: 1px solid #aaa;">
  1149. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/MDK8888/GPTFast?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">GPTFast</a></td>
  1150. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a set of acceleration techniques</p></td>
  1151. </tr>
  1152. <tr style="border-top: 1px solid #aaa;">
  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/Picovoice/pico-cookbook?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pico-cookbook</a></td>
  1154. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Recipes for on-device voice AI and local LLM</p></td>
  1155. </tr>
  1156. <tr style="border-top: 1px solid #aaa;">
  1157. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Pythagora-io/gpt-pilot?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gpt-pilot</a></td>
  1158. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a prototype development tool that leverages GPT</p></td>
  1159. </tr>
  1160. <tr style="border-top: 1px solid #aaa;">
  1161. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/SciPhi-AI/R2R?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">R2R</a></td>
  1162. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a framework for or rapid development and deployment of production-ready RAG systems with SQLite support</p></td>
  1163. </tr>
  1164. <tr style="border-top: 1px solid #aaa;">
  1165. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/andersrex/notesollama?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">notesollama</a></td>
  1166. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a plugin for Apple Notes that uses the Accessibility APIs</p></td>
  1167. </tr>
  1168. <tr style="border-top: 1px solid #aaa;">
  1169. <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/gguf-tools?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gguf-tools</a></td>
  1170. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a set of tools for manipulating GGUF format files</p></td>
  1171. </tr>
  1172. <tr style="border-top: 1px solid #aaa;">
  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/cloudnautique/local-image-gen?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">local-image-gen</a></td>
  1174. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A GPTScript tool to generate images</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;"><a href="https://github.com/exo-explore/exo?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">exo</a></td>
  1178. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an intriguing P2P clustering solution for running models across several machines</p></td>
  1179. </tr>
  1180. <tr style="border-top: 1px solid #aaa;">
  1181. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ggozad/oterm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">oterm</a></td>
  1182. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a terminal-based interface for LLMs</p></td>
  1183. </tr>
  1184. <tr style="border-top: 1px solid #aaa;">
  1185. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/gptscript-ai/gptscript?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">GPTScript</a></td>
  1186. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Natural Language Programming against multiple LLMs</p></td>
  1187. </tr>
  1188. <tr style="border-top: 1px solid #aaa;">
  1189. <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/llm-ls?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">llm-ls</a></td>
  1190. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a local language server that leverages LLMs</p></td>
  1191. </tr>
  1192. <tr style="border-top: 1px solid #aaa;">
  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/huggingface/llm-vscode?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">llm-vscode</a></td>
  1194. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a VSCode extension that uses llm-ls</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;"><a href="https://github.com/intel-analytics/ipex-llm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ipex-llm</a></td>
  1198. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a PyTorch extension for Intel hardware</p></td>
  1199. </tr>
  1200. <tr style="border-top: 1px solid #aaa;">
  1201. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/janhq/nitro?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">nitro</a></td>
  1202. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a self-hosted inference engine for edge computing with an OpenAI API</p></td>
  1203. </tr>
  1204. <tr style="border-top: 1px solid #aaa;">
  1205. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/jart/emacs-copilot?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">emacs-copilot</a></td>
  1206. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an Emacs extension for using a local LLM</p></td>
  1207. </tr>
  1208. <tr style="border-top: 1px solid #aaa;">
  1209. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/karpathy/llm.c?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">llm.c</a></td>
  1210. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>LLM training in simple, raw C/CUDA</p></td>
  1211. </tr>
  1212. <tr style="border-top: 1px solid #aaa;">
  1213. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/langgenius/dify?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">dify</a></td>
  1214. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an open-source LLM app development platform with a node-based UX</p></td>
  1215. </tr>
  1216. <tr style="border-top: 1px solid #aaa;">
  1217. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/llmware-ai/llmware?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">llmware</a></td>
  1218. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a framework for developing LLM-based applications including Retrieval Augmented Generation</p></td>
  1219. </tr>
  1220. <tr style="border-top: 1px solid #aaa;">
  1221. <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/graphrag?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">GraphRAG</a></td>
  1222. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a data pipeline designed to pre-process knowledge graphs and perform RAG on them</p></td>
  1223. </tr>
  1224. <tr style="border-top: 1px solid #aaa;">
  1225. <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/lida?tab=readme-ov-files&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">lida</a></td>
  1226. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>automatic generation of visualizations and infographics</p></td>
  1227. </tr>
  1228. <tr style="border-top: 1px solid #aaa;">
  1229. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mobiusml/hqq?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">hqq</a></td>
  1230. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an implementation of Half-Quadratic Quantization (HQQ)</p></td>
  1231. </tr>
  1232. <tr style="border-top: 1px solid #aaa;">
  1233. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nilsherzig/LLocalSearch?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">LLocalSearch</a></td>
  1234. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a local tool for searching using LLMs</p></td>
  1235. </tr>
  1236. <tr style="border-top: 1px solid #aaa;">
  1237. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/nlmatics/nlm-ingestor?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">nlm-ingestor</a></td>
  1238. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a set of parsers for common file formats</p></td>
  1239. </tr>
  1240. <tr style="border-top: 1px solid #aaa;">
  1241. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/open-webui/open-webui?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">open-webui</a></td>
  1242. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a web-based interface for LLMs</p></td>
  1243. </tr>
  1244. <tr style="border-top: 1px solid #aaa;">
  1245. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/pipecat-ai/pipecat?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pipecat</a></td>
  1246. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>yet another LLM agent framework</p></td>
  1247. </tr>
  1248. <tr style="border-top: 1px solid #aaa;">
  1249. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/plandex-ai/plandex?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">plandex</a></td>
  1250. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>yet another long-running agent tool for complex coding tasks</p></td>
  1251. </tr>
  1252. <tr style="border-top: 1px solid #aaa;">
  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/postgresml/korvus?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">korvus</a></td>
  1254. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a search SDK that unifies the entire RAG pipeline in a single database query</p></td>
  1255. </tr>
  1256. <tr style="border-top: 1px solid #aaa;">
  1257. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/predibase/lorax?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">lorax</a></td>
  1258. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a framework that allows users to serve thousands of fine-tuned models on a single GPU</p></td>
  1259. </tr>
  1260. <tr style="border-top: 1px solid #aaa;">
  1261. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/relston/mark?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">mark</a></td>
  1262. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>CLI to interact with LLMs using markdown and images</p></td>
  1263. </tr>
  1264. <tr style="border-top: 1px solid #aaa;">
  1265. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/reorproject/reor?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">reor</a></td>
  1266. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a note taking tool that performs RAG using a local LLM</p></td>
  1267. </tr>
  1268. <tr style="border-top: 1px solid #aaa;">
  1269. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/srikanth235/privy?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">privy</a></td>
  1270. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An open-source alternative to GitHub copilot that runs locally.</p></td>
  1271. </tr>
  1272. <tr style="border-top: 1px solid #aaa;">
  1273. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/stanford-oval/storm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">storm</a></td>
  1274. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a tool that researches a topic and generates a full-length report with citations</p></td>
  1275. </tr>
  1276. <tr style="border-top: 1px solid #aaa;">
  1277. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/stefanom/fably?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">fably</a></td>
  1278. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A device that tells bedtime stories to kids, using chunked TTS</p></td>
  1279. </tr>
  1280. <tr style="border-top: 1px solid #aaa;">
  1281. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/valine/NeuralFlow?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">NeuralFlow</a></td>
  1282. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Python script for plotting the intermediate layer outputs of Mistral 7B</p></td>
  1283. </tr>
  1284. <tr style="border-top: 1px solid #aaa;">
  1285. <td rowspan="31" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1286. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/CambioML/pykoi?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pykoi</a></td>
  1287. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a unified interface for data and feedback collection, including model comparisons</p></td>
  1288. </tr>
  1289. <tr style="border-top: 1px solid #aaa;">
  1290. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Significant-Gravitas/Auto-GPT?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Auto-GPT</a></td>
  1291. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an attempt to provide ChatGPT with a degree of autonomy</p></td>
  1292. </tr>
  1293. <tr style="border-top: 1px solid #aaa;">
  1294. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/a1k0n/a1gpt?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">a1gpt</a></td>
  1295. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A C++ implementation of a GPT-2 inference engine</p></td>
  1296. </tr>
  1297. <tr style="border-top: 1px solid #aaa;">
  1298. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/bricks-cloud/BricksLLM?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">BricksLLM</a></td>
  1299. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an OpenAI gateway in Go to create API keys with rate limits, cost limits and TTLs</p></td>
  1300. </tr>
  1301. <tr style="border-top: 1px solid #aaa;">
  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/cocktailpeanut/dalai?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">dalai</a></td>
  1303. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An automated installer for LLaMA</p></td>
  1304. </tr>
  1305. <tr style="border-top: 1px solid #aaa;">
  1306. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/danielgross/localpilot?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">localpilot</a></td>
  1307. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a MITM proxy that lets you use the GitHub Copilot extension with other LLMs</p></td>
  1308. </tr>
  1309. <tr style="border-top: 1px solid #aaa;">
  1310. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/elfvingralf/macOSpilot-ai-assistant?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">macOSpilot-ai-assistant</a></td>
  1311. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>An Electron app for macOS</p></td>
  1312. </tr>
  1313. <tr style="border-top: 1px solid #aaa;">
  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/embedchain/embedchain?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">embedchain</a></td>
  1315. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>another framework to create bots from existing datasets</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;"><a href="https://github.com/ggerganov/llama.cpp?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">llama.cpp</a></td>
  1319. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A C++ port of Facebook&#8217;s LLaMA model. Still requires roughly 240GB of (unoptimized) weights, but can run on a 64GB Mac.</p></td>
  1320. </tr>
  1321. <tr style="border-top: 1px solid #aaa;">
  1322. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/hegelai/prompttools?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">PromptTools</a></td>
  1323. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>self-hostable toools for evaluating LLMs, vector databases, and prompts</p></td>
  1324. </tr>
  1325. <tr style="border-top: 1px solid #aaa;">
  1326. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ianarawjo/ChainForge?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">ChainForge</a></td>
  1327. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a visual programming environment for benchmarking prompts across multiple LLMs</p></td>
  1328. </tr>
  1329. <tr style="border-top: 1px solid #aaa;">
  1330. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/khoj-ai/khoj?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">khoj</a></td>
  1331. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an intriguing personal assistant based on local data</p></td>
  1332. </tr>
  1333. <tr style="border-top: 1px solid #aaa;">
  1334. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/kuleshov/minillm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">minillm</a></td>
  1335. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A GPU-focused Python wrapper for LLaMa</p></td>
  1336. </tr>
  1337. <tr style="border-top: 1px solid #aaa;">
  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/logspace-ai/langflow?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">langflow</a></td>
  1339. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a node-based GUI for quick iteration of langchain flows</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;"><a href="https://github.com/lxe/simple-llama-finetuner?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">simple-llama-finetuner</a></td>
  1343. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A way to do LoRA adaptation of LLaMa</p></td>
  1344. </tr>
  1345. <tr style="border-top: 1px solid #aaa;">
  1346. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mckaywrigley/chatbot-ui?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">chatbot-ui</a></td>
  1347. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a more or less sensibly designed self-hosted ChatGPT UI</p></td>
  1348. </tr>
  1349. <tr style="border-top: 1px solid #aaa;">
  1350. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mit-han-lab/TinyChatEngine?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">TinyChatEngine</a></td>
  1351. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A local (edge) inference engine in C++ without any dependencies</p></td>
  1352. </tr>
  1353. <tr style="border-top: 1px solid #aaa;">
  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/mpaepper/content-chatbot?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">content-chatbot</a></td>
  1355. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A way to quickly create custom embeddings off a web site</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;"><a href="https://github.com/mudler/LocalAI?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">LocalAI</a></td>
  1359. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A local, drop-in replacement for the OpenAI API</p></td>
  1360. </tr>
  1361. <tr style="border-top: 1px solid #aaa;">
  1362. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/npiv/chatblade?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">chatblade</a></td>
  1363. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a CLI wrapper for ChatGPT</p></td>
  1364. </tr>
  1365. <tr style="border-top: 1px solid #aaa;">
  1366. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/promptfoo/promptfoo?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">promptfoo</a></td>
  1367. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A tool for testing and evaluating LLM prompt quality.</p></td>
  1368. </tr>
  1369. <tr style="border-top: 1px solid #aaa;">
  1370. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/qwopqwop200/GPTQ-for-LLaMa?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">GPTQ-for-LLaMa</a></td>
  1371. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a way to quantize the LLaMA weights to 4-bit precision</p></td>
  1372. </tr>
  1373. <tr style="border-top: 1px solid #aaa;">
  1374. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/serge-chat/serge?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Serve</a></td>
  1375. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A containerized solution for using local LLMs via web chat</p></td>
  1376. </tr>
  1377. <tr style="border-top: 1px solid #aaa;">
  1378. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/setzer22/llama-rs?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">llama-rs</a></td>
  1379. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Rust port of llama.cpp</p></td>
  1380. </tr>
  1381. <tr style="border-top: 1px solid #aaa;">
  1382. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/tloen/alpaca-lora?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">alpaca-lora</a></td>
  1383. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Another way to do LoRA adaptation of LLaMa</p></td>
  1384. </tr>
  1385. <tr style="border-top: 1px solid #aaa;">
  1386. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/wangyi-fudan/wyGPT?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">wyGPT</a></td>
  1387. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>another C++ local inference tool</p></td>
  1388. </tr>
  1389. <tr style="border-top: 1px solid #aaa;">
  1390. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Vector Databases</td>
  1391. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/chroma-core/chroma?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">chroma</a></td>
  1392. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an embedding database</p></td>
  1393. </tr>
  1394. <tr style="border-top: 1px solid #aaa;">
  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/jina-ai/vectordb?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">vectordb</a></td>
  1396. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A simple vector database that can run in-process</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/marqo-ai/marqo?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">marqo</a></td>
  1400. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A vector database that performs vector generation internally</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;"><a href="https://unum-cloud.github.io/usearch?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">USearch</a></td>
  1404. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Single-File Vector Search Engine</p></td>
  1405. </tr>
  1406. <tr style="border-top: 1px solid #aaa;">
  1407. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Workflows</td>
  1408. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/danswer-ai/danswer?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">danswer</a></td>
  1409. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a pretty complete GPT/search integration solution with GitHub, Slack and Confluence/JIRA connectors</p></td>
  1410. </tr>
  1411. <tr style="border-top: 1px solid #aaa;">
  1412. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Multi-modal Models</td>
  1413. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Samples</td>
  1414. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</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/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>
  1416. <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>
  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;">NeRFs</td>
  1420. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  1421. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</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/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>
  1423. <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>
  1424. </tr>
  1425. <tr style="border-top: 1px solid #aaa;">
  1426. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Speech Recognition</td>
  1427. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Models</td>
  1428. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</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/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>
  1430. <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>
  1431. </tr>
  1432. <tr style="border-top: 1px solid #aaa;">
  1433. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1434. <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>
  1435. <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>
  1436. </tr>
  1437. <tr style="border-top: 1px solid #aaa;">
  1438. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1439. <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>
  1440. <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>
  1441. </tr>
  1442. <tr style="border-top: 1px solid #aaa;">
  1443. <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>
  1444. <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>
  1445. </tr>
  1446. <tr style="border-top: 1px solid #aaa;">
  1447. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  1448. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1449. <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>
  1450. <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>
  1451. </tr>
  1452. <tr style="border-top: 1px solid #aaa;">
  1453. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1454. <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>
  1455. <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>
  1456. </tr>
  1457. <tr style="border-top: 1px solid #aaa;">
  1458. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Speech Synthesis</td>
  1459. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Models</td>
  1460. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1461. <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>
  1462. <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>
  1463. </tr>
  1464. <tr style="border-top: 1px solid #aaa;">
  1465. <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>
  1466. <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>
  1467. </tr>
  1468. <tr style="border-top: 1px solid #aaa;">
  1469. <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>
  1470. <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>
  1471. </tr>
  1472. <tr style="border-top: 1px solid #aaa;">
  1473. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1474. <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>
  1475. <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>
  1476. </tr>
  1477. <tr style="border-top: 1px solid #aaa;">
  1478. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Voice Cloning</td>
  1479. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1480. <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>
  1481. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a minimal sampling approach</p></td>
  1482. </tr>
  1483. <tr style="border-top: 1px solid #aaa;">
  1484. <td rowspan="20" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Stable Diffusion</td>
  1485. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Apps</td>
  1486. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1487. <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>
  1488. <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>
  1489. </tr>
  1490. <tr style="border-top: 1px solid #aaa;">
  1491. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1492. <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>
  1493. <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>
  1494. </tr>
  1495. <tr style="border-top: 1px solid #aaa;">
  1496. <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>
  1497. <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>
  1498. </tr>
  1499. <tr style="border-top: 1px solid #aaa;">
  1500. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">CGI</td>
  1501. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  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/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>
  1503. <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>
  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;">2022</td>
  1507. <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>
  1508. <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>
  1509. </tr>
  1510. <tr style="border-top: 1px solid #aaa;">
  1511. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Implementations</td>
  1512. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1513. <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>
  1514. <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>
  1515. </tr>
  1516. <tr style="border-top: 1px solid #aaa;">
  1517. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Libraries</td>
  1518. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1519. <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>
  1520. <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>
  1521. </tr>
  1522. <tr style="border-top: 1px solid #aaa;">
  1523. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Models</td>
  1524. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1525. <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>
  1526. <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>
  1527. </tr>
  1528. <tr style="border-top: 1px solid #aaa;">
  1529. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1530. <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>
  1531. <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>
  1532. </tr>
  1533. <tr style="border-top: 1px solid #aaa;">
  1534. <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>
  1535. <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>
  1536. </tr>
  1537. <tr style="border-top: 1px solid #aaa;">
  1538. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Reference</td>
  1539. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1540. <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>
  1541. <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>
  1542. </tr>
  1543. <tr style="border-top: 1px solid #aaa;">
  1544. <td rowspan="9" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  1545. <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>
  1546. <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>
  1547. </tr>
  1548. <tr style="border-top: 1px solid #aaa;">
  1549. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1550. <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>
  1551. <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>
  1552. </tr>
  1553. <tr style="border-top: 1px solid #aaa;">
  1554. <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>
  1555. <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>
  1556. </tr>
  1557. <tr style="border-top: 1px solid #aaa;">
  1558. <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>
  1559. <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>
  1560. </tr>
  1561. <tr style="border-top: 1px solid #aaa;">
  1562. <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>
  1563. <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>
  1564. </tr>
  1565. <tr style="border-top: 1px solid #aaa;">
  1566. <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>
  1567. <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>
  1568. </tr>
  1569. <tr style="border-top: 1px solid #aaa;">
  1570. <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>
  1571. <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>
  1572. </tr>
  1573. <tr style="border-top: 1px solid #aaa;">
  1574. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1575. <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>
  1576. <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>
  1577. </tr>
  1578. <tr style="border-top: 1px solid #aaa;">
  1579. <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>
  1580. <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. Does not reuse .ckpt files, however, so requires separate disk cache.</p></td>
  1581. </tr>
  1582. </tbody>
  1583. </table>
  1584. <br/>
  1585. ]]></content>
  1586. <category term="ml" label="ml" />
  1587. <category term="industry" label="industry" />
  1588. <category term="artificial" label="artificial" />
  1589. <category term="nlp" label="nlp" />
  1590. <category term="hype" label="hype" />
  1591. <category term="llms" label="llms" />
  1592. <category term="intelligence" label="intelligence" />
  1593. <category term="ai" label="ai" />
  1594. </entry>
  1595. <entry>
  1596. <title>Notes for July 15-21</title>
  1597. <id>https://taoofmac.com/space/notes/2024/07/21/1800</id>
  1598. <published>2024-07-21T17:00:00+00:00</published>
  1599. <updated>2024-07-21T17:00:00+00:00</updated>
  1600. <author>
  1601. <name>Rui Carmo</name>
  1602. <uri>https://taoofmac.com</uri>
  1603. </author>
  1604. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/notes/2024/07/21/1800"/>
  1605. <content type="html"><![CDATA[
  1606. <p class="lead">This was a very productive week in personal terms (and otherwise), partly because I paused my <a href="https://www.goodreads.com/user_challenges/49673456?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">reading spree</a> and partly because I decided to clear out my To-Do list as quickly as possible.</p>
  1607. <a class="anchor" id="anchor-productivity-tweaks" rel="anchor" href="/space/notes/2024/07/21/1800#productivity-tweaks" style="color: #0000cc;"><h2 id="productivity-tweaks">Productivity Tweaks</h2></a><ul>
  1608. <li>Resumed my regular cleaning of my desk at the start of the week, which resulted in a (short) bit of Zen-like calm.</li>
  1609. <li>Removed the battery from my pre-release <a href="/space/blog/2024/05/25/1800" rel="next" style="color: #0000cc;">Keychron 11 Max</a> and moved it permanently to my standing desk.</li>
  1610. </ul>
  1611. <p>It works fine via USB, and makes quite a bit of difference ergonomically (I now have two of those in daily use, which is definitely a first world problem).</p>
  1612. <a class="anchor" id="anchor-home-automation" rel="anchor" href="/space/notes/2024/07/21/1800#home-automation" style="color: #0000cc;"><h2 id="home-automation">Home Automation</h2></a><p>With 37<sup>o</sup>C being forecast for next Monday, I decided to grab a handful of Demos D1s <a href="/space/hw/esp8266" rel="next" style="color: #0000cc;">ESP8266</a> I still had in stock, flash them with <a href="http://github.com/rcarmo/mel-ac-homekit?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">my custom firmware</a> and pop open all the heat pumps to add them to HomeKit. </p>
  1613. <figure>
  1614.  <img src="https://taoofmac.com/media/notes/2024/07/21/1800/0xmwIVj_8CE18Uxd_EYbJg6YOgU=/wemosd1.jpg" title="ooh, silicon candy!" width="2048" height="2048" style="max-width: 100% !important;height: auto !important;"/>
  1615.  <figcaption>Wrapping the boards in Kapton tape</figcaption>
  1616. </figure>
  1617.  
  1618. <p>Having working thermostats in nearly every room makes a bit of a difference.</p>
  1619. <a class="anchor" id="anchor-3d-printing" rel="anchor" href="/space/notes/2024/07/21/1800#3d-printing" style="color: #0000cc;"><h2 id="3d-printing">3D Printing</h2></a><ul>
  1620. <li>Splurged on Amazon Prime Day on stuff I probably don&#8217;t really need (except for the ASA filament).</li>
  1621. <li>Spent a few evenings trying to get my <a href="com/twotrees/sk1" rel="nofollow" style="color: #0000cc;">TwoTrees SK1</a> to work properly again after what I believed to be a calibration attempt gone wrong. I later realised that the Y axis shift I was seeing was due to the cable chain preventing the print head to home properly with <a href="/space/blog/2024/07/13/1900" rel="next" style="color: #0000cc;">the new enclosure</a> on.</li>
  1622. </ul>
  1623. <p>I still have to finish calibrating it, but at least now I know why it was failing.</p>
  1624. <a class="anchor" id="anchor-homelab-maintenance" rel="anchor" href="/space/notes/2024/07/21/1800#homelab-maintenance" style="color: #0000cc;"><h2 id="homelab-maintenance">Homelab Maintenance</h2></a><p>I decided to do a bit of actual hardware maintenance:</p>
  1625. <figure>
  1626.  <img src="https://taoofmac.com/media/notes/2024/07/21/1800/5B-G74UHC1xUWMQiaqDb45uETLc=/rogueone.jpg" title="popping the lid" width="2048" height="1437" style="max-width: 100% !important;height: auto !important;"/>
  1627.  <figcaption>Fitting a new, quieter heat exhaust fan to <tt>rogueone</tt></figcaption>
  1628. </figure>
  1629.  
  1630. <ul>
  1631. <li>Shut down both my Synology NAS and <a href="/space/blog/2016/12/17/1840" rel="next" style="color: #0000cc;"><code>rogueone</code></a>, opened them and dusted them off with a neat (and surprisingly powerful) <a href="https://www.amazon.es/gp/product/B0BRK8KY7D/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;">air blower</a> I had gotten a while back. <em>Much</em> more effective and satisfactory than compressed air canisters.</li>
  1632. <li>Took that opportunity to finally add <a href="https://www.amazon.es/gp/product/B0BYW8FLKN/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;">a Crucial 2TB SSD</a> to the <a href="/space/blog/2020/04/04/2310" rel="next" style="color: #0000cc;">DS 1019+</a> to act as read-only cache&#8211;I should have done this years ago, since it made a few services I run on it (like <a href="/space/apps/gitea" rel="next" style="color: #0000cc;">Gitea</a>) an order of magnitude faster&#8230;</li>
  1633. </ul>
  1634. <a class="anchor" id="anchor-software-archaeology" rel="anchor" href="/space/notes/2024/07/21/1800#software-archaeology" style="color: #0000cc;"><h3 id="software-archaeology">Software Archaeology</h3></a><ul>
  1635. <li>Found an ancient <a href="/space/os/linux/distributions/fedora" rel="next" style="color: #0000cc;">Fedora</a> 38 LXC inside my <a href="/space/blog/2023/10/07/1830" rel="next" style="color: #0000cc;">Radxa Zero</a> while revisiting an old project and brought that kicking and screaming into the <a href="/space/os/linux/distributions/fedora" rel="next" style="color: #0000cc;">Fedora</a> 40 age. Still sad that I can effectively run what amounts to a VM inside the machine I use as a development sidecar for my iPad, but hey <a href="/space/blog/2024/07/18/0900" rel="next" style="color: #0000cc;">now it has Nix inside</a> too.</li>
  1636. <li>Installed <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;">BasiliskII</a> on the <a href="/space/blog/2023/10/07/1830" rel="next" style="color: #0000cc;">Radxa Zero</a> and built a complete System 7.5.5 image to recover a few old files (essentially the Mac version of the archive spelunking I did <a href="/space/blog/2020/10/24/2100" rel="next" style="color: #0000cc;">a few years ago</a>).</li>
  1637. </ul>
  1638. <figure>
  1639.  <img src="https://taoofmac.com/media/notes/2024/07/21/1800/Ku5Rw7KFzO-JJ34KpvyitAZpVaE=/basilisk2.jpg" title="a Mac inside a pseudo Mac" width="2048" height="1279" style="max-width: 100% !important;height: auto !important;"/>
  1640.  <figcaption>This is Office 4.2. All if it, in less than 60MB on disk.</figcaption>
  1641. </figure>
  1642.  
  1643. <p>I already have a Raspberry Pi running <a href="https://github.com/jaromaz/MacintoshPi?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">MacintoshPi</a>, but this one I can access via remote desktop&#8230;</p>
  1644. <a class="anchor" id="anchor-ai-stuff" rel="anchor" href="/space/notes/2024/07/21/1800#ai-stuff" style="color: #0000cc;"><h2 id="ai-stuff">AI Stuff</h2></a><p>I also spent a little time playing with <code>gpt-4o-mini</code> (it&#8217;s already available in preview in Azure Open AI) and planning the next steps for moving all of my <code>gpt-3.5-turbo</code> services over to it (which will involve a few prompt tweaks). The price per token vs the overall quality makes it <em>really</em> hard to justify using local LLMs, but I hope we&#8217;ll see enough improvements in inference speed to flip things around within a year.</p>
  1645. <p>I&#8217;ll get back to that next week&#8211;but first, I have a fair amount of soldering to do, since a chunk of the parts I was waiting for finally arrived.</p>
  1646. <br/>
  1647. ]]></content>
  1648. <category term="home automation" label="home automation" />
  1649. <category term="notes" label="notes" />
  1650. <category term="3d printing" label="3d printing" />
  1651. <category term="retrocomputing" label="retrocomputing" />
  1652. <category term="hardware" label="hardware" />
  1653. <category term="emulation" label="emulation" />
  1654. <category term="homelab" label="homelab" />
  1655. <category term="ai" label="ai" />
  1656. </entry>
  1657. <entry>
  1658. <title>The Luckfox Pico Mini B</title>
  1659. <id>https://taoofmac.com/space/blog/2024/07/20/1800</id>
  1660. <published>2024-07-20T17:00:00+00:00</published>
  1661. <updated>2024-07-20T17:00:00+00:00</updated>
  1662. <author>
  1663. <name>Rui Carmo</name>
  1664. <uri>https://taoofmac.com</uri>
  1665. </author>
  1666. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/blog/2024/07/20/1800"/>
  1667. <content type="html"><![CDATA[
  1668. <p class="lead">A while back during my spate of <code>RK3588</code> reviews, I came across Luckfox and found their development boards intriguing, since they were marketed as being able to run Linux in the same postage stamp form factor as an MCU.</p>
  1669. <p>That seemed pretty amaazing, so I reached out to them and got a sample.</p>
  1670. <blockquote>
  1671. <p><strong>Disclaimer:</strong> Luckfox provided me with a <a href="https://www.luckfox.com/Luckfox-Pico-Mini-B?utm_campaign=review&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luckfox Pico</a> Mini board and a CSI camera (for which I thank them), and this article follows my <a href="/space/site/review_policy" rel="next" style="color: #0000cc;">review policy</a>.</p>
  1672. </blockquote>
  1673. <p>What followed has been a surprisingly pleasant experience, and I&#8217;ve been tinkering with the <a href="https://www.luckfox.com/Luckfox-Pico-Mini-B?utm_campaign=review&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luckfox Pico</a> Mini on and off for a few weeks now&#8211;to be fair, mostly off given several work shenanigans, but that&#8217;s beside the point right now&#8230;</p>
  1674. <a class="anchor" id="anchor-hardware" rel="anchor" href="/space/blog/2024/07/20/1800#hardware" style="color: #0000cc;"><h2 id="hardware">Hardware</h2></a><p>I got the B model, which has a soldered on 128MB SPI NAND flash:</p>
  1675. <figure>
  1676. <img src="https://taoofmac.com/media/blog/2024/07/20/1800/fevtzOVSj6R7Wkmo1xsfeHIw2Cs=/luckfox.jpg" title="tiniest Linux machine I own" width="2048" height="1255" style="max-width: 100% !important;height: auto !important;"/>
  1677. <figcaption>Both sides of the board, which is pretty compact.</figcaption>
  1678. </figure>
  1679.  
  1680. <p>The specs for the version I got are:</p>
  1681. <ul>
  1682. <li>Single Cortex A7 1.2GHz core</li>
  1683. <li>0.5 TOPS NPU (with int4, int8, int16 support, so it can run OpenCV and simple neural networks, but nothing too fancy)</li>
  1684. <li>64MB RAM</li>
  1685. <li>USB-C 2.0 host/device connector</li>
  1686. <li>CSI connector (I also got a 3mp camera)</li>
  1687. <li>MicroSD connector</li>
  1688. <li>17 GPIO pins</li>
  1689. </ul>
  1690. <p>An intriguing part of the RV1103 chip that I haven&#8217;t explored is that it includes a RISC-V MCU and an integrated signal processor for speeding up camera operations&#8211;I intend to play with that at some point, but simply haven&#8217;t had the time yet.</p>
  1691. <p>If you&#8217;ve been following along in the <a href="/space/hw/esp8266" rel="next" style="color: #0000cc;">ESP32</a> and <a href="/space/hw/rp2040" rel="next" style="color: #0000cc;">RP2040</a> space, you&#8217;re certainly wondering about price right now, since the overall specs compare pretty favourably with similarly sized <a href="/space/hw/esp8266" rel="next" style="color: #0000cc;">ESP32</a> and <a href="/space/hw/rp2040" rel="next" style="color: #0000cc;">RP2040</a> boards, especially if you consider its secret sauce&#8211;i.e., running Linux natively.</p>
  1692. <p>Right now it&#8217;s selling for $8.99, which is around twice the price of similarly-sized boards, but which still looks like a bargain if you need the extra processing power and the ability to run Linux.</p>
  1693. <p>On the flip side, this particular model doesn&#8217;t have wireless connectivity, which is a bit of a bummer. But I can see how that would complicate the design and increase the price further.</p>
  1694. <p>I&#8217;d say we&#8217;re about a year away from seeing a Cortex A7 with wireless connectivity at this price point, but don&#8217;t hold me to that.</p>
  1695. <a class="anchor" id="anchor-going-in-headfirst" rel="anchor" href="/space/blog/2024/07/20/1800#going-in-headfirst" style="color: #0000cc;"><h2 id="going-in-headfirst">Going In Headfirst</h2></a><p>Since the B version of the board has on-board storage and comes pre-flashed with a working 5.10 kernel, I decided to see how far I could go with the board as it comes out of the box.</p>
  1696. <a class="anchor" id="anchor-connecting" rel="anchor" href="/space/blog/2024/07/20/1800#connecting" style="color: #0000cc;"><h3 id="connecting">Connecting</h3></a><p>I plugged the <a href="https://www.luckfox.com/Luckfox-Pico-Mini-B?utm_campaign=review&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luckfox Pico</a> into one of my Linux machines, and it showed up immediately as a <code>RNDIS</code> device:</p>
  1697. <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>&#10095;<span class="w"> </span>dmesg
  1698.  
  1699. <span class="o">[</span><span class="m">57790</span>.089476<span class="o">]</span><span class="w"> </span>usb<span class="w"> </span><span class="m">3</span>-2:<span class="w"> </span>new<span class="w"> </span>high-speed<span class="w"> </span>USB<span class="w"> </span>device<span class="w"> </span>number<span class="w"> </span><span class="m">3</span><span class="w"> </span>using<span class="w"> </span>xhci_hcd
  1700. <span class="o">[</span><span class="m">57790</span>.220263<span class="o">]</span><span class="w"> </span>usb<span class="w"> </span><span class="m">3</span>-2:<span class="w"> </span>New<span class="w"> </span>USB<span class="w"> </span>device<span class="w"> </span>found,<span class="w"> </span><span class="nv">idVendor</span><span class="o">=</span><span class="m">2207</span>,<span class="w"> </span><span class="nv">idProduct</span><span class="o">=</span><span class="m">0019</span>,<span class="w"> </span><span class="nv">bcdDevice</span><span class="o">=</span><span class="w"> </span><span class="m">3</span>.10
  1701. <span class="o">[</span><span class="m">57790</span>.220280<span class="o">]</span><span class="w"> </span>usb<span class="w"> </span><span class="m">3</span>-2:<span class="w"> </span>New<span class="w"> </span>USB<span class="w"> </span>device<span class="w"> </span>strings:<span class="w"> </span><span class="nv">Mfr</span><span class="o">=</span><span class="m">1</span>,<span class="w"> </span><span class="nv">Product</span><span class="o">=</span><span class="m">2</span>,<span class="w"> </span><span class="nv">SerialNumber</span><span class="o">=</span><span class="m">3</span>
  1702. <span class="o">[</span><span class="m">57790</span>.220287<span class="o">]</span><span class="w"> </span>usb<span class="w"> </span><span class="m">3</span>-2:<span class="w"> </span>Product:<span class="w"> </span>rk3xxx
  1703. <span class="o">[</span><span class="m">57790</span>.220292<span class="o">]</span><span class="w"> </span>usb<span class="w"> </span><span class="m">3</span>-2:<span class="w"> </span>Manufacturer:<span class="w"> </span>rockchip
  1704. <span class="o">[</span><span class="m">57790</span>.220298<span class="o">]</span><span class="w"> </span>usb<span class="w"> </span><span class="m">3</span>-2:<span class="w"> </span>SerialNumber:<span class="w"> </span>c800c8d03cffebb8
  1705. <span class="o">[</span><span class="m">57790</span>.333460<span class="o">]</span><span class="w"> </span>usbcore:<span class="w"> </span>registered<span class="w"> </span>new<span class="w"> </span>interface<span class="w"> </span>driver<span class="w"> </span>cdc_ether
  1706. <span class="o">[</span><span class="m">57790</span>.341712<span class="o">]</span><span class="w"> </span>rndis_host<span class="w"> </span><span class="m">3</span>-2:1.0<span class="w"> </span>usb0:<span class="w"> </span>register<span class="w"> </span><span class="s1">'rndis_host'</span><span class="w"> </span>at<span class="w"> </span>usb-0000:04:00.4-2,<span class="w"> </span>RNDIS<span class="w"> </span>device,<span class="w"> </span>ae:5c:b5:d3:ee:1e
  1707. <span class="o">[</span><span class="m">57790</span>.341790<span class="o">]</span><span class="w"> </span>usbcore:<span class="w"> </span>registered<span class="w"> </span>new<span class="w"> </span>interface<span class="w"> </span>driver<span class="w"> </span>rndis_host
  1708. <span class="o">[</span><span class="m">57790</span>.380103<span class="o">]</span><span class="w"> </span>rndis_host<span class="w"> </span><span class="m">3</span>-2:1.0<span class="w"> </span>enp4s0f4u2:<span class="w"> </span>renamed<span class="w"> </span>from<span class="w"> </span>usb0
  1709. </code></pre></div>
  1710.  
  1711. <p>This means there&#8217;s none of the usual serial port/<code>FTDI</code>-style shenanigans (well, when you&#8217;re not flashing it, of course). Instead, you have to do some TCP/IP shenanigans.</p>
  1712. <p>My host machine auto-generated the <code>enp4s0f4u2</code> interface, but if you need to flash a number of these and keep inventory, here&#8217;s a quick snippet to figure out the right interface from the MAC address without going into <code>dmesg</code>:</p>
  1713. <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>&#10095;<span class="w"> </span>ip<span class="w"> </span>addr<span class="w"> </span>list<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>-B<span class="w"> </span><span class="m">1</span><span class="w"> </span>-A<span class="w"> </span><span class="m">2</span><span class="w"> </span>ae:5c:b5:d3:ee:1e
  1714.  
  1715. <span class="m">5</span>:<span class="w"> </span>enp4s0f4u2:<span class="w"> </span>&lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt;<span class="w"> </span>mtu<span class="w"> </span><span class="m">1500</span><span class="w"> </span>qdisc<span class="w"> </span>fq_codel<span class="w"> </span>state<span class="w"> </span>UNKNOWN<span class="w"> </span>group<span class="w"> </span>default<span class="w"> </span>qlen<span class="w"> </span><span class="m">1000</span>
  1716. <span class="w">    </span>link/ether<span class="w"> </span>ae:5c:b5:d3:ee:1e<span class="w"> </span>brd<span class="w"> </span>ff:ff:ff:ff:ff:ff
  1717. <span class="w">    </span>inet6<span class="w"> </span>fe80::f8c1:e2a2:dd8a:c6c1/64<span class="w"> </span>scope<span class="w"> </span>link<span class="w"> </span>noprefixroute<span class="w"> </span>
  1718. <span class="w">       </span>valid_lft<span class="w"> </span>forever<span class="w"> </span>preferred_lft<span class="w"> </span>forever
  1719. </code></pre></div>
  1720.  
  1721. <p>As you can see, there&#8217;s no assigned IPv4 (only the system-assigned link-local IPv6 on the host side). And the <a href="https://www.luckfox.com/Luckfox-Pico-Mini-B?utm_campaign=review&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luckfox Pico</a> does not support <a href="http://www.faqs.org/rfcs/rfc3927?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">RFC 3927</a>, so you don&#8217;t get an automatic link-local IPv4 address. </p>
  1722. <p><a href="https://wiki.luckfox.com/Luckfox-Pico/SSH-Telnet-Login?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">The docs</a> specify the default IP as <code>172.32.0.93</code>, so let&#8217;s set an address at our end and test the Ethernet over USB link:</p>
  1723. <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>&#10095;<span class="w"> </span>sudo<span class="w"> </span>ip<span class="w"> </span>addr<span class="w"> </span>add<span class="w"> </span><span class="m">172</span>.32.0.1/16<span class="w"> </span>dev<span class="w"> </span>enp4s0f4u2
  1724. &#10095;<span class="w"> </span>ping<span class="w"> </span><span class="m">172</span>.32.0.93<span class="w">                             </span>
  1725. PING<span class="w"> </span><span class="m">172</span>.32.0.93<span class="w"> </span><span class="o">(</span><span class="m">172</span>.32.0.93<span class="o">)</span><span class="w"> </span><span class="m">56</span><span class="o">(</span><span class="m">84</span><span class="o">)</span><span class="w"> </span>bytes<span class="w"> </span>of<span class="w"> </span>data.
  1726. <span class="m">64</span><span class="w"> </span>bytes<span class="w"> </span>from<span class="w"> </span><span class="m">172</span>.32.0.93:<span class="w"> </span><span class="nv">icmp_seq</span><span class="o">=</span><span class="m">1</span><span class="w"> </span><span class="nv">ttl</span><span class="o">=</span><span class="m">64</span><span class="w"> </span><span class="nv">time</span><span class="o">=</span><span class="m">0</span>.754<span class="w"> </span>ms
  1727. <span class="m">64</span><span class="w"> </span>bytes<span class="w"> </span>from<span class="w"> </span><span class="m">172</span>.32.0.93:<span class="w"> </span><span class="nv">icmp_seq</span><span class="o">=</span><span class="m">2</span><span class="w"> </span><span class="nv">ttl</span><span class="o">=</span><span class="m">64</span><span class="w"> </span><span class="nv">time</span><span class="o">=</span><span class="m">0</span>.580<span class="w"> </span>ms
  1728. ^C
  1729. ---<span class="w"> </span><span class="m">172</span>.32.0.93<span class="w"> </span>ping<span class="w"> </span>statistics<span class="w"> </span>---
  1730. <span class="m">2</span><span class="w"> </span>packets<span class="w"> </span>transmitted,<span class="w"> </span><span class="m">2</span><span class="w"> </span>received,<span class="w"> </span><span class="m">0</span>%<span class="w"> </span>packet<span class="w"> </span>loss,<span class="w"> </span><span class="nb">time</span><span class="w"> </span>1008ms
  1731. rtt<span class="w"> </span>min/avg/max/mdev<span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span>.580/0.667/0.754/0.087<span class="w"> </span>ms
  1732. </code></pre></div>
  1733.  
  1734. <p>It feels a bit weird to log in to what is almost an MCU via <code>ssh</code>, but it works fine:</p>
  1735. <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>&#10095;<span class="w"> </span>ssh<span class="w"> </span>root@172.32.0.93
  1736. The<span class="w"> </span>authenticity<span class="w"> </span>of<span class="w"> </span>host<span class="w"> </span><span class="s1">'172.32.0.93 (172.32.0.93)'</span><span class="w"> </span>can<span class="s1">'t be established.</span>
  1737. <span class="s1">ED25519 key fingerprint is SHA256:VnUEEITBSJ7Y7h+wmk8bTqw47QwdLWudvM0tRgke4Kc.</span>
  1738. <span class="s1">This key is not known by any other names.</span>
  1739. <span class="s1">Are you sure you want to continue connecting (yes/no/[fingerprint])? yes</span>
  1740. <span class="s1">Warning: Permanently added '</span><span class="m">172</span>.32.0.93<span class="s1">' (ED25519) to the list of known hosts.</span>
  1741. <span class="s1">root@172.32.0.93'</span>s<span class="w"> </span>password:<span class="w"> </span>
  1742. <span class="c1"># uname -a</span>
  1743. Linux<span class="w"> </span>luckfox<span class="w"> </span><span class="m">5</span>.10.110<span class="w"> </span><span class="c1">#1 Tue Nov 14 18:06:04 CST</span>
  1744. <span class="w"> </span><span class="m">2023</span><span class="w"> </span>armv7l<span class="w"> </span>GNU/Linux
  1745. <span class="c1"># cat /etc/issue </span>
  1746. Welcome<span class="w"> </span>to<span class="w"> </span>luckfox<span class="w"> </span>pico
  1747. </code></pre></div>
  1748.  
  1749. <a class="anchor" id="anchor-running-processes" rel="anchor" href="/space/blog/2024/07/20/1800#running-processes" style="color: #0000cc;"><h3 id="running-processes">Running Processes</h3></a><p>The runtime is, as you&#8217;d expect, pretty sparse, and on the base image there aren&#8217;t a lot of things besides kernel workers:</p>
  1750. <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="c1"># ps -ef</span>
  1751. PID<span class="w">   </span>USER<span class="w">     </span>COMMAND
  1752. <span class="w">    </span><span class="m">1</span><span class="w"> </span>root<span class="w">     </span>init
  1753. <span class="w">    </span><span class="m">2</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>kthreadd<span class="o">]</span>
  1754. <span class="w">    </span><span class="m">4</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>kworker/0:0H<span class="o">]</span>
  1755. <span class="w">    </span><span class="m">6</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>mm_percpu_wq<span class="o">]</span>
  1756. <span class="w">    </span><span class="m">7</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>ksoftirqd/0<span class="o">]</span>
  1757. <span class="w">    </span><span class="m">8</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>kdevtmpfs<span class="o">]</span>
  1758. <span class="w">    </span><span class="m">9</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>oom_reaper<span class="o">]</span>
  1759. <span class="w">   </span><span class="m">10</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>writeback<span class="o">]</span>
  1760. <span class="w">   </span><span class="m">11</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>kcompactd0<span class="o">]</span>
  1761. <span class="w">   </span><span class="m">12</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>ksmd<span class="o">]</span>
  1762. <span class="w">   </span><span class="m">28</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>kblockd<span class="o">]</span>
  1763. <span class="w">   </span><span class="m">29</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>kconsole<span class="o">]</span>
  1764. <span class="w">   </span><span class="m">30</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>devfreq_wq<span class="o">]</span>
  1765. <span class="w">   </span><span class="m">31</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>watchdogd<span class="o">]</span>
  1766. <span class="w">   </span><span class="m">32</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>kworker/0:1-eve<span class="o">]</span>
  1767. <span class="w">   </span><span class="m">33</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>rpciod<span class="o">]</span>
  1768. <span class="w">   </span><span class="m">34</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>kworker/u3:0<span class="o">]</span>
  1769. <span class="w">   </span><span class="m">35</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>xprtiod<span class="o">]</span>
  1770. <span class="w">   </span><span class="m">36</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>kswapd0<span class="o">]</span>
  1771. <span class="w">   </span><span class="m">37</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>nfsiod<span class="o">]</span>
  1772. <span class="w">   </span><span class="m">38</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>irq/60-rockchip<span class="o">]</span>
  1773. <span class="w">   </span><span class="m">39</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>irq/61-rockchip<span class="o">]</span>
  1774. <span class="w">   </span><span class="m">40</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>kworker/u2:1-ev<span class="o">]</span>
  1775. <span class="w">   </span><span class="m">41</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>hwrng<span class="o">]</span>
  1776. <span class="w">   </span><span class="m">42</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>spi0<span class="o">]</span>
  1777. <span class="w">   </span><span class="m">51</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>kworker/0:3-eve<span class="o">]</span>
  1778. <span class="w">   </span><span class="m">52</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>irq/22-rockchip<span class="o">]</span>
  1779. <span class="w">   </span><span class="m">53</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>kworker/u2:2-ev<span class="o">]</span>
  1780. <span class="w">   </span><span class="m">54</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>ubi_bgt0d<span class="o">]</span>
  1781. <span class="w">   </span><span class="m">57</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>ubifs_bgt0_0<span class="o">]</span>
  1782. <span class="w">   </span><span class="m">73</span><span class="w"> </span>root<span class="w">     </span>/sbin/syslogd<span class="w"> </span>-n
  1783. <span class="w">   </span><span class="m">77</span><span class="w"> </span>root<span class="w">     </span>/sbin/klogd<span class="w"> </span>-n
  1784. <span class="w">   </span><span class="m">88</span><span class="w"> </span>root<span class="w">     </span>/sbin/udevd<span class="w"> </span>-d
  1785. <span class="w">  </span><span class="m">141</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>ubi_bgt4d<span class="o">]</span>
  1786. <span class="w">  </span><span class="m">146</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>ubifs_bgt4_0<span class="o">]</span>
  1787. <span class="w">  </span><span class="m">155</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>ubi_bgt5d<span class="o">]</span>
  1788. <span class="w">  </span><span class="m">160</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>ubifs_bgt5_0<span class="o">]</span>
  1789. <span class="w">  </span><span class="m">182</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>irq/50-ffa70000<span class="o">]</span>
  1790. <span class="w">  </span><span class="m">200</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>irq/41-rga2<span class="o">]</span>
  1791. <span class="w">  </span><span class="m">202</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>queue_work0<span class="o">]</span>
  1792. <span class="w">  </span><span class="m">203</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>queue_work1<span class="o">]</span>
  1793. <span class="w">  </span><span class="m">204</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>irq/48-ffa50000<span class="o">]</span>
  1794. <span class="w">  </span><span class="m">205</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>irq/49-ffa60000<span class="o">]</span>
  1795. <span class="w">  </span><span class="m">206</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>vcodec_thread_0<span class="o">]</span>
  1796. <span class="w">  </span><span class="m">208</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>rknpu_power_off<span class="o">]</span>
  1797. <span class="w">  </span><span class="m">215</span><span class="w"> </span>root<span class="w">     </span>sshd:<span class="w"> </span>/usr/sbin/sshd<span class="w"> </span><span class="o">[</span>listener<span class="o">]</span><span class="w"> </span><span class="m">0</span><span class="w"> </span>of<span class="w"> </span><span class="m">10</span>-100<span class="w"> </span>startups
  1798. <span class="w">  </span><span class="m">246</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>vlog<span class="o">]</span>
  1799. <span class="w">  </span><span class="m">247</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>vsys<span class="o">]</span>
  1800. <span class="w">  </span><span class="m">248</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>vrga<span class="o">]</span>
  1801. <span class="w">  </span><span class="m">250</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>vpss<span class="o">]</span>
  1802. <span class="w">  </span><span class="m">251</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>vrgn<span class="o">]</span>
  1803. <span class="w">  </span><span class="m">253</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>vmcu<span class="o">]</span>
  1804. <span class="w">  </span><span class="m">326</span><span class="w"> </span>root<span class="w">     </span>/usr/bin/adbd
  1805. <span class="w">  </span><span class="m">334</span><span class="w"> </span>root<span class="w">     </span><span class="o">[</span>irq/62-dwc3<span class="o">]</span>
  1806. <span class="w">  </span><span class="m">370</span><span class="w"> </span>root<span class="w">     </span>smbd<span class="w"> </span>-D
  1807. <span class="w">  </span><span class="m">373</span><span class="w"> </span>root<span class="w">     </span><span class="o">{</span>smbd-notifyd<span class="o">}</span><span class="w"> </span>smbd<span class="w"> </span>-D
  1808. <span class="w">  </span><span class="m">374</span><span class="w"> </span>root<span class="w">     </span><span class="o">{</span>smbd-cleanupd<span class="o">}</span><span class="w"> </span>smbd<span class="w"> </span>-D
  1809. <span class="w">  </span><span class="m">379</span><span class="w"> </span>root<span class="w">     </span>nmbd<span class="w"> </span>-D
  1810. <span class="w">  </span><span class="m">384</span><span class="w"> </span>root<span class="w">     </span>/sbin/getty<span class="w"> </span>-L<span class="w"> </span>console<span class="w"> </span><span class="m">0</span><span class="w"> </span>vt100
  1811. <span class="w">  </span><span class="m">397</span><span class="w"> </span>root<span class="w">     </span>sshd:<span class="w"> </span>root@pts/0
  1812. <span class="w">  </span><span class="m">399</span><span class="w"> </span>root<span class="w">     </span>-sh
  1813. <span class="w">  </span><span class="m">409</span><span class="w"> </span>root<span class="w">     </span>ps<span class="w"> </span>-ef
  1814. </code></pre></div>
  1815.  
  1816. <p>Wait, is that&#8230; Samba? Seriously?</p>
  1817. <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="c1"># cat /etc/samba/smb.conf </span>
  1818. <span class="o">[</span>global<span class="o">]</span>
  1819. <span class="w">        </span><span class="nv">workgroup</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>WORKGROUP
  1820. <span class="w">        </span>server<span class="w"> </span><span class="nv">string</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>luckfox<span class="w"> </span>samba<span class="w"> </span>server
  1821. <span class="w">        </span><span class="nv">security</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>user<span class="w">  </span>
  1822. <span class="w">        </span>passdb<span class="w"> </span><span class="nv">backend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>smbpasswd
  1823. <span class="w">        </span>smb<span class="w"> </span>passwd<span class="w"> </span><span class="nv">file</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>/etc/samba/smbpasswd
  1824. <span class="o">[</span>public<span class="o">]</span>
  1825. <span class="w">        </span><span class="nv">comment</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>public<span class="w"> </span>share
  1826. <span class="w">        </span><span class="nv">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>/
  1827. <span class="w">        </span><span class="nb">read</span><span class="w"> </span><span class="nv">only</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>no
  1828. <span class="w">        </span><span class="nv">user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>root
  1829. <span class="w">        </span>create<span class="w"> </span><span class="nv">mask</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0755</span>
  1830. <span class="w">        </span>directory<span class="w"> </span><span class="nv">mask</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0755</span><span class="c1"># </span>
  1831. </code></pre></div>
  1832.  
  1833. <p>Yep. This when you start realizing the <a href="https://www.luckfox.com/Luckfox-Pico-Mini-B?utm_campaign=review&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luckfox Pico</a> is an embedded system you can <em>mount</em> over <a href="/space/protocols/smb" rel="next" style="color: #0000cc;">SMB</a>&#8211;crazy times.</p>
  1834. <a class="anchor" id="anchor-running-my-first-binary" rel="anchor" href="/space/blog/2024/07/20/1800#running-my-first-binary" style="color: #0000cc;"><h2 id="running-my-first-binary">Running My First Binary</h2></a><p>At the time I got this I didn&#8217;t have any cross-compilation environments set up, but I did have <a href="/space/dev/golang" rel="next" style="color: #0000cc;">Go</a>, and I have a fairly long history of building impromptu binaries for weird ARM architectures using, it.</p>
  1835. <p>So I thought I&#8217;d add to that list:</p>
  1836. <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>&#10095;<span class="w"> </span>go<span class="w"> </span>mod<span class="w"> </span>init<span class="w"> </span>luckfox/hello
  1837.  
  1838. ...a<span class="w"> </span>few<span class="w"> </span>moments<span class="w"> </span>later...
  1839. &#10095;<span class="w"> </span>cat<span class="w"> </span>hello.go<span class="w"> </span>
  1840. package<span class="w"> </span>main
  1841.  
  1842. import<span class="w"> </span><span class="s2">"fmt"</span>
  1843.  
  1844. func<span class="w"> </span>main<span class="o">()</span><span class="w"> </span><span class="o">{</span>
  1845. <span class="w">        </span>fmt.Println<span class="o">(</span><span class="s2">"Hello, Luckfox!"</span><span class="o">)</span>
  1846. <span class="o">}</span>
  1847.  
  1848. &#10095;<span class="w"> </span>env<span class="w"> </span><span class="nv">GOOS</span><span class="o">=</span>linux<span class="w"> </span><span class="nv">GOARCH</span><span class="o">=</span>arm<span class="w"> </span><span class="nv">GOARM</span><span class="o">=</span><span class="m">7</span><span class="w"> </span>go<span class="w"> </span>build<span class="w"> </span>-o<span class="w"> </span>hello.armv7
  1849.  
  1850. &#10095;<span class="w"> </span>file<span class="w"> </span>hello.armv7<span class="w"> </span>
  1851. hello.armv7:<span class="w"> </span>ELF<span class="w"> </span><span class="m">32</span>-bit<span class="w"> </span>LSB<span class="w"> </span>executable,<span class="w"> </span>ARM,<span class="w"> </span>EABI5<span class="w"> </span>version<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="o">(</span>SYSV<span class="o">)</span>,<span class="w"> </span>statically<span class="w"> </span>linked,<span class="w"> </span>Go<span class="w"> </span><span class="nv">BuildID</span><span class="o">=</span>fMvkSlf1kYWYnV88GhTQ/J1Y1phDV859SF5L4bFxZ/P3d-713IBZ6mHIbEpIub/hZRSRS5aBTm4NBaU8f_g,<span class="w"> </span>with<span class="w"> </span>debug_info,<span class="w"> </span>not<span class="w"> </span>stripped
  1852.  
  1853. &#10095;<span class="w"> </span>scp<span class="w"> </span>hello.armv7<span class="w"> </span>root@172.32.0.93:~/
  1854.  
  1855. ...a<span class="w"> </span>few<span class="w"> </span>moments<span class="w"> </span>later...
  1856.  
  1857. <span class="c1"># ./hello.armv7</span>
  1858. Hello<span class="w"> </span>Luckfox!
  1859. </code></pre></div>
  1860.  
  1861. <p>The resulting binary is 1823294 bytes in size (which is reasonable given that it is fully static), and the other (relatively simplistic) stuff I&#8217;ve built since hasn&#8217;t yet crossed the 2MB mark. And keep in mind <em>this isn&#8217;t <a href="https://tinygo.org/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">TinyGo</a></em>, it&#8217;s the full-fat Go runtime.</p>
  1862. <p>A few days later, while rummaging around, I realised that the <a href="https://www.luckfox.com/Luckfox-Pico-Mini-B?utm_campaign=review&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luckfox Pico</a> ships with <a href="/space/dev/python" rel="next" style="color: #0000cc;">Python</a> 3.11. Not MicroPython, mind you, but, again, <em>the whole thing</em> (or at least a good chunk of it that it hasn&#8217;t mattered yet).</p>
  1863. <p>I&#8217;ve since built some <a href="/space/dev/c" rel="next" style="color: #0000cc;">C</a> binaries, and eventually realized I can actually run <code>gdb</code> locally on the device&#8211;which is the kind of frictionless, iterative development approach that I <em>love</em>.</p>
  1864. <p>This opens up the opportunity for taking existing <a href="/space/dev/python" rel="next" style="color: #0000cc;">Python</a> or <a href="/space/dev/c" rel="next" style="color: #0000cc;">C</a> code that would be a pain to port to Arduino or a simpler MCU and just cross-compile and copy across and test it within an hour or so, which is pretty great.</p>
  1865. <a class="anchor" id="anchor-gpio-control" rel="anchor" href="/space/blog/2024/07/20/1800#gpio-control" style="color: #0000cc;"><h2 id="gpio-control">GPIO Control</h2></a><p>The <a href="https://www.luckfox.com/Luckfox-Pico-Mini-B?utm_campaign=review&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luckfox Pico</a> Mini has the usual set of GPIO pins, overlapping with 4 UARTs, an SPI interface and an I2C one:</p>
  1866. <figure>
  1867. <img src="https://taoofmac.com/media/blog/2024/07/20/1800/UWSNByMSzqPq7Mt41nPQHGwDXZg=/gpio.jpg" title="reasonably comprehensive" width="1107" height="461" style="max-width: 100% !important;height: auto !important;"/>
  1868. <figcaption>Pinout for the Mini A/B models</figcaption>
  1869. </figure>
  1870.  
  1871. <p>The nice thing about having a Linux kernel is that GPIOs are mapped as device folders under <code>/sys/class/gpio</code>, so literally <em>anything</em> can use them without special libraries.</p>
  1872. <p>However, there are shipping libraries to make things easier, and the documentation covers that in detail&#8211;there&#8217;s <a href="https://wiki.luckfox.com/Luckfox-Pico/Luckfox-Pico-GPIO?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link#4-gpio-control-c-program" rel="external" style="color: #0000cc;">a C example</a> in the Luckfox Wiki that demonstrates GPIO access, and matching ones for <code>I2C</code>, <code>SPI</code>, etc.</p>
  1873. <p>Sadly, there&#8217;s no <code>I2S</code> support on this model&#8211;so my initial idea of getting a <code>PCM5102A</code> DAC to work didn&#8217;t pan out.</p>
  1874. <a class="anchor" id="anchor-building-and-flashing-new-firmware" rel="anchor" href="/space/blog/2024/07/20/1800#building-and-flashing-new-firmware" style="color: #0000cc;"><h2 id="building-and-flashing-new-firmware">Building and Flashing New Firmware</h2></a><p>I didn&#8217;t yet have time to build anything truly complex (I was planning to incorporate the <a href="https://www.luckfox.com/Luckfox-Pico-Mini-B?utm_campaign=review&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luckfox Pico</a> into a little audio project, and now I am considering other uses), but since that&#8217;s usually something I very much want to do, I investigated how to go about it.</p>
  1875. <p>In short, there&#8217;s a set of <a href="https://wiki.luckfox.com/Luckfox-Pico/Luckfox-Pico-SDK?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">comprehensive docs</a> regarding getting an SDK going on Ubuntu 22.04, and a <a href="https://gitee.com/LuckfoxTECH/luckfox-pico?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">public repository</a> (not on Github, though) with reference tarballs and patches for various libraries. Given the propensity of Rockchip SDKs to come with assorted binaries, I&#8217;d be prepared for a little work, but couldn&#8217;t see anything too out of the ordinary.</p>
  1876. <p>As to pre-built images, as usual with Chinese companies they&#8217;re available via Google Drive download (I&#8217;m not a fan of this, but it&#8217;s a common practice), and the flashing process is pretty straightforward.</p>
  1877. <a class="anchor" id="anchor-a-nice-surprise" rel="anchor" href="/space/blog/2024/07/20/1800#a-nice-surprise" style="color: #0000cc;"><h3 id="a-nice-surprise">A Nice Surprise</h3></a><p>On that note, to my surprise, Luckfox actually has <a href="https://wiki.luckfox.com/Luckfox-Pico/Linux-MacOS-Burn-Image?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Linux and MacOS instructions</a> for flashing, so the <a href="/space/blog/2024/07/04/2200" rel="next" style="color: #0000cc;">tiny Windows box</a> that I got expressey to deal with Rockchip tools for the <code>RK3588</code> boards sat this one out.</p>
  1878. <a class="anchor" id="anchor-connectivity" rel="anchor" href="/space/blog/2024/07/20/1800#connectivity" style="color: #0000cc;"><h2 id="connectivity">Connectivity</h2></a><p>My original idea was to leverage the Cortex A7 for building a tiny synthesiser with a bit more oomph than the <a href="/space/hw/rp2040" rel="next" style="color: #0000cc;">Pi Pico</a> ones that have been making the rounds&#8211;but that hasn&#8217;t come to pass, and the lack of wireless connectivity prevents me from using it in my home automation projects.</p>
  1879. <p>But with four UARTs, you can hook up more MCUs and use the <a href="https://www.luckfox.com/Luckfox-Pico-Mini-B?utm_campaign=review&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luckfox Pico</a>&#8217;s SD card as a sensor data logger as well&#8211;I can see this being used in drones and other applications where you need a bit more processing power than a typical MCU.</p>
  1880. <p>What I eventually did was to force route the <a href="https://www.luckfox.com/Luckfox-Pico-Mini-B?utm_campaign=review&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luckfox Pico</a> through my Linux machine and play around with little TCP servers on it. This is a bit of a kludge, but it works even if it&#8217;s not an elegant solution.</p>
  1881. <a class="anchor" id="anchor-conclusion" rel="anchor" href="/space/blog/2024/07/20/1800#conclusion" style="color: #0000cc;"><h2 id="conclusion">Conclusion</h2></a><p>So who is this for? Well, for starters, I&#8217;d say the <a href="https://www.luckfox.com/Luckfox-Pico-Mini-B?utm_campaign=review&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luckfox Pico</a> is for people who already have a code base that absolutely <em>requires</em> full POSIX compliance or is already running on ARMv7 chips and don&#8217;t want to mess with the complexity of porting it to a &#8220;plain&#8221; MCU.</p>
  1882. <p>And, in a nutshell, that&#8217;s why I have been tinkering with it&#8211;I can get something working, build an ARM binary, and copy it across in seconds&#8211;or just let the <a href="https://www.luckfox.com/Luckfox-Pico-Mini-B?utm_campaign=review&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luckfox Pico</a> route through my machine and fetch the binary from there, without using any board-specific tools whatsoever. That&#8217;s something you can&#8217;t do with any other development board this size.</p>
  1883. <p>I haven&#8217;t yet had the time to play with RKNN inference and the baked in YOLO support&#8211;I need a quieter time, and will update this post when I get aroudn to it&#8211;but I can see the <a href="https://www.luckfox.com/Luckfox-Pico-Mini-B?utm_campaign=review&amp;utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Luckfox Pico</a> being used as a smart, field-programmable part inspector in manufacturing, or a tiny, self-contained auto-tracking camera (like the <a href="/space/blog/2023/10/29/1700" rel="next" style="color: #0000cc;">OBSbot Tiny</a> I&#8217;ve been using).</p>
  1884. <p>But given that this is an A7 with a pretty decent FPU, I&#8217;d say signal processing appliations would be a great candidate (I&#8217;m still stuck on the idea of using it as the core of a tiny synthesizer, even without I2S).</p>
  1885. <br/>
  1886. ]]></content>
  1887. <category term="cortex-a7" label="cortex-a7" />
  1888. <category term="arm" label="arm" />
  1889. <category term="luckfox" label="luckfox" />
  1890. <category term="mcu" label="mcu" />
  1891. <category term="embedded" label="embedded" />
  1892. <category term="npu" label="npu" />
  1893. <category term="rv1103" label="rv1103" />
  1894. <category term="linux" label="linux" />
  1895. <category term="armv7" label="armv7" />
  1896. <category term="hardware" label="hardware" />
  1897. </entry>
  1898. <entry>
  1899. <title>RP2040</title>
  1900. <id>https://taoofmac.com/space/hw/rp2040</id>
  1901. <published>2022-05-31T22:42:11+00:00</published>
  1902. <updated>2024-07-20T12:45:00+00:00</updated>
  1903. <author>
  1904. <name>Rui Carmo</name>
  1905. <uri>https://taoofmac.com</uri>
  1906. </author>
  1907. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/hw/rp2040"/>
  1908. <content type="html"><![CDATA[
  1909. <p class="lead">The RP2040 is a dual-core ARM Cortex-M0+ microcontroller designed by the Raspberry Pi Foundation. It is used in the Raspberry Pi Pico and other boards, and has become a popular choice for embedded projects due to its low cost and ease of use (dethroning the <a href="/space/hw/esp8266" rel="next" style="color: #0000cc;">ESP8266</a> and <a href="/space/hw/esp8266" rel="next" style="color: #0000cc;">ESP32</a> in many cases).</p>
  1910. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/hw/rp2040#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%;">
  1911. <thead>
  1912. <tr style="border-top: 1px solid #aaa;">
  1913. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  1914. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  1915. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  1916. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  1917. </tr>
  1918. </thead>
  1919. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  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;">AI</td>
  1922. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1923. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/raspberrypi/pico-tflmicro?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">pico-tflmicro</a></td>
  1924. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a port of TensorFlow Lite Micro to the Raspberry Pi Pico</p></td>
  1925. </tr>
  1926. <tr style="border-top: 1px solid #aaa;">
  1927. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Audio</td>
  1928. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/DatanoiseTV/PicoADK-Hardware?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">PicoADK-Hardware</a></td>
  1929. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a RP2040 based Audio Development Board</p></td>
  1930. </tr>
  1931. <tr style="border-top: 1px solid #aaa;">
  1932. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Electronics</td>
  1933. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  1934. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/dotcypress/ula?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Micro Logic Analyzer</a></td>
  1935. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>SUMP/OLS compatible logic analyzer firmware for RP2040 based boards</p></td>
  1936. </tr>
  1937. <tr style="border-top: 1px solid #aaa;">
  1938. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Emulation</td>
  1939. <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>
  1940. <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>
  1941. </tr>
  1942. <tr style="border-top: 1px solid #aaa;">
  1943. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1944. <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>
  1945. <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</p></td>
  1946. </tr>
  1947. <tr style="border-top: 1px solid #aaa;">
  1948. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">GUI</td>
  1949. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1950. <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>
  1951. <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>
  1952. </tr>
  1953. <tr style="border-top: 1px solid #aaa;">
  1954. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Graphics</td>
  1955. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  1956. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/Panda381/PicoVGA?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">PicoVGA</a></td>
  1957. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a VGA library for the Raspberry Pi Pico</p></td>
  1958. </tr>
  1959. <tr style="border-top: 1px solid #aaa;">
  1960. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  1961. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  1962. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/earlephilhower/arduino-pico?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">arduino-pico</a></td>
  1963. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an optimized port of the Arduino core to the RP2040</p></td>
  1964. </tr>
  1965. <tr style="border-top: 1px solid #aaa;">
  1966. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  1967. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/mcknly/breadboard-os?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">breadboard-os</a></td>
  1968. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a firmware for the RP2040 that features a CLI interface</p></td>
  1969. </tr>
  1970. </tbody>
  1971. </table>
  1972. <br/>
  1973. ]]></content>
  1974. <category term="arm" label="arm" />
  1975. <category term="mc" label="mc" />
  1976. <category term="hardware" label="hardware" />
  1977. </entry>
  1978. <entry>
  1979. <title>CrowdStrike Breakage</title>
  1980. <id>https://taoofmac.com/space/links/2024/07/19/1130</id>
  1981. <published>2024-07-19T10:30:00+00:00</published>
  1982. <updated>2024-07-19T10:30:00+00:00</updated>
  1983. <author>
  1984. <name>Rui Carmo</name>
  1985. <uri>https://taoofmac.com</uri>
  1986. </author>
  1987. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/links/2024/07/19/1130"/>
  1988. <content type="html"><![CDATA[
  1989. <p><a href="https://www.theverge.com/2024/7/19/24201717/windows-bsod-crowdstrike-outage-issue?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" title="external link to https://www.theverge.com/2024/7/19/24201717/windows-bsod-crowdstrike-outage-issue" alt="screenshot of https://www.theverge.com/2024/7/19/24201717/windows-bsod-crowdstrike-outage-issue" style="color: #0000cc;"><img class="quicklook" src="https://taoofmac.com/thumb/links/2024/07/19/1130/640,480/4Cwj-g7segYH_6Ch6N_erxzqYS0=/large.jpg" width="320" height="240" style="max-width: 100% !important;height: auto !important;"/></a></p>
  1990. <p class="lead">This is why I keep telling people that third-party kernel extensions should be banned from production servers, period.</p>
  1991. <p>And shipping LIVE cloud updates direct to endpoints, unchecked, without any canaries? Borderline criminal (and I certainly hope that IT admins can choose <em>not</em> to update machines immediately&#8211;and that they didn&#8217;t just click through the setup and called it a day).</p>
  1992. <p>Even though there is a &#8220;fix&#8221; out, recovery still consists mostly of mounting the system volume and removing <code>\Windows\System32\Drivers\CrowdStrike\C00000219*.sys</code>.</p>
  1993. <p>But since most of the affected systems are in a boot loop that may well require physical (or IPMI) access to the machine. And <code>$DIVINITY</code> help you if you did something stupid like installing this piece of garbage on your hypervisor host.</p>
  1994. <p>Given the overall chaos that this update has created, it may take <em>days</em> to sort all of this out.</p>
  1995. <p>But one thing is actually surprising to me&#8211;people don&#8217;t seem to actually be doing due diligence on how security software works before buying it and deploying it across critical systems.</p>
  1996. <p>My view of IT procurement was always&#8230; biased, but given the widespread reach of this, I now believe most are just doing cargo culting and generally&#8230; winging it and doing &#8220;checkbox compliance&#8221; instead of actually considering security products as sources of risk in and by themselves.</p>
  1997. <p>That said, CrowdStrike does seem like a very apt name&#8230; They are never going to live this down.</p>
  1998. <br/>
  1999. ]]></content>
  2000. <category term="bug" label="bug" />
  2001. <category term="windows" label="windows" />
  2002. <category term="security" label="security" />
  2003. <category term="antivirus" label="antivirus" />
  2004. <category term="kernel" label="kernel" />
  2005. <category term="extension" label="extension" />
  2006. </entry>
  2007. <entry>
  2008. <title>Emulation</title>
  2009. <id>https://taoofmac.com/space/emulation</id>
  2010. <published>2005-06-09T08:38:12+00:00</published>
  2011. <updated>2024-07-18T23:10:00+00:00</updated>
  2012. <author>
  2013. <name>Rui Carmo</name>
  2014. <uri>https://taoofmac.com</uri>
  2015. </author>
  2016. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/emulation"/>
  2017. <content type="html"><![CDATA[
  2018. <p class="lead">Emulation and hardware virtualization software of various descriptions, most of them obsolete by now:</p>
  2019. <p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  2020. <thead>
  2021. <tr style="border-top: 1px solid #aaa;">
  2022. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  2023. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  2024. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  2025. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  2026. </tr>
  2027. </thead>
  2028. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  2029. <tr style="border-top: 1px solid #aaa;">
  2030. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Amiga</td>
  2031. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2008</td>
  2032. <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>
  2033. <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>
  2034. </tr>
  2035. <tr style="border-top: 1px solid #aaa;">
  2036. <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>
  2037. <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>
  2038. </tr>
  2039. <tr style="border-top: 1px solid #aaa;">
  2040. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  2041. <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>
  2042. <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>
  2043. </tr>
  2044. <tr style="border-top: 1px solid #aaa;">
  2045. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Arcade</td>
  2046. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2010</td>
  2047. <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>
  2048. <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>
  2049. </tr>
  2050. <tr style="border-top: 1px solid #aaa;">
  2051. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2011</td>
  2052. <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>
  2053. <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>
  2054. </tr>
  2055. <tr style="border-top: 1px solid #aaa;">
  2056. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  2057. <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>
  2058. <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>
  2059. </tr>
  2060. <tr style="border-top: 1px solid #aaa;">
  2061. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">C64</td>
  2062. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2019</td>
  2063. <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>
  2064. <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>
  2065. </tr>
  2066. <tr style="border-top: 1px solid #aaa;">
  2067. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">DEC</td>
  2068. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  2069. <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>
  2070. <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>
  2071. </tr>
  2072. <tr style="border-top: 1px solid #aaa;">
  2073. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Gameboy</td>
  2074. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2008</td>
  2075. <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>
  2076. <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>
  2077. </tr>
  2078. <tr style="border-top: 1px solid #aaa;">
  2079. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Gaming</td>
  2080. <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>
  2081. <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>
  2082. </tr>
  2083. <tr style="border-top: 1px solid #aaa;">
  2084. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Generic x86</td>
  2085. <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="next" style="color: #0000cc;">QEMU</a></td>
  2086. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Q</p></td>
  2087. </tr>
  2088. <tr style="border-top: 1px solid #aaa;">
  2089. <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="next" style="color: #0000cc;">Virtual PC</a></td>
  2090. <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>
  2091. </tr>
  2092. <tr style="border-top: 1px solid #aaa;">
  2093. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2010</td>
  2094. <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="next" style="color: #0000cc;">DOSBox</a></td>
  2095. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Boxer</p></td>
  2096. </tr>
  2097. <tr style="border-top: 1px solid #aaa;">
  2098. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">IBM PC</td>
  2099. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  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/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>
  2101. <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>
  2102. </tr>
  2103. <tr style="border-top: 1px solid #aaa;">
  2104. <td rowspan="10" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Mac</td>
  2105. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2011</td>
  2106. <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>
  2107. <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 released via an obscure forum, so quite annoying to keep up to date</p></td>
  2108. </tr>
  2109. <tr style="border-top: 1px solid #aaa;">
  2110. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  2111. <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>
  2112. <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>
  2113. </tr>
  2114. <tr style="border-top: 1px solid #aaa;">
  2115. <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>
  2116. <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>
  2117. </tr>
  2118. <tr style="border-top: 1px solid #aaa;">
  2119. <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>
  2120. <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>
  2121. </tr>
  2122. <tr style="border-top: 1px solid #aaa;">
  2123. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  2124. <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>
  2125. <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>
  2126. </tr>
  2127. <tr style="border-top: 1px solid #aaa;">
  2128. <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>
  2129. <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>
  2130. </tr>
  2131. <tr style="border-top: 1px solid #aaa;">
  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/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>
  2133. <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>
  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/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>
  2137. <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>
  2138. </tr>
  2139. <tr style="border-top: 1px solid #aaa;">
  2140. <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>
  2141. <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>
  2142. </tr>
  2143. <tr style="border-top: 1px solid #aaa;">
  2144. <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>
  2145. <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>
  2146. </tr>
  2147. <tr style="border-top: 1px solid #aaa;">
  2148. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">N64</td>
  2149. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2010</td>
  2150. <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>
  2151. <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>
  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="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>
  2155. <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>
  2156. </tr>
  2157. <tr style="border-top: 1px solid #aaa;">
  2158. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Nintendo 3DS</td>
  2159. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  2160. <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>
  2161. <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>
  2162. </tr>
  2163. <tr style="border-top: 1px solid #aaa;">
  2164. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Other</td>
  2165. <td rowspan="5" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  2166. <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>
  2167. <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 Apple IIe emulator</p></td>
  2168. </tr>
  2169. <tr style="border-top: 1px solid #aaa;">
  2170. <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>
  2171. <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>
  2172. </tr>
  2173. <tr style="border-top: 1px solid #aaa;">
  2174. <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>
  2175. <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>
  2176. </tr>
  2177. <tr style="border-top: 1px solid #aaa;">
  2178. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">PalmOS</td>
  2179. <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>
  2180. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>PalmOS Emulator</p></td>
  2181. </tr>
  2182. <tr style="border-top: 1px solid #aaa;">
  2183. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Psion</td>
  2184. <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>
  2185. <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>
  2186. </tr>
  2187. <tr style="border-top: 1px solid #aaa;">
  2188. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Retrocomputing</td>
  2189. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  2190. <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>
  2191. <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>
  2192. </tr>
  2193. <tr style="border-top: 1px solid #aaa;">
  2194. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Sinclair</td>
  2195. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2010</td>
  2196. <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>
  2197. <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>
  2198. </tr>
  2199. <tr style="border-top: 1px solid #aaa;">
  2200. <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>
  2201. <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>
  2202. </tr>
  2203. <tr style="border-top: 1px solid #aaa;">
  2204. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</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/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>
  2206. <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>
  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;">2024</td>
  2210. <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>
  2211. <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>
  2212. </tr>
  2213. <tr style="border-top: 1px solid #aaa;">
  2214. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Switch</td>
  2215. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  2216. <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>
  2217. <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>
  2218. </tr>
  2219. <tr style="border-top: 1px solid #aaa;">
  2220. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  2221. <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>
  2222. <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>
  2223. </tr>
  2224. <tr style="border-top: 1px solid #aaa;">
  2225. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  2226. <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>
  2227. <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>
  2228. </tr>
  2229. <tr style="border-top: 1px solid #aaa;">
  2230. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Wii U</td>
  2231. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  2232. <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>
  2233. <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>
  2234. </tr>
  2235. <tr style="border-top: 1px solid #aaa;">
  2236. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Wii/GameCube</td>
  2237. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2011</td>
  2238. <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>
  2239. <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>
  2240. </tr>
  2241. </tbody>
  2242. </table>
  2243. <br/>
  2244. ]]></content>
  2245. </entry>
  2246. <entry>
  2247. <title>Swift</title>
  2248. <id>https://taoofmac.com/space/dev/swift</id>
  2249. <published>2016-12-07T19:38:00+00:00</published>
  2250. <updated>2024-07-18T22:44:00+00:00</updated>
  2251. <author>
  2252. <name>Rui Carmo</name>
  2253. <uri>https://taoofmac.com</uri>
  2254. </author>
  2255. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/dev/swift"/>
  2256. <content type="html"><![CDATA[
  2257. <p class="lead">This is a stub to start gathering some resources on Swift. I&#8217;ve yet to have a reason for building something with it (other than the occasional test), but it pays to keep an eye on things.</p>
  2258. <p/><table class="compact" style="background: transparent;margin: 0px;padding: 0px;border-collapse: collapse;font-size: 90%;">
  2259. <thead>
  2260. <tr style="border-top: 1px solid #aaa;">
  2261. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  2262. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  2263. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  2264. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  2265. </tr>
  2266. </thead>
  2267. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  2268. <tr style="border-top: 1px solid #aaa;">
  2269. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Database</td>
  2270. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  2271. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/marcoarment/Blackbird?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Blackbird</a></td>
  2272. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a zero dependency SQLite database wrapper and model layer</p></td>
  2273. </tr>
  2274. <tr style="border-top: 1px solid #aaa;">
  2275. <td rowspan="3" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Libraries</td>
  2276. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/brightdigit/SyndiKit?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">SyndiKit</a></td>
  2277. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A Swift library for RSS and Atom feeds</p></td>
  2278. </tr>
  2279. <tr style="border-top: 1px solid #aaa;">
  2280. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/gh123man/Async-Channels?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Async-Channels</a></td>
  2281. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Performant channels for Swift concurrency</p></td>
  2282. </tr>
  2283. <tr style="border-top: 1px solid #aaa;">
  2284. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2016</td>
  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/kristopherjohnson/Markingbird?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Markingbird</a></td>
  2286. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A <a href="/space/markup/markdown" rel="nofollow" style="color: #0000cc;">Markdown</a> libary</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;">Other</td>
  2290. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://dev.iachieved.it/iachievedit/building-swift-3-0-on-an-armv7-system/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Building on ARMv7</a></td>
  2291. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A concise walkthrough</p></td>
  2292. </tr>
  2293. <tr style="border-top: 1px solid #aaa;">
  2294. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Runtimes</td>
  2295. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  2296. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/audulus/LuaJIT-spm?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">LuaJIT-spm</a></td>
  2297. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A LuaJIT package</p></td>
  2298. </tr>
  2299. <tr style="border-top: 1px solid #aaa;">
  2300. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/ole/swift-rp-pico-bare?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">swift-rp-pico-bare</a></td>
  2301. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Embedded Swift on the Raspberry Pi Pico</p></td>
  2302. </tr>
  2303. <tr style="border-top: 1px solid #aaa;">
  2304. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Samples</td>
  2305. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/raheelahmad/Swift-D3-Charts?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Swift-D3-Charts</a></td>
  2306. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Replicating D3 Charts with Swift Charts</p></td>
  2307. </tr>
  2308. <tr style="border-top: 1px solid #aaa;">
  2309. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tools</td>
  2310. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/skiptools/skip?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">skip</a></td>
  2311. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a framework for creating dual-platform mobile apps in Swift and <a href="/space/dev/kotlin" rel="nofollow" style="color: #0000cc;">Kotlin</a></p></td>
  2312. </tr>
  2313. <tr style="border-top: 1px solid #aaa;">
  2314. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2022</td>
  2315. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/freedmand/textra?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">textra</a></td>
  2316. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a nice CLI tool that uses VisionKit and speech recognition APIs to OCR documents and audio into text.</p></td>
  2317. </tr>
  2318. <tr style="border-top: 1px solid #aaa;">
  2319. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Tutorials</td>
  2320. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://cs193p.sites.stanford.edu/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Stanford University CS193p (Developing Applications for iOS using SwiftUI)</a></td>
  2321. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a pretty decent set of learning materials</p></td>
  2322. </tr>
  2323. </tbody>
  2324. </table>
  2325. <br/>
  2326. ]]></content>
  2327. <category term="programming" label="programming" />
  2328. <category term="apple" label="apple" />
  2329. </entry>
  2330. <entry>
  2331. <title>Ten years of Overcast</title>
  2332. <id>https://taoofmac.com/space/links/2024/07/18/2257</id>
  2333. <published>2024-07-18T21:57:11+00:00</published>
  2334. <updated>2024-07-18T21:57:11+00:00</updated>
  2335. <author>
  2336. <name>Rui Carmo</name>
  2337. <uri>https://taoofmac.com</uri>
  2338. </author>
  2339. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/links/2024/07/18/2257"/>
  2340. <content type="html"><![CDATA[
  2341. <p><a href="https://marco.org/2024/07/16/overcast-rewrite?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" title="external link to https://marco.org/2024/07/16/overcast-rewrite" alt="screenshot of https://marco.org/2024/07/16/overcast-rewrite" style="color: #0000cc;"><img class="quicklook" src="https://taoofmac.com/thumb/links/2024/07/18/2257/640,480/5rhhqsmKpt942P6tG2yYNmYy1xY=/large.jpg" width="320" height="240" style="max-width: 100% !important;height: auto !important;"/></a></p>
  2342. <p class="lead">This almost slipped by. My podcast consumption habits were considerably (and consciously) pared down this year, but I still very much rely on Overcast on all my devices, and I&#8217;m happy to see it keeps thriving.</p>
  2343. <br/>
  2344. ]]></content>
  2345. <category term="ios" label="ios" />
  2346. <category term="podcasts" label="podcasts" />
  2347. <category term="apps" label="apps" />
  2348. <category term="overcast" label="overcast" />
  2349. <category term="swift" label="swift" />
  2350. </entry>
  2351. <entry>
  2352. <title>Running NixOS on ARM LXD/LXC</title>
  2353. <id>https://taoofmac.com/space/blog/2024/07/18/0900</id>
  2354. <published>2024-07-18T08:00:00+00:00</published>
  2355. <updated>2024-07-18T08:00:00+00:00</updated>
  2356. <author>
  2357. <name>Rui Carmo</name>
  2358. <uri>https://taoofmac.com</uri>
  2359. </author>
  2360. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/blog/2024/07/18/0900"/>
  2361. <content type="html"><![CDATA[
  2362. <p class="lead">I decided to build a little <a href="/space/os/linux/distributions/nixos" rel="next" style="color: #0000cc;">NixOS</a> sandbox to take with me when traveling, and investigated how to do that on my <a href="/space/blog/2023/10/07/1830" rel="next" style="color: #0000cc;">Radxa Zero</a> without breaking the entire thing.</p>
  2363. <p>Since it runs <a href="/space/os/linux/distributions/armbian" rel="next" style="color: #0000cc;">Armbian</a> with <a href="/space/os/linux/lxc" rel="next" style="color: #0000cc;">LXD</a> and a couple of sandboxes on it already (including a full <a href="/space/os/linux/distributions/fedora" rel="next" style="color: #0000cc;">Fedora</a> environment), that was the way to go. It&#8217;s not a particularly well documented approach (as usual with <a href="/space/os/linux/distributions/nixos" rel="next" style="color: #0000cc;">NixOS</a> or <a href="/space/os/linux/lxc" rel="next" style="color: #0000cc;">LXD</a>), so I went and figured out how to do this particularly niche kind of install so you don&#8217;t have to.</p>
  2364. <p>The same steps should apply to <code>x86_64</code>, although I haven&#8217;t yet tried this in <a href="/space/os/linux/lxc" rel="next" style="color: #0000cc;">LXC</a> for <a href="/space/os/linux/distributions/proxmox" rel="next" style="color: #0000cc;">Proxmox</a> (I have a normal VM there, but if I ever do an <a href="/space/os/linux/lxc" rel="next" style="color: #0000cc;">LXC</a> install there I&#8217;ll update this post).</p>
  2365. <a class="anchor" id="anchor-preparing-the-container-image" rel="anchor" href="/space/blog/2024/07/18/0900#preparing-the-container-image" style="color: #0000cc;"><h2 id="preparing-the-container-image">Preparing the Container Image</h2></a><p>First of all, we need a <code>rootfs</code>. So I went and got an <code>aarch64</code> tarball from <a href="https://hydra.nixos.org/job/nixos/trunk-combined/nixos.containerTarball.aarch64-linux?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Hydra</a>, because, well, I might as well use the bleeding edge builds.</p>
  2366. <p>Then you need to create a <code>metadata.yaml</code> file to use with <code>lxc image import</code>. This is what I went with:</p>
  2367. <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">architecture</span><span class="p">:</span><span class="w"> </span><span class="s">"aarch64"</span>
  2368. <span class="nt">creation_date</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1721246798</span>
  2369. <span class="nt">properties</span><span class="p">:</span>
  2370. <span class="w">    </span><span class="nt">architecture</span><span class="p">:</span><span class="w"> </span><span class="s">"aarch64"</span>
  2371. <span class="w">    </span><span class="nt">description</span><span class="p">:</span><span class="w"> </span><span class="s">"NixOS</span><span class="nv"> </span><span class="s">(266360330)"</span>
  2372. <span class="w">    </span><span class="nt">os</span><span class="p">:</span><span class="w"> </span><span class="s">"nixos"</span>
  2373. <span class="w">    </span><span class="nt">release</span><span class="p">:</span><span class="w"> </span><span class="s">"24.11pre"</span>
  2374. </code></pre></div>
  2375.  
  2376. <p>Packing it and importing it into <a href="/space/os/linux/lxc" rel="next" style="color: #0000cc;">LXD</a> is trivial once you have that figured out:</p>
  2377. <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="c1"># pack the metadata</span>
  2378. &#10095;<span class="w"> </span>tar<span class="w"> </span>-zcvf<span class="w"> </span>metadata.tar.gz<span class="w"> </span>metadata.yaml
  2379.  
  2380. <span class="c1"># import the image</span>
  2381. &#10095;<span class="w"> </span>lxc<span class="w"> </span>image<span class="w"> </span>import<span class="w"> </span>metadata.tar.gz<span class="w"> </span>nixos-system-aarch64-linux.tar.xz<span class="w"> </span>--alias<span class="w"> </span>nixos
  2382. </code></pre></div>
  2383.  
  2384. <p>You should now be able to see the image in the local repository:</p>
  2385. <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>&#10095;<span class="w"> </span>lxc<span class="w"> </span>image<span class="w"> </span>list
  2386. +-------+--------------+--------+-------------------+--------------+-----------+----------+------------------------------+
  2387. <span class="p">|</span><span class="w"> </span>ALIAS<span class="w"> </span><span class="p">|</span><span class="w"> </span>FINGERPRINT<span class="w">  </span><span class="p">|</span><span class="w"> </span>PUBLIC<span class="w"> </span><span class="p">|</span><span class="w">    </span>DESCRIPTION<span class="w">    </span><span class="p">|</span><span class="w"> </span>ARCHITECTURE<span class="w"> </span><span class="p">|</span><span class="w">   </span>TYPE<span class="w">    </span><span class="p">|</span><span class="w">   </span>SIZE<span class="w">   </span><span class="p">|</span><span class="w">         </span>UPLOAD<span class="w"> </span>DATE<span class="w">          </span><span class="p">|</span>
  2388. +-------+--------------+--------+-------------------+--------------+-----------+----------+------------------------------+
  2389. <span class="p">|</span><span class="w"> </span>nixos<span class="w"> </span><span class="p">|</span><span class="w"> </span>c359fa7ea1ee<span class="w"> </span><span class="p">|</span><span class="w"> </span>no<span class="w">     </span><span class="p">|</span><span class="w"> </span>NixOS<span class="w"> </span><span class="o">(</span><span class="m">266360330</span><span class="o">)</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>aarch64<span class="w">      </span><span class="p">|</span><span class="w"> </span>CONTAINER<span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="m">114</span>.92MB<span class="w"> </span><span class="p">|</span><span class="w"> </span>Jul<span class="w"> </span><span class="m">17</span>,<span class="w"> </span><span class="m">2024</span><span class="w"> </span>at<span class="w"> </span><span class="m">8</span>:07pm<span class="w"> </span><span class="o">(</span>UTC<span class="o">)</span><span class="w"> </span><span class="p">|</span>
  2390. +-------+--------------+--------+-------------------+--------------+-----------+----------+------------------------------+
  2391. </code></pre></div>
  2392.  
  2393. <a class="anchor" id="anchor-running-the-container" rel="anchor" href="/space/blog/2024/07/18/0900#running-the-container" style="color: #0000cc;"><h2 id="running-the-container">Running the Container</h2></a><p><a href="/space/os/linux/distributions/nixos" rel="next" style="color: #0000cc;">NixOS</a> <em>requires</em> you to have nesting enabled, since it relies on <code>cgroups</code> for runtime isolation of various kinds&#8211;otherwise you won&#8217;t even be able to log in at the console.</p>
  2394. <p>So you need to set <code>security.nesting</code> to <code>true</code> after creating the container:</p>
  2395. <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>&#10095;<span class="w"> </span>lxc<span class="w"> </span>launch<span class="w"> </span>nixos<span class="w"> </span>nix
  2396. &#10095;<span class="w"> </span>lxc<span class="w"> </span>config<span class="w"> </span><span class="nb">set</span><span class="w"> </span>nix<span class="w"> </span>security.nesting<span class="w"> </span><span class="nb">true</span>
  2397.  
  2398. <span class="c1"># reboot it for good measure</span>
  2399. &#10095;<span class="w"> </span>lxc<span class="w"> </span>restart<span class="w"> </span>nix
  2400. </code></pre></div>
  2401.  
  2402. <p>You can then have a look at the running configuration:</p>
  2403. <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="l l-Scalar l-Scalar-Plain">&#10095; lxc config show nix</span>
  2404. <span class="l l-Scalar l-Scalar-Plain">architecture</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">aarch64</span>
  2405. <span class="nt">config</span><span class="p">:</span>
  2406. <span class="w">  </span><span class="nt">image.architecture</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">aarch64</span>
  2407. <span class="w">  </span><span class="nt">image.description</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">NixOS (266360330)</span>
  2408. <span class="w">  </span><span class="nt">image.os</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">nixos</span>
  2409. <span class="w">  </span><span class="nt">image.release</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">24.11pre</span>
  2410. <span class="w">  </span><span class="nt">security.nesting</span><span class="p">:</span><span class="w"> </span><span class="s">"true"</span>
  2411. <span class="w">  </span><span class="nt">volatile.base_image</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">c359fa7ea1ee140a2b9957ae1bf57d876f8724f069df04102f4dcfe1156d8f3b</span>
  2412. <span class="w">  </span><span class="nt">volatile.cloud-init.instance-id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">a0f3333f-940e-4090-8b87-928600d7cf87</span>
  2413. <span class="w">  </span><span class="nt">volatile.eth0.host_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">vethc4f4c4ea</span>
  2414. <span class="w">  </span><span class="nt">volatile.eth0.hwaddr</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">00:16:3e:f9:44:9b</span>
  2415. <span class="w">  </span><span class="nt">volatile.idmap.base</span><span class="p">:</span><span class="w"> </span><span class="s">"0"</span>
  2416. <span class="w">  </span><span class="nt">volatile.idmap.current</span><span class="p">:</span><span class="w"> </span><span class="s">'[{"Isuid":true,"Isgid":false,"Hostid":165536,"Nsid":0,"Maprange":10000001},{"Isuid":false,"Isgid":true,"Hostid":165536,"Nsid":0,"Maprange":10000001}]'</span>
  2417. <span class="w">  </span><span class="nt">volatile.idmap.next</span><span class="p">:</span><span class="w"> </span><span class="s">'[{"Isuid":true,"Isgid":false,"Hostid":165536,"Nsid":0,"Maprange":10000001},{"Isuid":false,"Isgid":true,"Hostid":165536,"Nsid":0,"Maprange":10000001}]'</span>
  2418. <span class="w">  </span><span class="nt">volatile.last_state.idmap</span><span class="p">:</span><span class="w"> </span><span class="s">'[]'</span>
  2419. <span class="w">  </span><span class="nt">volatile.last_state.power</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">RUNNING</span>
  2420. <span class="w">  </span><span class="nt">volatile.uuid</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">9130125b-b430-4240-a4c9-510067477764</span>
  2421. <span class="nt">devices</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">{}</span>
  2422. <span class="nt">ephemeral</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
  2423. <span class="nt">profiles</span><span class="p">:</span>
  2424. <span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">default</span>
  2425. <span class="nt">stateful</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
  2426. <span class="nt">description</span><span class="p">:</span><span class="w"> </span><span class="s">""</span>
  2427. </code></pre></div>
  2428.  
  2429. <p>&#8230;and try to log in by doing <code>lxc console nix</code>.</p>
  2430. <p><code>root</code> is supposed to have a blank password, but I changed it from the host:</p>
  2431. <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="c1"># this DOES NOT WORK unless you have security.nesting enabled</span>
  2432. &#10095;<span class="w"> </span>lxc<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>nix<span class="w"> </span>--<span class="w"> </span>/run/current-system/sw/bin/passwd
  2433. </code></pre></div>
  2434.  
  2435. <a class="anchor" id="anchor-installing-packages" rel="anchor" href="/space/blog/2024/07/18/0900#installing-packages" style="color: #0000cc;"><h2 id="installing-packages">Installing Packages</h2></a><p>First thing I did was to get <code>vim</code> running so I could edit <code>configuration.nix</code> in a sane way (I find <code>nano</code> useless except in dire emergencies):</p>
  2436. <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="w"> </span>nix-channel<span class="w"> </span>--update
  2437. $<span class="w"> </span>nix-shell<span class="w"> </span>--packages<span class="w"> </span>vim
  2438. </code></pre></div>
  2439.  
  2440. <p>Then I added a starting <code>/etc/nixos/configuration.nix</code>:</p>
  2441. <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="p">{</span> config<span class="p">,</span> pkgs<span class="p">,</span> <span class="o">...</span> <span class="p">}:</span>
  2442.  
  2443. <span class="p">{</span>
  2444.  <span class="c1"># this line ensures rebuilds work correctly inside LXC/LXD</span>
  2445.  <span class="ss">imports</span> <span class="o">=</span> <span class="p">[</span> <span class="l">&lt;nixpkgs/nixos/modules/virtualisation/lxc-container.nix&gt;</span> <span class="p">];</span>
  2446.  boot<span class="o">.</span><span class="ss">isContainer</span> <span class="o">=</span> <span class="no">true</span><span class="p">;</span>
  2447.  environment<span class="o">.</span><span class="ss">systemPackages</span> <span class="o">=</span> <span class="k">with</span> pkgs<span class="p">;</span> <span class="p">[</span>
  2448.    vim
  2449.    tmux
  2450.    htop
  2451.    binutils
  2452.    man
  2453.    starship
  2454.  <span class="p">];</span>
  2455.  services<span class="o">.</span><span class="ss">openssh</span> <span class="o">=</span> <span class="p">{</span>
  2456.    <span class="ss">enable</span> <span class="o">=</span> <span class="no">true</span><span class="p">;</span>
  2457.    <span class="ss">settings</span> <span class="o">=</span> <span class="p">{</span>
  2458.      <span class="ss">AllowUsers</span> <span class="o">=</span> <span class="no">null</span><span class="p">;</span> <span class="c1"># everyone</span>
  2459.      <span class="ss">PasswordAuthentication</span> <span class="o">=</span> <span class="no">true</span><span class="p">;</span> <span class="c1"># this is just a sandbox</span>
  2460.      <span class="ss">PermitRootLogin</span> <span class="o">=</span> <span class="s2">"yes"</span><span class="p">;</span>
  2461.    <span class="p">};</span>
  2462.  <span class="p">};</span>
  2463.  programs<span class="o">.</span>zsh<span class="o">.</span><span class="ss">enable</span> <span class="o">=</span> <span class="no">true</span><span class="p">;</span>
  2464.  users<span class="o">.</span><span class="ss">defaultUserShell</span> <span class="o">=</span> pkgs<span class="o">.</span>zsh<span class="p">;</span>
  2465. <span class="p">}</span>
  2466. </code></pre></div>
  2467.  
  2468. <p>Once that&#8217;s done, you can proceed as usual:</p>
  2469. <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="w"> </span>nixos-rebuild<span class="w"> </span>switch<span class="w"> </span>--upgrade
  2470. </code></pre></div>
  2471.  
  2472. <p>Here&#8217;s the usual gratuitous <code>neofetch</code> output:</p>
  2473. <figure>
  2474. <img src="https://taoofmac.com/media/blog/2024/07/18/0900/ruPIZ5ZWT3tH5h2FMcU8pug3lVU=/neofetch.jpg" title="this is so clich&#233;" width="1280" height="564" style="max-width: 100% !important;height: auto !important;"/>
  2475. <figcaption>Courtesy of Blink Shell after I set up SSH below</figcaption>
  2476. </figure>
  2477.  
  2478. <a class="anchor" id="anchor-mapping-ssh-to-a-host-port" rel="anchor" href="/space/blog/2024/07/18/0900#mapping-ssh-to-a-host-port" style="color: #0000cc;"><h2 id="mapping-ssh-to-a-host-port">Mapping SSH to a host port</h2></a><p>A little while later, I decided I wanted to be able to <code>ssh</code> directly into the container.</p>
  2479. <p>Since I can access the <a href="/space/blog/2023/10/07/1830" rel="next" style="color: #0000cc;">Radxa Zero</a> via Wi-Fi, Bluetooth or directly via the USB Ethernet gadget I couldn&#8217;t really bridge the container to a single interface (which would not work via Wi-Fi anyway), so I set up a network profile:</p>
  2480. <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="c1"># Create profile</span>
  2481. &#10095;<span class="w"> </span>lxc<span class="w"> </span>profile<span class="w"> </span>create<span class="w"> </span>proxy-10022
  2482.  
  2483. <span class="c1"># Add a port forwarding proxy "device"</span>
  2484. &#10095;<span class="w"> </span>lxc<span class="w"> </span>profile<span class="w"> </span>device<span class="w"> </span>add<span class="w"> </span>proxy-10022<span class="w"> </span>hostport22<span class="w"> </span>proxy<span class="w"> </span><span class="nv">connect</span><span class="o">=</span><span class="s2">"tcp:127.0.0.1:22&#8221; listen="</span>tcp:0.0.0.0:10022&#8221;
  2485.  
  2486. <span class="c1"># Add the profile to the running container</span>
  2487. &#10095;<span class="w"> </span>lxc<span class="w"> </span>profile<span class="w"> </span>add<span class="w"> </span>nix<span class="w"> </span>proxy-10022
  2488. </code></pre></div>
  2489.  
  2490. <p>This is what the profile looks like, for clarity:</p>
  2491. <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="l l-Scalar l-Scalar-Plain">&#10095; lxc profile show proxy-10022</span>
  2492.  
  2493. <span class="l l-Scalar l-Scalar-Plain">config</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="p p-Indicator">{}</span>
  2494. <span class="nt">description</span><span class="p">:</span><span class="w"> </span><span class="s">""</span>
  2495. <span class="nt">devices</span><span class="p">:</span>
  2496. <span class="w">  </span><span class="nt">hostport22</span><span class="p">:</span>
  2497. <span class="w">    </span><span class="nt">connect</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">tcp:127.0.0.1:22</span>
  2498. <span class="w">    </span><span class="nt">listen</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">tcp:0.0.0.0:10022</span>
  2499. <span class="w">    </span><span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">proxy</span>
  2500. <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">proxy-10022</span>
  2501. <span class="nt">used_by</span><span class="p">:</span>
  2502. <span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/1.0/instances/nix</span>
  2503. </code></pre></div>
  2504.  
  2505. <a class="anchor" id="anchor-conclusion" rel="anchor" href="/space/blog/2024/07/18/0900#conclusion" style="color: #0000cc;"><h2 id="conclusion">Conclusion</h2></a><p>It wasn&#8217;t that hard. <a href="/space/os/linux/distributions/nixos" rel="next" style="color: #0000cc;">NixOS</a> can be a trifle mind-bending, but I&#8217;ve used weirder UNIX systems back in the day, and the microscopic intersection with it and <a href="/space/os/linux/lxc" rel="next" style="color: #0000cc;">LXD</a> makes a lot of things pretty easy to do.</p>
  2506. <p>I will be using this to experiment with a few configurations, although I don&#8217;t have a deep seated desire to make my homelab configuration more complex just yet&#8211;<a href="/space/os/linux/distributions/proxmox" rel="next" style="color: #0000cc;">Proxmox</a> has made a lot of things trivially easy (which is just the way I like my setups), and I&#8217;m more interested in <a href="/space/os/linux/distributions/nixos" rel="next" style="color: #0000cc;">NixOS</a> as a way of managing edge devices than as a full-blown server.</p>
  2507. <p>But who knows, it might grow on me.</p>
  2508. <br/>
  2509. ]]></content>
  2510. <category term="arm" label="arm" />
  2511. <category term="lxd" label="lxd" />
  2512. <category term="armbian" label="armbian" />
  2513. <category term="lxc" label="lxc" />
  2514. <category term="nixos" label="nixos" />
  2515. <category term="homelab" label="homelab" />
  2516. </entry>
  2517. <entry>
  2518. <title>TinyPod Apple Watch Case</title>
  2519. <id>https://taoofmac.com/space/links/2024/07/18/0817</id>
  2520. <published>2024-07-18T07:17:49+00:00</published>
  2521. <updated>2024-07-18T07:17:49+00:00</updated>
  2522. <author>
  2523. <name>Rui Carmo</name>
  2524. <uri>https://taoofmac.com</uri>
  2525. </author>
  2526. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/links/2024/07/18/0817"/>
  2527. <content type="html"><![CDATA[
  2528. <p><a href="https://www.macrumors.com/2024/07/17/tinypod-apple-watch/?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" title="external link to https://www.macrumors.com/2024/07/17/tinypod-apple-watch/" alt="screenshot of https://www.macrumors.com/2024/07/17/tinypod-apple-watch/" style="color: #0000cc;"><img class="quicklook" src="https://taoofmac.com/thumb/links/2024/07/18/0817/640,480/7wzYBdpuaZfX2PytPUJRkiuROIE=/large.jpg" width="320" height="240" style="max-width: 100% !important;height: auto !important;"/></a></p>
  2529. <p class="lead">This is hilariously delightful.</p>
  2530. <p>They&#8217;re certain to be cloned six ways from Sunday (so I&#8217;ll just wait for the cheap Chinese knockoffs, especially since shipping costs for me seem outrageous), but full marks for ingenuity&#8211;that wheel has to be driving the crown through some pretty clever gearing.</p>
  2531. <p>It also reminds me I can probably use an older Apple Watch as a smart &#8220;speaker&#8221; for home automation&#8230;</p>
  2532. <br/>
  2533. ]]></content>
  2534. <category term="watch" label="watch" />
  2535. <category term="silly season" label="silly season" />
  2536. <category term="apple" label="apple" />
  2537. <category term="case" label="case" />
  2538. <category term="ingenuity" label="ingenuity" />
  2539. <category term="ipod" label="ipod" />
  2540. </entry>
  2541. <entry>
  2542. <title>Jailbreaking RabbitOS</title>
  2543. <id>https://taoofmac.com/space/links/2024/07/17/1930</id>
  2544. <published>2024-07-17T18:23:00+00:00</published>
  2545. <updated>2024-07-17T18:23:00+00:00</updated>
  2546. <author>
  2547. <name>Rui Carmo</name>
  2548. <uri>https://taoofmac.com</uri>
  2549. </author>
  2550. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/links/2024/07/17/1930"/>
  2551. <content type="html"><![CDATA[
  2552. <p><a href="https://www.da.vidbuchanan.co.uk/blog/r1-jailbreak.html?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" title="external link to https://www.da.vidbuchanan.co.uk/blog/r1-jailbreak.html" alt="screenshot of https://www.da.vidbuchanan.co.uk/blog/r1-jailbreak.html" style="color: #0000cc;"><img class="quicklook" src="https://taoofmac.com/thumb/links/2024/07/17/1930/640,480/lns9s-8-Cd0OMnq7ngrczg9IVGU=/large.jpg" width="320" height="240" style="max-width: 100% !important;height: auto !important;"/></a></p>
  2553. <p class="lead">My not having written about the R1 or the Humane Pin doesn&#8217;t mean I haven&#8217;t been following their respective (downward) trajectories&#8211;merely that I have been too preoccupied with other matters to give airtime to these products of delusional <a href="/space/ai" rel="next" style="color: #0000cc;">AI</a> hype.</p>
  2554. <p>But this piece is the kind of stuff I <em>love</em> reading and that I can learn something from&#8211;a detailed, no-frills account of how to get, ah, &#8220;carroot&#8221; on the device, plus enough tools and hints to be useful if I ever get my hands on one (no real reason to, but it might happen).</p>
  2555. <br/>
  2556. ]]></content>
  2557. <category term="exploits" label="exploits" />
  2558. <category term="jailbreak" label="jailbreak" />
  2559. <category term="rabbit" label="rabbit" />
  2560. <category term="android" label="android" />
  2561. <category term="mediatek" label="mediatek" />
  2562. <category term="hacking" label="hacking" />
  2563. <category term="security" label="security" />
  2564. <category term="analysis" label="analysis" />
  2565. <category term="rabbitos" label="rabbitos" />
  2566. <category term="gpl" label="gpl" />
  2567. <category term="r1" label="r1" />
  2568. </entry>
  2569. <entry>
  2570. <title>Erlang</title>
  2571. <id>https://taoofmac.com/space/dev/erlang</id>
  2572. <published>2012-11-24T00:07:00+00:00</published>
  2573. <updated>2024-07-16T10:27:00+00:00</updated>
  2574. <author>
  2575. <name>Rui Carmo</name>
  2576. <uri>https://taoofmac.com</uri>
  2577. </author>
  2578. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/dev/erlang"/>
  2579. <content type="html"><![CDATA[
  2580. <p class="lead">Erlang is a language I&#8217;ve studiously avoided despite actually having been trained to use it by Ericsson, back when we lived in caves and had no mobile data. Obviously, these days I have trouble even reading it.</p>
  2581. <a class="anchor" id="anchor-resources" rel="anchor" href="/space/dev/erlang#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%;">
  2582. <thead>
  2583. <tr style="border-top: 1px solid #aaa;">
  2584. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Category</th>
  2585. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Date</th>
  2586. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Link</th>
  2587. <th style="border-bottom: 1px solid black;border-top: 2px solid black;padding: 4px 4px !important;font-weight: bold;text-align: center;">Notes</th>
  2588. </tr>
  2589. </thead>
  2590. <tbody style="border-top: 2px solid black;border-bottom: 2px solid black;">
  2591. <tr style="border-top: 1px solid #aaa;">
  2592. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Derivatives</td>
  2593. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2015</td>
  2594. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://lfe.github.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Lisp Flavored Erlang</a></td>
  2595. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Insanely awesome, or awesomely insane, I&#8217;m not quite sure.</p></td>
  2596. </tr>
  2597. <tr style="border-top: 1px solid #aaa;">
  2598. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2024</td>
  2599. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/gleam-lang/gleam?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">gleam</a></td>
  2600. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a typed language that can run under Erlang or JavaScript</p></td>
  2601. </tr>
  2602. <tr style="border-top: 1px solid #aaa;">
  2603. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Interop</td>
  2604. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  2605. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/lfex/py?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">py</a></td>
  2606. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>distributed Python for the Erlang ecosystem</p></td>
  2607. </tr>
  2608. <tr style="border-top: 1px solid #aaa;">
  2609. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">IoT</td>
  2610. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2023</td>
  2611. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/livebook-dev/nerves_livebook?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Nerves Livebook</a></td>
  2612. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Nerves-based firmware image to run Livebook on the <a href="/space/hw/raspberry_pi" rel="nofollow" style="color: #0000cc;">Raspberry Pi</a></p></td>
  2613. </tr>
  2614. <tr style="border-top: 1px solid #aaa;">
  2615. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Machine Learning</td>
  2616. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/livebook-dev/livebook?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Livebook</a></td>
  2617. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a Jupyter-like environment written in Elixir</p></td>
  2618. </tr>
  2619. <tr style="border-top: 1px solid #aaa;">
  2620. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Reference</td>
  2621. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2015</td>
  2622. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://learnyousomeerlang.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Learn You Some Erlang</a></td>
  2623. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>For great good!</p></td>
  2624. </tr>
  2625. <tr style="border-top: 1px solid #aaa;">
  2626. <td rowspan="4" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Runtime</td>
  2627. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://erlangonxen.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Erlang on Xen</a></td>
  2628. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"/>
  2629. </tr>
  2630. <tr style="border-top: 1px solid #aaa;">
  2631. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2015-01</td>
  2632. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://nerves-project.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Nerves-Project</a></td>
  2633. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Cross-compiled Erlang for Embedded Devices</p></td>
  2634. </tr>
  2635. <tr style="border-top: 1px solid #aaa;">
  2636. <td rowspan="2" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2020</td>
  2637. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/archseer/enigma?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Enigma</a></td>
  2638. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a nearly complete OTP runtime implemented in Rust</p></td>
  2639. </tr>
  2640. <tr style="border-top: 1px solid #aaa;">
  2641. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/bettio/AtomVM?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">AtomVM</a></td>
  2642. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>an OTP runtime for ESP series MCUs</p></td>
  2643. </tr>
  2644. <tr style="border-top: 1px solid #aaa;">
  2645. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Servers</td>
  2646. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2021</td>
  2647. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/foxcpp/maddy?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">maddy</a></td>
  2648. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>a composable email server with IMAP, SMTP, DKIM, SPF, DMARC, DANE and MTA-STS support</p></td>
  2649. </tr>
  2650. <tr style="border-top: 1px solid #aaa;">
  2651. <td rowspan="8" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">Web</td>
  2652. <td rowspan="6" style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2013</td>
  2653. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://nitrogenproject.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Nitrogen</a></td>
  2654. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Very complete framework, with a somewhat iffy notion of views. Not crazy about the way it generates JavaScript.</p></td>
  2655. </tr>
  2656. <tr style="border-top: 1px solid #aaa;">
  2657. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://wiki.basho.com/Webmachine.html?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Webmachine</a></td>
  2658. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"/>
  2659. </tr>
  2660. <tr style="border-top: 1px solid #aaa;">
  2661. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="http://zotonic.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Zotonic</a></td>
  2662. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A complete CMS</p></td>
  2663. </tr>
  2664. <tr style="border-top: 1px solid #aaa;">
  2665. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/davebryson/beepbeep?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">BeepBeep</a></td>
  2666. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Also on the &#8220;stable&#8221; side of things.</p></td>
  2667. </tr>
  2668. <tr style="border-top: 1px solid #aaa;">
  2669. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/flashingpumpkin/spooky?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Spooky</a></td>
  2670. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>Inspired by Sinatra, apparently, and pretty straightforward for RESTful stuff.</p></td>
  2671. </tr>
  2672. <tr style="border-top: 1px solid #aaa;">
  2673. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/yariv/erlyweb?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Erylweb</a></td>
  2674. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>The &#8220;traditional&#8221; thing, pretty much dead, apparently, even though it&#8217;s in active use in many places. Let&#8217;s call it &#8220;stable&#8221;.</p></td>
  2675. </tr>
  2676. <tr style="border-top: 1px solid #aaa;">
  2677. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014</td>
  2678. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/knutin/elli?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">elli</a></td>
  2679. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>A small, performant web server</p></td>
  2680. </tr>
  2681. <tr style="border-top: 1px solid #aaa;">
  2682. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;">2014-11</td>
  2683. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><a href="https://github.com/phoenixframework/phoenix?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">Phoenix</a></td>
  2684. <td style="min-width: 80px;margin: 0px;padding: 4px 4px !important;vertical-align: top;border-top: 1px solid #aaa;"><p>the Elixir web framework</p></td>
  2685. </tr>
  2686. </tbody>
  2687. </table>
  2688. <br/>
  2689. ]]></content>
  2690. <category term="madness" label="madness" />
  2691. <category term="programming" label="programming" />
  2692. </entry>
  2693. <entry>
  2694. <title>Tags, CSS and layout tweaks</title>
  2695. <id>https://taoofmac.com/space/notices/2024/07/14/1930</id>
  2696. <published>2024-07-14T18:30:00+00:00</published>
  2697. <updated>2024-07-14T18:30:00+00:00</updated>
  2698. <author>
  2699. <name>Rui Carmo</name>
  2700. <uri>https://taoofmac.com</uri>
  2701. </author>
  2702. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/notices/2024/07/14/1930"/>
  2703. <content type="html"><![CDATA[
  2704. <p class="lead">I decided to make post tags visible again across the entire site. </p>
  2705. <p>Those had originally been removed from the layout because I wasn&#8217;t a fan of the visual clutter, but I realized that for some posts they provide additional hints to the people landing here from places like <a href="https://news.ycombinator.com?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">HN</a> or Mastodon and who, having never visited before or lacking the will to scroll to the bottom and see related posts, might need an extra bit of context.</p>
  2706. <p>So I added them back and tweaked the CSS to make them slightly less annoying than before. No navigation yet, sorry.</p>
  2707. <p>Tags are also a nice way to add some subtext to posts, <a href="https://jwz.org?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;"><code>jwz</code></a> style&#8211;so they might also get added to the RSS feed at some time in the future (although since they are already there in the metadata, I would rather leave the choice to the reader&#8211;be it the app or the entity<sup id="fnref:1"><a class="footnote-ref" rel="anchor" href="/space/notices/2024/07/14/1930#fn:1" style="color: #0000cc;">1</a></sup> in question).</p>
  2708. <p>I also hope to add back some snark&#8211;with the recent layoffs and my renewed focus on finding a more satisfactory job, I have been somewhat remiss in injecting humor into most of my posts, and I miss it.</p>
  2709. <blockquote>
  2710. <p><strong>Which reminds me</strong>: If you&#8217;re a regular reader of this blog (and thus, hopefully, with a decent idea of what I am capable of doing) and if your company can hire for senior roles in Europe (I am currently at principal level, have a lot of experience in overall stakeholder and engagement management of various kinds as well as with just about any sort of tech), feel free to hop over to <a href="https://carmo.io?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">carmo.io</a>, snag a copy of the home page <a href="https://www.linkedin.com/in/ruicarmo?utm_source=taoofmac.com&amp;utm_medium=web&amp;utm_campaign=unsolicited_traffic&amp;utm_content=external_link" rel="external" style="color: #0000cc;">or my LinkedIn profile</a>, and refer me internally&#8211;or just reach out for a chat. Thank you in advance.</p>
  2711. </blockquote>
  2712. <div class="footnote">
  2713. <hr/>
  2714. <ol>
  2715. <li id="fn:1">
  2716. <p>By that I mean the human or other sentient entity, of course.&#160;<a class="footnote-backref" rel="anchor" href="/space/notices/2024/07/14/1930#fnref:1" title="Jump back to footnote 1 in the text" style="color: #0000cc;">&#8617;&#65038;</a></p>
  2717. </li>
  2718. </ol>
  2719. </div>
  2720. <br/>
  2721. ]]></content>
  2722. <category term="tags" label="tags" />
  2723. <category term="layout" label="layout" />
  2724. <category term="notice" label="notice" />
  2725. <category term="css" label="css" />
  2726. <category term="site" label="site" />
  2727. </entry>
  2728. <entry>
  2729. <title>Notes for July 8-14</title>
  2730. <id>https://taoofmac.com/space/notes/2024/07/14/1740</id>
  2731. <published>2024-07-14T16:35:00+00:00</published>
  2732. <updated>2024-07-14T16:35:00+00:00</updated>
  2733. <author>
  2734. <name>Rui Carmo</name>
  2735. <uri>https://taoofmac.com</uri>
  2736. </author>
  2737. <link rel="alternate" xml:base="https://taoofmac.com" type="text/html" href="https://taoofmac.com/space/notes/2024/07/14/1740"/>
  2738. <content type="html"><![CDATA[
  2739. <p class="lead">Work keeps taking <a href="/space/site/disclaimer" rel="next" style="color: #0000cc;">unusual turns</a>, and I have an uneasy feeling (OK, a dead certainty) that <a href="/space/blog/2024/06/08/1200" rel="next" style="color: #0000cc;">the recent saga</a> isn&#8217;t finished yet&#8211;and yes, I&#8217;m considering various alternatives, but the current context is <em>very</em> far from ideal.</p>
  2740. <p>The old adage of &#8220;if you have nothing nice to say, then (it&#8217;s certainly wiser to) say nothing at all&#8221; rings true&#8211;but it&#8217;s pretty much impossible to disengage my brain, so I am trying to make every single second of free time count towards keeping my mind off things.</p>
  2741. <p>Which is why this week I tore through four books, churned out almost half a dozen posts and drafts, and spent a bunch of time soldering stuff&#8211;only to have to order 100 27K&#937; resistors and 5 optocouplers because, well, I didn&#8217;t have the presence of mind to double-check my stock around a month ago.</p>
  2742. <p>I wonder why.</p>
  2743. <br/>
  2744. ]]></content>
  2745. <category term="leisure" label="leisure" />
  2746. <category term="electronics" label="electronics" />
  2747. <category term="job search" label="job search" />
  2748. <category term="work" label="work" />
  2749. <category term="career" label="career" />
  2750. <category term="distractions" label="distractions" />
  2751. </entry>
  2752. </feed>
  2753.  

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