<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>Michael Alyn Miller</title>
 <link href="http://michaelalynmiller.com/atom.xml" rel="self"/>
 <link href="http://michaelalynmiller.com/"/>
 <updated>2025-04-06T00:07:08+00:00</updated>
 <id>http://michaelalynmiller.com/</id>
 <author>
   <name>Michael Alyn Miller</name>
   <email>malyn@strangeGizmo.com</email>
 </author>

 
 
 <entry>
   <title>dialtun</title>
   <link href="http://michaelalynmiller.com/blog/2023/04/05/dialtun/"/>
   <updated>2023-04-05T11:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2023/04/05/dialtun</id>
   
     <content type="html">&lt;p&gt;Dynamic mapping of public HTTPS endpoints to internal development
services using Tailscale &amp;ndash; and your telephone keypad.&lt;/p&gt;
</content>
   
 </entry>
 
 
 
 <entry>
   <title>Super Guppy</title>
   <link href="http://michaelalynmiller.com/blog/2023/04/05/private-cargo-registries/"/>
   <updated>2023-04-05T10:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2023/04/05/private-cargo-registries</id>
   
     <content type="html">&lt;p&gt;The easiest way to get started with a private Cargo repository for
your Rust crates.&lt;/p&gt;
</content>
   
 </entry>
 
 
 
 <entry>
   <title>Multi-Process Docker Containers</title>
   <link href="http://michaelalynmiller.com/blog/2023/04/05/multi-process-docker-containers/"/>
   <updated>2023-04-05T09:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2023/04/05/multi-process-docker-containers</id>
   
     <content type="html">&lt;p&gt;Run multiple processes in containers or micro-VMs (like Fly.io)
with proper startup and shutdown handling.&lt;/p&gt;
</content>
   
 </entry>
 
 
 
 <entry>
   <title>The Opposite of Internet-Scale Deployments</title>
   <link href="http://michaelalynmiller.com/blog/2022/05/13/diy-paas/"/>
   <updated>2022-05-13T00:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2022/05/13/diy-paas</id>
   
     <content type="html">&lt;p&gt;Cloud providers make it easy to auto-deploy code with a simple &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git
push&lt;/code&gt;, but creating that on your own can be complicated. You need
a system that takes care of itself with automatic OS updates and
Git-based deployments. Thankfully tools like Flatcar Linux,
Watchtower, and GitHub Actions make it easy to get up and running.&lt;/p&gt;
</content>
   
 </entry>
 
 
 
 <entry>
   <title>Enforth</title>
   <link href="http://michaelalynmiller.com/blog/2017/10/04/enforth/"/>
   <updated>2017-10-04T00:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2017/10/04/enforth</id>
   
     <content type="html">&lt;p&gt;Enforth is a small, embeddable Forth for systems like the Arduino Uno.  Designed from the start to be easy to integrate with other libraries, Enfroth makes it easy to add Forth to an existing system.&lt;/p&gt;
</content>
   
 </entry>
 
 
 
 
 
 
 
 <entry>
   <title>Interactive Artwork with mondrian</title>
   <link href="http://michaelalynmiller.com/blog/2013/06/25/mondrian/"/>
   <updated>2013-06-25T00:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2013/06/25/mondrian</id>
   
     <content type="html">&lt;p&gt;&lt;a href=&quot;https://github.com/malyn/mondrian&quot;&gt;mondrian&lt;/a&gt; is a framework for building interactive artwork in &lt;a href=&quot;https://github.com/clojure/clojurescript&quot;&gt;ClojureScript&lt;/a&gt;.  Part library, part &lt;a href=&quot;https://github.com/malyn/mondrian-template&quot;&gt;opinionated Leiningen template&lt;/a&gt;, mondrian gives you a way to evolve your code at runtime, without reloading the browser and without recompiling your code.  This article demonstrates the mondrian workflow as it takes you through the development of a simple animation.&lt;/p&gt;

</content>
   
 </entry>
 
 
 
 <entry>
   <title>Epitrochoids in ClojureScript</title>
   <link href="http://michaelalynmiller.com/blog/2013/06/18/epitrochoids-in-clojurescript/"/>
   <updated>2013-06-18T00:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2013/06/18/epitrochoids-in-clojurescript</id>
   
     <content type="html">&lt;p&gt;I started reading a book called &lt;em&gt;&lt;a href=&quot;http://www.manning.com/pearson/&quot;&gt;Generative Art&lt;/a&gt;&lt;/em&gt; a few weeks ago and the first exercise, drawing a circle using trig functions, reminded me of my favorite &lt;a href=&quot;https://en.wikipedia.org/wiki/After_Dark_(software)&quot;&gt;After Dark&lt;/a&gt; screen saver, Rose.  I have always wanted to understand how Rose worked and could see that this exercise had started to send me down the right path.  A few weeks later &amp;ndash; and with some help from Rose&amp;rsquo;s author! &amp;ndash; and I now have a framework for building HTML5 Canvas-based generative artworks in &lt;a href=&quot;https://github.com/clojure/clojurescript&quot;&gt;ClojureScript&lt;/a&gt;.&lt;/p&gt;
</content>
   
 </entry>
 
 
 
 <entry>
   <title>Hermes BBS is now Open Source</title>
   <link href="http://michaelalynmiller.com/blog/2013/05/27/hermesbbs-open-source/"/>
   <updated>2013-05-27T00:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2013/05/27/hermesbbs-open-source</id>
   
     <content type="html">&lt;p&gt;The &lt;a href=&quot;http://www.hermesbbs.com/&quot;&gt;Hermes BBS&lt;/a&gt; package is now open source under the three-clause BSD license!  The code is &lt;a href=&quot;https://github.com/malyn/HermesBBS&quot;&gt;available on GitHub&lt;/a&gt; and includes commit history for the 3.5.11-series of beta releases.  I have code in private branches &amp;ndash; interactive Forth interpreter, anyone? &amp;ndash; that I hope to get onto GitHub in the future as well.&lt;/p&gt;

</content>
   
 </entry>
 
 
 
 <entry>
   <title>whimrepl: Closing the Gap Between Vim and Clojure</title>
   <link href="http://michaelalynmiller.com/blog/2013/03/06/whimrepl/"/>
   <updated>2013-03-06T00:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2013/03/06/whimrepl</id>
   
     <content type="html">&lt;p&gt;&lt;a href=&quot;https://github.com/malyn/lein-whimrepl&quot;&gt;whimrepl&lt;/a&gt; is a Leiningen plugin that makes it easy to send Clojure forms from the Win32 version of Vim to a Clojure REPL.  &lt;a href=&quot;https://github.com/malyn/vim-slime&quot;&gt;vim-slime&lt;/a&gt; provides integration with Vim itself and is whimrepl&amp;rsquo;s only external dependency.  Other Vim plugins (the impressive &lt;a href=&quot;https://github.com/sattvik/lein-tarsier&quot;&gt;lein-tarsier&lt;/a&gt;, for example) provide even more functionality, but are consequently more complex in their operation.&lt;/p&gt;

</content>
   
 </entry>
 
 
 
 <entry>
   <title>Vim + tmux + Clojure</title>
   <link href="http://michaelalynmiller.com/blog/2013/02/27/vim-tmux-clojure/"/>
   <updated>2013-02-27T00:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2013/02/27/vim-tmux-clojure</id>
   
     <content type="html">&lt;p&gt;There are a number of things that excite me about Clojure, but as someone that &lt;a href=&quot;http://www.strangegizmo.com/products/mforth/&quot;&gt;still uses Forth&lt;/a&gt;, the REPL was the thing that immediately attracted me to the language.  The challenge for me as a Vim user was getting that REPL working in an environment that I felt comfortable with.  Emacs users have &lt;a href=&quot;http://common-lisp.net/project/slime/&quot;&gt;SLIME&lt;/a&gt; and Eclipse users have &lt;a href=&quot;http://code.google.com/p/counterclockwise/&quot;&gt;Counterclockwise&lt;/a&gt;.  Vim users have &lt;a href=&quot;https://github.com/vim-scripts/VimClojure&quot;&gt;VimClojure&lt;/a&gt;, but I wanted something a little more lightweight.  Thankfully we also have &lt;a href=&quot;https://github.com/jpalardy/vim-slime&quot;&gt;vim-slime&lt;/a&gt;, which turned out to be the perfect fit for me.&lt;/p&gt;

</content>
   
 </entry>
 
 
 
 <entry>
   <title>MFORTH 1.1</title>
   <link href="http://michaelalynmiller.com/blog/2012/02/27/mforth-1.1/"/>
   <updated>2012-02-27T00:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2012/02/27/mforth-1.1</id>
   
     <content type="html">&lt;p&gt;Version 1.1.04B1 of MFORTH, my Forth environment for the M100/M102 laptops, has now been released.  Binaries can be &lt;a href=&quot;http://www.strangegizmo.com/products/mforth/&quot;&gt;found on the MFORTH page&lt;/a&gt;.&lt;/p&gt;

</content>
   
 </entry>
 
 
 
 <entry>
   <title>MFORTH</title>
   <link href="http://michaelalynmiller.com/blog/2010/12/30/mforth/"/>
   <updated>2010-12-30T00:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2010/12/30/mforth</id>
   
     <content type="html">&lt;p&gt;MFORTH is an &lt;a href=&quot;http://en.wikipedia.org/wiki/ANS_Forth&quot;&gt;ANS Forth&lt;/a&gt; environment for the &lt;a href=&quot;http://en.wikipedia.org/wiki/Model_100&quot;&gt;TRS-80 Model 100&lt;/a&gt; laptop computer.  MFORTH is provided as a 32KB Option ROM image and can be used alongside your existing M100 applications.&lt;/p&gt;

</content>
   
 </entry>
 
 
 
 <entry>
   <title>Single-Page Performance Reviews</title>
   <link href="http://michaelalynmiller.com/blog/2006/01/27/performance-reviews/"/>
   <updated>2006-01-27T00:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2006/01/27/performance-reviews</id>
   
     <content type="html">&lt;p&gt;This article describes an innovative method of reviewing employee performance that simplifies the review process while simultaneously increasing its value.  The concepts discussed here are applied to a software engineering team, but can easily be modified for any department and organization.&lt;/p&gt;
</content>
   
 </entry>
 
 
 
 <entry>
   <title>Empty Magic</title>
   <link href="http://michaelalynmiller.com/blog/2005/12/01/empty-magic/"/>
   <updated>2005-12-01T00:00:00+00:00</updated>
   <id>http://michaelalynmiller.com/blog/2005/12/01/empty-magic</id>
   
     <content type="html">&lt;p&gt;My new utility for &lt;a href=&quot;http://www.elektron.se/&quot;&gt;Elektron&lt;/a&gt;&amp;rsquo;s &lt;a href=&quot;http://www.machinedrum.com/&quot;&gt;Machinedrum&lt;/a&gt; synthesizer is now available!&lt;/p&gt;

</content>
   
 </entry>
 
 

</feed>
