Discordian Calendars for 03184 (2018)

A fresh sense of urgency. A human chain of left-ward force. This loose affiliation of energized radicals has shown no qualms about using their fists.

Speech is a form of action: when it harms others, it is abuse and oppression.

Ideologies cannot be reasoned with and must be physically resisted. Is it more dangerous to do nothing and tolerate them, or should we confront them? Their existence itself is violent and dangerous, using force or violence to oppose them is not unethical.

The ascendant new is coming into your town with hate. The essence of their message is violence. They don’t care if you’re quiet, you’re peaceful. You need violence to protect nonviolence.

About the Holydays



Postscript Template Strings

I’m quite proud of this, even though the program I was writing it for ended up staying a shell script.

% realloc a string
/growstring {  % () -> ()
  dup length 2 mul string dup 0 4 3 roll putinterval
} bind def

% Just a simple template engine.
% Anything between curly braces is PS code which returns a
% single object that will be converted to string via cvs.
% The embedded code has full access to the environment and
% may invoke the template procedure recursively.
% To embed a literal brace, embed a literal string: { ({) }
/template {  % (txt { - -> any } txt) -> ()
  10 dict begin /src exch def
    /rv 256 string def
    /rvidx 0 def
    /template-append {
      /o exch def
      { /o load rv rvidx rv length rvidx sub getinterval
        { cvs } stopped
        { /rv rv growstring def }
        { length rvidx add /rvidx exch def exit } ifelse
      } loop
    } //bind def
      % find { or end, appending text
      src ({) search {
        template-append pop
        % search excludes '{', we need it for token
        length 1 add /n exch def
        src dup length n sub n getinterval /src exch def
      } { template-append exit } ifelse

      % (src) is now ({code}...)
      % eval the code and append any resulting objects
      src token {
        exch /src exch def
        % a closure to restore our hidden local scope
        [ exch /exec cvx currentdict /begin cvx ] cvx
        end exec template-append
      } if
    } loop
    rv 0 rvidx getinterval
} bind def

% tests
/bar (ggg) def
(foo) template ==
(foo{bar} foo) template ==
({bar}foo) template ==
(foo{bar}) template ==
(foo{({)}{bar}) template ==
/rvidx (uuu) def
(foo{rvidx}foo) template ==
55 44 33 (foo{1 index}foo) template == pop pop pop
(sss{ ({rvidx}) template }www) template ==

Discordian Calendars for 03183 (2017)

Still trying to negotiate its own identity, caught between the paradise of its ideals and the realities of its history still fresh on our tongues, wheezing noisily. Gathered around looking concerned and asking about our stereos, might not be loud enough. Bumped very lightly into a limp and fangless thing: government-subsidized poets, vague nonsense zombies who wrote verses and talked revolution, with an insatiable hunger for news.

About the Holydays


Discordian Calendars for 03182 (2016)

Get out of that rut and into a good pot hole. Get out of that pot hole and into a good sink hole. Get out of that sink hole and into a good puddle. Get out of that puddle, the waves have teeth.

About the Holydays


Discordian Calendars for 03181

After the crash, the night mares came. “You’ll never sleep alone,” mother whispered. “Not now, not forever.” Death would soon become fun again.

About the Holydays


Oblique Eristicisms

Back in 2013, I had a hard drive failure. While waiting for money to buy a new computer, I started a small list of I’m-not-sure-whats in a small memo pad. I named them Oblique Eristicisms, because I wasn’t aware that “eristicism” was already taken. These all come from various sources, so you may have heard them before. Here they are:

The Wonder Under
furious sleep
criminally perfect
change puppet
the honesty of sinus headaches
laying rootless in the sun
three feat and a disco mouse
I thought that I heard the fax.
Normal could be good.
Doctor of Traffic
dancing on a blue skull
I jump rope in Marijuana Park.
diabolitical sabotagey
bleeding liquid joy
under ten tonnes of place
beyond success and failure, beyond victory and defeat
a touch of rare
love your insomnia
roast in one sitting
useful hard-water haunting
a desire for certainty
and yet we remain ourselves
fear or laziness
A well-armed public is the best implementation of tyranny.
Beliefs don’t have to be real.
Justinian Plague-Aliens?
The difference between culture and fad.
All culture is appropriation.
Yet another failed attempt at masturbation.
mustard, strawberries, and a dirty balloon
Elvis is a point of view.
Long live the new flesh.
Death to Cyberdrome.
the spirituality of citizenship
heterogeneously yoked by violence
a fitness and courtliness too often lacking
concordia discors / discordia concors
dancing in the closet of yesterday
the desire to punish
different forms of inheritance
window sill nine
recycled epoxy concrete
At least ten feet tall. Confidently pink.
the urgency of absorption
astro pirate
Remain with your host.
The greater good does not justify lesser bads.
gluten-free non-alcoholic god
and some were picnicking
from sex and surgery
revolve around your symptoms
escaping directionality
splinters shaped my toes, still I love them constantly
driving a meat-coated skeleton
a vein of lilies
as she dances in the widescreen of her existence
wobbly tasting of pink
the goddess is algebra
a mistaken egg
catalytic cell loss
Bill of Riots
renegade symbologist
Kentucky meat shower
Incoherent fire dissipates all contingency.
a contagion of shrouds
the five Erises
I dance through your dreams like a Carolina heart attack.
ambient meat
salami tactics
the absence of absence
bursts of activity
It’s not a child, it’s an invader. Stand your womb!
All unreasonable children should own razor blades.
An uneven number of buttons.
Red 37
scraps of untrained thought
ham and salt, tooth paint
doe snot

Postscript Underline

  • Supports all show operators, including custom procedures.
  • Can draw a single underline rect across multiple show operations (and will be correct, if the currentfont remains the same).
  • Supports any and all font matrix munging.
  • Supports underlines of a different color from the text.
  • The second calling variant draws underlines underneath the text.
  • Uses font’s underline definitions if available, commonly used defaults (i.e., the values found in most fonts) if not.

Exercise for the reader: have it simply draw the rect and leave it in the currentpath for the caller to have fun with: clip, stroke, whatever.

TODO: Vertical fonts. Do thy have underlines? (I guess it would be “sidelines.”)

% Public Domain 2014 by the other anonymous
% startX startY underline -
% {show} underline -
% (startX,startY) is the point where the text was started. The underline
% will follow the text to the currentpoint.
% The {show} variant draws the underline underneath the text. This allows
% the underline to be a different color than the text (the underline color
% will be the current color and {show} may change the text color).
% To draw the underline underneath the text, we have to exec the {show}
% procedure twice. We clip it into nothing so that it is only drawn once.
% NOTE: Since we exec {show} multiple times, it is NOT allowed to modify
% anything besides the graphics state.
/$underline 10 dict def
/underline {
  $underline begin
    dup xcheck {
        currentpoint /y0 exch def /x0 exch def
        0 0 0 0 rectclip x0 y0 moveto
        end dup exec $underline begin
        currentpoint /y1 exch def /x1 exch def
    } {
      /y0 exch def /x0 exch def
      currentpoint /y1 exch def /x1 exch def
      [ x1 y1 /moveto cvx ] cvx
    } ifelse

    /mtx currentfont /FontMatrix get def
    /info currentfont /FontInfo get def
    0 info /UnderlineThickness 2 copy known { get } { pop pop 50 } ifelse
    0 info /UnderlinePosition 2 copy known { get } { pop pop -100 } ifelse
      mtx transform /uy exch def /ux exch def
      mtx dtransform /uh exch def /uw exch def

    x0 ux add        y0 uy add        moveto
    x0 ux add uw sub y0 uy add uh sub lineto
    x1 ux add uw sub y1 uy add uh sub lineto
    x1 ux add        y1 uy add        lineto
    closepath fill
    x0 y0 moveto
  end exec
} bind def

% Test:
/Times-Roman 100 selectfont
50 300 moveto { (abcdefghi) show } underline
1 0 1 setrgbcolor
50 200 moveto { 0 setgray 1 1 (jklmnopqr) ashow } underline
/Times-Roman [ 100 5 5 100 -40 -30 ] selectfont
50 100 moveto { (sjtuvwxyz) show } underline