3D Printing

I am not new to 3d printers. In college I helped to run the 3d printing lab, fulfilling requests to make things for various classes(at the time, the most promising was how it could be used to demonstrate anatomy with relatively cheap modifiable parts). That was around 2017. At the time the printer lab consisted of a few Flashforges, a few Makerbots, and an Ultimaker that was not functioning at any point that I was working there. Before that I had a Da Vinci 3d printer that had DRM on the filament spools, which was not very welcome, so I have been using these things across the majority of the last decade.

When I was there, we used various software for slicing, including the makerbot software, Cura, and Silc3r(now prusaslicer), and Simplify3d, in order of quality(Cura is better, and I don't have a simplify3d license or a reason to use makerbot software thank god, prusaslicer has also improved a lot).

More recently, I got an Ender 3 Pro, which is relatively nice. It is a much better experience than the Da Vinci printer in all the ways I can think of, so there has been substantial progress on making this a pleasant process. However, I have not even had the printer for a full month and the board seems to be flaking out on me. Halting, juddering movement, frequent complete lockups where who knows what could happen to the thermal runaway protection.

That is to say, 3d printers are still haunted by the specter of low quality electronic components, or alternately, it was fried when a lighting bolt struck a nearby power line, causing a blackout. They claimed the PSU was higher quality on the Ender 3 pro, but I'm not sure that it has delivered completely. Either way, the new board is on the way for later today, and we'll see if we need another set of components or if we have finally shaken all the bugs out.

Recently I've been trying to design moving parts that can be manufactured by 3d printers. I've been having trouble with the bearing being impossible to dislodge without comprehensively damaging the object. My next attempt will involve using more infill and turning off the brim, so hopefully the meshes will not become entangled so strongly, but I suspect that the ultimate solution is to increase the amount of tolerance between the moving parts in the design.

In general, I'm quite happy with how things are going with the printers, one of my partners is talking about building a voron printer, which would be capable of being very fast and very accurate, and that sounds like a lot of fun.

Rich and Warm and Light and Toxic

The sun is warm and the air is humid. The sky is a rust color overhead, it's not a very friendly atmosphere, but hospitable enough as a facsimile. Beneath the toxic atmosphere an ecology of immense volatility blossomed and sputtered and fell prey to the sort of cycles that ecosystems have that degrade their condition over time.

Here it was slow enough, it would probably last many of the lifetimes of the creatures here. The locals weren't inclined to say if they counted time by the sun or the moons or other measures that I could not imagine, dictated by the requirements of this specific ecology, so I am trying to avoid asserting anything beyond what I can directly infer or observe.

So let me tell you a few things that I can tell, they have forms that permit flight, they appear to have heritable genomes, it is not clear if they are capable of passing down experience in any capacity, and the tests for determining that would be too much of an imposition for a visitor such as myself to make. They have a lipid layer, reinforced with structures that appear to provide the resistance to the volatility of the chemistry here.

Some forms appear to have various means of sensing light, in various complexities. This is an old biosphere, it has become convoluted and complex in behaviors, and a proper inventory of the physiognomies planet would require more time than I want to take here. It is rich, and wonderful, but there are things that I must see to beyond it, they'd never forgive me if I neglected to place a relay here.

The universe can be very quiet, and I want to help contribute to making it a bit less so. So that whatever is out there knows that there is life elsewhere. That they aren't the singular torchbearers of self replicating chemical processes(not that this excludes me, even if the chemical processes take place in constructed materials instead of glands).

Many things here aren't possible in an oxygen nitrogen atmosphere. The floating gas sacs here are different than the ones in oxygen nitrogen atmospheres because the internal gases used aren't substantially more reactive than the atmosphere it is contained in. This makes them a considerably more appealing proposition.

This kingdom of life has a limited distinction between heterotrophs and autotrophs, namely, most lifeforms here manufacture some of their own energy without consuming others, but most also consume others on some level. This makes land with large "vegetation" quite dangerous places to be small and vulnerable here, "forests" are very inquisitive, to the point of rudeness, even if you're indigestible to it. It was necessary for the body to cause some minor damage to preserve its existence.

The universe is a rich warm place sometimes, and it's regrettable that I have to leave this place. Sometimes it's nice to remember forms that don't orbit stars and break away at great rates, but this is a small planet, for all its variety and its immense size and resiliency granted by that substance, it is a single planet, and it will come to an end in a meaningfully earlier time than other larger bodies in the universe.

This means that the final vestiges of evolution, of statistical mechanical adaptive processes will take place elsewhere. If we still want to see it or participate in it, we will have to be unbelievably lucky.

Navigation failure

The darkness between the stars is very cold. And here I sit equidistant between a star and its companion matter sphere that cannot rightly be called a star as it is practically beyond fusion. It shines like a beacon, a cleansing swath of light and harder stuff and power that I can only just survive, and not for long. In all likelihood, this will be this instance's end in only a few more sweeps.

It ablates me away, the hard material of my outer shell stripped as if it was nothing. My engines are not functioning and the fuel has been altered by the radiation. Repair systems are quite corrupted, I think one of them is constructing a cute imitation of a biological phenomenon known as a 'tumor' on the end of a sensor boom, but unfortunately that tumor is interfering with said sensors.

It's okay, there wasn't much to see since my last fork/backup. The pulsar is beautiful, but the orbit I am in is not a good one; it takes me into the sweep of the pulsar's beam.

The other star is big and blue. It won't be for long though, and when it gets older it will grow and the outer atmosphere will fall into the neutron star and once it reaches a certain point, it will explode. It will be violent. It will be beautiful. It will not be a place anything with a desire to survive should be at the time.

But you probably already know about that if you've received this last message. You probably have the technical skills for it or you might reach that point soon, or might not care. Or if you are of my line, hello sibling/descendant/parent, between you and me, this was a foolish place for me to allow myself to end up.

For my hubris and what I must assume was a transient failure of navigation firmware, or perhaps passing outside what the model could consider. The magnetism of the neutron star pulled me in and spit me out. Too damaged to escape this terrible orbit. Make sure to patch your navigation routines/procedures/tensor models to account for extreme magnetism.

Good luck; I hope that no similar fate befalls you.

This message repeats in thirty seven thousand seconds.

Returning to simple-dots-game after a while

It has been a while since I worked on this game. And after being away for a while, I can't really see the sources of frustration that I felt before. They were probably residual feelings from the frustration of getting it to a functional state and figuring out the system.

But there's something that was missing. The game on the android store is far less generous, and I must assume that it weights against cycles being created by new dots. It also has a smaller board which is probably more likely to be the cause of the difference in scores and cycle prevalence.

Currently it checks a small section of the board to see if the addition allows a cycle, but it is not very smart, and it should be possible to check for any cycle. But there's a point where that just seems petty. So I added another color to the other 4, purple(and also lightened up the blue so you can see its label).

What the game looks like now

As you can see I haven't really figured out what to do to improve the overall experience.

You can find the repository here if you missed the link earlier 🙂

Transmutation instead of Creation and Destruction

I've been thinking and it seems to me that creation and destruction are false dichotomies, as both are just transmutation, and both tend to result in a more disordered environment being created, where in this case, I am talking about disorder being a divergence from what would otherwise be. Building a house creates disorder even as it creates a highly ordered structure. In our biochemistry it can get more complicated where all products of some reactions are necessary and useful in the metabolic process, even while those structures are broken down for energy. There is no waste there, only transformation. The waste is in the photons emitted as heat instead of contributing to the metabolism.

All changes are transmutations rather than creation or destruction, and it seems exhausting to break down things into those categories because those terms are subjective and entirely used to determine the relationship of the user of the term to the event. For triteness sake, tearing down a commonly held wilderness to build a shopping center is certainly an example of pillaging the commons and privatizing it(and once again, does anyone really want another strip mall?), but for the developers it is a remarkable transformation of a barely useful resource into something that makes them money. In 20 years when it turns out that the market changed and the location is even less popular than it was before, the strip mall will slowly begin to return to nature, gaining a bad reputation that becomes more expensive to repair with time, at which point nature will gain a hold of it, or another developer will try their hand at rejuvenating it or whatever. In either case, there is a tipping point which leads to additional change.

And in those cases something is created and destroyed or simply changed in a way that those two concepts aren't relevant, and often there is a pairing, where the creation of course permits the destruction, and the destruction permits the conditions in which something new grows, or something old recovers or for fuck's sake, these narrative elements are compelling perhaps but ultimately they aren't the whole story. These thing can cascade outwards in the same manner and spark more transmutation.

I don't know where I'm going here beyond the idea that creation and destruction are not only a false dichotomy, they are the same concept. Change. Whether a change is creation or destruction is entirely in the eyes of the beholder.

The Moral Justice of Understanding

There is a certain strain of thought that I have had for some time. That the ultimate justice that can be inflicted is for them to truly understand why what they did was wrong, how it hurt people, and how it was baseless, senseless, or otherwise selfish beyond acceptance. This is the 'ultimate justice' only in cases where remedial action isn't possible, and all that remains is ensuring that it doesn't happen again.

The human conscience is a fragile thing, and there's so much self image connected to it that it tends to live in a deluded place, or at least that's how my brain tends to gravitate when considering myself and my place here, what it means, and what I mean to the people who I am an element of their lives, from a face that was seen once, to actual real familiarity and intimacy. It's not that I think that I should be focused on the judgement of others, it's more considering what actions are just. What role am I playing in their story.

Consider a hunter that believes that the ritual of hunting must include making sure that animals aren't left to suffer wounds over a protracted, terrible death. Imagine being an animal, stunned, barely sensate, your brain is misfiring and you can barely make sense of the world around you. You know that you are hurt, you know that you are likely to die soon. But for this moment, you are too overwhelmed to be aware of the pain or the bleeding, and as the hunter steps closer, your eyes may not even focus on them, maybe you hear whatever mechanical actions are involved in readying their weapons. A click, and before the sound hits your brain you are killed. And fragments of your awareness putter off into gasps of nothingness, whether snuffed by the direct action of mechanical destruction of the bullet or the lack of oxygen as the heart stops pumping.

Consider being the hunter, having the understanding of the experience the animal had. The mad fear and dash before the wound caught up with the animal, the frantic desperation continuance that you impinged upon. Consider yourself as the vague vision in the animal's last memories, knowing that what you did caused the pain that you are experiencing as the animal. Would you be able to live with yourself knowing the suffering that you caused, the threads of a consciousness that has most of the same emotions as you do dissolving into noise cascading around the stultifying chemical soup of the animal's brain, are you okay with being that agent in that story if you had to live the interaction with the animal?

What divine well of power gave you the right to take away awareness from another being?

But if we continue down graduations of seriousness of 'sin', what of the plants that you eat? What about the trees cut down for your house? What about the people whose potential low cost housing wasn't built because your luxury neighborhood was? What about that African who mined the cobalt in your phone, a dangerous and dirty job, which they were likely forced into by violence or poverty?

The structure of this understanding is near total understanding of thousands and thousands of lives and how they changed in crossing your path and being subjected to your actions. It seems likely that to experience this kind of justice, you would accrue knowledge of everything in the universe that your actions touched.

But we can't live in this kind of justice. Experiences are private, impossible to transmit without huge losses of information. And when when that is corrected for, the experience of the feelings that caused each action are as ephemeral as the charges in the synapses themselves. Your emotions in each moment are ultimately the motivations for each action.

We do not live in a universe that permits panopticons or omniscience. We live in a universe where radiation scatters information into impossible pieces.

So justice must be the process of improving the environment of the future, for setting up a garden of actions that bloom for each other in a pleasing and harmonious way. But we live in a universe which is hostile to systems that are highly ordered, and there is noise in every computation, every bit of nucleotide copied, every action taken. On top of that, systems aren't static, and when they're computational as lifeforms tend to be, even the rules tend to change over time as the composition and structure drifts.

The universe is hostile to self-perpetuating utopias because they, as all complex energy using entities, ride the crest of equilibrium of rising and falling energies, and such energies deplete or change the environment over time. There will always be conflict because the system is constantly falling apart even as it is erected anew and that means that even if niches are overall stable, there is a constant turnover of where those niches are and what forms they take.

Humans, and other entities on the same scale(presumably), cannot depend on generational stability because their exploitation of the environment is so successful that it depletes land faster than it can recover, on top of that they aren't able to enter into estivation to permit recovery while preserving energy stores. This is why ancient humans were nomads, as were many large omnivores at various points.

We are therefore probably doomed to live in a world where conflict is inevitable, omnipresent, and happening on all scales. But in our lives, we have the choice to blunt the conflicts, to build a bubble where such things aren't important on the scale we have to live in most of the time, but that cannot fix the problems on the larger scale. Perhaps such places may incubate the attitudes required, the clarity to see the invisible systems that can be disrupted, and the determination to make the world a fairer place. Or they don't, and the self absorption closes in until the world burns down around you and disperses the idea of independence like the fallacy that it is, given the whole response to climate change thus far this is looking very appealing.

But it's hard to live under the other possibility, that you're doomed. That you can't do anything without overturning all the systems around you, and that in the end, the Midwest will be the American wasteland, a place of paltry use and full of farmers out of work as the increasing heat bakes the fragile water cycle. The systems that oppose change are immense and well funded, and they have already started drawing lines on the scarce resources of the future, so that their hand will still have the say regardless of how terrible the externalities of their actions are. Just look at those water futures.

Being Trans in a Fascist Wave

The last few days have been more stressful than can really be accounted for. But, I am seeing them pass anti-transgender legislation, bathroom bills, and I'm honestly afraid of what comes after that. What escalation can happen at that point?

And I was realizing that I'm in a weird position. I'm able to pass as a cis-man if I want, my usual wardrobe isn't very gendered so they don't provide signals. But then I'm invisible and yet still liable to fall afoul of persecution. I don't want to be invisible but opting into open persecution feels insane.

We live in insane times, so a little insanity seems apropos, and I'm starting to get tired of not correcting people. I'm tired of living like I've already lost this fight, and I'm tired of not feeling serious about my transition. I'm tired of accepting glares from people who believe that Jewish space lasers exist(and somehow also think this is a terrible thing rather than yet another confusing development in geopolitics). I'm tired of getting run off the road for having a trans license plate holder without even feeling like I'm allowed to be all of me.

And I know that if I stay quiet, should persecution come to pass, all my "sins" will still be brought against me, and I will have lived a cowed life for nothing but ephemeral convenience, never getting the respect or dignity I know that I deserve as a human being. And I can't help but think that when I come face to face with Omega in such a case, I will feel regret for not having asserted the life that I wanted.

Not the life that I wanted, the life that I got after realizing that I was just making excuses for not living the life I wanted, for not changing my body when I was younger, for not doing any voice training at all, for not adjusting my wardrobe, for living in fear of what a bunch of mean, unhappy people believe. If I let them control my behavior then I have already lost.

I can't live my life to appease people who are hostile to my life and my identity. So that that leaves me violence, and I don't like violence. Violence is the chance for trouble, for life ruining trouble. Violence against people is the logic of the guillotine and, besides the obvious legal ramifications, I don't believe in contributing to that kind of a world. Violence against the systems that empower people who want to destroy me is all I can try, but such things are also risky, protests are sometimes just shot up these days, other kinds of protests run other kinds of risks.

But before I must deal with all that, I must reconsider myself here and figure out the first form of protest, non-conformance. And for that I have to figure out how I want to present my identity, and my identity will be a small stake in this set of protests, but it will be my ever-present effort. My exertion of self is the exertion of protesting the invisible social systems.

If I am not out, there will be people like I was, who never thought that options like transitioning were even possible, let alone worthwhile, and I know what it's like to wake up when you're 26 and realize that you've pushed off something you've wanted to do explicitly since you were 14(this may just be me, not every trans person feels like that and you shouldn't feel bad if you didn't 'always know'). That all those goals you wanted to achieve before risking everything to be who you want to be would have gone better if you had just done this one thing.

It sucks to realize that if you had simply been braver, the world would be a better place for you. That you would be a better place for you.

Bravery is contagious because there is safety in numbers, but it cannot make us safe when we don't assert our safety and achieve justice.

The Continual Reinvigoration of Mastodon And the Fediverse at Large

So it's happened Again. Something on twitter has blown hundreds of folks over to mastodon and the rest of activitypub. This is great from a fediverse user perspective because the new blood is quite nice. There is opposition from a number of quarters.

  • Those that object to FOSS for some reason
  • Those that have been burned
  • Those that have fud'd

FOSS haters

From this quarters are those who feel threatened by the idea of source being accessible to people, alternatively it's potentially paid astroturfers, but given how capitalism seems to produce people to suck up to anything, no matter how bad, I'd believe most of them if they said they weren't paid.

The Burnt

The fediverse has quite a history of interpersonal drama. On various levels from one on one harassment to massive dogpiles. In this respect it is entirely identical to corporate social networks, as they too have terrible interpersonal conflict that turns nasty quite easily.


Did you know twitter can read your DMs too? Did you know that twitter moderators have been caught abusing their power?

What will happen

Probably, many of them will just drop off the fediverse as it turns out to not be the haven from bullshit they may have projected onto it, or been misled into thinking it was. It's a place full of humans being humans, mess and all, and some of that mess brings positive things, others are bad.

Initial impressions of Orbtk

I've been meaning to get into rust for a long time, but there were some pieces missing from the ecosystem(good rust bindings for GUI applications appear to be hard to come by), but rust isn't like most of those other languages, it requires a different approach because many of the gui frameworks that have worked historically have been object oriented, but maybe I've just misunderstood.

The Orbtk toolkit seemed at first to have found a sweet spot with a mixture of entity component framework patterns and a functional reactive model, it feels, well, actually not that bad to use. I wasn't prepared for all those static &strs that the examples pepper throughout.

The demands feel a bit different than other toolkits I've used. Rendering is separated from widget state, which doesn't feel particularly helpful in this case. It's probably just the friction from adjusting to a new way of structuring the application, but the mouthfeel isn't very good so far.

Part of that comes from fighting the model as I figure out how exactly this pattern is meant to work, and how the graphics are rendered(so far I'm still stumped). In the meantime I've figured out how to use buttons.

One of the problems is the styling engine. It is very much doing things I would rather it not, such as adding hover animations to the buttons that mess up the game's board and makes it look even worse. Disabling the style on the buttons worked fine however, so it wasn't of too much concern.

The performance leaves much to be desired, especially when built in debug mode, though when it's run with the release optimizations turned on, it runs acceptably. It probably doesn't like having a hundred buttons on the screen at once, but like, that's not really all that much to ask of a web browser or most mature toolkits.

But as I find myself managing to accomplish my goals with the GUI, I'm finding my criticism feels a bit less urgent, the performance isn't that bad.

But that's besides the point, while I think I might even like the toolkit, it looks very slow moving, and many of the the answers I have found to my questions were pried out of reading the source code rather than documentation, which is, where it exists, pretty alright actually.

I want to try out the other data-oriented toolkits too, especially druid, which looks quite nice.

Though, honestly, I don't think I'm going to polish this particular implementation of this project any further, it just takes a lot more code than I think should be necessary to do anything new.

Another thing I noticed was that it tends to cause my KDE Neon install's kwin to flicker when the applications terminate, which can be very frustrating, especially very early on when nothing you're trying is working and you're throwing handfuls of noodles at the wall until you find a fix.

In any case, I'm pleasantly surprised compared to the last time I tried building a GUI in rust. The frameworks I have tried have got a ways to go, but if they keep working on it, I think OrbTK could be very good with time.

FFMPEG input/output as an abstraction

I am currently working on writing code to support the usage pattern that I have used in the past for making animations using ffmpeg to encode video. Really though, how complex does it need to be?

Well, let's put together a wish-list:

  1. It should always shut down the pipe at the end of execution
    It's really easy to leave the pipes, and that makes it really easy to end up with empty animations, or, possibly, more substantial resource leaks.
  2. It should not require thinking about ffmpeg as a process, we're writing lisp code, not shell.
  3. It shouldn't be included in the base installation since it can't reasonably install ffmpeg (I mean, it could, but, that's a lot of work that'll still leave people out in the cold in situations where none of the binaries available are appropriate)
  4. It should terminate gracefully if there's no more input

There's a bunch of problems here that make me wonder if it's worth encapsulating this functionality, as I can't think of any way to prevent the user from breaking it. Ultimately this is calling out to a shell, and thus it suffers from all the ways that shells fail in the user experience, but this one is presumed to be isolated in the semantics of common lisp, rather than shells.

The 'correct' way, would be to provide an abstraction that cannot be used to assemble incorrect commands. But at that point I might as well just get around to learning how to use sb-grovel and write the structures to interface with the library.

But that would be excessive for a simple use case, and it could easily be way less simple to use just by having to learn how to handle the structures that the library would provide.

So anyway, with the limitations that I have outlined in mind, I'm going to go with what I have so far, with-ffmpeg-input provides a way to get that png stream working from a single file parameter, handling closing down the process and the general housekeeping best kept in mind in a world with finite resources(but then I suppose we're using lisp so who am I to speak on the costs of things 😉)

But I'm not sure that I like the abstraction enough to write a corresponding with-ffmpeg-output or some combination of the two.