HHC: Config Refactor

I’ve had the HugeHonkinConsole set up to derive its configuration information from the place where it’s executed, which is…convenient in a sense, but really a pain in the ass long-term. With multiple versions of the code in the source tree and deployed on different machines, it creates this strange split of data repositories that’s not reasonable to keep track of.

So today’s task is to take the configuration class (which I’ve taken to calling Environment) and add a filename to the constructor so that it can optionally populate the internal configuration dictionary from that instead of just deriving all the file locations and such from argv[0], scriptroot() and such.

With what should prove to be a truly trivial change (yadda yadda “contact with the enemy” notwithstanding) I’ll gain a massive amount of flexibility.

The original code is dead simple because it just doesn’t need to do much at all. In fact, here’s the important bits of the source file (allow for some shitty wordpress code formatting.):

-— Environment.py


import socket
import os
import sys

class Environment:
def __init__(self):
    self.env = dict()

    self.populate_environment()

def populate_environment(self):

    # Independent (system derived) values
    self.env['hostname']   = self._gethostname()
    self.env['scriptroot'] = self._getscriptroot()

    # Derived values
    self.env['dataroot'] = self._get_data_path()

def _gethostname(self):
    return socket.gethostname().lower()

def _getscriptroot(self):
    return os.path.dirname(os.path.realpath(sys.argv[0]))

def _get_data_path(self):
    return self.env['scriptroot'] + '/data/'

——-

It’s really not rocket surgery. A couple system methods to grab the current host name, local run location, and build a config entry or two off of that.

Now I don’t want to change anything that’s IN there because I’ve got a bunch of nonsense that’s relying on it, simple as it is. So I’m really just going to add a couple lines of code to the constructor and a single new method and I…THINK it’ll be done.

So the constructor now looks like this:
——-

def __init__(self,filename=None):
    self.env = dict()

    self.populate_environment()

    if filename:
        self.env['config_file'] = filename
        self.load_config_file(self.env['config_file'])

——-
It takes an optional new argument, the configuration filename and only changes behavior if it’s been provided. That, insofar as it goes, guarantees it won’t break any existing code.

Now let’s take a look at the new load_config_file method.

——-

def load_config_file(self,filename):
    fh = open(filename,'r')
    config = json.load(fh)
    self.env = config
    fh.close()

——-

As you can see there’s almost nothing in there.

  • Open a file
  • Pass the file handle to json.load
  • take the result and assign it to the internal ‘env’ dictionary
  • close the file.

Now…this presumes a fair bit. It’s definitely “happy path” code.

  • The file needs to exist or the code will unceremoniously die.
  • The file needs to be well formed json or the code will unceremoniously die.
  • The implicit assumption is that the json file contains a top-level dictionary with the keys and values we want.

But I’m going to be manually writing the json file. So the danger is really so low as to be nonexistent. Also, you should really only capture errors you can do something about. If this code blows up on a bad json file, I don’t want it doing anything else. Die with an error message. Once these blocks of functionality are out and running on all kinds of different machines with the possibility of complex errors and auto-distributed configuration changes (because why not?) then I may want a more sophisticated error reporting system. But there’s no reason to engineer it to be more resilient than that at this stage. It works or it dies.

So great! I can now wire this in by passing a configuration file name in at the very beginning when the Environment object is created and I’ll be done. Now I just have to go write the config file.

Well…no I don’t. Not really.

Let’s add another method to the same class for shits and giggles:

——-

def save_config_file(self,filename):
    fh = open(filename,'w')
    json.dump(self.env,fh,indent=2,sort_keys=True)
    fh.close()

——-

That saves whatever’s in the current object’s ‘self.env’ dictionary to a well formatted json file.

So NOW I just drop to the command line and interactively execute the following:

——-
> import environment
> env = environment.Environment()
> env.save_config_file(‘foo.json’)
> quit()
——-

There. Now there’s a config file named foo.json with the default parameters already there. It clears up any issues I might have with how to format the file, what parameters need to be fulfilled, and how I can add more. I’ll take the system-specific values out, certainly. But it makes for a great little template.

By putting the configuration, all the magic constants in one single location, then abstracting that information into an external file I’ve taken total control of how the code behaves. The environment object is available all over the code base, so if I need something that looks like a constant or a conceivably configurable parameter, I can just add it to the json file and it will be automatically picked up and populated into the environment object and I can start using it.

Nothing else has to change.

Now here’s an idea: Since I have access to the system routines that tell me exactly where this code is being executed from, I COULD add code that says “IF this Environment object was created with no configuration file name, go to the root directory of this application and look for a file named ‘config.json’ and load that if it’s there.” THEN I wouldn’t even have to specify a filename. I wouldn’t have to change a single line of code outside that file in order to have it start picking up the new config file.

It’s tempting. But I’m not inclined to do it, and here’s why.

Fast forward six months (or, you know, three hours. Because that’s how this stuff happens.) I’m plugging away on something and suddenly the code just dies. Now let’s say the configuration file has been renamed or moved or something.

Think about what the diagnostic process looks will look like, because there’s no way I’ll remember I actually had the Environment module figure out the name of the config file on its own. So the first thing I’ll do is open the main script file and look there. It creates an environment object with no parameters. So now I have to go spelunking through the code to see what and where it gets that filename from. I’ll have to reread the constructor (once I’ve even gotten there) to come up with what the problem must be.

The added convenience of not requiring an explicit filename is outweighed by the forensic overhead that will (not might, will) be required to diagnose a config issue.

WITH the explicit filename in the top-level of the code I’d open that file, see the config filename sitting there, then go look at that file, assuming the Environment class code to be essentially stable. Then I’d far more quickly get to the actual issue.

Coding for simplicity isn’t just about removing lines of code and cleaning up the boundaries of responsibility, it’s about anticipating future maintenance load and understanding the long-term costs of “simplicity.”

So yeah. I’m not going to do that.

and then there’s THIS asshole

So, people who don’t know me think I’m nice. It’s among many things I think are absolutely fascinating. The disjunction between the reality of who I am and how I’m treated is just stunning.

Oh I try. I try to pull in the right direction, to ‘behave the way someone nice would behave.’ But it’s really just that, most of the time.

I fight constantly against my actual nature to try and treat people well, do the right thing, leave places better than I found them, be gregarious, not always tell stories where I think I’m the hero, to be solicitous of the opinion and stories other people are excited to share, enjoy other peoples’ successes, help them with their failings and quandaries without being invasive; to ask for nothing in return.

But I’m a rank failure. I can play the game here and there. I have random moments where I actually come off as a good person. But all in all I’m a truly venomous judgemental narcissistic egomaniacal shithead.

People repeatedly treat me as if I were a good person, whatever the shit that actually means.

But people see what they want to see, clearly.

So I’m invited to social gatherings. People seem friendly and sometimes actually excited when I walk in the room. I get smiles and waves, politely smartass playful bantering comments.

I’ve overheard waitresses say “I know he’s in your section, but can I wait on Mike?” And I know it’s because I’m a heavy tipper.

I’ve been accepted into this social group at the cigar lounge by a bunch of people who clearly just don’t know any better.

Yesterday I got a text message from one of the guys at the cigar lounge, who included only one other people from the group, celebrating a personal success of his and inviting us to come hang out with him to enjoy some bourbon and a cigar to celebrate. I think I actually fist-pumped and cheered out loud at his news. It felt good but then I realized that he just doesn’t know what a jackass he’s dealing with. Or possibly just a wrong number. Either way.

Just now I shut down twitter for an hour, trying to keep myself from the distraction and ended up on facebook, where I posted some stuff about the cigars I’ve been smoking here at the cigar lounge, as well as chiming in on a couple of their posts about new cigars. Well, the proprietor came back here to my high-top holding a Fuente asking if I’d smoked that one in particular.

“This one?” I took it and examined the label which looked subtly different from other Fuente labels. “I…don’t THINK so.”

“Well you can only get those in stores. Here. That’s from me. Thanks for posting.” He…gave me a cigar? Really?

“Hey thanks man! I appreciate it. I just lit an Ashton but I’ll smoke this next!” Poor guy. He just doesn’t understand I’m actually a complete dick.

But then there are Cigargoyle, BostonActress, BlackCatsAndPoppies, Flixology, and the rest of them. All fooled, completely. I suppose they can be forgiven since I only know them on the internet. I mean how could they possibly?

I went to Johnathan’s last Friday and one of the guys who works there but was off came over and hung out at my table for a few hours and talked. I kept waiting for the people he was waiting for to show up or the few minutes he was killing sitting there to expire before he moved on to what he was really there for.

Over those couple hours we were sitting there a bunch of people pulled up to the bar got out and greeted me warmly. I only recognized about half of them. “Hey man how’ve you been! Nice to see you back in your seat. What’ve you been up to? Your hair’s gotten REALLY long. Looks good. Wish I had that much to grow out.” No idea who they were, like I say, about half the time. I’m still not sure who the hell they thought I was.

So many people in my life just…so wrong…so bad at reading people.

I mean…it’s the only thing that makes any sense.

Right?

Full And Well Rested

That “Sleep When Hungry, Eat When Tired” post I put up a couple days ago has gotten me thinking. (It’s been a long time since I’ve considered writing more the result of thinking than the cause of it.)

Cigargoyle read it on his nightcap that night and as he read it I realized that it didn’t…quite have the gravitas that I thought it would as I was writing it. By which I really only mean that I could have gone much farther than I did.

No no, this isn’t going to be an attempt to correct that. It was just something I found interesting.

The thing I’ve been thinking about, which I couldn’t (but feel like I should) have considered is that articulating those things which have been kicking around in my head in some nebulous form clearly, if insufficiently, resulted in a net clarity that was far beyond my intention.

I’ve known this was going to happen to some extent. But even a bit under 48 hours later I’ve been able to clearly recalibrate a lot of things by asking myself if they contribute to a best case or worst case day.

Some of that may be the “manic” energy of the upswing I’m prone to; those “today is the first day of the rest of my life and I’m going to do everything right from now on” type moments that generally accompany an empty stomach and a bunch of caffeine. Usually those are good for a couple days of frenetic positivity that ends in a

But it doesn’t feel like that. It feels nice and clear.

It’s weird. I’m really not used to feeling nice and clear about anything. My brain is a thousand screaming demons vying for dominance.

In the time since I’ve spent a bit of time listing out my pending projects (I like to do that from scratch now and again rather than just going back to my ever-growing list of projects and ideas. It helps filter them out.) and asking myself what the value is in each of them.

For instance: I’ve “felt I should” get on top of modern javascript programming technologies for a while. So I’ve got a bucket of (free) courses on udemy that I’ve been following along with to learn React and other frameworks. On the blackboard in my kitchen is (or, was) “Finish the course.” I set about yesterday going back in to it for an hour before realizing: It’s crap. That nonsense is all nonsense. Yeah there’s a reason to learn to write javascript/html5/css. But those goofy tools people have created seem to exist primarily so that a novice programmer can avoid learning how to actually use the tools. So I realized it was a goal that wasn’t worth accomplishing. I deleted the entire source tree, uninstalled node and erased that line on my blackboard, replacing it (for now) with “Fuck the course.”

Felt good to cut away dead weight.

I have a couple other projects that received similar treatment.

Then my mind bent to some of the weirder stuff I’ve been working on: The raspberry pi internet radio, the cyberdeck (I haven’t mentioned that more than in passing here. But it’s a neat project.) I thought “Do these pull in the right direction or are they a waste of creatie energy.”

I came to “there are projects worth pursuing merely for the love of them, even if they never leave the prototype stage to see if I’m actually interested enough to pursue the field further” so those two in particular stayed.

I didn’t get rid of as much as I thought I was going to with that process (though I’ve yet to go spelunking into my software projects, which are legion.) But the increased clarity of understanding what it was I intended to get out of them, why I was really doing them, made them all the more valuable.

It’s only a couple days. But this is really the kind of thing I’ve been looking for. Taking an ideal and backing out from that to trying to bring those things to fruition.

It’s almost like Jordan Peterson was right.

Who knew?

Sleep When Hungry, Eat When Tired

Or…something like that.

[Note: This is gonna seem pretty maudlin at the beginning. Stick with it.]

My moment by moment “eat when tired, sleep when hungry” day would look something like this:

Wake up and put on my bathrobe, trudging over the dirty clothes on my floor, into the kitchen where I grab two slices of pizza from the counter, having ordered one the night before and eating about 3/4 of it, along with a coke. Dick around on twitter and reddit in my bathrobe while going through my list of video games on Steam/Epic/etc before picking one and spending a few hours grabbing cheap dopamine hits on easy mode, playing games I’ve played hundreds of hours of.

I imagine at some point, maybe 3 or 4 in the afternoon, I’d condescend to put on actual clothes and head to a bar (IF I was feeling particularly motivated/social) where I’d get ripping drunk, smoke a couple cigars, be the life of the party, eat bar food (probably a pizza) then drive home, where I’d spend the evening, erm… “sacrificing the contents of my gut to Johann the White” before taking a couple electrolyte tablets and drinking a gatorade to mitigate the aforementioned self-destruction then passing the fuck out.

Rinse, repeat.

That’s not a life.

Fast forward that about 6-9 months: I’m 260 pounds, maybe 280. Maybe I’ve downgraded to size 42 stretchy walmart jeans. I’d have a couple dozen new self-help books still in boxes sitting around my computer. I’d rarely get up before noon because I don’t go to bed before 4-5 in the morning. I’d blame that on “being a night owl” which, when coupled with considering the day over at 6-7 in the evening would be a not-terribly complicated justification for dodging the awareness that I wouldn’t be accomplishing anything “during the day” except sleep.

Now, it would be far FAR worse even than that. But there are only so many details of that life envisioned that I’m going to put down here. Sprinkle that with listening to depressing music, porn, drinking alone, and damn near any vice you can come up with.

Fast forward that a couple/few years and that ends exactly one way: A bullet to the brain. Maybe there are a couple years in the middle where I “progress” to really hard drugs first. But that’s absolutely how it ends.

I could say that’s “unthinkable” but it’s really not. Not at all. (I mean, obviously, duh.)

None of that is an option.

And all this talk about purpose and drive, these projects and pursuits are, in no small part, attempts primarily to stave that shit off.

All this gives the wrong impression, I’m sure. There’s no real danger of this happening. But it does serve as a nominally complete answer to the “Dude, why do you torture yourself?” question. The answer is “I don’t.” What I’m doing is exactly NOT torturing myself.

I’m trying to make the switch to positive pressure pulling me towards the life I WANT to lead, rather than avoiding the life I don’t want to lead.

So what about the other side of the equation? What does a day from my optimal life vision look like? Fascinatingly I’m FAR more hesitant to post about that.

What a fascinating realization. I’m going to write it out, but not…in its complete form.

But what does that say? It suggests quite starkly that the courage required to dream of an optimal life is far greater than that required to admit how badly things can go if I merely take my hands off the wheel.

IS it so simple that dreaming/fantasizing of an ideal life is hard because it sets a standard that I might not reach, indeed almost certainly won’t? Is it just a matter of feeling like I’d be setting myself up for disappointment? It seems a little pat, but that doesn’t mean it’s not dead on.

So to stake out the ideal, to plant that flag in the distance and say “yes, let’s get as close as I possibly can to that and…even though I’ll necessarily fall short the pursuit of that goal itself makes for a life well lived” is… fuck it’s REQUIRED.

There are two other things I feel I need to cover for this to be complete, even as an outline.

1) Enumeration of my ideal self and my ideal day. They’re as inseparable as they are separate. One really presumes the other, so they collapse into one readily.

2) How do I live today, as a distance from both of those points, near as I can figure.

It’s hard not to feel that this all comes down to this. I’m wary of grand pronouncements since a head of steam produces its own righteousness and righteousness, positive or negative, just feels good. Then I look back on them in more sober moments and roll my eyes a bit. There’s very little in this life that’s quite as intoxicating as Righteous Rage after all.

“Today”

The alarm on my phone rings at 7:30. I pad around the bed for my phone and, through pretty much closed eyes I shut it off. But it does begin the process of waking me up. I spend an hour in a hypnogogic haze before actually waking up.

Without much of an agenda I pad to the bathroom, retrieve my bathrobe and go turn on the computer, then back to the bathroom where I stare at the scale, sometimes walk away for a couple minutes, not REAL excited about the coming accusation on how I’ve spent the previous day. But before too long I make my way back in and get on the scale. (Today it’s 203, marking a couple days of consistent improvement after the whipsaw incurred by last week’s 4 day fast.)

There are never any big surprises. Sometimes it feels good. Sometimes it feels bad, affirming how I spent the previous day.

I head back to my office and write down my weight on the whiteboard. Red if it’s higher, black if it’s the same, green if it’s lighter, blue if it’s a new low.

Shower and get dressed regardless of what the day holds. I walk to the kitchen and get a water or a diet soda, grab a dizzying handful of morning supplements and swallow those.

Usually without an agenda I go get caught up on email, twitter, and reddit. That lasts a bit longer than I’d like. But it’s not usually out of control.

If it’s not a Tuesday or Thursday I pick a project (contingent upon the weather) I either head downstairs or open youtube to kick off my programming playlist and work with…admittedly limited intensity on whatever it is that I’ve decided deserves my attention that day. Usually until the hunger drives me absolutely bananas, at which point I head to the fridge.

The afternoon tends to go pretty slow as I plug away on whatever it is I’m working on. If a project is close to fruition (or if I’ve figured out how to partition my workload such that I have well-defined stopping points) then I can grind away pretty well.

I usually end up working on a couple things and satisfy my One Rule for a successful day: A day isn’t a success unless I’ve created something. It can be software, hardware, a reasonably complex foodstuff of some kind. Something. The metric by which I measure short term success is by acts of creation. (The trick is stringing those together. But that’s a different issue.)

As I go back and forth around the house I stop with relative frequence and do half a dozen chin-ups or maybe a couple pull-ups at the bar in my office door. Not a lot. Not enough. But more than I could do a couple months ago, which was…a half.

Sometimes I snack overmuch, generally in inverse proportion to how motivated I am by whatever project I’ve got kicking around.

Things come up and get in the way. I let myself get distracted quite a lot more than I’d like.

By 5 and 6 o’clock I’m frequently staring at the clock, again, that’s if I’m not hyper-engaged in whatever I’d decided to work on.

Eventually I’ll tap out and kick off Steam and pick a game to play for a couple hours leading up to 10:00.

If it IS a Tuesday or Thursday I spend some time cleaning up my laptop and making sure I have everything I’m going to need for a day at the cigar lounge before heading out at about 10:45-11:15, depending. A stop at a store if necessary first then I come in here, set all my toys up and open a Q10 window or start working on a software project, depending on where my motivation takes me. Empty stomach and a few cigars with water and/or diet soda makes for a great clarity of mind, so I get a metric shitton done before Bible Study begins (6:30 on Tuesdays, 4:00 on Thursdays.) During that time I usually end up putting a couple posts up on the blog, even if I do write a bunch of code I’ll almost always end up penning some words as well.

Afterwards I’ll either head over to Johnathan’s for a salad or just head home to grab something to eat quickly before I catch Cigargoyle’s night cap (Sunday through Thursday.) That’ll go from 10 to 11 at night and I’ll pick back up and play something again for an hour.

I grab my big notebook and write down some bullet-list items about the day including what I’ve eaten (broad brush) and what I did during the day. Sometimes I’ll cap it off with a note about how I feel about the day. That’s usually if I have an extremely good or extremely bad day. Otherwise the kind of day I’ve had is self-evident from what I’ve written.

Then I’ll head to bed and… well… I’ll pull out my iPad and play the dailies in Raid: Shadow Legends (a fun little game) while working on a sudoku or two on my phone. Yeah, screens in bed is a bad idea. But meh.

Then I pass the hell out.

Rinse, repeat.

That’s what I’ll call my median day. They’re good. There’s a lack of long-term goals there, to be sure. But they’re productive. Sometimes they’re just “busy” and sometimes I just fuck off online for hours and hours, having nothing pushing at me hard enough to stay focused on. Some days I’ll jam so much caffeine in my head that I can’t focus on shit. Other days I’ll jam so little caffeine in my head that I can’t focus on shit. Then there are the others ;).

The sanitized version of my ideal day doesn’t differ as much from my normal day as I’d expected.

I actually get up at 7:30 and get a quick workout in before hitting the scale (because why not optimize?)

Check to see if there’s anything that’s happened overnight that requires immediate attention and schedule/plan those additions to my day.

That aside, the day’s projects planned, perhaps in to pomodoros or some similar time-blocking scheme I hit the ground running, maybe spending a few minutes getting caught up on social media, maybe just not.

Work until a late-ish lunch (of something reasonable), after which I do an hour or two of reading.

Then I do some more project work that may even be product work.

A quick shower, get dressed (up) and head out for a nice dinner date or drinks, cigars, something social.

I come home (or…since I’m talking about ideals…WE come home) and, well…you do the math.

Somewhere in there is a session where I plan the goals of the next day. But I’m not sure where that slots.

I want my projects to be aiming towards larger goals, my day to be a bit more tightly structured. I want deadlines on my projects. I want to be able to assess and abandon ideas that don’t make any damned sense. I want to explore things I’d never considered and spend my days stretching my boundries, physical, mental, and spiritual.

When I reread this a couple times I’m struck by my lack of imagination in “my ideal day.” I’m pretty okay with that really. It’s my considered opinion that much the way I need to get the crap out of my head before I can get down to real writing (I deleted a thousand plus words of rambling at the front end of this) I need to do the same thing with my day to day life before I can really see what it is that I can imagine, what I’m really driving towards. I’ll flesh it out, I’m sure. It’s a good baseline.

That’s fine and I suspect to be expected. Other kinds of wild speculations would just be silly without the clarity afforded by taking the first several steps on that path.

So, a couple things:

  • I currently don’t institute the level of discipline I need to accomplish that kind of day.
  • My projects are all over the place and I notice that I’ve avoided any real description of WHERE I want those things to lead. They break down into a few categories really. But that’s neither here nor there.

Local focus necessarily occults long-term planning. Time dilation is an amazing tool. But it can be used to distract. You’ve got to have the long-term goals set before you can safely zoom in to a tractable time horizon. I’ve thought that keeping my focus on the immediate would help clear the deck for longer term progress. But I think I’ve been thinking about that just exactly backwards.

SO… Goals:

  • Married (kids? I’m about to turn 52. I may have missed that boat.)
  • Fit
  • Smarter
  • Fucking Rich
    and maybe
  • Published. But frankly I’m not so married to that as people wish I was.

Let’s see where I can take that, shall we?

Digital Commonplace

I’ve been having a bitch of a time wrangling things I come across online that I want to save either for later reading or just to snip out and put in some kind of Digital Commonplace book.

Browser bookmarks are easy enough to wrangle. I’ve got a script that collects all the bookmark files from all my browsers on all my machines and sends them in to a central location of “read me” links then purges them from the source. I go through those every once in a while and purge most of them as uninteresting. But that’s the way of things.

Of the ones that contain long form text I want to read, I tend to print most of them out, staple them together and put them in a manila folder that goes in to my (physical) library’s “Read Me” file, which works out really well.

Then there’s a bunch of “ooh this is neat, make this” type stuff as well as a couple other “curiosity” type categories. Those get shuffled off into project idea folders and such.

But the problem comes when someone says something smart on twitter, reddit, or some similar platform. I don’t yet have a reasonably systemitized way of capturing those kinds of things. Yeah I could save links and go through the same process. But I generally don’t want to go through the effort of curating the whole page when I’m trying to grab a snippet.

What I’m wondering is how tough it would be to make a scriptlet (remember those?) that would post it to a local server of mine for catagorization and later library integration. I’d prefer to be able to select a bunch of text then click on a saved bookmarklet of some kind and have it take that content along with whatever context can be gleaned from the page, and pushed over to a server someplace.

It shouldn’t be THAT tough a programming project. Just a couple things I’d have to look up and a bit of (hurl) javascript.

I want to say that this kind of thing was pretty…erm…commonplace back in the golden age of the internet, that being 98-03 or so.

Gonna have to give it a think.

Brainstorming about Brainstorming

“I’m not writing shit today”

And that was the plan. But my head is a fucking mess and I only know one way to sort that out, so here we are.

Some development project brainstorming I think. We’ll see.

Every few months I pull down some mind-mapping software and try to use it for a brainstorming session to dump the ideas out of my head and on to a page of some kind.

It’s always a disaster. Mindmaps, especially digital ones are fundamentally tree structures; nodes extending out from a single central point that have children, grandchildren, ad infinitum. It’s REALLY got the same topology as a simple outline, just without any implied sequencing within a tier.

I don’t know, maybe people think that way. But after the first two layers I’ve got this problem where I want to join nodes across the child branches of the tree.

I want a piece of software that can generate and navigate a more generic digraph. Problem is…I’m not sure something like that even exists. Sure I could go to yEd (something like visio) and just create nodes to my heart’s content. But then I’ve got to manage positioning and linkage on my own. Plus, yEd requires keyboard and mouse interactivity.

That doesn’t sound like much but when I’m blasting out text, even in bullet points, it’s a serious pain in the ass to move my hand back and forth off the keyboard. I’m typing THAT fast and it’s a damned disruption to which I won’t condescend.

About the best piece of software for keyboard-only diagramming like that I’ve found is FreeMind, which is a generic mind-mapping software and brings me back to the topology problem.

I really really really don’t want to write something from scratch. Dealing with UI coding is a headache enough at the best of times. But actually going so far as to manage blank canvas drawing, object representations, linkage drawing (bezier curves, anyone?) diagram fitting and such is the kind of thing that just gives me a fucking migraine.

I’ve got it in my head that GraphViz might be a useful way to go. But the diagrams it generates are still a bit stodgy and clinical. They’re useful for displaying small relationships between few nodes OR large clustering on a zoomed-out diagram. But there’s no interactivity so I’d have to regenerate the diagram every time there was a change to the underlying source, much like a recompilation process. AND it can only really be “given hints” about layout as its algos determine actual placement of all nodes.

So that’s really out for anything other than a documentation type process.

I’ve been banging my head against this wall for years. Shit, for decades if I’m being honest. Something like yEd is just SO close to what I want.

What would be about perfect is if yEd had a plug-in architecture or configurability that I could use to drive it completely from the keyboard. Creating nodes and ‘linked nodes’ without having to reach back and forth. I’d be willing to condescend to the mouse for some of the weirder functions, certainly.

Other than that I’m not sure I’ve even seen something that would fit the bill.

If I can let go of the graphic aspect of organizing my thoughts (I can’t, but let’s play a game) then what I’m left with is exactly a wiki structure: Hypertext linkable to arbitrary depth and breadth. I could even have different TYPES of linkages, categories, tags, just straight content linkage. All kinds of things.

In fact this is how I’d prefer to write, though my own software development to this effect is proceeding only in fits and starts.

And because I apparently can’t fucking help myself…off I go into the stratosphere…

I just can’t shake the feeling that if I had The Right Tool that I’d be able to dump the contents of my skull out into something that would help me organize and deal with it so I wouldn’t have to try and keep all the moving parts in the weird 4d diagram in my head all at once. There’s just too much there to juggle without externalizing it.

There’s this overwhelming sense in my head that there’s something big in there that I can’t see for no reason other than I can’t juggle all the fragments and pieces at once so that I can put them in to the puzzle, at whatever dimensionality it exists in.

Now that could be an illusion, just a complete fabrication. But I have no way to tell unless I keep pushing towards that frontier and fail forever. Even then I won’t be sure.

It could just be a damned emotional state drummed up by some inner working that I’m trying to attach higher level conceptual structure to in order to fit it into a more intellectually comfortable framework.

The fucking compulsion to solve this problem is driving me insane. Hell it may have done so quite thoroughly. After all I really am quite convinced I’m Mad.

Here’d be a fun thing:

Check out some of the VR painting systems. Imagine one of those that had gestures that would let you draw links between objects and create objects. Then a voice system that would let you put names on them.

Christ that would be amazing beyond compare. Of course once you had a digital representation you could process it with any piece of software since there’d be no reason not to have it saved in some easily machine manageable text format. Fucking json would work.

I think that’s about the closest thing I can envision to a completely functional piece of software.

Then I could sit at a keyboard and expand on each titled node, giving it a content body and whatever other attributes and tags I couldn’t manage through the VR interface itself.

It doesn’t….SEEM like it would be that hard. But I’ve spent years watching Minority Report and Tony Stark manipulating things in CGI, so my understanding of what’s possible and reasonable may be “a bit askew.”

Dammit there’s something here.

Confusion: An Interesting Sentence

I’m not at all sure when I started following James David Dickinson. Judging by my following list it’s pretty recent. He no doubt tweeted something interesting in response to something or someone else tweeted, or was retweeted by someone I already…well, whatever, one of the ways people on twitter find each other.

Sharp guy. Go follow.

Today I was bouncing back and forth between writing that previous post and twitter and I saw this:

“In life, nouns are lies and verbs tell the truth”

and…I…stopped.

I spent a few minutes reading that over and over again trying to parse and apply it.

I responded before I read the essay he’d attached to it (which is good, but entirely orthogonal), saying “What a strange sentence” and cc’ing Thomas Bevan, someone I imagine to be a great appreciator of strange sentences.

It’s a strange sentence because it’s an idea I’ve never heard or considered, because it actually presents a new concept. Not in the way of being an esoteric dive into some narrow field, but by turning things on their head and absolutely forcing you to think about things differently even to merely parse the sentence correctly.

I wonder when the last time I came across An Interesting Sentence was. How many books do I have to go back through before I find one? A dozen? Two? I seem to recall there being one or two I read a few times over and over again in the second Warlock Holmes book. But those might have been more funny than interesting.

I’ve not-quite-joked (and I was sure I’d written about but can’t find) confusion being my happy place.

When you see something in twilight that you can’t quite make out the outline of your brain just races to try and fit it in to a box. And in that absolutely magickal moment before you’ve come up with a judgement about it the entirely universe is open and you’re cast adrift in this strange sea of infinite possibility. There’s a moment of something like terror as you feel suddenly that there’s something for which you have no box.

No noun.

And yeah, that’s a mystical description about being confused by something. But those weird moments remind me of some of the more elevatory aspects, actually, of the hallucinogenic experience. You just can’t make sense of what the hell is going on and it can drive you absolutely mad if you let it. But those moments show you the naked reality of how you deal with the world, with new experiences, even whether you allow them at all.

For extra credit consider how this relates to Carlos Castenada’s teacher, Don Juan, admonishing him to see. As I recall he continually attempts to get Carlos to see the world around him without letting his mind attach reductionist overly-cultured human symbology to what’s out there. I’d write more about that but it’s been 30 years and a lot of lives since I’ve read Castenada.

But to bring things back to the mundane, an “interesting sentence” exists in stark contrast to normal communication. We speak and write in quips and phrases that we’ve heard before, read before, and had held in our heads, waiting for deployment to fill up time and space. How much of what you say falls into those categories? If you stop to examine it, and that’s a pretty tough thing to do, it’s something north of 95% of what comes out of our mouths.

Sure, an argument can be made for these phrases simply serving the same roles as words in simple aggregate, encapsulating larger concepts that we then sling around.

But I don’t think that’s right. Well…yeah it’s technically true, sure. But when you take what it is you think you think and start breaking it apart you cannot avoid coming to the conclusion that most of those thoughts are themselves just things that have been bolted together out of other things you’ve heard or read. You don’t so much think as collate other peoples’ puzzle pieces into not-so-new ideas, playing the same little snippets of spliced tape to yourself, thinking that you’re thinking.

So the value of An Interesting Sentence is pretty stark in that it actually results from an act of creation instead of just…permutation.

And while I’m not sure “In life, nouns are lies and verbs tell the truth” is going to be something I’m going to add to the arsenal for cocktail conversation (that would be some pretty insipid shit), it’s definitely going to make me think.

Specifically to say that nouns are lies speaks to our near perfect inability to describe our world, to discover, much less to label things. I’m going to carry that through life while it lives in the front of my attention and I’m going to think about it when people talk and it’s going to force me to say to myself “sure, but that’s not what that IS. The notion that you think you can call it that is a fundamental untruth.”

Now before any of you assholes take this in this direction I’m NOT speaking about postmodern deconstructionism, the ‘subjectivity of reality’ or any of that damned tripe. I know a great short pier off of which you unforgivable nihilist fucks can take a long walk.

No, I’m talking about necessary incompleteness. Because like words, the way we deal with the world around us is in snippets of thought and understanding that encapsulate enough meaning for us to continue through life.

But in a real sense, we do what we do, regardless of what we really are. Yeah, I don’t have all that worked out that well, primarily because the first half has been rolling over and over in my head to too much enjoyment for me to have thought about it much yet.

Now…this diverges pretty remarkably from what James was saying in penning the sentence. Hell, it probably diverges pretty remarkably from what he even thought.

But then, that’s the value of An Interesting Sentence.

Masturbation

No no, relax.

My whole plan in coming in to the cigar lounge yesterday was that based on the idea that I wouldn’t feel like coming in today as I’m in day 3 of a 4 day fast.

Traditionally day one is the absolute worst, being exactly the kind of experience most people imagine when they think of fasting. Just the constant pull of hunger and craving.

The second day is better, definitely. The hunger isn’t nearly as all-consuming. But hydration starts becoming an issue and, well…stay close to a restroom.

What I’d forgotten about was the weird clarity that comes on day three. I figured I’d be a bit loopy and that driving down here and smoking a bunch of cigars then hitting Bible study might not make for the most coherent afternoon.

But I bounced out of bed this morning (having dreamt, no shit, about butter) really clear. The hunger isn’t really as urgent. Which is not to say it’s not there. Don’t get me wrong. But it’s not consuming every thought. Also the increased sensory acuity is something I’d largely forgotten about. I walked out to the kitchen and could smell that I used a bit too little salt in the pizza I made on Saturday.

So when 10:45 rolled around and I’d realized that I’d realized what to make of yesterday’s post I looked at the clock, bobbed my head a couple times, grabbed my bag and…then put it down, went and put some clothes on, THEN walked out the door to drive down the hill. Then I came back in to get my phone. Then I came back in to get my drinks. Then I came back in to get my lighters. Then I came back in to get my bag and realized after searching furiously for it that it was sitting on the front seat of the truck.

Yep.

Sharp as a tack.

So. On to it…

I thought about that post I put up yesterday afternoon and realized what the hell’s going on in my head. Of course the title presupposes the conclusion and you’d be right.

I started writing, a long long time ago in a galaxy far far away, for reasons much the same reason as I started writing software, because there’s something broken in my head. I know it. I’ve always known it. It will always be true. It’s fine.

So the thing that’s Always Been True about my personal journaling is that if I was in a fouled mood, depressed, anxious, and yes, suicidal (fret not, that’s a demon vanquished in the previous century) has been that IF I can get my pen to paper to write it out that I’d be able to systematically write myself out of the mood.

The thing about those kinds of states of mind is that they’re not really…states of mind. They can’t hold up to actual examination. They can only avoid it. When you’re depressed or anxious you get into a feedback loop that “kinda has some words hanging off it.” You end up looping around and saying the same things to yourself over and over again, key phrases that represent those strange emotional depths and serve as reinforcing self-talk. And that’s their job. All these things are little ‘sub-personalities’ that struggle for their own strength and identity, and damn the host that holds them.

Putting the pen to paper and writing my way through it, just narrating my thoughts serves to expose the repetition in a way that makes it impossible to continue. You can’t just write pages and pages of “you suck” without seeing it for what it is, so you’ve got to progress past there in some direction. That process serves to break the cycle.

Well…do that for a couple few decades and it becomes the entirety of your writing process if you’re not careful (hint: I haven’t been careful) so if you’re trying to produce meaningful content, ostensibly for the consumption of others that just doesn’t work. Especially if there’s not some kind of truly overt therapeutic need other than rummaging around in my head for words to throw up on to the page.

It really just becomes a self-sustaining exercise, undertaken for its own benefit, really a sensory pleasure of the mind. Masturbation.

And I do quite love the activity of just sitting here and typing. The additional feedback I get from hitting ‘publish’ is gravy.

But when I look back even at the posts of the last few weeks (months, years) I start seeing that same kind of ‘running around in a circle’ that I used to write to purge, though entirely without the (or, well, without THAT) emotional baggage.

And that, I suppose, is the primary insight from this session. The act of putting down words is attached to its own little sub-personality and results in the same kind of circular expression, if in a subtly different medium.

There’s utility in the repetition, to be sure. Every moment brings a different perspective, so even attacking the exact same idea over and over again yields a different outline from a slightly different angle.

And that’s great for ME. But I’ve GOT to imagine that you all are about done with it, assuming I’ve got more than two regular readers at all. (Actually I suspect it’s about 10. Statcounter doesn’t really work with modern ad-blocking technology.)

Ya know…now that I think about it… There’s an email list that I subscribed to. (Again, this is a matter of “what not who”.) It comes out weekly. I jumped on board a little late, so I went looking for the older editions, printed them all out and just read the first couple dozen in my chair one afternoon.

I noticed, reading them in sequential bulk like that, that they were really all about the same topic. Exactly what I’ve just been talking about and have been fretting about for quite some time. I ended up unsubscribing from the list because I have too many damned emails and there just wasn’t enough in the way of new ideas, information, or perspective to warrant the attention.

But now that I’ve discovered to myself that I’m doing the exact same thing I’m wondering if I hadn’t been thinking about it wrong. So I’ve just resubbed.

I think what I’m going to do is continue to write like this. I just get too much out of it to stop. But try to focus on new insights even when I am just…spinning around the same shit over and over, and edit with a focus on that THEN publish.

But I’m going to leave it all up because one of the things this goofy little site does is serve as a record for me. I really do go back and compare where my head was at a year or five or nineteen years ago.

But maybe stop posting for the sake of mental masturbation.

To This

Oh…how best to say…

I’m not real interested in writing to my audience. I’ve made no secret of the fact that what I post here is really for my edification and, if other people find it interesting, insightful, entertaining, useful or some combination therein, then that’s just gravy.

Previous incarnations of me writing online have had a fair amount of focus on staying relatively anonymous, after making a bunch of the kind of rookie mistakes that accompany a new foray into internet presence always does. But I’ve more or less abandoned that kind of conversational crossover in favor of not fucking worrying about it much.

The Deal goes roughly like this: IF I’m going to bitch and moan about real-life interactions I can say what, but not who, and even then only in general terms. Otherwise real life is mostly verboten, sans old stories about largely anonymous people or stories about fundamentally positive interactions. And even then, be sparing about names.

That pretty much keeps things clean to the limit of my tolerance for considering it.

Lately though I’ve been noticing something funny and I think the change is in the noticing, not the phenomenon itself.

I’ll sit here for my 4-7 hours or so, pen off a couple posts and really get in to my own head and feelings about it all. In a very real way this scene…

…becomes an extension of the inside of my mind. I tend to near intentionally forget that other people are going to be reading whatever goes up.

So I’m not writing any well structured essays. This is all really just stream of consciousness writing for the most part; blogging in the old style, as it were. It’s largely pretty sappy and deeply personal. But whatever, that’s the context I’m in when I’m staring at these amber words on the page.

“Problem” is the day after I’m here I reread what I’ve put down (I…read my own writing rather a lot, and with a level of repetition that I suspect people might find truly alarming) I frequently wince a bit. Usually that’s accompanied by a moment of “can’t believe I went all the way there.” But I very VERY rarely amend a post based on that kind of realization. I deleted a pair of posts a couple weeks ago. But aside from that I really don’t post-edit all that much.

Back in the day when I started blogging on Radio Userland (blog 0108194, I recall for some reason) I was absolutely shocked by what people did and didn’t respond to. It was always the most strange little inner thoughts and day to day ramblings that elicited the most enthusiastic response. Well, that was long before social media was an itch in Tom’s…err…mind. Let’s go with mind.

Generally speaking that just doesn’t happen anymore and it’s tough not to think I’m just shouting details a bit too personal into the void, giving random strangers a window into most of the workings of my mind….to what end? Well, who knows. You’d be more of a fool than I not to understand it’s still a persona, if not one so neatly and consciously contrived as that might imply. Oh it’s honest, don’t get me wrong. But it’s a selective facet of the guts of my mind.

My reasons for writing here have changed a lot over the years. At this point yeah, there’s some narcissism invovled in the idea that people will come and read these things and get excited about them, one way or another. There’s some thought to the fact that I’m trying to hone my wordcraft, even in this slapdash of a format. But mostly it’s just a personal journal of what’s on my mind, sprinkled with stories both fantastic and benign that I use to entertain myself and maybe others.

All in all it keeps me as close to honest as I’m likely to get, assuming I don’t make the decision to pull out some of the stops I’ve got in place that prevent me from running this all as an even deeper dive in to my psyche, which would certainly have its utility. Yeah, it’d be tougher to manage socially, especially since I’ve now got people in real life who say “Hey I read that thing you posted last week.”

Hell, maybe it’d be worth it. Problem is, I keep it on this side of the line here. But I also post about 2/3 of the words I put down on this forum. So those lines continue to behave, in practice, as limits on my ability to self examine, and that’s not acceptable.

Hmm… Enumerated thus it presents a problem I hadn’t really realized was there.

I suppose my options are:

  • Continue as I’m going: Solves nothing, but it’s certainly the easiest option.
  • Pull out some more stops and let this get a bit deeper: Frightening, to be sure. And maybe that speaks to the value. Playing it safe is certainly responsible, at least in part, for some of the stasis this all seems to have.
  • Back off here and start working more on fiction while doing more writing offline: Eh. There’s something to that. But I’m going to do that in reverse, regardless of what else I come up with.
  • Post to drafts then spend more energy editing and building up more coherent essay-like pieces instead of just ripping out stream-of-consciousness posts: I mean yeah, that’s a possibility but where’s the fun? I enjoy few things as much as doing this the way I do it. Not sure I’m willing to take the risk. But then what risk really? Not like there’s anything irreversable about it.
  • Be more intentional about topic planning and outlining: This is something like the above, but not quite the same thing. I really enjoy the straight up stream of consciousness writing. But taking the “ooh, I should write about that” impulse and even bulleting it out a bit before hand might be a nice happy medium.

And hell, maybe it’s a problem that doesn’t need a solution. I don’t know. It requires a fair bit more thought. On one side I’m playing it a bit too safe, on the other it seems I’m doing the opposite.

It’s the kind of thing that, having blasted out 1100 words about it, I’ll come up with some thoughts about it over the next few days.

Until then.

2021-03-29: Multidisciplinary Updates

So I made myself a pizza on Saturday. Sourdough crust that I kinda overdid. I ended up splitting it between a little pizza and a bunch of garlic breadsticks.

Now I can bake a loaf of bread but my pizza-fu is…less than impressive. After all, pizza cheese isn’t really just mozzarella, for starters. Then my sauce is…well…jarred pizza sauce. I don’t think my marinara would serve.

I overcooked the crust (you’re supposed to parbake it first, not fully bake it) added sauce, cheese, and pepperoni and put it back in the oven with the breadsticks.

I ate…just…all of it. Holy hell did I feel disgusting afterwards. After all, the serving size of pizza is “the.”

Even while I was doing it I knew I didn’t want it. But I plowed through it out of some strange completionist urge. Then I sat in my chair and whined about it, quite thoroughly disgusted with myself.

“Yeah, I’m not eating tomorrow.”

Half way through Sunday I thought “Ya know, I should just fast ’til the end of the month. There are only 3 days left and I can do that standing on my head.”

Well, it’s 4 days, Sunday included and today is day 2. Maybe I’ll commit to it all the way through, maybe not. I’m not that married to it. It’d be a fun accomplishment and it’s worth doing things like that to keep myself on my toes about not staying too comfortable.

Normally I’d be here at the cigar lounge on Tuesdays and Thursdays. But I predict that tomorrow I’m going to be in no shape to get much at all done. Besides it’s going to be gorgeous out so my tentative plan is to open all the windows, pull open the garage door, and get some work done in the shop, which is a damned disaster.

Rex Kruger posted a video on bench making mistakes (immediately below) that kinda lit a fire under my ass about building a bench again. I’ve still got the top I laminated for the roman-style bench build, a behemoth of 2x4s. It’d make a pretty awesome normal bench top if I attached legs, stretchers and maybe a couple more laminations to bring it up to width.

I’ve been ignoring the woodworking stuff for too long as it all sits in my workshop, staring at me accusatively every time I go down there to do laundry. I’m overdue for building myself a simple platform bed to replace the rickety nonsense I’ve been sleeping on for the last year.

Let’s see, what else…

The big batch of rice wine is coming along really well. It’s fermenting up a storm and, looking through the side of the fermenter I can see it’s separating really well. Last time I made it I went through all kinds of nonsense to try and pre-game separating the rice from the wine. I tried putting the rice in a big paint filtering bag. I put a bunch of stainless steel wool in the bottom of the (conical) fermenter, thinking that would help keep it out of the valve. All of that was just a damned mess. This time I just spooned the rice in directly and it’s behaving just fine. So in 2-3 weeks I’ll lift the thing up and let it pour into a 5g carboy, where it’ll stay until it clarifies and I can bottle it.

———

I made a round of beef jerky a couple weeks ago and just used Cajun Garlic Sauce in a 36 hour marinade with nothing else. Took me a little bit to warm up to it as it was a bit sweet. But I’ve only got a little bit left.

The biggest pain in the ass with that is cutting the beef thin enough. But otherwise I really enjoy it. It got me to wondering what a deli slicer would cost, since I ALWAYS get tired of cutting it so damned thin that by the end my slices end up a quarter inch or thicker. And yes, that’s even with putting the beef in the freezer for a couple hours first to make it easier to handle.

I figured a slicer would be a couple/few hundred bucks which…is really too much for dicking around with jerky. But I found a bunch down in the $80 range, so I’m seriously considering picking one of those up. If I could factor slicing out of the equation I’m pretty sure my dehydrator would always be going.

———

A few days ago someone on one of the alternative social media platforms (gab or mewe, I don’t remember which) posted a deal on Ender-3 3d printers for something like $165. That’s…a really great deal.

So I pulled the trigger on it. I want to print up some interesting stuff and I fear my CraftBot is just not up to the task.

Well I got a text message from my bank saying that fraud detection had denied the charge and to respond “YES” if this was really me. I did so, then got the response that they’d allow future charges to that vendor. Okay fine.

By that time I’d gotten the email that the charge had been denied. Sure, fair enough. I still had the store’s browser tab up, so I hit back a couple times and re-bought it.

Well…guess what happened. Go ‘head, guess. I’ll bet you can get it in one.

Yep. You guessed it.

So by the end of the week I’m going to have…heh…3 3d printers. I thought briefly about cancelling one of the orders, but figured I could load them with different filaments and keep them going. The radio project, a couple other far FAR more interesting projects are coming down the pike as well. So I ordered some red ABS to accompany the PLA I’ve got.

——-

I got that great comment from Joan of Aaargh (seriously. Best nom de plume of all time) on my post from last week and it really fired me up about my fantasy fiction writing. So I’ve been plugging sporadically away at that, determined to actually get the damned thing at least framed out. But I’m finding writing a large piece like that such an amazing bitch and a half, just flying blind like that.

The problem is all the tools and tricks, templates and techniques I see always feel like cheating. But that’s a bunch of horseshit. It’s the over-engineering problem writ large.

“I don’t need help. I can do it all myself from scratch!”

That’s an attitude that actually got me extremely far in software development, if it was a bit counter-productive on the short term, since it forced me to figure out how the hell to build things that I could (and almost certainly SHOULD) have just pulled a 3rd party library for. As a result I know things I couldn’t possibly have learned any other way.

But I’m not at all sure it’s appropriate for writing. Writing isn’t software development. These are really well-trodden paths and there’s all kinds of great information out there about the pitfalls people have encountered along the way. Hundreds of years of the stuff.

At this point I should really be long past worrying about whether or not I’m going to have an original (or at least authentic) voice to my writing. I mean shit, really? But it still gets under my skin.

And yeah, I understand where it comes from. It’s not REALLY for exploring in this venue. But draw a line back in time to “I don’t need help, I can do it by myself!” and you’ll see it all pretty clearly.

Bit of an issue trying to prove something to someone who’s no longer on this earth.

Gak. Didn’t mean to run head-first into THAT line of thought. But that’s where it took me, so that’s what it is.

Sadly though, dear readers, as I said above, there’s a limit to the depths into which I’ll descend on this particular outlet, so I’m going to cut this off here quite abruptly and hit post.

Prologue

“It’s not like that, see. Magic isn’t something ELSE. It’s…it’s the stuff we’re made of. You can’t just go twiddlin’ around with it any more than you can go messin’ about with the beams and nails that make up the inn. You’ll do things to it. Change it, and if you don’t know what you’re doing, rarely for the better.”

“That’s what magic does, boy. Changes people.” The old drunk looked down in to his stein for something that wasn’t there. “And rarely for the better.”


But there was no magic. It was the fish tales of old men and the hushed knowing looks of those who knew very little indeed.

“Oh, there was a time…before you were born, when my grandmother told stories about her grandmother….” They’d start. Always the same speech. Always the same damned nonsense.

She cursed her wandering mind. But then this was the easy part.

The rain patted heavily against her leathers as any sound she could have made was drowned out completely and hid her that much more thoroughly from sight. She could probably whistle without fear of being discovered.

Still, no reason to get careless. She went through the motions of hugging the walls, rounding corners quietly, making her way across the roofs and chimneys in the merchants quarter of the sleepless city. At least she was up from the smell of the docks for a change. Though tonight it wouldn’t have mattered much. She’d be soaked for days.

Counting three doors from the corner she double checked her memory. This is the one. Making her way over the edge of the balcony she kept a fixed gaze on the door. An ear pressed against it confirmed…nothing. The storm had its disadvantages. No one seemed to be home. She’d watched the place for days. No one had come or gone. She should be okay.

A small knife blade was all it took to shim up the latch that held the door closed. She padded in to the room and latched the door behind her, taking a moment to let her senses adjust. At first there was nothing but the musty smell suggesting the room was ill kept and well out of use.

As her eyes adjusted the rest of the room came in to focus. A modest personal chamber; better than the inn. But far from the finery she expected in this area. Servant’s room? Maybe. Seemed unlikely.

She made her way down the hall and replayed Fal’s words “Third floor. Room on the right at the end of the hall towards the docks. Behind the desk.”

Thankfully the door was open a crack when she got there. Giving it a good look she pushed it enough to slip inside then took a good survey. It was about twice the size of the room she came in and the furniture was indeed finer. The wood was finished and there was a rug she was thankful for. The smell was definitely coming from in here.

The tapestry depicting familiar scenes of Bhoar’s Scholars hung on the walls and a richly appointed bed was fixed against the middle of the opposite wall. On the other side she saw something that looked like it could be a small writing desk and a wardrobe.

“Give me a full moon over this damned dark any night.”

“The desk, the desk.” she reminded herself in a whisper. But the desk was a tiny affair, a writing desk; little more than a table against the wall. Reflexively she pulled open the drawer to find some messy parchment and a spilled ink pot, the ink quite wet, soaking into the drawer and the loose pages. Odd. She closed the drawer and reached around behind it and just felt the boards that made up the wall. There wasn’t anything here. Some secret? It was an exterior wall. There wasn’t enough room for that kind of thing. She’d never find it in this dark if it were. And what in blazes was that smell?

As she made her way softly across the room her foot made an audible squishing noise and pulled up stickily. She caught herself taking short fast breaths as her body recognized the smell an instant before she was aware of it.

Blood. Very wet blood…recently spilled. Gods….how recently? Wait…who’s blood?

Eyes darting around the room “behind the desk” didn’t make any damned sense. It wasn’t the bed, where she could now make out the outline of a very recently deceased occupant as her breath quickened.

Footsteps? No. Rain on the roof. Calm down Kly.

Taking a couple deep breaths to steady herself, she looked up at the tapestry. “The Scholars of Bhoar” was a familiar image, depicting the transcription of the scrolls that would carry his laws across the world. One Scholar, she could never remember which one stood dictating to the other one sitting at…DESK!

“HA!” She winced at her exuberance and squinted.

A rumbling downstairs.

She darted on her toes in two quick steps to the tapestry, pulled it aside and padded the wall behind it. After some searching she could feel the outline of a rough seam, a change in texture in the wall. Pulling out a utilitarian blade, she gouged at the plaster for a moment as quietly and quickly as reasonable (given the now unmistakable footsteps on the staircase.) After a moment the outline of a small panel was exposed which pulled away easily, if noisily.

“Someone’s up here!” the voice called out.

She hugged the wall behind the tapestry as she reached in to the alcove and retrieved what had better be the carved wooden box she was after.

The lantern light came down the hall as she tucked the box in to the bag at her side and she took one last deep breath. In a panic moment she paced through her actions and shook her head in disgust. Dripping wet, she’d led a trail right here. Stepped in the blood. With any light her hiding spot wouldn’t fool a child.

The door opened and she caught the gleam of a blade as her pursuer walked in the room.

Not big and overly cautious he walked in to the room, not immediately noticing the bulge behind the tapestry. But the second he saw the bloody footprints.

“What the…” he took a couple steps farther in to the room. But she couldn’t get a good look at him.

She shoved the tapestry forward with both hands, pushing against the wall with one foot as it came loose from the decorative hardware towards the unseen figure, darted out the doorway and down the hall.

A second figure was at the end of the hall, looking down at the floor in front of the doorway she came in through at the puddle she left. Seeing movement he looked up slowly and saw her, groggy, not quite registering what was going on.

She sprinted at the bemused obstruction as her first victim righted himself.

“Hey. Hey there’s a gir…oof” she drove her shoulder into his midsection and over he went as she darted into the room, flipped up the latch, opened the door and vaulted over the balcony railing into the driving rain on to the tile roof.

“Wet!” She yelled to no one as her foot flew from under her. She tried to flatten herself against the tiles. But it was no use in the driving rain.

Pulling a couple tiles along with her she slid down and off the tapered roof, over she went, in to the air and slammed into the muddy street.

Closing her eyes she took a quick survey of herself. Her right side stung badly. But she could get up. She looked up at the balcony but couldn’t tell if there was anyone there.

“This had better be worth it. Oh no.” In a sudden realization she padded the bag where she’d stored her prize. She could feel the box in pieces. Well, hopefully the box wasn’t the important part. But if her prize was particularly fragile she was done for. It was in ruins and something heavy roundish and pointy remained. No time. She could make out some kind of chaos coming from inside the building.

“uhm…alley…right…docks.” she panted, and pushing herself the rest of the way to standing, she disappeared, limping into the night.


“What do you mean ‘Dathios is dead?’ He’s wasn’t even supposed to be in the city. That’s why I sent you two to begin with.”

The brothers looked at each other then at the floor.

“Alright. One more time. You went in the side door…”

“We came through the side door…” the more articulate of the pair began. “and followed your directions up the stairs, to the end of the hall on the right.”

“The dock side.” His brother added, proud to help.

“Yes Feld. The dock side.”

“The dock side.”

“We walked in to the bedroom and startled Dathios in his sleep. He got out of bed and started yelling.”

“He yells loud. Well…yelled.”

“If it weren’t for the storm…”

“Yes, if only.” their bewildered employer shook his head.

“Well, then Feld…”

“I stuck him.”

“…stuck him.”

“And behind the desk?”

“There wasn’t anything behind the desk. Just a blank wall.”

“All for nothing then. Just…get out of my sight.”

“There’s just…the matter of…” The more articulate brother shuffled.

“What. You’re not really asking me to pay you for murdering one of the few good merchants left in the city AND coming back without the box are you? Not really.”

“It’s not our fault the box…”

“DON’T.” He was seething now. What was he thinking, hiring these fools. He’d had so little time to act when he’d heard. In fairness, these two were muscle and had been worth the money on other occasions. This was his fault. It had been a bit subtle of a task.

“Just get out.”

The brothers looked at each other for a moment and started out.

“Do you think it would’ve made a difference if we’d told him about the girl?”

“FELD!”

“Girl? What girl!?!”

“After we’d gotten back downstairs Feld said he heard a noise.”

“I went up to have a look and she got past me, knocked Feld down and jumped out the window.”

“She was mean.”

“What did she look like?”

“Dark clothes. mask over her face.” Geniuses.

“And she jumped out of a third story window?”

“Well. I think she meant to crawl across the roof. But with the rain and how fast she was going…”

“She was fast.”

“She slid off and hit the ground pretty hard. We went out to look for her. But by the time we got down, out the side and around the front, she was gone and there were broken roof tiles in the mud.”

“Just…get out before I…just…get out.”

That was the big problem with buying information. There was nothing stopping the seller from getting paid on the same information several times. Information was a bit too much like a flame, the more it spreads the faster it consumes its utility. Hopefully whomever this was didn’t have any more luck than his two oafs. But the odds were thin.

It was too dangerous now to send someone back in to see what happened. The man’s family and guild would be or have been all over the place.

It was time to pay his source a visit and do something about his newfound competition.

Purpose From Focus?

Last week I wrote about the bleed of attention of pursuits across the day, the way focusing on something “for a couple hours” infects your mind for the rest of the day (on the small scale.)

I’m not sure it occurred to me at the time, or maybe it was just starting to, how useful that knowledge is as a tool.

In the time since I’ve been leaning REALLY hard on a couple programming projects and, as expected they’ve preoccupied my mind in what are ostensibly other pursuits.

The picture of my own personal software ecosystem has come back into sharp focus as I’ve wanted for tools that would help the couple projects I’m working on.

What I couldn’t really have foreseen, but makes perfect sense in retrospect (even though “retrospect” amounts to about four days) is how sustained attention in a singular domain compounds.

As I work on the trading system and my HHC ecosystem at large the ideas that are just spinning off as I work are getting deeper and deeper. And no, you can’t work on every idea that comes in to your head. You’d drive yourself completely fucking insane if you actually tried.

But what I can (and do) do (heh. do do. 12. I’m 12) is write them all down on a notepad or the whiteboard next to my desk. Then when I hit a breaking point I’ll key them in to the wiki with some verbiage. Over time what happens is, quite like writing, I get the crap or low hanging ideas out of the way and start getting down to the actual interesting stuff before too much time at all.

That’s not to say that the first cut of ideas aren’t worth anything. But they’re like the leaves on a tree. Once enough of them are sketched out you start to see the larger form take place. The general principle starts distilling out of them.

There are shittons of “Wait…this is just like that, but different. I’m clearly heading towards something that’s a distillation of these five or six thoughts.” A couple generations of that and I end up getting down to the trunk of what it is that’s inspiring those thoughts through the filters of the day to day work.

Then my designs change, getting inevitably simpler as I distill the general principles out of the clusters of items. Then again, and again. Finally I reach a practical terminus of “this is just that with a coat of paint on it” ideas.

None of this would be possible without sustained focus within a particular domain.

I’m excited to see where this effort takes me.

BUT

It’s pretty frustrating when I walk downstairs to do the laundry, through the lab where all of my electronics projects, my 3d printer, little cnc machine, and vacuum former live, into the garage/wood/metal shop to the washer/dryer live to do the laundry.

I can absolutely do anything. But I absolutely can’t do everything. Not at the level of focus I demand in order to get good at any of it.

The payoff of single-mindedness is just too damned high.

[Warning: Segue from hell incoming]

Most of these posts, I think everyone who reads them would agree, have the same flavor of “running around a relatively tight circle, picking up apples from the same tree.” As I go through the same territory back and forth like some manic puppy I can absolutely see myself carving out the negative space around the problems of drive, meaning, dedication to ideals, and purpose (sacred or not.)

It’s a larger issue I’ve heard speak of everywhere from Ivan Throne to Jordan Peterson. It’s always been something that’s met my mind as a great mystery, this notion of Sacred Purpose, a higher ideal, something to strive towards. I adore the idea.

That idea of being somehow PULLED in a direction by something greater than yourself is something I absolutely lust after, but have absolutely never experienced. Of course that presupposes a willingness to BE pulled. That’s an idea that hurts my head enough that it may indicate at least some of where my trouble lies.

When it came up at the first Feast of War in Denver back in February 2018 I stopped the conversation with my question to Ivan, Mr. Swift, Alexander Cortes, and the assembled gentlemen at the table.

“Sacred purpose sounds amazing. And I envy people who have it. I really do. But…I just don’t have anything like that in my life.” (Sure, maybe I’ve gotten better at phrasing the posit than I did back then. But the substance is equivalent.)

And they tried. They did. Sadly I’ve forgotten Ivan’s response. Mr. Swift took a hard hack at it and asked if it was all the same to me if someone tried to kill me, as an exercise in evoking “what I have to live for.” Alexander picked up his butter knife and said “If I came over there and killed you with this knife, what would be your last thought?” Again, a provoking question well posed.

But no one has an answer to those kinds of things that means anything, and I was dismissive and dodged them because they backed me into a conversational corner where I had no tools at my disposal. Again, that was the point.

Now I knew than just as I know now that no one can give you that. You can’t be granted purpose. On reddit when the subject comes up in any of the various “hey throw me a line here” subreddits I’ve always responded with: “You don’t discover your purpose, you decide.” It’s a bit pat and sounds good. Hell, it might ACTUALLY be true.

But the problem with deciding over discovering is that you can decide based on a whim. Well okay, but then what weight does that decision actually have? If it’s not a based on some deeper compulsion than the weather then it simply hasn’t the gravitas required to sustain you on the path in the dark times of doubt.

To horribly butcher Hitchens: What can be decided on a whim can be discarded on a whim.

So what, then?

I’m finding fascinating…synergy in singular focus and it’s becoming self-propelling. But does that constitute larger purpose? Will it evolve into that over time?

Again, I don’t know. But it definitely knocks on the same kind of door.

Of course there are…other…things that are absorbing my attention in a way that doesn’t interfere with my current hobby/project/software work. Interestingly, my Tuesday/Thursday writing sessions technically DO interfere. If I was to really roll up my sleeves and commit to the project work then these would have to fall by the wayside. But I’m not giving this up. Writing is the effective fountainhead of my self-awareness.

It’s dialing in. Dead weight is being left by the wayside. Things are clarifying at what, if I’m being honest, is an extraordinary rate. Yeah, maybe it’s a bit late and it’s absolutely too slow for my liking.

I do take some solace in the fact that lessons learned quickly and easily aren’t really learned at all. That introspection and integration process takes time, focus, and energy if it’s to stick. (Huh. Reminds me of Ouspensky and Gurdgeiff. But I’ll have to save THAT discussion for another time, pending a couple re-reads.)

So for now all I can really do is plug forward, keep digging at this burial site, try to be patient with myself, and keep working on that trading system code.

The Tools Of My Enemies

I’ve asked this question of groups of people on Twitter, at cigar lounges, groups of half-drunk friends, and elsewhere…always to the sound of crickets.

In the current culture war it seems every corporation has taken a stance.

Some are front liners. The behavior of Twitter and Facebook is absolutely unconscionable. TikTok is run by a malevolent foreign actor. Amazon kicked Parler off their infrastructure and has started banning books based on some internal leftist metric of “suitable content.” Don’t even get me started on fucking Google. Major media isn’t even worth discussing.

Most of these companies provide an incredibly valuable service. The social and business utility of the social media defies all metrics.

So my question is this: In attempting to maintain your convictions, is it okay to use the tools of your enemies, knowing that in so doing, you benefit them directly?

There are a couple people who I only keep in touch with over facebook. Quitting twitter is an absolute non-starter at this point. It’s really my primary social forum.

Those two use advertising income to pay the bills (note: If the service is free, you are the product.) So I have all MANNER of ad blockers on my home lan, my laptops, phone, browsers, etc. My personal information is a lie and on Facebook I post just about nothing. Facebook and Twitter just don’t get much from my participation.

But what about Google? Well, yeah I have an android phone, which is a google operating system (I bought an iPhone 11 pro somethingorother but just couldn’t get used to it as I’m unwilling to buy in to the ecosystem.) They bought FitBit so THAT’S now in the box of verboten hardware. I’ve got a few gmail accounts that are used for secondary concerns, and I use duckduckgo, Brave, and microsoft products for the most part. What about YouTube? Well, the ad blockers manage that pretty well and I pull down copies of most videos I ever revisit. So I’m more or less okay there. But there’s still a dependency that makes me physically sick.

Then there’s the big one: Amazon. I was an amazon prime user since it’s existed, for about 20 years. The amount of money I’ve spent at Amazon is almost embarrassing since 1999. As they dropped more and more books from their catalog, without a trace, I started flinching. But when they kicked Parler off the AWS infrastructure I had enough. I unplugged all my amazon echo devices, wiped my kindles (yes, plural. Don’t ask), boxed up my Fire TV unit, and just cancelled my account completely.

Felt good to exhibit the courage of my convictions.

Amazon is absolutely the one that hurts the most. I don’t QUITE walk into the kitchen and say “Alexa, play ‘My Likes'” or ask for the weather report. But…even now, months later, it comes up every time I walk into the kitchen. I’ve found other sources for books and other stuff. Abebooks, thriftbooks, hell, even Barnes & Noble. Walmart delivers pretty quickly. Newegg, Monoprice, Tindie, and Sparkfun have all the tech I could want.

But Amazon is SO damned good at what they do that, months later, I still feel a little stabbing pain when I order something from somewhere else.

The only way alternatives will exist is if the demand is there, and every person who makes that kind of decision pulls in the right direction.

Of course some people will say “That’s just stupid. They don’t care about you. It doesn’t make a difference to them and you’re just cutting off your nose to spite your face.”

And…maybe there’s some truth to that. I don’t know. Seems like giant low IQ cop out horseshit. That’s what I’m trying to navigate.

Let’s take the Amazon example a little further: I’m working on a book (yes yes finally, shush.) I’m not going to fill out query letters and go agent shopping. That time has passed. The one true platform for self-publishing and marketing is Amazon. Yeah there’s gumroad and others that have print on demand services and such. But…they’re not really marketing engines. So now what?

At what point is it acceptable to use the tools of people who’ve done nothing short of declare themselves as your enemies, especially when it benefits them in a material way?

On one hand it’s a matter of voting with my wallet and my attention. It’s a decision I’ve made and continue to stand by. Though I’d be lying if I wasn’t looking for a line of reasoning that would allow me to bend and sign up for an amazon account again.

On the other: What difference can it possibly make? Is it a hill worth dying on?

But aside from people either deciding to boycott or not I really don’t see a lot of discussion about this idea.

When push comes to shove it’s a personal judgement only we can make.

Sudokme? No. Sudoku!

So I’ve gotten the video game thing down to a manageable level. Yeah there are a couple events coming up in the next few months that will show a dramatic uptick in my activity. But a couple hours a night a couple nights a week is a far better level than I’d actually even planned on achieving. I’ve just got better shit to do with my time.

One of the things that I’ve swapped out is some of those goofy phone games which I only really ever played when drifting off to sleep or blearily staring at my phone in the morning in a hypnogogic haze in the morning.

Instead of trying to cold-turkey it I’ve gone back to Sudoku puzzles. They’re sufficiently engaging and have a ‘pure logic’ aspect to them that appeals to my sense of order.

Back in the day I used to be really good at them. It really was just a matter of never giving up and never guessing. My girlfriend at the time had gotten me in to them for our commutes in to the city.

She’d go at the damned thing with a pencil, taking notes and crossing things off until she finally unlocked those couple few keys.

Well…I’m kinda a dick so I’d just stare at the puzzle until I found something I could fill in and I’d fill it in with a pen. It used to drive her fucking BANANAS. Plus I’d have an eye on hers as well and when she’d get visibly frustrated I’d ask if she wanted a hint.

It was fun.

But it was funny when I realized how much of that had drifted away from the front of my mind when I started doing them in earnest this week again for the first time since back then. I could feel the patterns and heuristics in the back of my head, banging on the inside of the trunk I’d locked them away in, looking to get out.

Well…Tuesday night I had a ‘medium’ puzzle, which usually takes me a bit over 11 minutes nowadays, that I had brain lock on for over an hour. I just kept getting madder and madder about it. Finally I condescended to sleep.

Wednesday morning, back at it. The damned thing took me another 45 minutes to solve.

Unacceptable.

In a bout of frustration I went to the computer and opened a new project.

So yeah, I’m TDDing my way through a sudoku solver (and probably generator, before all is said and done.) What I’m going to do is puzzle my way through it without any external references other than a bunch of downloaded puzzles to test against.

Eventually I’ll post it all. Maybe it’ll be my first github project. We’ll see.

I’ve tried posting about software project work before and it’s been…hit and miss. So I’m going to see what I can come up with.

Draft: Focus you FUCK

[I’ve tagged this as a draft because now that I’m about to hit ‘publish’ I’ve seen more that I can add to it once I put it together, which has a delightful self-referential humor to it. Well, you’ll see…]

I’ve been refocusing pretty hard on my programming chops and projects over the last couple/few weeks.

Now, before I continue I feel the strange compulsion to say that I don’t suppose any of this is actually new information. But having come to a more clear (and therefore simple) understanding of the phenomenon itself definitely helps me to deal with my unENDing frustration in trying to shoot off in 19 directions at once.

There’s this illusion in my head that because in theory the time exists to pursue several different things during the day, that I could actually do that in practice.

On paper it seems like there’s MORE than enough time in a single day to write for a couple hours, code for a couple hours, then head down to the shop and get some frames built, then round out the day by defusing for an hour or three with a video game or two.

But attention doesn’t work like that. And it’s really taken me banging my head against a fucking wall over and over again for years…well, decades really, to figure this out.

The time you spend doing a thing isn’t the time you spend doing a thing.

The time you spend actively engaged in a pursuit is not only a fraction of the time you spend thinking about it, but a small fraction.

With my various programming projects for instance, if they’re front and center in my head, they’re really front and center. I can code for a few hours at a time. But the active task of programming is really the process of taking structured notes on what I’ve been thinking about for the rest of the day and testing those thoughts against reality to see what works and what doesn’t, then making necessary adjustments.

If for instance, I end up with a mental log jam resulting from a design consideration I’d either not anticipated or just straight up gotten wrong, I have to stand up and walk away, sometimes to a whiteboard, sometimes just to go wash dishes so I can reconsider the problem and make adjustments to that weird 4d model I have in my head (which is something I’m going to have to try and put down some day.)

Once I have a new picture ready, ready enough to screw around with, THEN I head back to the compiler and test it against reality.

Rinse.

Repeat.

It’s the time I spend NOT writing software where I’m actually doing the lion’s share of the work.

Picture a bell curve graph representing mental energy spent on a pursuit. Now let’s say the middle….1/4 or so actually represents the time “Engaged in the Active Task” with the mental energy tapering off in either direction. You can’t actually fit four of those in a day. Hell, it might not be practical to fit two of them.

This is why wasting time on engaging but ultimately superfluous pursuits is so damned dangerous. I mean, if you’re not trying to accomplish anything then sure, have at. Go watch your fucking sportsball or your favorite series and let it dominate your mind and your conversation. More power to you if selling your human potential short and drooling backwashed light beer into the couch while watching other people perform to their limits so you can staturbate with your buddies is what actually makes you happy.

I…for my part spend a fair amount of time playing video games. (What, you thought I was claiming high moral ground with that last paragraph? Please. I’m as guilty as any.) It USED to be that I’d soak up a dozen hours in a stretch several days a week. But rather than trying to eliminate/reduce that time for its own sake (which induces a strange phenomenon I’ll call an “Engagement Vacuum”) I’ve muscled it into a corner by intentionally focusing on things I enjoy much more.

My current obsession in that sphere is Cyberpunk 2077. It’s a phenomenal work of art. The outgrowth of that, with regards to this post, is that it’s infected the rest of my project thinking. I’m in the (slow and laborious) process of building a cyberdeck (more on that elsewhere.) I’ve got components ordered to duplicate, near as reasonable, one of the standard radios that show up in the environment (though I still don’t know how I’m going to build the shell.)

When you’re that focused on something it just gets in to everything.

So you’d do well to pay attention to where your attention goes when you think it’s not going anywhere.

——-

Addendum:

I couldn’t figure out where the hell in there to put these couple paragraphs, so I’m just adding them to the end.

As I wrote this my brain had ‘my writing process’ as an abstraction on the back burner. It occured to me that this is one of the things at the core of my continued (and endlessly harped on) frustration with writing longer pieces. I really don’t think about (or more properly stated, dwell on) individual writing projects, be it these rambling blog posts or the longer form fiction I keep fantasizing about writing.

In order to move forward in a meaningful way in building this skill set I need to be able to chew on these projects while I’m not actively typing. Trying to reason it out here on the page I’m thinking that means I need to consider higher level structure, much the way I do with software. Spend some time thinking about what I want to accomplish then coming up with a structure and go top-down with it. Of course this is in stark contrast to the way I write, which is entirely bottom up; start typing and see what comes out.

It’s interesting stuff that I’m excited about getting to the bottom of (or at least deeper in to. I expect it’s effectively bottomless.)