commit 68d3e9a69499daa075dadb3ed2e99b4167103db5
parent 25f07b3ee2e442153442e985c512b3af9f5c899d
Author: alex wennerberg <alex@alexwennerberg.com>
Date: Tue, 23 May 2023 21:53:25 -0400
foo stuff
Diffstat:
4 files changed, 177 insertions(+), 25 deletions(-)
diff --git a/src/atom.xml b/src/atom.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+<title>Alex Wennerberg's Digital Home</title>
+<id>https://alexw.nyc/atom.xml</id>
+<updated>2023-05-20T02:06:07Z</updated>
+</feed>
diff --git a/src/mtg/3cm-history.html b/src/mtg/3cm-history.html
@@ -0,0 +1,24 @@
+<h1>3 Card Magic</h1>
+<a href="3cm.html">Play 3 Card Magic today</a>
+<h2>A history of 3 Card Magic</h2>
+<p>I've been playing 3 Card Magic since 2007. I've played on the Wizards of the
+Coast forums, another small forum, and various other places.</p>
+<p>I attempted to find archives of the Wizards of the Coast community forums, the
+first place I am aware of that played 3CM. I personally played in 2007-2009,
+and was able to find a few threads on the internet archive, but not a full one.
+If you have any leads on this, please let me know.</p>
+<p>After Wotc
+24 seasons at No Goblins Allowed. Here is the last thread I found, which links to each previous one:
+<ul>
+<li><a href="https://www.nogoblinsallowed.com/viewtopic.php?f=15&t=17968">No Goblins Allowed</a></li>
+</ul>
+</p>
+<p>On MTG Salvation, there were "3 card blind" threads. I know little about these.</p>
+<h2>My philosophy</h2>
+<p>I am a 3cm purist -- I am most interested in "vanilla" 3 Card Magic, rather
+than variations. Magic is a complex enough game that even without additional
+restrictions, I think a simply dynamic banned list is enough to make 3CM interesting. </p>
+<h2>Other writing on 3CM </h2>
+<ul>
+<li><a href="https://andymakesgames.com/extras/3-card-blind/">andymakesgames 3 card blind</a></li>
+</ul>
diff --git a/src/mtg/3cm.html b/src/mtg/3cm.html
@@ -1,31 +1,36 @@
<h1>3 Card Magic</h1>
-<p>3 Card Magic is a game of Magic: The Gathering with decks that consist of only three cards. Sometimes it is referred to as "3 card blind".</p>
-<p>In 3 card magic, games are played in round robin. Each deck plays against each other deck, and games are deterministic. Each deck plays with full knowledge of the other and perfect play.</p>
-<p>I am now revitalizing 3CM and will be running events! If you're interested in playing scroll to the bottom of this page (TODO LINK)</p>
-<h2>A history of 3 Card Magic</h2>
-<p>I've been playing 3 Card Magic since 2007. I've played on the Wizards of the
-Coast forums, another small forum, and various other places.</p>
-<p>I attempted to find archives of the Wizards of the Coast community forums, the
-first place I am aware of that played 3CM. I personally played in 2007-2009,
-and was able to find a few threads on the internet archive, but not a full one.
-If you have any leads on this, please let me know.</p>
-<p>After Wotc
-24 seasons at No Goblins Allowed. Here is the last thread I found, which links to each previous one:
+<p>3 Card Magic is a game of Magic: The Gathering with decks that consist of only three cards. Sometimes it is referred to as "3 Card Blind".</p>
+<p>In 3 Card Magic, games are played in round robin. Each deck plays against each other deck, and games are deterministic -- each deck plays with full knowledge of the other and perfect play.</p>
+<p>I am now revitalizing 3CM and will be running events!</p>
+
+<a href="3cm-history.html">A history of 3 Card Magic</a>
+
+<h2>Detailed Rules</h2>
+<p>
+<h3>Deckbuilding</h3>
+<p>Each player creates a deck of three Magic: the Gathering cards, excepting the banned list and submits it anonymously to the admin</p>
+
+<h3>Gameplay</h3>
+<p>After the round is closed, each deck plays against each other deck twice, once
+going first and once going second. Normal Magic rules apply to a game of 3CM,
+except for the following exceptions:</p>
+
<ul>
-<li><a href="https://www.nogoblinsallowed.com/viewtopic.php?f=15&t=17968">No Goblins Allowed</a></li>
+ <li>Players don't lose the game for drawing from an empty library.</li>
+ <li>If the original source of a random effect (i.e. coinflip) comes from one player's deck, the other player chooses its outcome.</li>
+ <li>Effects that get cards from outside the game (Wishes, Research // Development, Ring of Ma'ruf) cannot be used to find anything.</li>
</ul>
-</p>
-<p>On MTG Salvation, there were "3 card blind" threads. I know little about these.</p>
-<h2>My philosophy</h2>
-<p>I am a 3cm purist -- I am most interested in "vanilla" 3 Card Magic, rather
-than variations. Magic is a complex enough game that even without additional
-restrictions, I think a simply dynamic banned list is enough to make 3CM interesting. </p>
-<h2>Other writing on 3CM </h2>
-<ul>
-<li><a href="https://andymakesgames.com/extras/3-card-blind/">andymakesgames 3 card blind</a></li>
-</ul>
-<h2>Play 3CM Today</h2>
-<p>I am reviving 3 Card Magic.
+
+Games are played with the contents of both decks known to each player at all times. Players will always play optimally and to win.
+
+<h3>Scoring</h3>
+When the round is closed, a spreadsheet of all the decks and matchups is
+posted, to be filled in by the players. Players are encouraged to double-check
+the matchups graded by other players, since mistakes are often made when
+complicated decks are involved. A win is worth 3 points, a draw is 1 point, and
+a loss is 0 points.
+
+<h2>How to play</h2>
<ul>
<li><a href="https://discord.gg/VETgBmq48U">Discord Invite</a></li>
</ul>
@@ -40,9 +45,14 @@ balanced format. I'm not aware of any attempts before at discovering what a
"balanced" 3cm format is, ie, one that allows for a wide diversity of decks and
innovation. I think most existing banned list are based on black lotus being unbanned ,so we are going to start small and expand from there.</p>
<pre><code>Strip Mine
+Black Lotus
Wasteland
Blackmail
Chancellor of the Annex
Leyline of Anticipation
Thassa's Oracle
</code></pre>
+
+TBD as this evolves. Round results will be posted entirely on this website in table form.
+<br>
+I am still setting things up. Feel free to subscribe to the <a href="~aw/3cm@lists.sr.ht">Mailing List</a> or join the discord for updates on the first round. TODO RSS feed
diff --git a/src/tech/duskos-1.html b/src/tech/duskos-1.html
@@ -0,0 +1,112 @@
+<h1>Introduction to Dusk OS (DRAFT)</h1>
+<p><a href="https://git.sr.ht/~vdupras/duskos">Dusk OS</a> is a 32-bit Forth and C-based operating systemcreated by Virgil Dupras.</p>
+<h2>Manifesto</h2>
+<p>Dusk OS is designed to be maximally useful while being minimally complex. It
+builds from bare metal to a simple Forth-based operating system and C compiler
+in only a few thousand lines of code.</p>
+<p>Dusk's manifesto calls out the need for an operating system in a future of
+civilizational collapse. I take a somewhat different perspective: we are
+already living in a "collapse" of computing of a certain kind: foundational
+computing infrastructure is either abandoned, hardly maintained, or paid for
+and controlled by big tech interests. The average person has no access to a
+general-purpose computer and instead has their computing infrastrucure
+controlled by centralized cloud services. Most of computing seems to be about
+building more and more unsustainable abstractions on top of broken systems.
+Thus, in my view, Dusk OS is not an OS for the future, it is an OS for the
+present.</p>
+<p>Because Big Tech controls so much of computing infrastructure, the structure of
+computing largely becomes the kind of technology that Big Tech is concerned
+with, ie, technology that is build in the context of a large tech organization
+staffed by professional engineers. In this way, computing becomes something
+professionalized, rather than something accessible to all. Dusk OS is a <a href="https://en.wikipedia.org/wiki/Tools_for_Conviviality">Tool for
+Conviviality</a> -- a means
+to gain a stronger understanding of your computer and the computing needs of
+your community. </p>
+<h2>Getting started</h2>
+<p>Virgil Dupras's
+<a href="https://duskos.org/">website and assoicated book</a>
+explains how to build up to Dusk OS from bare metal, and is, in my view, highly
+worth the subscription (which also supports Dusk's development).</p>
+<p>This guide takes the opposite approach: starting from your perspective as a user and working down. Let's start by cloning the repository.</p>
+<p><code>
+git clone https://git.sr.ht/~vdupras/duskos
+cd duskos
+</code></p>
+<p>Dusk has a system emulator that runs in a POSIX environment. All you should need is Make and a C compiler. Run:</p>
+<p><code>
+make run
+</code></p>
+<p>This will open the Dusk OS Forth REPL. This guide won't assume you have Forth knowledge, but it is essential to understanding Dusk more deeply. Pick yourself up a copy of <a href="https://www.forth.com/starting-forth/">Starting Forth</a> for reading later.</p>
+<p>As a user, here's what you'll need to understand about Forth to get started.
+First, the primary programming language construct is a word. Words are
+separated by spaces. A word has a definition, and we can call that word
+directly. For example, we can type the word <code>words</code>, which prints all the words
+in the current dictionary namespace:</p>
+<p><code>
+words
+</code></p>
+<p>Forth uses postfix notation, which means that arguments are placed before the
+operator. For example, 2 + 3 in forth is instead written 2 3 +. Try it
+yourself:</p>
+<p><code>
+2 3 + .
+</code></p>
+<p>The period is also a "word" that emits a number. The plus symbol is also a
+"word". The number literals are not words, but again, this guide will not teach
+you Forth, just enough forth to interact with and hopefully get you interested in Dusk OS.</p>
+<p>So, we have our environment and we're able to execute words. Where do we start?
+Let's list the files and directories at the current path.</p>
+<p><code>
+curpath :listdir
+</code></p>
+<p>Again, remember our postfix notation. The argument (which directory to target) comes before the operation (list files). Another example:</p>
+<p><code>
+p" doc" Path :listdir
+</code></p>
+<p>Let's break this command down. <code>p"</code> is a word that says to interpret a string as a path until the next double quote. Path is a struct (see Dusk's <a href="https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/doc/struct.txt?view-source#L1">documentation</a> on structs), which allows us to access namespace word ":listdir". <code>curpath</code> is a <code>Path</code> that points to the current directory.</p>
+<p>In order to change directories, we run chdir. Try experimenting with these various commands to see how the Dusk filesystem is laid out.</p>
+<p><code>
+p" doc" Path :chdir
+p" .." Path :chdir
+</code></p>
+<p>Return to the root directory for our next step, which will be editing files.</p>
+<p>Dusk has two editors:
+<a href="https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/doc/text/ed.txt?view-source#L1">ed</a>
+and
+<a href="https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/doc/text/ged.txt?view-source#L1">ged</a>.
+ed is a line-based editor, ged is a
+grid-based editor. We will start with ed. If you're not familiar with
+line-based editors (I wasn't) this may take some getting used to. The documentation for both are great and will cover in more detail than this guide does.</p>
+<p>Let's get started with ed. First, how do we read files on the Dusk system?</p>
+<p>Dusk as a file buffer that holds file content for reading and writing. By default, these tools are not imported, so we will need to load them with the following command:</p>
+<p><code>
+f<< text/ed.fs
+</code></p>
+<p>Now, let's write text to the buffer. This editor has a number of single-character helper words to handle writing. One of them is <code>I</code>, to insert text. Let's write:</p>
+<p><code>
+I Hello, World!
+</code></p>
+<p>This will print the contents of the current line, with a carat indicating the
+cursor position and then numbers indicating the current line number and the
+total number of lines in the buffer. Let's add text on another line with <code>o</code>:</p>
+<p><code>
+o I love Dusk OS!
+</code></p>
+<p>To read more of the buffer, we can print <code>pagesz</code> number of lines using the <code>p</code> word.</p>
+<p>TODO...</p>
+<p>Loading Files
+Printing files
+Lastly, lets introduce the Dusk C compiler. TBD. That's it!</p>
+<h2>Conclusion</h2>
+<p>Now that we're here, what's the point? Why use this extremely austere system?
+Dusk OS gives you a deep understanding of the 'guts' of its sytem. It is not
+unreasonable for one individual to understand, articulate and modify everything
+that we did today down to the bare metal. This is simply inconceivable in a
+modern UNIX system. It gives you a deep level of mastery and connection with
+your computer that I think we have lost. You can gain any level of
+understanding of Dusk OS that you like -- there are parts that are beyond me at
+this point etc. A good place to go further is the <a href="https://duskos.org/">Dusk OS
+Documentation</a>. Some background knowledge in Forth and C
+are also required. If you lack that, I recommend "Starting Forth" and "The C
+Programming Language", respectively.</p>
+<p>I'm happy to help and answer questions about Dusk. If you have any questions or feedback, please email <a href="mailto:alex@alexwennerberg.com">alex@alexwennerberg.com</a>.</p>