hack the planet
2025-11-04 :: Tuesday, November 4th
Preparing for pilgrimage to Nepal and Bhutan, I have had less to do here.
It occurred to me this morning that -- I want to try and notice things
and then take them and extrapolate them out and "figure it out". But with
Buddhist practice, especially the practices of view of Vajrayana, I don't
believe this is always appropriate -- sometimes you have the experience
that you have, the sudden flash of insight that you have, and trying to
concretize it (e.g. turning it into a building block alongside other
"similar such experiences" in formation of a "grand theory") is going to
flatten it down.
"Reality is very high-dimensional"
Then, when is extrapolation appropriate?
::::
See you space cowboy.
2025-11-01 :: Saturday, November 1st
::20:49::
The work today did not occupy my conceptual mind, and I lay fallow
a day like today is a relief.
::::
Because of our physical, emotional and cognitive conditioning, what we
experience triggers, provokes, or kindles a wide range of somatic,
emotional, and cognitive reactions. For those of us who are compelled
to pursue direct awareness, all those reactions are just stuff, and
we build an increasing capacity to experience them
as movement, rather than fact.
A Trackless Path, p.117, Ken McLeod
Other than residing in nondual awareness -- there is no point at which one
could say, 'This is the actual reality; the others are distortions.'
All one can say is 'This is human vision according to my individual perception
-- as modified by my culture, class, age, gender, and life experience.'
It would seem there are as many different realities as there are
perceivers of reality.
Ngak'chang Rinpochè & Khandro Dechen
Thoughts come, and thoughts go, and we ascribe meaning to them.
You are a practitioner.
Ngakma Yèshe, personal correspondence
::::
I like to write these things down
Good Night!
2025-10-31 :: Friday, October 31th
Happy Guru Rinpoche Day!
::11:35::
This month has felt like 3 months.
2025-10-30 :: Thursday, October 30th
::07:00::
Zhi-khro (which is the form of Gar-tak I practice) is less concerned with
outward technique, more with using the body in particular ways, developing
particular skill/ability/attributes within the body. (and by extension,
the mind, and the interface of mind/body/breath: the rTsa-rLung system)
That's why it's a little difficult to describe to jiu jitsu people . . .
(Brazilian) Jiu Jitsu is oriented more towards outward physical technique,
which (accidentally) develops the body in particular ways. The "better" one's
application of technique, the less one's body needs to change (?hypothesis?))
The zhi-khro approach to grappling says: "use as little technique as possible,
and do as much with skill as possible."
(skill is a technical term that I'm choosing to translate here
and a full discussion of it is outside the scooe if this little web journal.)
"If you're going to train, you need to figure out a way to do it where the
active ingredient is skill, where you're developing skill.
2025-10-29 :: Wednesday, October 29th
::21:57::
Many things piling up as Bhutan draws near
I must remember to get clubs from the sports store before November.
::::
I had the idea of working on some ground-game drills after sPrul'khor
and I noticed a rather extreme asymettricality in my body in earth eagle --
my hips on my right side are much less flexible than the left.
Similar, with earth garuda, what feels like "the same" level is actually
much lower on my right shoulder.
Any way, I want to be better at practicing martial arts, as such. I think
that I could practice more thoroughly, more thoroughly than I earlier
thought was possible on my own. Starting with sPrul'khor, and working on
grappling movement patterns as a way of synchronizing my practice.
I've been thinking that there's no reason to do the practice than to do it.
so I don't really need to come up with reasons to say I want to do the
physical practices ... not to most people, at least. because the sense
of touch has enough intelligence in it, I think it speaks for itself.
It feels good to do. That's enough to do it.
::::
Now is one of those times I've been thinking I could benefit from writing
a to-do list, or list of things I want to do, because I am losing track.
So, ideas.html
I want to come up with all kinds of reasons to be doing things, really
there isn't much of one. I do things and pay attention to my body while
they're happening. Try to find the movement of/and non-movement.
I want to do them, really!
desperately, I hope I can find enough throughlines, or just the one,
that unifies them all. Is that really a good idea?
"Thoughts come, and thoughts go, and we ascribe meaning to them."
2025-10-27 :: Monday, October 27th
::05:57::
I forgot!
2025-10-26 :: Sunday, October 26th
::08:03::
I've always been intrigued by the way shapes pack into one another
Yesterday I puzzled over how to rebuild the site-generator in
Modal -- it occurred to me I could focus on "the fundamentals" of the
problem, or the "primitives", and let the structure of the solution
arise out of that -- rather than figure out the top-level structure
and work down.
Hypothesis: the primitives shape the solution.
For any given solution space, there are multiple (possibly overlapping)
ways of defining "the fundamentals". The definition of "the fundamentals"
informs ones path through the solution space.
2025-10-23 :: Thursday, October 23rd
::10:12::
Reality is an endlessly fractal (self-similar) structure
You can investigate aspects of the whole of it by concentrating
on any one part
If you are going to participate in it, you will have an effect
on all of it
It's a good idea to be aware of the effects that your
participation will have
And you can see what those might be by paying very close
attention to the small-scale effects of your activity.
The only external damtsig is kindness.
The only internal damtsig is awareness.
::12:28::
I have configured my site's default charset to be utf-8
When I make a change now, I try to leave a trace -- that's really what
this journal is about -- or one of its major reasons-for-being.
2025-10-22 :: Wednesday, October 22nd
::14:15::
I configured my own variant of iosevka, but at what cost?
I think I'd rather really make my own font all from scratch... it's only
100 or so glyphs I'd need to figure out. Hot reloading would be a must.
Possible that ligatures will grow on me
I'm so wary of coming to rely on something on a computer that I don't
understand/feel I could not reproduce, at least a little bit
That's why I'd often rather do without, you know?
2025-10-21 :: Tuesday, October 21st
::06:31::
When I stop wanting things to be different from what they are, I am more
able to notice and be in the actual experience of life, right now,
just as it is
...
The meaningfulness of an action or activity is not based in the results
that I hope to achieve but in the fact that life, that is, the totality of
what I am experiencing right now, is calling for this activity.
The challenge is to find the balance in all the different pushes and
pulls that make up our lives ... the best way is to open to everything
that is calling to me in my life — everything —
whether it seems to be important or not.
I do not try to sort out the flood of desires, demands, challenges,
hopes, fears, aversions, longings, and ideals. I just sit in the whole mess,
until the direction and the next step becomes clear.
A Trackless Path, p.71, Ken McLeod
Everything is included, nothing is excluded.
rLung rTa —wind horse— is appreciative vitality, in which
the appreciation and vitality incide each other.
::::
If one withdraws, for some reason, from the immediacy of an experience
– one loses the sense of changchub sem.
One loses the sense of vital connection with the dance of circumstances.
::::
The symbolism of Vajrayana only makes sense when one lives in the culture
of changchub sem – and one has to manifest that culture independently
as a sangha ethos, within domninant society. If one estranges
oneself from the culture of changchub sem, then its cultural forms begin to
lose their meaning unless one has sufficient experience of practice.
If you start to see yourself as an outsider – you will eventually
observe yourself merely 'going through the motions'. This does not happen
overnight – but in gradual increments.
'Why am I dancing? I thought I wanted to be here, performing this
dance with these other people – but suddenly I find myself bereft
of the reasons I chose to do this.'
The meaning of a dance is imbedded in the culture and history of the
people who perform the dance. With Vajrayana, that culture and history are
inextricably bound with changchub sem – with kindness.
To engage in a dance, we have to enter the
authentically appreciative world of the dance
– and find the realm of its meaning to be
in tune with what we are.
::08:39::
One facet of religious practice is that it is practice.
That is, activity and effort, sustained over time.
::12:13::
I still don't quite understand how modal rewrite precedence works
for example, I would expect that single-term rewrites would not occur
inside of a tuple, unless no other rules match.
This is something I could investigate...
::21:28::
modal is not the best tool for parsing text with significant
whitespace.
2025-10-20 :: Monday, October 20th
::08:15::
Constraint solving :: "this is an engineering problem"
"Engineered Materials" are strong within parameters, and often quite weak
outside of them
e.g. vinyl tongue-and-lap flooring -- fantastic endurance towards downward
pressure, but you cut it by scoring the top and pressing up into it.
(Even as I say it, I perceive this distinction between "engineered" and
"natural" materials is perhaps flawed -- some things in nature exhibit this
quality of orthogonal strength/weakness as well.)
Hypothesis:
In a well-engineered solution, it is easy to do something "the right way"
and relatively difficult to do something "the wrong way."
In other words, "movement along the desired vector in the probability
space is more likely than movement along other vectors"
"Another way of saying this is that a solution is robust. If, when
you charge the acid in your epoxy resin, it can tolerate a variance of
plus or minus 1%, you're probably in good shape. If it can't handle that,
you're in trouble -- because of the way chemical plants operate."
::13:09::
it's the ram hour because you gotta smash past that hill
luck online asking for sewing resources:
(an incredible idea would be a modal editor that highlights potential
rule matches in the file when you hover over it. Would need to account
for rules that get imported...)
::14:59::
It's pig minutes because it snarfs up what's left
earth pig to iron rat
::::
The first-order skill, "knowing AWS" or whatever, is often of less
interest to me than the second-order skill, "interrogating a dense,
obscure informational context."
That is why I've started writing so much down.
2025-10-19 :: Sunday, October 19th
I was a bit redirected by deckbuilding and fighting with children yesterday
but I also built the site index generator.
::::
My entire life, I have mostly done what is easy for me to do -- even if
it seems "challenging", if I feel that I badly want to do it then
it's what I'll go for.
Knowing this, I strive to build up my circumstances in certain ways such
that the things I believe are worthwhile become easy. Sometimes this means
I have to discover want for them. That's "building the fire."
Keeping it alive even when it's difficult, tedious, boring, or otherwise
totally un-fucking-fun is where the discipline lies.
::::
::21:06::
Speaking of un-fucking fun, sometimes C is not fun
However, I think I can cobble together some tools out of modal, learn more,
make better tools and along the way get really good at stack ops
This is already happening!
Unfortunately I've also slowed down the execution time of my site generator,
probably because it is re-writing my template value sooner than it ought.
2025-10-17 :: Friday, October 17th
::03:07::
Seemingly the entire mid-morning to afternoon went into hacking more on
modal. This time hardened the ?| (subprocess input) op
This means it is now possible to spawn a subprocess in modal and then
solicit its output using ?~, potentially indefinitely.
<> (?x ?y swap) (?y ?x)
<> (() tidy) ()
<> (input) (?(?~ ?~) .)
<> (?| cmd-input) (?|)
<> (?: print) ?:
<> ((EOF) input-until-eof) ()
<> (input-until-eof) (program (input) input-until-eof)
<> (program) ((it's print) swap tidy swap print (, do you know where your head's at?
) print)
(while true; do date +%s; sleep 1; done) cmd-input
(input) input-until-eof
...
(produces stdout:)
it's 1760731845, do you know where your head's at?
it's 1760731846, do you know where your head's at?
it's 1760731847, do you know where your head's at?
it's 1760731848, do you know where your head's at?
This took some doing, I had to make a (possibly ill-advised) change to the
positioning around ?~ -- basically remove a check it was making
to see if it pulled in an empty result. In such cases (for example, when
calling ?~ twice with two consecutive newline characters), it was setting
the position dst_ back one index. Then, if it was re-writing
inside of a pair of parenthesis, the opening ( would be
overwritten.
It was dreadful. This kind of thing would happen (note the unbalanced parens):
<> (?| cmd-input) (?|)
<> (input-to-quote) (?(?~ ((' (?~)))) .)
(printf "problem
see?") cmd-input
input-to-quote input-to-quote input-to-quote
rewrites to:
.. (' (problem)) (' )) (' (see?))
.....................^ unbalanced paren
should be:
.. (' (problem)) (' ()) (' (see?))
I think this is valid, because I've added a whitespace-rewrite
check to the apply_rule function. To make it more robust, I could
have that function really sanitize the results of a register rewrite to
evulse any leading/trailing whitespace... something to think about.
For now I'm happy to nip issues with single-whitespace char re-writes.
Example of that bug included here:
<> (?x (' ?.) cons) ((' (?x ?.)))
<> (' (5)) (done)
5 (' ()) cons
:::
Bug makes this rewrite to:
(' (5 ))
This makes the second rule fail to match.
It should rewrite to
(' (5))
and then match the second rule, rewriting to
(done)
2025-10-16 :: Thursday, October 16th
::11:33::
Spent all morning chipping away at modal/joy rewrite lambda calc stuff
Encountered that really hideous, pernicious bug where modal will rewrite
a term with some significant-space. I should really fix that, it ruins
everything
now, it's back to dayjob
2025-10-15 :: Wednesday, October 15th
::07:48::
Found myself fighting with man pages on my artix install, there was
nothing appropriate. Ha.
Turns out I haven't run man DB ... ever
sudo pacman -S man-pages && sudo mandb
It might be worthwhile to create a runit service for this?
::12:51::
Finished hacking in subprocess support into modal
I'm very excited about this, but I want to build stuff with it before
I start shooting my mouth off about it.
::14:08::
I have decided I will really read all the docs when I have something to
do for work
I used to resist this, especially when I had to read [insert cloud provider]
docs for some [insert cloud provider] specific functionality, I guess because
I resented having to read docs for [insert cloud provider]
But the entire phenomenal universe is primordially pure, completely pure,
all through and through
and if I want to put my money where my mouth is, then the most interesting
thing to do is to read the docs, even the boring ones, especially if its
for something that I am habitually accustomed to hating.
not to mention that digital technology tends to be self-similar at different
levels -- so if I want to master this thing, then there is something
to be gained from reading how azure, or aws, decides to tackle some problem
-- even if they have an annoying profit-incentive in their implementation.
(I also don't think anybody ever "fills up" with knowledge -- that doesn't
seem to be how brains work -- they just get more dense)
::19:43::
Looking at
joy rewriting
again. When this paper talks about the stack, I'm not sure if it means it
literally -- because it seems to suggest you don't need a literal
stack to describe Joy, all you need is rewriting. It also has this notion
of quotations. .... I might have just answered my own question.
I was trying to describe lists and quotations thus:
:: proper list notation for lists
(a (b (c (d ()))))
:: tuple notation for quotations
(a b c d)
quotations are meant to be quotations of literal programs... and modal will
happily descend into tuples to perform rewrites if nothing at the toplevel
is matching -- so implicit stack semantics wasn't working, I had to
explicitly describe where the top of the stack was and make sure
all of my operators only executed at the top of the stack.
<> (:: ?x) () :: comment
<> (() <<) ()
<> ((?a ?s) <<) (?a ?s <<) :: list-unzipper
:: stack-ops
<> (?a ?b | swap) (?b ?a |)
<> (?a | pop) (|)
<> (?a | dup) (?a ?a |)
:: (<> (() ?t concat) (?t))
:: (<> ((?a ?s) ?t concat) (?s (?a ?t) concat))
:: quoting
<> (?* | tuple-to-list) ((?*) |) :: simple-explosion
<> (?s | list-to-tuple) ((?s <<) |) :: unzip-in-tuple
:: combinators
<> (?. | i) (?. |) :: i
<> (?p | x) (?p ?p | i) :: b
(2 5 swap) | x
::20:16::
Modal punches so unbelievably above its own weight
2025-10-14 :: Tuesday, October 14th
You don't have to figure everything out at once, figuring out is something
that happens gradually and often by accident
It might be sufficient to figure out "one piece of the puzzle", then put
it back on the table.
(it may also be helpful to have a good view of the table -- what can you see?)
(what is seeing? what is visibility?)
::14:22::
I now have a working pomodoro timer in neovim
there are so many tools, and so many different ways to get
at them, and eventually you just pick something and go for it.
What did we learn?
The above page also required me to come up with a workaround for the way
that modal disregards whitespace -- every line-leading space inside of the
<pre> tags had to be converted into an   (em-space)
::14:56::
One response to the absolute abundance of approaches is to settle
on a particularly interesting* problem space, then convert everything into
that problem space. An appropriate example here is something like
cl-sdl2.
Any kind of binding/FFI library is that sort of idea -- you have the domain
you prefer to work in (common lisp), and the domain the thing is
implemented in (C), and you bridge that with as little C code as possible.
That lets you stay inside of the fun zone (common lisp), and outside of
the punishment zone (C).
(nothing against C.)
another idea is to do everything from a console/text interface, which then
turns an enormous number of problems into matters of text manipulation and
cli-interface design. I have personally found this rather fruitful.
Yet another idea is to design a small virtual-machine with just enough
power to be dangerous, and use that to make all of your tools with.
I'm thinking of UXN here.
2025-10-13 :: Monday, October 13th
I have a laptop (the one I'm using to write this now) which I have one
hard-and-fast rule for:
No Graphical Web Browser
To me a GUI web browser represents a kind of graceless "all-in-one-ification"
of computers-- I could elaborate on why this is, on my distaste for the
modern web stack, javascript, "the cloud", but I think it's not actually
something I have a well-reasoned rationale for. It's more that when a
computer has a graphical web browser on it, that becomes its primary purpose.
A modern laptop is unfathomably powerful, and using it as a thin
client for google searches and web-mail is unconscionable.
somewhere along the way I have accumulated the idea that there's a poetic
nature to operating a computer. "Software Engineer" doesn't capture this
idea, because I'm not wearing the "software engineer" hat as I write this--
that skillset is available, but it's not always coming out. Facility
with building software components is a facet of communication, so is facility
with text-interfaces, and an understanding of the low-level, on-the-metal
operations of my device.
Computer Poetry is about exquisitely mediated communcation with electronic interfaces
unfortunately, "computer poetry" seems very overloaded with all sorts of
other bullshit, so I'll have to come up with another word to describe this
thing I think of myself as
::::
actually, I think the word already exists, it's an old word, also with a
load of baggage, I bet you can guess it, it's also my favorite movie.
::::
Wishing to do anything in the most beautiful, most inspired and inspiring
manner possible -- that is an end in itself.
2025-10-12 :: Sunday, October 12th
I feel that the worst thing would be to attain to mediocrity
I guess that's why I'm here writing my journal in a console text editor
thinking about taking on an contracting job
I keep thinking about what life would be like without #dayjob
but I think until I have gotten out from under my student loans, it will
be unwise to quit.
Well, ok. This means I need a gameplan. (And a budget).
::::
Chhi'med told me once: "If you want to do it, where it is
martial arts with vajrayana at the center, you could become 100% obsessed
with it. That will lead to a particular outcome. That's what I did. That
may not be the most efficient way to do it. But the most likely alternative
is mediocrity."
he also told me: "You could just do this. Just do this, and make
everything else that you do into a support for it. That would be the
simplest thing. But you won't do it -- statistically, nobody does."
and: "Martial arts is one of those things where, the more you put into it,
the more you get out of it."
I don't really know what I'm doing here -- I did try forgetting
everything about making computer music, and just doing only the physical
practice of the thang-tong thug-thig, the practice of Gar-tak -- basically
trying to focus on the most overt, obvious mode of martial-arts practice.
It did not work, or maybe it did, but I became immensely emotionally overwrought
So I don't know how effective that approach was
Maybe another one is to become completely obsessed with making everything
that I do into a support for the martial art. And maybe the expression of
the martial art should extend throughout the entirety of my life. Maybe it
could suffuse my blood, bone, and sinew.
I don't know what that means yet, I don't know what it could mean for that
to happen, I want to find out, and somehow what I'm doing right here
seems involved. Maybe until the picture comes into focus that is actually
the best I can do. Maybe that is wilful ignorance. That is also a possibility.
::::
Once, when I asked some dumb question about wristlocks, Chhi'med said:
"You could build a bigger fire."
For all the things I want to do, I could put Gar-tak at the heart of it.
2025-10-11 :: Saturday, October 11th
helping a friend clean house today
2025-10-07
I was trying to plot time-series data all day and it was hard becasse for
some reason plotting time-series data is hard for me
Reading documentation is not hard any more, and is a little fun,
but coming to the implementation for time-series prometheus metric data is
still cause for pain
I Read:
usenix :: this world of ours
usenix :: the night watch
I am:
halfway through mu :: adsr
which means I am almost there for hacking together music tools
in C, or anything touching C.
I decided this year, since I'm 30 now, I couldn't be afraid of the
C Programming Language any more.
At this point:
I basically cannot stop listening to the Horus Heresy books