forked from dozens/protoadandsuperbowl
rectoad and recowl
big change. ripped out retroforth because it was kind of slow. put the whole thing in a recfile. surprising nobody. the difficult thing about this change (although i am otherwise happy) is that the source is a single file, the rec database at `/db/database.rec`. this makes it impossible (as far as i know) to to an incremental build such as with make(1) because the source file, as soon as you update it, is immediately newer than all of the target files. so everything gets rebuilt on every build. so i just build everything anyway for now. until i can figure out something better. also i export the comic to gemini, which you can find at the link below. gemini://tilde.town/~dozens/comic
parent
5b827eac20
commit
77a3c87170
6
00001.md
6
00001.md
|
@ -1,4 +1,4 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
@ -10,14 +10,14 @@ yeah that's it doncha know
|
|||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
|
15
00002.md
15
00002.md
|
@ -1,27 +1,28 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
...and that's how I became a YAML engineer.
|
||||
...and that's how I became a YAML
|
||||
engineer.
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
To be honest, I'm not sure it's a real job either.
|
||||
But they keep giving me YAML and I keep
|
||||
ENGINEERING it!
|
||||
To be honest, I'm not sure it's a real
|
||||
job either. But they keep giving me
|
||||
YAML and I keep ENGINEERING it!
|
||||
```
|
||||
|
|
6
00003.md
6
00003.md
|
@ -1,4 +1,4 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
@ -8,14 +8,14 @@ So did you watch the Super Bowl?
|
|||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
|
10
00004.md
10
00004.md
|
@ -1,4 +1,4 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
@ -11,19 +11,19 @@ Budweiser beer?
|
|||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
Yep! I guess you could say it was a SUPER BOWL
|
||||
PROTO AD!
|
||||
Yep! I guess you could say it was a
|
||||
SUPER BOWL PROTO AD!
|
||||
```
|
||||
|
|
17
00005.md
17
00005.md
|
@ -1,29 +1,30 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
Who even ever asked for or wanted an information
|
||||
SUPERHIGHWAY anyway?
|
||||
Who even ever asked for or wanted an
|
||||
information SUPERHIGHWAY anyway?
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
All I want is like a small cute remote
|
||||
information HIKING TRAIL somewhere out in the
|
||||
woods where I can see some flowers and leaves and
|
||||
listen to the birds and stuff.
|
||||
information HIKING TRAIL somewhere out
|
||||
in the woods where I can see some
|
||||
flowers and leaves and listen to the
|
||||
birds and stuff.
|
||||
```
|
||||
|
|
47
00006.md
47
00006.md
|
@ -1,42 +1,45 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
Is there even such a thing as "mainstream"
|
||||
anymore? I mean it used to be the case that
|
||||
everybody watched the same nightly news and
|
||||
listened to the same radio station. And
|
||||
"counterculture" was growing your hair long
|
||||
and listening to rock and roll. Now the duality
|
||||
of mainstream vs. counterculture seems as
|
||||
quaint as the idea that there are only two
|
||||
genders or only two sexes. Kids don't listen to
|
||||
rock & roll to rebel, they listen to soundcloud
|
||||
emo rap, or whatever, and if the niche sound that
|
||||
speaks directly to them doesn't exist, they can
|
||||
invent it and upload it for the world to hear with
|
||||
little more than a cheap laptop.
|
||||
Is there even such a thing as
|
||||
"mainstream" anymore? I mean it used to
|
||||
be the case that everybody watched the
|
||||
same nightly news and listened to the
|
||||
same radio station. And
|
||||
"counterculture" was growing your hair
|
||||
long and listening to rock and roll.
|
||||
Now the duality of mainstream vs.
|
||||
counterculture seems as quaint as the
|
||||
idea that there are only two genders or
|
||||
only two sexes. Kids don't listen to
|
||||
rock & roll to rebel, they listen to
|
||||
soundcloud emo rap, or whatever, and if
|
||||
the niche sound that speaks directly to
|
||||
them doesn't exist, they can invent it
|
||||
and upload it for the world to hear
|
||||
with little more than a cheap laptop.
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
At the other end of the LONG TAIL of the internet
|
||||
is a metaphorical infosec furry, and because of
|
||||
them there are as many small STREAMS and
|
||||
countercultures as there are individual
|
||||
people.
|
||||
At the other end of the LONG TAIL of
|
||||
the internet is a metaphorical infosec
|
||||
furry, and because of them there are as
|
||||
many small STREAMS and countercultures
|
||||
as there are individual people.
|
||||
```
|
||||
|
|
15
00007.md
15
00007.md
|
@ -1,25 +1,26 @@
|
|||
# Pro Toad and Superb Owl
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./)_)
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
there should be no such thing
|
||||
as billionaires
|
||||
there should be no such thing as
|
||||
billionaires
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./)_)
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./)_)
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
|
||||
```
|
||||
|
|
36
00008.md
36
00008.md
|
@ -1,37 +1,39 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
There was a sense of euphoria while we were in
|
||||
flow, like we were invinsible, but afterwards
|
||||
everything seemed brittle and fragile like it
|
||||
was held together with duct tape and kite string
|
||||
and like it might all come crumbling down if the
|
||||
wind blew in from the wrong direction. And there
|
||||
we were in the aftermath, unsure whether we
|
||||
accomplished our goals, who we hurt in the
|
||||
process, or if there was anything good about it
|
||||
all.
|
||||
There was a sense of euphoria while we
|
||||
were in flow, like we were invinsible,
|
||||
but afterwards everything seemed
|
||||
brittle and fragile like it was held
|
||||
together with duct tape and kite string
|
||||
and like it might all come crumbling
|
||||
down if the wind blew in from the wrong
|
||||
direction. And there we were in the
|
||||
aftermath, unsure whether we
|
||||
accomplished our goals, who we hurt in
|
||||
the process, or if there was anything
|
||||
good about it all.
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
So anyway that's what we call a "hackathon". The
|
||||
tech bros invited me to "do some lines" and at
|
||||
this point I can't remember if it was code or
|
||||
coke.
|
||||
So anyway that's what we call a
|
||||
"hackathon". The tech bros invited me
|
||||
to "do some lines" and at this point I
|
||||
can't remember if it was code or coke.
|
||||
```
|
||||
|
|
48
00009.md
48
00009.md
|
@ -1,42 +1,46 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
So I picked up a book in the middle of this epic
|
||||
fantasy series. It's by this author who I heard
|
||||
does really good sword and sorcery stories, and
|
||||
I'm into that. Anyway the story opens on a
|
||||
tragic, lonely noble lord, last of his line,
|
||||
subject to disfigurement because of the family
|
||||
curse and whatnot. But, get this, it totally
|
||||
takes place in Old Germany during the rise of the
|
||||
Nazi party!
|
||||
So I picked up a book in the middle of
|
||||
this epic fantasy series. It's by this
|
||||
author who I heard does really good
|
||||
sword and sorcery stories, and I'm into
|
||||
that. Anyway the story opens on a
|
||||
tragic, lonely noble lord, last of his
|
||||
line, subject to disfigurement because
|
||||
of the family curse and whatnot. But,
|
||||
get this, it totally takes place in Old
|
||||
Germany during the rise of the Nazi
|
||||
party!
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
I was so disoriented that I looked it up, and
|
||||
there will eventually be a classic fantasy
|
||||
storyline that interweaves with the modern
|
||||
nazi storyline.
|
||||
|
||||
Which means eventually the hero is literally
|
||||
going ride a dragon to Hitler's bunker and punch
|
||||
him in the face and if there's one thing this
|
||||
world needs more of, it's mother fucking
|
||||
dragons beating the shit out of nazis.
|
||||
I was so disoriented that I looked it
|
||||
up, and there will eventually be a
|
||||
classic fantasy storyline that
|
||||
interweaves with the modern nazi
|
||||
storyline.
|
||||
Which means eventually the hero is
|
||||
literally going ride a dragon to
|
||||
Hitler's bunker and punch him in the
|
||||
face and if there's one thing this
|
||||
world needs more of, it's mother
|
||||
fucking dragons beating the shit out of
|
||||
nazis.
|
||||
```
|
||||
|
|
21
00010.md
21
00010.md
|
@ -1,31 +1,32 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
a guy was looking for a priest to officiate his
|
||||
wedding and narrowed it down to his final two
|
||||
choices. the first one walked in with two
|
||||
beetles and started praying over the bugs. the
|
||||
second one started spraying everybody with
|
||||
holy water from a water gun. Know who he chose?
|
||||
a guy was looking for a priest to
|
||||
officiate his wedding and narrowed it
|
||||
down to his final two choices. the
|
||||
first one walked in with two beetles
|
||||
and started praying over the bugs. the
|
||||
second one started spraying everybody
|
||||
with holy water from a water gun. Know
|
||||
who he chose?
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
He chose the blesser of two weevils
|
||||
|
||||
```
|
||||
|
|
42
00011.md
42
00011.md
|
@ -1,39 +1,43 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
So I was down by the capitol and I noticed some
|
||||
kind of protest was happening. I saw a couple
|
||||
people wearing US flags and thought to myself,
|
||||
ew, probably a bunch of treasonous right-wing
|
||||
fundamentalist bastards. Which, you know, is
|
||||
always the first thing you think when you see
|
||||
somebody wearing the US flag. But then I saw
|
||||
somebody holding a "My Body My Choice" sign and
|
||||
thought, aw, it must be some pro-choicers! And I
|
||||
decided to get a little closer to check it out.
|
||||
So I was down by the capitol and I
|
||||
noticed some kind of protest was
|
||||
happening. I saw a couple people
|
||||
wearing US flags and thought to myself,
|
||||
ew, probably a bunch of treasonous
|
||||
right-wing fundamentalist bastards.
|
||||
Which, you know, is always the first
|
||||
thing you think when you see somebody
|
||||
wearing the US flag. But then I saw
|
||||
somebody holding a "My Body My Choice"
|
||||
sign and thought, aw, it must be some
|
||||
pro-choicers! And I decided to get a
|
||||
little closer to check it out.
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
I got close enough to see a bunch of the other
|
||||
signs and they were all like, "No Jab! No
|
||||
Vaccine!" and that's when I knew I had been
|
||||
tricked. It WAS a bunch of treasonous
|
||||
right-wing fundamentalist bastards! I said
|
||||
"ew" again and turned around and ran away.
|
||||
I got close enough to see a bunch of
|
||||
the other signs and they were all like,
|
||||
"No Jab! No Vaccine!" and that's when I
|
||||
knew I had been tricked. It WAS a bunch
|
||||
of treasonous right-wing fundamentalist
|
||||
bastards! I said "ew" again and turned
|
||||
around and ran away.
|
||||
```
|
||||
|
|
6
00012.md
6
00012.md
|
@ -1,4 +1,4 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
@ -8,14 +8,14 @@ Ed is the standard text editor!
|
|||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
|
6
00013.md
6
00013.md
|
@ -1,4 +1,4 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
@ -8,14 +8,14 @@ You can't fathom the unfathomable.
|
|||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
|
12
00014.md
12
00014.md
|
@ -1,23 +1,23 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
So there's this librarian who logged into a
|
||||
remote server to tell everybody on irc to keep
|
||||
the chatter down
|
||||
So there's this librarian who logged
|
||||
into a remote server to tell everybody
|
||||
on irc to keep the chatter down
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
|
14
00015.md
14
00015.md
|
@ -1,27 +1,27 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
dang it yall hvae me writing a bunch of other fun
|
||||
stuff in there
|
||||
dang it yall hvae me writing a bunch of
|
||||
other fun stuff in there
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
I wonder if i can find something somebody calls
|
||||
home
|
||||
I wonder if i can find something
|
||||
somebody calls home
|
||||
```
|
||||
|
|
6
00016.md
6
00016.md
|
@ -1,4 +1,4 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
@ -8,14 +8,14 @@ Having fun isn't hard!
|
|||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
|
20
00017.md
20
00017.md
|
@ -1,30 +1,30 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
today, I'm playing camp counselor at work and
|
||||
also facing the reality I need to upgrade my very
|
||||
old cell phone
|
||||
today, I'm playing camp counselor at
|
||||
work and also facing the reality I need
|
||||
to upgrade my very old cell phone
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
hahaha, one is just emotional, the other is me
|
||||
doing the emotional labor of redirecting other
|
||||
folks energies so that they don't do a murder or
|
||||
something
|
||||
hahaha, one is just emotional, the
|
||||
other is me doing the emotional labor
|
||||
of redirecting other folks energies so
|
||||
that they don't do a murder or something
|
||||
```
|
||||
|
|
9
00018.md
9
00018.md
|
@ -1,4 +1,4 @@
|
|||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
@ -8,18 +8,19 @@ hello my friends wit hshell access
|
|||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```tcl
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
but my mood is good, which trumps everything
|
||||
but my mood is good, which trumps
|
||||
everything
|
||||
```
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
horse
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
bhuururRrURhurU
|
||||
```
|
21
bin/rss.sh
21
bin/rss.sh
|
@ -1,21 +0,0 @@
|
|||
#!/bin/sh
|
||||
echo "<rss version=\"2.0\"><channel><title>It's Pro Toad and Superb Owl</title>" > feed.xml
|
||||
echo "<link>https://git.tilde.town/dozens/protoadandsuperbowl</link><description>It's Pro Toad and Superb Owl!</description><atom:link rel=\"self\" type=\"application/rss+xml\" href=\"https://git.tilde.town/dozens/protoadandsuperbowl/raw/branch/master/feed.xml\"/><generator>/bin/sh</generator>" >> feed.xml
|
||||
|
||||
|
||||
for f in *.md; do
|
||||
if [ $f == "README.md" ]; then
|
||||
continue
|
||||
fi
|
||||
echo "<item>
|
||||
<title>$f</title>
|
||||
<link>https://git.tilde.town/dozens/protoadandsuperbowl/raw/branch/master/$f</link>
|
||||
<pubDate>$(git log --follow --format=%ad --date default $f | tail -1)</pubDate>
|
||||
<description><![CDATA[" >> feed.xml
|
||||
pandoc $f >> feed.xml
|
||||
echo "]]></description>
|
||||
</item>" >> feed.xml
|
||||
done
|
||||
|
||||
echo '</channel></rss>' >> feed.xml
|
||||
|
196
bin/toad.md
196
bin/toad.md
|
@ -1,196 +0,0 @@
|
|||
# toad.md
|
||||
|
||||
> the pro toad and superb owl comic generator
|
||||
|
||||
## about
|
||||
|
||||
This program reads a script file and interpolates its contents with some ascii art, and then writes the result to stdout.
|
||||
|
||||
The end goal is automating the creation of [Pro Toad and Superb Owl][ptso] comics.
|
||||
|
||||
[ptso]: https://git.tilde.town/dozens/protoadandsuperbowl
|
||||
|
||||
## usage
|
||||
|
||||
$ retro toad.md path/to/script.txt > comic.txt
|
||||
|
||||
## components
|
||||
|
||||
the components of the program are:
|
||||
|
||||
1. IO - open the text file, read it line by line, close the file, write to stdout
|
||||
|
||||
2. input parser - there are 2 line types in the script file:
|
||||
|
||||
- a text line, and
|
||||
- a separator line: a special `---` line to separate panels.
|
||||
|
||||
3. comic builder - build the first panel, the second panel (no input needed, just output tanel 2), and the 3rd panel (repeat steps needed for 1st panel)
|
||||
|
||||
4. panel builder - for as long as art array has length, and as long as the current input line has length or until the input parser hits the separator line or the end of the file, call the line builder with the next line of the art array (if there is one) and the input line.
|
||||
|
||||
If the input line has no length, and the next line is not the separator, have the line builder insert a "blank line" and get a new input line.
|
||||
|
||||
5. line builder - given two strings, build a new string containing the first, and appending words from the second up to a total of ~80 cols.
|
||||
|
||||
## argument validation
|
||||
|
||||
print a helpful message if the script is called without an argument
|
||||
|
||||
~~~
|
||||
script:arguments #0 eq? [ 'Error:_Missing_argument s:put ] if;
|
||||
~~~
|
||||
|
||||
## panels
|
||||
|
||||
okay let's go
|
||||
|
||||
There are two panels: one where toad speaks, and one where owl speaks. Let's save each to an array, one string per line.
|
||||
|
||||
Here's toad (panels 1 & 3):
|
||||
|
||||
~~~
|
||||
'toad var
|
||||
{
|
||||
'_(@)(@)_____{0,0}__
|
||||
'_(~~~~)____./)_)___
|
||||
'_(>vv<)______"_"___
|
||||
'___________________
|
||||
'_____\_____________
|
||||
} !toad
|
||||
~~~
|
||||
|
||||
Here's owl (panel 2):
|
||||
|
||||
~~~
|
||||
'owl var
|
||||
{
|
||||
'_(@)(@)_____{0,0}__--_Hoo?
|
||||
'_(~~~~)____./)_)__________
|
||||
'_(>vv<)______"_"__________
|
||||
} !owl
|
||||
~~~
|
||||
|
||||
Also here are some code fences, because we'll need those too:
|
||||
|
||||
~~~
|
||||
:fences-open '```tcl s:put nl ;
|
||||
:fences-close '``` s:put nl ;
|
||||
~~~
|
||||
|
||||
## Input/output
|
||||
|
||||
open the file for reading and save the file handle to `handle`
|
||||
|
||||
save the file fize. we'll use this to check for end of file.
|
||||
|
||||
~~~
|
||||
'handle var
|
||||
'size var
|
||||
|
||||
#0 script:get-argument
|
||||
file:open-for-reading !handle !size
|
||||
|
||||
:get-line @handle file:read-line ;
|
||||
~~~
|
||||
|
||||
## Input Parser
|
||||
|
||||
TODO: this isn't tested or used anywhere yet.
|
||||
|
||||
~~~
|
||||
{{
|
||||
:end-of-file? (-) @handle file:tell @size gteq? ;
|
||||
:separator? (m-f) '--- eq? ;
|
||||
---reveal---
|
||||
:end-of-section? (-f) separator? end-of-file? or ;
|
||||
}}
|
||||
~~~
|
||||
|
||||
## Line wrapping
|
||||
|
||||
Here's a line wrapping module.
|
||||
|
||||
~~~
|
||||
{{
|
||||
#0 'displayed var-n
|
||||
#40 'wrap-at var-n
|
||||
:wrap? dup @displayed + @wrap-at gt? ;
|
||||
:display [ nl !displayed ] [ displayed v:inc-by ] choose s:put sp ;
|
||||
---reveal---
|
||||
:s:put-wrapped (s-) ASCII:SPACE s:tokenize
|
||||
[ dup s:length wrap? display ] a:for-each
|
||||
#0 !displayed ;
|
||||
}}
|
||||
~~~
|
||||
|
||||
src:
|
||||
|
||||
<https://github.com/crcx/retroforth/blob/master/example/wordwrap.retro>
|
||||
|
||||
|
||||
## Panel 1
|
||||
|
||||
print out the first panel
|
||||
|
||||
ascii art:
|
||||
|
||||
~~~
|
||||
fences-open
|
||||
@toad [ s:put nl ] a:for-each
|
||||
~~~
|
||||
|
||||
text:
|
||||
|
||||
~~~
|
||||
[
|
||||
get-line
|
||||
dup '--- s:eq? not [
|
||||
dup s:put-wrapped nl
|
||||
] if
|
||||
'--- s:eq? not
|
||||
] while
|
||||
~~~
|
||||
|
||||
wrap it up:
|
||||
|
||||
~~~
|
||||
fences-close nl nl
|
||||
~~~
|
||||
|
||||
## Panel 2
|
||||
|
||||
~~~
|
||||
fences-open
|
||||
@owl [ s:put nl ] a:for-each
|
||||
fences-close nl nl
|
||||
~~~
|
||||
|
||||
## Panel 3
|
||||
|
||||
print the ascii:
|
||||
|
||||
~~~
|
||||
fences-open
|
||||
@toad [ s:put nl ] a:for-each
|
||||
~~~
|
||||
|
||||
print the text:
|
||||
|
||||
~~~
|
||||
[
|
||||
get-line
|
||||
s:put-wrapped nl
|
||||
@handle file:size @handle file:tell gt?
|
||||
] while
|
||||
~~~
|
||||
|
||||
wrap it up
|
||||
|
||||
~~~
|
||||
fences-close
|
||||
~~~
|
||||
|
||||
## Conclusion
|
||||
|
||||
That's all! That's the end
|
|
@ -0,0 +1,109 @@
|
|||
%rec: comic
|
||||
%doc: a hilarious webcomic about two best friends
|
||||
%type: date date
|
||||
%key: id
|
||||
%unique: id
|
||||
%auto: date
|
||||
%mandatory: id top bottom date
|
||||
%allowed: id top bottom date
|
||||
%sort: date
|
||||
|
||||
id: 00001
|
||||
top: ya see, some people go real fast
|
||||
+ and other people they go real slow
|
||||
+ yeah that's it doncha know
|
||||
bottom: yeah that's the real root cause of most workplace conflict
|
||||
date: 2021-08-14
|
||||
|
||||
id: 00002
|
||||
top: ...and that's how I became a YAML engineer.
|
||||
bottom: To be honest, I'm not sure it's a real job either. But they keep giving me YAML and I keep ENGINEERING it!
|
||||
date: 2021-08-29
|
||||
|
||||
id: 00003
|
||||
top: So did you watch the Super Bowl?
|
||||
bottom: Yeah, me neither.
|
||||
date: 2021-08-29
|
||||
|
||||
id: 00004
|
||||
top: Did you know that one of the very first television advertisements during the AFL–NFL World Championship Game was for Budweiser beer?
|
||||
bottom: Yep! I guess you could say it was a SUPER BOWL PROTO AD!
|
||||
date: 2021-08-29
|
||||
|
||||
id: 00005
|
||||
top: Who even ever asked for or wanted an information SUPERHIGHWAY anyway?
|
||||
bottom: All I want is like a small cute remote information HIKING TRAIL somewhere out in the woods where I can see some flowers and leaves and listen to the birds and stuff.
|
||||
date: 2021-08-29
|
||||
|
||||
id: 00006
|
||||
top: Is there even such a thing as "mainstream" anymore? I mean it used to be the case that everybody watched the same nightly news and listened to the same radio station. And "counterculture" was growing your hair long and listening to rock and roll. Now the duality of mainstream vs. counterculture seems as quaint as the idea that there are only two genders or only two sexes. Kids don't listen to rock & roll to rebel, they listen to soundcloud emo rap, or whatever, and if the niche sound that speaks directly to them doesn't exist, they can invent it and upload it for the world to hear with little more than a cheap laptop.
|
||||
bottom: At the other end of the LONG TAIL of the internet is a metaphorical infosec furry, and because of them there are as many small STREAMS and countercultures as there are individual people.
|
||||
date: 2021-08-29
|
||||
|
||||
id: 00007
|
||||
top: there should be no such thing as billionaires
|
||||
bottom:
|
||||
date: 2021-08-29
|
||||
|
||||
id: 00008
|
||||
top: There was a sense of euphoria while we were in flow, like we were invinsible, but afterwards everything seemed brittle and fragile like it was held together with duct tape and kite string and like it might all come crumbling down if the wind blew in from the wrong direction. And there we were in the aftermath, unsure whether we accomplished our goals, who we hurt in the process, or if there was anything good about it all.
|
||||
bottom: So anyway that's what we call a "hackathon". The tech bros invited me to "do some lines" and at this point I can't remember if it was code or coke.
|
||||
date: 2021-08-29
|
||||
|
||||
id: 00009
|
||||
top: So I picked up a book in the middle of this epic fantasy series. It's by this author who I heard does really good sword and sorcery stories, and I'm into that. Anyway the story opens on a tragic, lonely noble lord, last of his line, subject to disfigurement because of the family curse and whatnot. But, get this, it totally takes place in Old Germany during the rise of the Nazi party!
|
||||
bottom: I was so disoriented that I looked it up, and there will eventually be a classic fantasy storyline that interweaves with the modern nazi storyline.
|
||||
+ Which means eventually the hero is literally going ride a dragon to Hitler's bunker and punch him in the face and if there's one thing this world needs more of, it's mother fucking dragons beating the shit out of nazis.
|
||||
date: 2021-08-29
|
||||
|
||||
id: 00010
|
||||
top: a guy was looking for a priest to officiate his wedding and narrowed it down to his final two choices. the first one walked in with two beetles and started praying over the bugs. the second one started spraying everybody with holy water from a water gun. Know who he chose?
|
||||
bottom: He chose the blesser of two weevils
|
||||
date: 2021-12-01
|
||||
|
||||
id: 00011
|
||||
top: So I was down by the capitol and I noticed some kind of protest was happening. I saw a couple people wearing US flags and thought to myself, ew, probably a bunch of treasonous right-wing fundamentalist bastards. Which, you know, is always the first thing you think when you see somebody wearing the US flag. But then I saw somebody holding a "My Body My Choice" sign and thought, aw, it must be some pro-choicers! And I decided to get a little closer to check it out.
|
||||
bottom: I got close enough to see a bunch of the other signs and they were all like, "No Jab! No Vaccine!" and that's when I knew I had been tricked. It WAS a bunch of treasonous right-wing fundamentalist bastards! I said "ew" again and turned around and ran away.
|
||||
date: 2022-02-03
|
||||
|
||||
id: 00012
|
||||
top: Ed is the standard text editor!
|
||||
bottom: ?
|
||||
+ ?
|
||||
+ ?
|
||||
date: 2022-08-25
|
||||
|
||||
id: 00013
|
||||
top: You can't fathom the unfathomable.
|
||||
bottom: You can't derstand the understandable!
|
||||
date: 2022-11-04
|
||||
|
||||
id: 00014
|
||||
top: So there's this librarian who logged into a remote server to tell everybody on irc to keep the chatter down
|
||||
bottom: It was a ssh shh
|
||||
date: 2022-12-01
|
||||
|
||||
id: 00015
|
||||
top: dang it yall hvae me writing a bunch of other fun stuff in there
|
||||
bottom: I wonder if i can find something somebody calls home
|
||||
date: 2023-08-23
|
||||
|
||||
id: 00016
|
||||
top: Having fun isn't hard!
|
||||
bottom: ... when you have a library card!
|
||||
date: 2023-10-01
|
||||
|
||||
id: 00017
|
||||
top: today, I'm playing camp counselor at work and also facing the reality I need to upgrade my very old cell phone
|
||||
bottom: hahaha, one is just emotional, the other is me doing the emotional labor of redirecting other folks energies so that they don't do a murder or something
|
||||
date: 2023-10-02
|
||||
|
||||
id: 00018
|
||||
top: hello my friends wit hshell access
|
||||
bottom: but my mood is good, which trumps everything
|
||||
date: 2023-10-06
|
||||
|
||||
id: 00019
|
||||
top: horse
|
||||
bottom: bhuururRrURhurU
|
||||
date: 2024-01-07
|
|
@ -0,0 +1,32 @@
|
|||
# 00001
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
ya see, some people go real fast
|
||||
and other people they go real slow
|
||||
yeah that's it doncha know
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
yeah that's the real root cause of most
|
||||
workplace conflict
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,32 @@
|
|||
# 00002
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
...and that's how I became a YAML
|
||||
engineer.
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
To be honest, I'm not sure it's a real
|
||||
job either. But they keep giving me
|
||||
YAML and I keep ENGINEERING it!
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,29 @@
|
|||
# 00003
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
So did you watch the Super Bowl?
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
Yeah, me neither.
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,33 @@
|
|||
# 00004
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
Did you know that one of the very first
|
||||
television advertisements during the
|
||||
AFL–NFL World Championship Game was for
|
||||
Budweiser beer?
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
Yep! I guess you could say it was a
|
||||
SUPER BOWL PROTO AD!
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,34 @@
|
|||
# 00005
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
Who even ever asked for or wanted an
|
||||
information SUPERHIGHWAY anyway?
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
All I want is like a small cute remote
|
||||
information HIKING TRAIL somewhere out
|
||||
in the woods where I can see some
|
||||
flowers and leaves and listen to the
|
||||
birds and stuff.
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,49 @@
|
|||
# 00006
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
Is there even such a thing as
|
||||
"mainstream" anymore? I mean it used to
|
||||
be the case that everybody watched the
|
||||
same nightly news and listened to the
|
||||
same radio station. And
|
||||
"counterculture" was growing your hair
|
||||
long and listening to rock and roll.
|
||||
Now the duality of mainstream vs.
|
||||
counterculture seems as quaint as the
|
||||
idea that there are only two genders or
|
||||
only two sexes. Kids don't listen to
|
||||
rock & roll to rebel, they listen to
|
||||
soundcloud emo rap, or whatever, and if
|
||||
the niche sound that speaks directly to
|
||||
them doesn't exist, they can invent it
|
||||
and upload it for the world to hear
|
||||
with little more than a cheap laptop.
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
At the other end of the LONG TAIL of
|
||||
the internet is a metaphorical infosec
|
||||
furry, and because of them there are as
|
||||
many small STREAMS and countercultures
|
||||
as there are individual people.
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,30 @@
|
|||
# 00007
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
there should be no such thing as
|
||||
billionaires
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,43 @@
|
|||
# 00008
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
There was a sense of euphoria while we
|
||||
were in flow, like we were invinsible,
|
||||
but afterwards everything seemed
|
||||
brittle and fragile like it was held
|
||||
together with duct tape and kite string
|
||||
and like it might all come crumbling
|
||||
down if the wind blew in from the wrong
|
||||
direction. And there we were in the
|
||||
aftermath, unsure whether we
|
||||
accomplished our goals, who we hurt in
|
||||
the process, or if there was anything
|
||||
good about it all.
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
So anyway that's what we call a
|
||||
"hackathon". The tech bros invited me
|
||||
to "do some lines" and at this point I
|
||||
can't remember if it was code or coke.
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,50 @@
|
|||
# 00009
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
So I picked up a book in the middle of
|
||||
this epic fantasy series. It's by this
|
||||
author who I heard does really good
|
||||
sword and sorcery stories, and I'm into
|
||||
that. Anyway the story opens on a
|
||||
tragic, lonely noble lord, last of his
|
||||
line, subject to disfigurement because
|
||||
of the family curse and whatnot. But,
|
||||
get this, it totally takes place in Old
|
||||
Germany during the rise of the Nazi
|
||||
party!
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
I was so disoriented that I looked it
|
||||
up, and there will eventually be a
|
||||
classic fantasy storyline that
|
||||
interweaves with the modern nazi
|
||||
storyline.
|
||||
Which means eventually the hero is
|
||||
literally going ride a dragon to
|
||||
Hitler's bunker and punch him in the
|
||||
face and if there's one thing this
|
||||
world needs more of, it's mother
|
||||
fucking dragons beating the shit out of
|
||||
nazis.
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,36 @@
|
|||
# 00010
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
a guy was looking for a priest to
|
||||
officiate his wedding and narrowed it
|
||||
down to his final two choices. the
|
||||
first one walked in with two beetles
|
||||
and started praying over the bugs. the
|
||||
second one started spraying everybody
|
||||
with holy water from a water gun. Know
|
||||
who he chose?
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
He chose the blesser of two weevils
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,47 @@
|
|||
# 00011
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
So I was down by the capitol and I
|
||||
noticed some kind of protest was
|
||||
happening. I saw a couple people
|
||||
wearing US flags and thought to myself,
|
||||
ew, probably a bunch of treasonous
|
||||
right-wing fundamentalist bastards.
|
||||
Which, you know, is always the first
|
||||
thing you think when you see somebody
|
||||
wearing the US flag. But then I saw
|
||||
somebody holding a "My Body My Choice"
|
||||
sign and thought, aw, it must be some
|
||||
pro-choicers! And I decided to get a
|
||||
little closer to check it out.
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
I got close enough to see a bunch of
|
||||
the other signs and they were all like,
|
||||
"No Jab! No Vaccine!" and that's when I
|
||||
knew I had been tricked. It WAS a bunch
|
||||
of treasonous right-wing fundamentalist
|
||||
bastards! I said "ew" again and turned
|
||||
around and ran away.
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,31 @@
|
|||
# 00012
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
Ed is the standard text editor!
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
?
|
||||
?
|
||||
?
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,29 @@
|
|||
# 00013
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
You can't fathom the unfathomable.
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
You can't derstand the understandable!
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,31 @@
|
|||
# 00014
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
So there's this librarian who logged
|
||||
into a remote server to tell everybody
|
||||
on irc to keep the chatter down
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
It was a ssh shh
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,31 @@
|
|||
# 00015
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
dang it yall hvae me writing a bunch of
|
||||
other fun stuff in there
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
I wonder if i can find something
|
||||
somebody calls home
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,29 @@
|
|||
# 00016
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
Having fun isn't hard!
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
... when you have a library card!
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,34 @@
|
|||
# 00017
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
today, I'm playing camp counselor at
|
||||
work and also facing the reality I need
|
||||
to upgrade my very old cell phone
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
hahaha, one is just emotional, the
|
||||
other is me doing the emotional labor
|
||||
of redirecting other folks energies so
|
||||
that they don't do a murder or something
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,30 @@
|
|||
# 00018
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
hello my friends wit hshell access
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
but my mood is good, which trumps
|
||||
everything
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,29 @@
|
|||
# 00019
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
horse
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
bhuururRrURhurU
|
||||
```
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
|
@ -0,0 +1,25 @@
|
|||
# Pro Toad and Superb Owl
|
||||
|
||||
Two best friends have adventures!
|
||||
|
||||
=> 00019.gmi 2024-01-07 - 00019
|
||||
=> 00018.gmi 2023-10-06 - 00018
|
||||
=> 00017.gmi 2023-10-02 - 00017
|
||||
=> 00016.gmi 2023-10-01 - 00016
|
||||
=> 00015.gmi 2023-08-23 - 00015
|
||||
=> 00014.gmi 2022-12-01 - 00014
|
||||
=> 00013.gmi 2022-11-04 - 00013
|
||||
=> 00012.gmi 2022-08-25 - 00012
|
||||
=> 00011.gmi 2022-02-03 - 00011
|
||||
=> 00010.gmi 2021-12-01 - 00010
|
||||
=> 00009.gmi 2021-08-29 - 00009
|
||||
=> 00008.gmi 2021-08-29 - 00008
|
||||
=> 00007.gmi 2021-08-29 - 00007
|
||||
=> 00006.gmi 2021-08-29 - 00006
|
||||
=> 00005.gmi 2021-08-29 - 00005
|
||||
=> 00004.gmi 2021-08-29 - 00004
|
||||
=> 00003.gmi 2021-08-29 - 00003
|
||||
=> 00002.gmi 2021-08-29 - 00002
|
||||
=> 00001.gmi 2021-08-14 - 00001
|
||||
|
||||
=> gemini://tilde.town/~dozens/comic
|
62
justfile
62
justfile
|
@ -4,20 +4,64 @@ default:
|
|||
|
||||
# build rss feed
|
||||
rss:
|
||||
@./bin/rss.sh
|
||||
#!/bin/sh
|
||||
exec > feed.xml
|
||||
echo "<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">"
|
||||
echo " <channel>"
|
||||
echo " <title>It's Pro Toad and Superb Owl</title>"
|
||||
echo " <link>https://git.tilde.town/dozens/protoadandsuperbowl</link>"
|
||||
echo " <description>It's Pro Toad and Superb Owl!</description>"
|
||||
echo " <atom:link rel=\"self\" type=\"application/rss+xml\" href=\"https://git.tilde.town/dozens/protoadandsuperbowl/raw/branch/master/feed.xml\"/>"
|
||||
echo " <generator>/bin/sh</generator>"
|
||||
recsel db/database.rec | recfmt -f templates/feed.tmpl
|
||||
echo "</channel></rss>"
|
||||
|
||||
# watch toad.md for changes
|
||||
watch:
|
||||
@ls bin/toad.md | entr -c retro bin/toad.md src/00001.txt
|
||||
echo "TODO"
|
||||
alias dev := watch
|
||||
|
||||
# build all comics
|
||||
build:
|
||||
#!/usr/bin/env sh
|
||||
for f in $(ls src/*.txt); do
|
||||
base=`basename ${f}`
|
||||
retro bin/toad.md ${f} > "${base/txt/md}"
|
||||
# build markdown comics
|
||||
markdown:
|
||||
#!/bin/sh
|
||||
for ((i = 0; i < $(recsel -c db/database.rec); i++))
|
||||
do
|
||||
id=$(recsel -P id -n $i db/database.rec)
|
||||
recsel -n $i db/database.rec | recfmt -f templates/page.tmpl | fold -s -w 40 > $id.md
|
||||
done
|
||||
|
||||
# build gemini
|
||||
gemini:
|
||||
#!/bin/sh
|
||||
for ((i = 0; i < $(recsel -c db/database.rec); i++))
|
||||
do
|
||||
id=$(recsel -P id -n $i db/database.rec)
|
||||
exec > gemini/$id.gmi
|
||||
echo "# $id"
|
||||
echo
|
||||
recsel -n $i db/database.rec | recfmt -f templates/page.tmpl | fold -s -w 40
|
||||
echo
|
||||
echo "=> gemini://tilde.town/~dozens/comic"
|
||||
done
|
||||
|
||||
# build gemini index
|
||||
index:
|
||||
#!/bin/sh
|
||||
exec > gemini/index.gmi
|
||||
echo "# Pro Toad and Superb Owl"
|
||||
echo
|
||||
echo "Two best friends have adventures!"
|
||||
echo
|
||||
recsel db/database.rec \
|
||||
| recfmt "=> {{{{id}}.gmi {{{{date}} - {{{{id}}---" \
|
||||
| sed 's/---/\n/g' \
|
||||
| tail -r
|
||||
echo
|
||||
echo "=> gemini://tilde.town/~dozens/comic"
|
||||
|
||||
# go gemini
|
||||
upload:
|
||||
rsync -vurp gemini/* $HOME/blogs/gemini/comic
|
||||
|
||||
# build and rss
|
||||
all: build rss
|
||||
all: markdown gemini index upload rss
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
ya see, some people go real fast
|
||||
and other people they go real slow
|
||||
yeah that's it doncha know
|
||||
---
|
||||
yeah that's the real root cause of most workplace conflict
|
|
@ -1,3 +0,0 @@
|
|||
...and that's how I became a YAML engineer.
|
||||
---
|
||||
To be honest, I'm not sure it's a real job either. But they keep giving me YAML and I keep ENGINEERING it!
|
|
@ -1,3 +0,0 @@
|
|||
So did you watch the Super Bowl?
|
||||
---
|
||||
Yeah, me neither.
|
|
@ -1,3 +0,0 @@
|
|||
Did you know that one of the very first television advertisements during the AFL–NFL World Championship Game was for Budweiser beer?
|
||||
---
|
||||
Yep! I guess you could say it was a SUPER BOWL PROTO AD!
|
|
@ -1,3 +0,0 @@
|
|||
Who even ever asked for or wanted an information SUPERHIGHWAY anyway?
|
||||
---
|
||||
All I want is like a small cute remote information HIKING TRAIL somewhere out in the woods where I can see some flowers and leaves and listen to the birds and stuff.
|
|
@ -1,3 +0,0 @@
|
|||
Is there even such a thing as "mainstream" anymore? I mean it used to be the case that everybody watched the same nightly news and listened to the same radio station. And "counterculture" was growing your hair long and listening to rock and roll. Now the duality of mainstream vs. counterculture seems as quaint as the idea that there are only two genders or only two sexes. Kids don't listen to rock & roll to rebel, they listen to soundcloud emo rap, or whatever, and if the niche sound that speaks directly to them doesn't exist, they can invent it and upload it for the world to hear with little more than a cheap laptop.
|
||||
---
|
||||
At the other end of the LONG TAIL of the internet is a metaphorical infosec furry, and because of them there are as many small STREAMS and countercultures as there are individual people.
|
|
@ -1,3 +0,0 @@
|
|||
There was a sense of euphoria while we were in flow, like we were invinsible, but afterwards everything seemed brittle and fragile like it was held together with duct tape and kite string and like it might all come crumbling down if the wind blew in from the wrong direction. And there we were in the aftermath, unsure whether we accomplished our goals, who we hurt in the process, or if there was anything good about it all.
|
||||
---
|
||||
So anyway that's what we call a "hackathon". The tech bros invited me to "do some lines" and at this point I can't remember if it was code or coke.
|
|
@ -1,5 +0,0 @@
|
|||
So I picked up a book in the middle of this epic fantasy series. It's by this author who I heard does really good sword and sorcery stories, and I'm into that. Anyway the story opens on a tragic, lonely noble lord, last of his line, subject to disfigurement because of the family curse and whatnot. But, get this, it totally takes place in Old Germany during the rise of the Nazi party!
|
||||
---
|
||||
I was so disoriented that I looked it up, and there will eventually be a classic fantasy storyline that interweaves with the modern nazi storyline.
|
||||
|
||||
Which means eventually the hero is literally going ride a dragon to Hitler's bunker and punch him in the face and if there's one thing this world needs more of, it's mother fucking dragons beating the shit out of nazis.
|
|
@ -1,4 +0,0 @@
|
|||
a guy was looking for a priest to officiate his wedding and narrowed it down to his final two choices. the first one walked in with two beetles and started praying over the bugs. the second one started spraying everybody with holy water from a water gun. Know who he chose?
|
||||
---
|
||||
He chose the blesser of two weevils
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
So I was down by the capitol and I noticed some kind of protest was happening. I saw a couple people wearing US flags and thought to myself, ew, probably a bunch of treasonous right-wing fundamentalist bastards. Which, you know, is always the first thing you think when you see somebody wearing the US flag. But then I saw somebody holding a "My Body My Choice" sign and thought, aw, it must be some pro-choicers! And I decided to get a little closer to check it out.
|
||||
---
|
||||
I got close enough to see a bunch of the other signs and they were all like, "No Jab! No Vaccine!" and that's when I knew I had been tricked. It WAS a bunch of treasonous right-wing fundamentalist bastards! I said "ew" again and turned around and ran away.
|
|
@ -1,5 +0,0 @@
|
|||
Ed is the standard text editor!
|
||||
---
|
||||
?
|
||||
?
|
||||
?
|
|
@ -1,3 +0,0 @@
|
|||
You can't fathom the unfathomable.
|
||||
---
|
||||
You can't derstand the understandable!
|
|
@ -1,3 +0,0 @@
|
|||
So there's this librarian who logged into a remote server to tell everybody on irc to keep the chatter down
|
||||
---
|
||||
It was a ssh shh
|
|
@ -1,3 +0,0 @@
|
|||
dang it yall hvae me writing a bunch of other fun stuff in there
|
||||
---
|
||||
I wonder if i can find something somebody calls home
|
|
@ -1,3 +0,0 @@
|
|||
Having fun isn't hard!
|
||||
---
|
||||
... when you have a library card!
|
|
@ -1,3 +0,0 @@
|
|||
today, I'm playing camp counselor at work and also facing the reality I need to upgrade my very old cell phone
|
||||
---
|
||||
hahaha, one is just emotional, the other is me doing the emotional labor of redirecting other folks energies so that they don't do a murder or something
|
|
@ -1,3 +0,0 @@
|
|||
hello my friends wit hshell access
|
||||
---
|
||||
but my mood is good, which trumps everything
|
|
@ -0,0 +1,34 @@
|
|||
<item>
|
||||
<title>{{id}}</title>
|
||||
<link>https://git.tilde.town/dozens/protoadandsuperbowl/raw/branch/master/{{id}}.md</link>
|
||||
<pubDate>{{date}}</pubDate>
|
||||
<description>
|
||||
<![CDATA["
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
{{top}}
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
{{bottom}}
|
||||
```
|
||||
"]]>
|
||||
</description>
|
||||
</item>
|
|
@ -0,0 +1,25 @@
|
|||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
{{top}}
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0} -- Hoo?
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
(@)(@) {0,0}
|
||||
(~~~~) ./) )
|
||||
(>vv<) " "
|
||||
|
||||
\
|
||||
{{bottom}}
|
||||
```
|
Loading…
Reference in New Issue