This was not a project I hoped to be announcing today. I was hoping to announce the start of my solo RPG adventuring platform. I spent my November and December fighting the mental health system. So I had to scale back my more ambitious projects. Nevertheless I managed to create something that I’ve always wanted to create. To close out 2022 and began 2023 in the right way.
This project is what I call an accessibility proxy. An accessibility proxy is a website which takes the contents of another website of the user’s choice and rebuilds the visual elements to be more usable by people with print related disabilities. Print related disability is an umbrella term covering anything from blindness to dyslexia and much else in between. Basically anything which affects a person’s ability to read standard text can be classified as print related disability.
I grew frustrated with not being able to read things on the Internet. So I had a “hold my beer” moment over new years. I ended up coding the entire thing in 72 hours or less. It hasn’t hit the forges yet but you can find it on my personal Git server.
The heavy lifting in this piece of code is done by a fork of a piece of software called “miniwebproxy” by openBSD’s Ted Unangst.
This works fine for now, but I eventually hope to replace it with an engine based on Mozilla’s Readability, which can handle even more sophisticated modern websites. I added selectible User Agent support, and Header Sanitization.
Bugs of note:
CloudFlare tends to be a pain in the ass when using exotic user agents. Thus a standard Firefox user agent is provided. I will add more normalization features soon. The Dockerfile doesn’t seem to want to build on Oracle cloud Free Tier and I have no idea why. It correctly builds everywhere else I’ve tried.
Happy reading and enjoy if you have any feature suggestions pull requests etc. my inbox is always open.
Twitter is imploding in case you hadn’t heard. Losing a million dollars a week in advertiser funding. Corporations such as Eli Lily will likely have a multimillion dollar claim against TWTR. For causing them to loose stock valuation through negligence.
Twitter’s cultural, political and market relevance is in it’s twilight. not a moment too soon. Twitter was always a very well managed, and sinisterly marketed bad value proposition. As all Surveillance/Choke Point Capitalism is for its users. Elon Musk’s missteps in the past few weeks have only exposed this to the wider market. It is my prayer that Facebook and all the other overvalued Social Media companies go down in flames.
What seems to rising in it’s place is not the alt right Trumpian spaces such as Truth.Social, Parler or Gab, as many predicted. Rather it’s the network of sites which speak the ActivityPub protocol. Mastodon, Pleroma, PixelFed, PeerTube and all the rest.
For non techies in my audience, ActivityPub is hard to explain. If you think of your regular social media as say Barns and Noble, or Amazon i suppose. Then Mastodon is like your local library. Superficially they both distribute books. Your library is run by the government or a local non profit for the benefit of the community. Any person or group can start an ActivityPub Server. And they can all talk to each other. For example my Mastodon (like Twitter) account is @email@example.com, and my friend Vantablack is @firstname.lastname@example.org. Despite being on different sites we can see content from each other, at mention each other and boost (retweet) and star (like), each others posts. There are Corporate run Servers of course. The majority are run by digital community groups or individuals.
Organizing for a Better Internet
These groups are not yet as organize as your traditional civic organizations or non profits but that’ll come in time. Point is that this non profit loose association of individuals and groups, running on consensus principles. Operates a social network that had close to a million active users before the Twitter implosion, and has been growing by nearly half a million users a week since. Most people don’t think such a thing is even possible, yet it’s happening.
Many Mastodon/ActivityPub oldtimers think this sudden rise in popularity is a bad thing. The network was built by queer, disabled, people of color and other gender and sexual minorities.
Specifically because TWTR was unsafe for us. Many in fact are comparing it to Eternal September. Which is a term that Technology Historians use to describe the aftermath of AOL and other Online Services connected to the Open Internet.
The Open Internet
You see before 1993 when congress declared the internet open to anyone.
Being Online and being on the Internet were two distinct and separate concepts the Internet was strictly a defense and university, thing only. There were services like AOL and CompuServe. Which provided News, Stocks, Message Boards, and sometimes Chat and Games. As well as locally run BBSes. But the profit margins on these things, were always incredibly thin.
The potential user base was small. Then 1993 came and the internet became open. Suddenly these small online services had a way to reach a global audience. And all was good for awhile. The eternal September may have disrupted the culture of university elites.
September was good actually
Let’s face it someone like me would never have been allowed on the pre 1993 internet. Let’s start with the fact that my rights to be included in society at all weren’t secured until nearly a year after my birth.
Most states were still actively institutionalizing people with my level of need until the Supreme Court intervened in 1999. and i had to be homeschooled because my rights to education weren’t fully secured legally until two thousand and effing nine.
Because of Eternal September I grew up on an internet where we had Forums and IRC and MUDs, and Blogs and mailing lists. Decentralized and Federated was the internet of my childhood and teen years. And literally dozens or hundreds of other sites, projects and communities besides. A place where you could go to find yourself, try on new identities, and find community even if you were excluded and marginalized away from keyboard. In my youth I rode Dragons in my spare time. Had friends and contacts from around the world, and was a valued member of several communities. Even though i was extremely social phobic away from keyboard.
The Fire Nation Attacks
Then sometime in 2014 it all seemed to just die First it was PernMUSH died, then several forums that were formative. Then most of my non technical IRC hangouts burned one by one.
Facebook groups and Slack and Twitter took their place but it no longer felt the same. And let’s not forget the online games which paid no attention to accessibility issues at all.
I had to play this character marnold, Who was kinda me, but shoved into an itchy suit, told not to do anything weird or controversial least the mythical `future employer` see it. I had lost the space where i could be myself, and so i began to wither and die inside, this was not helped by misdiagnosed mental illness.
But in hindsight the destruction of most of the community spaces that were holding me anchored was the shatter point that, made my world explode. What Followed was three years of hell that only ended when i returned to Church.
And why was this done? Well it was sold as a way to include everyone in the New Great Conversation so that everyone not just elite `techies` like me could have such experiences.
In reality the big social media corporations were just trying to milk us for advertising dollars. Everyone who has eyes can now see why taking control of the internet away from the hobbyists and the Anarchists was a bad idea. Everything from recent US Elections to the ongoing genocides in Myanmar have Facebook’s dirty blue fingerprints all over it, and rather then helping pull down censorship, and oppression in places like China Western Companies like Cisco and Apple have betrayed the values that allowed them to exist in the first place for a few extra dollars in shareholders pockets. For a long time I was not hopeful that the post 2014 state of things could ever be changed.
But in 2020 shortly after a life changing diagnosis. I discovered tilde.town and ActivityPub, and Treehouse, and all the rest. A new world being built upon the ashes of the old, and it was as if I was reborn.
I effectively was. Pius was born and he is a character who is much closer to the real Matt then my `real life persona` ever was. Through this community I’ve learned that living with a disability doesn’t have to be constant struggle and joyless drama.
That the key to my best life lay not in some mythical future employment. Rather in discovering the things that give me joy and pursuing those when possible. And over the past two weeks i’ve watched in gleeful awe as Twitter collapses and person after person discovers the joy of these communities.
Sure there’s bound to be some trouble ahead. Keeping toxic waste out of our home will be difficult. But if even one person who is where i was in 2014 or even the first half of 2020 has discovered Mastodon or Misskey or whatever and their lives have been made better because of it. I say it’s all worth it. If one person makes a connection to a marginalized group and thereby is prevented from going down the right wing rabbit hole as some of my former friends did, then it’s all worth it. In other words if this is the New Eternal September, then it’s a very good dream, may it never end. But wake me up when it does.
Post illustrated with AI art, thanks to Xe for letting me play with her bot, and lucidiot for beta reading. What isn’t AI Art is wikimedia commons or memes
I’ve had a bad day creatively, but I made a promise to myself I would make something every Saturday. No matter how bad it was. This is cheating a bit, but here are answers to ten questions. My current cast of Characters will take turns asking them.
This is just an excuse to test out the Creature Engine code isn’t it?
Sure you bet it is. Only I thought I’d give the subscribers more content this go around.
Creature Engine, what’s that.
It’s an experimental WordPress plugin, for Conversational writing with Characters. In the style of Xe . It will of course be open source eventually, but right now the PHP is kind of horrifying. And it depends on a Freeium plugin that i don’t like very much so I’m holding back on publication for now. It won’t come out for real before the middle of 2023.
Cool. Now enough with the technical stuff. What’s your favorite Anime?
Code Geass the 2006-07 series, Not the Movie remakes. Although Resurrection was good. I also am a fan of everything CLAMP ever made.
Have you seen INSERT TV SHOW here it’s really good you should watch it
I am generally slow at consuming TV, I think it’s an ADHD thing. So the answer is likely no.
What about movies then
Those are different provided I watch them in theaters/with someone else in the room. My favorites are in order of release. The Cain Mutiny, Anatomy of a Murderer, Superman Red Son, and The Deer King
What Religion/Denomination are you and why?
I’m a Progressive Roman Catholic, which means I am Christian. Why because I have found. That the Catholic Expression of God is the one closest to my experience. It’s not a perfect fit, by any means. For example i find the Vatican’s approach to LGBT issues to be barbaric at best. But a God who made the human race for the joy, and love of creation . Who is constantly present to their people through many means is a story I really think is just about as close to the truth as we, are likely to get on such matters.
Favorite Programing Language
Python all the way. I’m also excited about Rust, but i don’t get to use it nearly as much as I would like
Please describe your creative process?
It’s still evolving and I wrote at length about it on facebook in a post i cannot find anymore. So here it goes again…
I tend to think that 50% of Creativity is just getting your butt in the chair, consistently, and in a distraction free way. Which is not easy. I try to give myself at least 1 hour of solid creative time a day usually late night or early morning before sunrise.
The other 50% consists of 20% Idea farming, and 30% execution.
Idea farming is basically systematically coming up with ideas, and then writing them down. An idea is worth nothing if you don’t put it somewhere permanent. You get ideas by asking yourself Questions. Such as
What if America (USA) had a monarchy?
What if we Teraformed Europa?
As a result of the Trinity Nuclear Tests Magic was discovered in 1945. What happens next.
These questions sometimes, have answers that will be immedatly obvious, sometimes require research. Sometimes they result in more questions. I have codenames for the whole thing. For example the Codewords Alas Victoria. Points to one of my variations on the American Monarchy idea. So if i run across it in one of my notebooks or whatever. I know it’s research or drabbles related to that project.
I’m still in the process of centralizing all my notes and stuff
But back to idea farming I generally do this in the pool at YMCA. For various reasons I can’t use devices going to or coming home from the Y and it’s a 20 minute drive each way. So i figure if the idea survives the two hour journey from the pool to my notes. It’s an idea worth exploring
Video and Music ideas work similarly
Execution is just shaping the raw idea into a form i like, how i do that is complicated, and is a post in itself.
What’s the hardest part of your creative process and what is easy?
That’s a two for one but ok.
Easiest part is coming up with ideas. I have like dozens when in the pool, and a few bonus ones when not. Hardest part is finding distraction free time to execute. Because of my ADHD, I need like several hours, and staying focused on one idea is hard. I haven’t been able to video edit in awhile because of this.
What’s your favorite part of creating things
I’ll admit to being a bit vein here, but when 100 or 3000 people see my work. And it brings them joy, or makes them think. I feel like on that basis alone I’ve made the world a better place.
So That’s ten questions about me, dear reader, I hope you learned as much in the reading as I did Writing it.
I recently mentioned on Discord that I was going to the 20th Anniversary Theatrical Re Release of the Harry Potter films. The response was swift, and overwhelmingly negative.
You see for pandemic related reasons, I tend to frequent Discord Servers with a much younger than me. Not kids, but 18-25 year old, or thereabouts. Suffice to say 34 qualifies you for an `Ancient One` role which I wear with pride.
Also for self discovery reasons I tend to hang out in queer spaces online.
As you might expect in this demographic Harry Potter has a much different image than it does among those who grew up with it. For those of you that have been living under a rock, and there are a few who still don’t know.
Harry Potter’s author has in recent years used her platform to spread anti Transgender propaganda. And in many minds the whole series of books has become tainted by association. This is not a post about that.
Plenty of metaphorical ink has been spilled on that subject by much more talented authors talented authors than I.
A hero falls
Among younger queer people The Wizarding World is far from the place of happy childhood memories, far from a place of self discovery and compassion. Harry Potter is just another space in which rejection lurks behind every corner and open hostility is tolerated and encouraged.
Many of my friends were shocked and confused as to why I still supported such a vile women, many assumed I didn’t know about JKR’s recent activities, and one even tried to break the news to me gently, and as I said were quite shocked when I still saw the movie. Which brings me finally to the point of this post.
Part of growing up is realizing that most of your heros will have feet of clay. This is because our capitalist society idolizes success, all the while totally disregarding the fact that success in the market is mostly a function of luck.
As a result most of our so called heros suffer from a total dearth of Heroic Virtue. Yet for all the modern hero’s faults, it pays to keep in mind that a hero’s function is not to be admired for their supposed virtues. Rather to inspire virtues in you. Heros fall, Triumphs and Values endure, this is as it should be.
What Harry Potter Means to Me
If I were to cut Harry Potter out of my life completely, many of my accomplishments would be irrevocably tainted. I was a disabled kid with a reading disability, who was told that audiobooks didn’t count as `reading` who was given slop years behind his actual intelligence level in an effort to `teach me to read`, when the problem was not knowledge but rather the pain involved with reading.
No one believed me about either issue until i successfully read the third Harry Potter, with my eyes. Before that I had given up all hope of ever reading, and more importantly getting the adults around me to believe me. That struggle taught me I was capable and more importantly showed the so called experts a thing or two. We had no fights about audiobooks after that.
Equally I would have let the memory of surviving my first depressive episode be tainted. I was only able to live through that because I wanted to see the end of a FanFiction. And Every single time I’d think of suicide. It would be like no, go read Potter. I must’ve read the books, like ten times over three months, and Oh god I can’t even tell you how many fanfics i read over those months.
I could mention more incidents throughout my life in which these books proved pivotal, but you dear reader get the point. Harry Potter is important to me on a deep, almost spiritual level in ways that few other books are. Only The Dragonriders of Pern series comes close to matching it, and only the Bible exceeds it in importance. What I came to realize was.
The Book Belongs to The Reader
What makes these books special is not the author. I’ll bet J.K Rowling doesn’t care about a half blind, disabled, bisexual man from the middle of nowhere Upstate New York. But this is the magic of literature, once the author has done her bit she no longer matters. The triumphs I made while reading these texts belong to me, not JKR.
Would they have been possible without these works? Do I therefore owe the author something?
Examining Capitalist Heroism Narratives
Well let’s examine that shall we. The Traditional Capitalist driven Hero’s Narrative, around Rowling goes something like this. Before Harry Potter, children literature was a bunch of hacky moralizing tripe, and Megabooks schlock, with no redeeming qualities at all. Only the genius Joanne saw this as a problem and single handedly revived children’s fantasy, with the help of her editors at Bloomsburry. The only ones to recognize her genius.
I’ll admit to a bit of ironic intensification for effect, but look at any pre transphobia biography of the women in question and you will see this kind of gushing portrait.
Any quick look at the facts of the matter quickly reveals how wrong our Capitalist Hero’s Narrative actually is. Before we get to just how wrong it is, I have to make a quick digression into how old school publishing works. When an author creates a novel or whatever they own it, from the moment they hit save on the word processor, or it comes out the manual typewriter or whatever.
Publishing Industry Digression
As soon as it’s out of your head and in something you own it for basically ever.
Publishers have to buy what are called publication rights from the author. They do this by pay a certain percentage of sales to the author for basically ever this is called royalties. The author will want to get paid up front for their hard work, right away however.
So there is a system known as advancing. Where the Publishing company pays the author an up front sum, and the author doesn’t get her royalty payments, until the total sales of the book are greater than the advance amount. So in effect the advance is the publishing company betting on how successful the book will be in the market, So we must ask ourselves how much did Bloomsburry initially bet on Genius Joanne.
1,500 British Pounds Sterling or about 3,000 in 2022 dollars plus or minus 100 dollars either way. Seems a bit low doesn’t it. Heck the commonly quoted figures (see Biography.com’s entry on JK Rowling) lists the Scottish Arts Council, a branch of the Scottish Government as contributing an 8,000 pound grant.
Art is Socialist
Yes you read that right folks. Socialism made more of an initial investment in JKR than did the free market.
Furthermore I looked into so called `copycats` of Harry Potter released around the time of the first three Potter books, the good ones that I remember, by Authors like Garth Nix, Avi, Philip Pullmen, and T.A. Baron. Among others. Of the dozen or so I sampled at least four were released contemporaneously with or before Harry Potter and the Sorcerer’s Stone. Which would render them not copycats but parallel creations.
I can almost hear the supporters of Capitalist Heroism yelling, that she won in the market doesn’t that make her special. Well no, it just makes her one of hundreds of artists around the world who saw a need for high quality fantasy literature for children in the early to mid 90s, and proceeded to make an attempt at filling it. The Market didn’t believe in her all that much.
What made Rowling, what gave her the power she now has. Are the fans who believed in her initially.
Art is an inherently Socialist Endeavor, the artist is nothing without their fans, and the fans wouldn’t be in community together without the artist. It has always been thus, ever since the first storyteller made something up to entertain his buddies around the campfire. The capitalist system was somewhat crudely grafted on some 200 years ago. Unfortunately that Capitalist System, awards and entrenches the power of authors and artists. So that it’s incredibly hard to for the people that gave it to take it away again.
I do not support Transphobia in any way, shape, or form. Transgender people have a neurological difference, just as valid as any form of Palsy or Autism among many others. Facts don’t care about your feelings m’kay.
Storm the Gates
Using a full on Cancel on JKR in this instance, would give her even more power. Every fan defines what the art means to them. For me Harry Potter will always be Triumph over the odds and Hope amidst the darkness. Do I wish we lived in the time line where T.A. Baron had caught fire instead, yes I do. But we don’t live in that world. To let JKR’s bigotry taint that gives her the power to erase my achievements. This is something I will not do.
Rather I will continue to enjoy the Harry Potter books as a radical act of defiance. I will recommend Queer and Trans positive fanfiction like Stephen Ratliff’s Ginger Snaps, or Kaleidoscopic Grangers. Buy my cosplay props from independent Etsy sellers from now on, and I probably won’t go to the 25th Anniversary Theatrical Re-Release. I would encourage everyone to do the same. Sorry Joanne you’re not a genius, and you are far from a hero. We can’t take your platform away. But I’m keeping Hogwarts. Morte de Author! Viva Revolution!
Or, How I learned to stop worrying, and learned to love the kludge
Introduction: An Unlikely Wordsmith
Everyone tells me, that I am a good writer. Well nearly everyone. My sixth grade English teacher was an absolute witch bent on destroying the self esteem of impressionable 12 year olds, and doesn’t count. And there was that low grade on the GED, but we can put that down to a bad day. Point is I have a 90 average on all English/Creative Writing assignments in my college years. More importantly I have been published in print and online dozens of times over the years, beginning when I was 9 years old.
Although I consider myself a two bit hack with no voice, and a style which would make your average third grade teacher scream in agony. The objective reality of the situation seems to disprove my self assessment. And in spite of my lack of self confidence in this field, I do enjoy slinging words about.
However there is a problem. My neurodivergency and disability make writing one of the hardest tasks I regularly undertake. It is both physically and mentally exhausting to attempt to write even a simple three page academic essay. Mentally because I have ADHD, and thus a lack of working memory, and high distractibility. And the Cerebral Palsy makes both eye muscle strain and hand, and finger pain an issue.
To be clear this applies to all computer interactions to some degree or other. These problems take on there most severe forms when I attempt to write. Also games like Minecraft are nearly impossible for me to enjoy. But that is a different blog post entirely.
This has been a persistent and annoying problem throughout my life. And various Teachers/Occupational Therapists/Technologists etc, have tried dozens of solutions through the years. From forcing me to do as much writing as possible in hopes that the problem would go away eventually.
To various software solutions such as Don Johnson’s CoWriter to Dragon Naturally Speaking, and many others. As you might expect the exposure method was almost torture, and the software solutions have had mixed effect.
Here’s a hint though in my last two years of university I had to get a grant to pay an actual human being to type my papers which I either recorded to MP3, or dictated live. This problem has limited my writing ambitions quite severely. Needless to say there are no grants for Game of Thrones/Harry Potter FanFiction authors, and writing that kind of thing with Dragon is nearly impossible. So I have continued the search for a usable writing tool set and work flow, which works for me. After many years and hundreds of attempts I think I may have found my best solution yet.
In the remainder of this post I will outline the Engineering steps I took to arrive at this set up. To aide other disabled people in their pursuit of appropriate assistive technology.
Learning From Failure
The first step in any engineering task, weather it be building a technological system or a bridge, is to identify why what you currently have isn’t working. In some cases this may seem obvious. You need a new bridge because the old one fell down, for example. But the important question is why did your old bridge fall down? Or in our case Why have nearly all of the attempts to solve my writing issue eventually failed? My answer to this question is two fold. First the attempts by so called `Professional Experts` to solve this problem, were too narrow in scope. For example the Teachers who assigned the exposure exercise were seeing my distractability as a function of immaturity, and weren’t necessarily taking neurological, or physical factors into account.
Likewise the PT/OT people were only thinking of muscle weakness. They weren’t looking at how black text on a white screen, might not be as high contrast as needed to make eye strain less likely over time. I’m not sure if a vision expert ever commented on this issue. But the point is each expert was limited to seeing only the aspect of the problem which happened to coincide with their own field of expertise.
In a lot of ways the worst offenders here were the `Technology People` were even worse. With two exceptions they never worked with me directly, and only applied pre defined solutions to surface level problems.
To be clear I’m not trying to denigrate any of the people who tried their best throughout the years. I am simply pointing out that none of them had as full a view of the problem as my 24 years of experience writing has afforded me.
Defining the Problem
This is an important lesson for all disabled persons. You are the expert on You. Don’t be afraid to assert this. So what is this writing problem I speak of exactly. Eventually I broke it down into three parts.
A. Hand and eye pain B. Distractability. C. Speed of production.
These three aspects are mutually self reinforcing. For example it’s hard to stay focused on the piece at hand when your hands are throbbing. And this slows things down which leads to more opportunity for distraction, said distraction slows things down yet again and pretty soon your only three words in to 5000 word term paper, and you’re five hours from deadline.
The typical solution has focused on reducing or eliminating, my pain through solutions like word prediction and voice recognition.
As evidenced by this post that approach has had a profoundly mixed record of success. However in my latest stab at the problem I decided to attack the Distractability angle first.
For the simple reason that I have a lot of stuff to write in the next six months and I reason that if I can keep the words I wish to write in my head and get at least a standard page,(about 250-300 words) done on one project per day. Then by April I will several thousand more words than I do currently and will have met most if not all of the deadlines both self imposed, and otherwise. And in the process of finding a solution to the ADHD issues.
I think i may have found a system that addresses all three legs of the triangle at once. In fact i would go so far as to call it almost perfect. At least in my testing so far. However in order to get this far I had to define precisely what a viable solution would look like. In software engineering terms we call the definition of success Acceptance Criteria.
My Acceptance Criteria
For me a successful system has several properties. We begin by defining what I call the environmental characteristics of the system. What hardware or software will this run on? How will it interact with the cloud? So on and so forth First and foremost it must be able to run on freely available, open source UNIX operating systems. I have used Linux and FreeBSD almost exclusively for the past 20 years of my life. I won’t go into the economic and ethical reasons for this. As you my primary audience probably knows all of these chapter and verse. Second and repeatedly any solution must be able to run on low-end hardware.
My newest computer was built in the year 2014, one would think this wouldn’t be a problem for word processing even heavyweight stuff. However outsiders are often surprised at how resource intensive assistive technology systems can be.
Thirdly any successful system should be able to function with minimal to zero cloud computing infrastructure. This is a critical point almost as critical as the first two.
A short rant about modern software
Modern voice recognition software that transmits all spoken audio from your computer to the cloud service which sends back the text. This has several advantages for the average consumer. It eliminates were severely curtails the often laborious process of training the voice recognizer on an individual voice, and consequently dramatically increases both speed and accuracy of recognition. For a serious writer who is disabled however this seeming advantage turns into a disadvantage.
Because the voice recognizer isn’t trained on an individual voice the customization of local voice-recognition is lost. I said before writing fan fiction of a Game of Thrones or Harry Potter is nearly impossible with commercial voice recognition software. In recent versions 12 and above this is true.
But older versions will work just fine provided you’re willing to put in the training time.
But I digress point is all system critical components such as voice recognition spell check, and grammar and stylistic suggestions must be able to run disconnected from the Internet.
Non-critical features like file synchronization may use the cloud. However I decided that if this occurred I should own the infrastructure or leave town infrastructure portability for these features.
The Open Source Puzzle
Notice what I didn’t place in the environmental criteria section. I have made no mention of the system being composed of open-source software. While this would be my preference,
I also know enough about the open source accessibility ecosystem to realize that placing this requirement on myself would be self sabotaging. Projects that benefit people with less common disabilities rarely get the developer time they deserve. In addition of this there are often patents concern with open-source implementation of the common accessibility systems.
So I am fine with running things in Virtual Machines or under an emulation layer such as Wine. So long as the system requirements are low enough to make that efficient. In practice this means obtaining software from the Internet Archive, off of eBay or from other sources. Now that we have define our environmental criteria and component selection model we can move on to what accessibility properties the system must have.
Under accessibility properties I first want a system that minimizes distraction. This is a broad and nebulous statement so let’s see if we can narrow it down. To me a distraction if anything that triggers my ADHD, to the extent that I forget what I’m writing. This can be a variety of different things from the squiggly lines that modern word processors place under words and phrases to inform you about spelling and grammar errors, animations and other such modern user interface glop. Generally anything that draws my eyes away from the words I am writing is a bad thing.
Also among the key features of a successful writing system is the ability to use a high contrast or yellow on blue color scheme to minimize eyestrain.
But perhaps what I consider to be the most critical feature of this system is the ability to display a document on screen in a magnified view without affecting the fonts and styles of the finished document.
If you’ve ever had to deal with a teacher who would only give a their essay lengths as a page count and then accuse you of cheating when you wrote it in Comic Sans 14. Or worse yet had to hand in a formal report to your boss with the aforesaid infamous font set you will know how critical a feature this is.
There are a few other design criteria which I used when pulling together this new system of mine. But I will not bore the reader with all of the major design decisions I made in the course of the project.
I hope that this section has given you a flavor of what designing a system is like.
The key to success is basically defining what success looks like before you start.
Now that we have defined what success looks like I can tell you all about the system I came up with. Which as I have the best iteration of the writing system to date. That is if you believe my productivity metrics for this week. 5000 words written in four days. This easily beats the previous iteration of my writing system which can only allow me to produce 1500-2000 words in that same time span.
A 250% increase in productivity seems pretty good to me.
Solutions like PanDoc and markdown, do not work for me on larger projects. Anything over 500 words and I spend more time fiddling with the markdown than actually writing. I have also found spell check and grammar correction to be a pain when writing and markdown or similar solutions.
There is one feature I like about writing and markdown however. You can write in a terminal-based editor such as vim or nano. Which pretty much gives you the freedom to edit the document using any monospace font and size that you wish to use. And no one reading the finished product will know that you were writing in Comic Sans Code with ligatures. Which as stated above, is a key success criteria. So we have a feature that we know we like and also a shortcoming that is possibly a showstopper.
Now we must ask the question are there similar technologies with this feature available that lack the undesired behavior.
This is where terminal word processors came to mind. For those unfamiliar with computer history, terminal word processors existed in an era from about 1979 to 1994 when the computers mostly lacked the graphical capabilities that we take for granted today. In those days most of the graphical capabilities were located in the printer. Terminal word processors provided an easy way of controlling a printer’s graphical capabilities for the average user.
The idea was on the screen would not be exactly what would appear on the page but an approximation of it; which was designed to let you predict with some accuracy what the printer would do. Without necessarily forcing to edit the document in the way it would appear on the page. I knew about this long abandoned branch of the tech tree of course.
There are science fiction and fantasy authors, including no less an authority then George R.R. Martin who swear by WordStar, and all the best lawyers I know will praise him WordPerfect to the skies and back. However until recently these steps needed to get a terminal word processor working on a modern system were so insane and wonky, that I just didn’t bother.
And that was before one took into account the fact that I need voice-recognition sport on larger projects. Which implicitly means being able to interchange documents with a semi-modern platform.
Enter Tavis Ormandy who managed through a feat of digital archaeology to dig up the last WordPerfect for UNIX terminal release version 8.0.076 built for Red Hat version 6 released in 1998. He then proceeded to reverse engineer and patch the binaries so they would work on modern systems. As soon as I saw this come across my feed I knew I had to at least try rebuilding the writing system around this hidden gem. Two weeks later I had success.
Through a lot of trial and error I discovered that best way to use WordPerfect was through an xterm, with a monospace font and 18 points.
With the foreground color set to yellow and the background color set to Navy as shown in the images. This minimizes eye fatigue as much as is possible. Meaning I am more accurate when it comes to missing words and things like that Rather than directly print to a postscript file as Tavis shows in his example, but rather I use printer-driver-cups-pdf. With WordPerfect’s GhostScript driver to produce pdf files of documents.
The Last Piece
This still leaves one problem however. I need voice recognition projects longer than 1000 or so words, after the 1000 word mark I start having trouble holding large chunks of the piece in my head, and remembering where I am going with any given point. When you add motor planning keystrokes.
My little ADHD brain quickly becomes overwhelmed. But how does that work you might ask. Sure it’s easy to set up a low end XP VM, install Dragon 9 (the last good version in my opinion) and go to town. XP even has High Contrast built in. WordPerfect for UNIX however still saves it’s documents in the 30 year old, WordPerfect 5.2 format. The code for the Unix/Linux version was forked off of 5.2 and never had a rebase before it was abandoned.
Ordinarily this wouldn’t be a problem. Because LibreOffice is awesome. It can not only open but save in the 5.2 format. But as I mentioned for voice recognition we are using a Windows XP VM. Even if i could get LibreOffice to work on XP, it wouldn’t work with Dragon’s voice recognition because LO uses Java APIs to draw it’s windows, instead of the native Win32 controls. Which have special accessibility methods which Dragon, and other a11y software uses to do it’s thing.
Support for LibreOffice exists in a Dragon version 10 service update. But I don’t have 10. So this project was about to hit a brick wall. When I remembered that WordPerfect is still shipped to this day. Might there be a Windows XP version of it, and might it work with Dragon I wondered, and might it be able to save in 5.2 format? Turns out that Yes indeed was the answer to all these questions.
In fact i do not know how WordPerfect lost so much market share X3 is better than office 2003 in so many ways it’s not even funny.
The Final Product
So the final setup involves a 30 year old word processor, running on the latest Fedora, which is also running a VM of a 21 year old operating system , which is in turn running a 16 year old descendant of the 30 year old word processor, and a 14 year old proprietary voice recognition software. The whole setup is in turn replicated to all my machines via my NextCloud Server, And the documents exist on a virtual network drive inside VirtualBox.
To ensure the latest updates to all documents propagate across to my laptop automatically. And Everything is backed up securely.
Some might say this is hilariously over complicated, but I was willing to jump through a lot more hoops to get that 250% productivity boost. In fact you’re looking at the smoke test of this system right now.
The TL:DR version of which goes something like. The potential of technology for the disabled will only be realized when, we stop kow towing to an industrial complex which doesn’t know us, and is only interested in the money they can get out of us. Also don’t give up on your dreams, Hack The system!
A modern day idol of mine Xe Iaso recently, wrote a post on the end of Heroku Free Tier. In which she stated that, this service was vital for her getting the career that she has. It struck me that in order for what she says to be true, which I assume it is she must be at least five to ten years younger then me. She says she’s watched as doorway after doorway into tech has been firmly shut and locked. That is truer than I think she knows. I wanted to expand upon this idea a little.
In My Day
Back when I cut my teeth in tech, free hosting with PHP, and MySql was plentiful and ad supported. If you wanted more you could always install Linux on an old Pentium II, do some port forwarding and dynamic dns magic and by god you had a website. Or if you were not inclined to Linux you could run any of the myriad of WAMP stacks in a box such as EasyPHP. If you were truly desperate, there were services like geocities. Which gave you a little less but it got your foot in the door.
The entire concept of free compute power was not something that existed back in 2004. Learning Unix or DNS or PHP was hard. But and this is the key difference. Everyone starting out had to learn the same skills. When we all got our first jobs those skills were what the interviewers looked for. Point is every middle class white kid started from the same level. This state of affairs endured for about a decade. However, things began to change in 2012.
It started with Linux distros slowly dropping support for older hardware. To the point where today you need x86_64v2, introduced in 2013 to even boot in some popular distros today. The problem with this is, that the useful life of a machine is now way beyond ten years. Such thinking only considers the paying customer, and not the poor kid just trying to find a start
Some residential ISPs now no longer allow port forwarding either. And even if these two states of affairs were corrected. Modern web technology is now so tied up with “The Cloud”, that it would be of limited utility anyway. Is there even a path for anyone to learn how a website is really built these days? I have no idea.
I never thought i would be saying this but Thank God for Oracle Free Tier, and fly.io. For however long they endure.
Only 25% of the problem
But the problem of resources is only half, or less of the issue I see today. We are now so abstracted, and hyper specialized that it is hard to know just what constitutes, “General Tech skills”. I think a few examples would be illustrative here.
Docker now dominates the world, back in 2012 when it started out I was fundamentally a distribution package maintainer. Even in my professional life and freelance work I did things like build packages for legacy software on Ubuntu 12.04. 2012 era docker was ill suited to that workload so i ignored it. Even though i understand what Docker does and how to use it. I think it’s overkill for the projects I have now. Because of this recruiters looking for Docker or k8s experience, pass me by. So nearly every recruiter these days passes me by. This is only the tip of the iceberg.
Do i specialize in Go, Python or Rust these days? They seem to be mutually exclusive in the minds of many an HR department or Recruiting firm. If I had to define a course of study to intentionally take a green as grass teenager, from newbie to pro along the lines of what i had in my childhood. I doubt i could figure one out, without also irrevocably shaping that teenager’s future career prospects. But the iceberg goes still deeper.
Have you ever heard of linktree? I won’t link it here because I am fundamentally opposed to their entire existence. What they give you is essentially a place to put links to all your social media apps. So you can give that URL to all your friends and followers. So they can follow you everywhere. If your saying “There’s a platform for lists of hyperlinks”. The answer More than one.
The reason i know about this is one of my younger friends suggested i get one, because the number of things I am doing these days is only growing. While the concept itself was sound. I wanted to host it on my own domain. I looked for a self hosted version. But the popular one involved github-actions visual studio code and a bunch of other overkill that made my brain melt into my shoes. I wanted to write it in Markdown. Compile it to html, scp that to my site and have done with it. So I wrote a Makefile. It wasn’t till i looked at the output when it wasn’t styling correctly. That i saw it was just an unordered list of anchor tags. No different from my first hand coded website of 20 years ago.
So what did I do? i fired up nano and made an unordered list of anchor tags warped that in a div for easier styling. Did some quick css et viola
When i showed this to the younger friend who had instigated these shenanigans. Far from being impressed, she said “Your doing MySpace S*t, why not go with something easier”. She was genuinely confused when i explained that html was still how all websites work.
The Lost Tools of Learning
The moral of the story is that the early internet services sort of forced you to learn how the internet itself worked in order to fully express yourself.
You had to know about things like html, file paths, midi, and a whole host of other things to even begin to have a cool geocites site. That is no longer true these days. Now platforms take pains to hide the inner workings from the user as much as possible. Some even going so far as to lock people in to their own templating system. When the bother to support user styles at all.
I remember remarking on this aspect to a friend of mine when Facebook opened up. She accused me of being a tech elitist. Maybe i was back then. But now i think that having at least a basic understanding of these fundamentals, is a key on ramp into Tech itself. With platforms taking pains to hide the inner works of the web from everybody. It’s a wonder that anybody finds their way in the door these days.
So what do you think? Has capitalism destroyed the potential of this technology as we once knew it? Let me know in the usual places
It’s me your pal Matt, but lately everyone online has started calling me Pius for reasons. And I’ve decided I like it a lot. This change in name is really the biggest thing that has happened to me over the past month. Now i Need to be careful to not introduce myself as Pius in breadspace. Which is weird. Anyway enough with my pointless musings. On with the show.
For those wondering yes I’m alive. Yes I’m doing stuff, the YouTube channel has been stuck in semi perpetual video editing hell since April. I’m going to discard all the content from months ago as a bad job, and start recording again. Either on Thursday afternoon or Sunday afternoon. I’m not through script writing and stuff. Two blog posts are forthcoming one on Tuesday, and one next week. I might end up turning the one about AI Artwork into a video On to what’s new and notable in my world.
I have plenty of projects in the pipeline. I have managed to get only one in a publishable state
My Ubuntu PPA has been reactivated and contains my fork of the official Debian Minetest packages for use in server deployments. I am working on contributing my changes back upstream. But this is slow going. I run Fedora, as my daily driver, In fact that’s worth an article by itself “Developing Debian Packages on Fedora” or something. Dangit I always end up with more ideas whenever i sit down and write these status update things. More projects is not what i intend at all. Putting that tangent aside, This is the only technical project that I deem good enough to publish.
I have posted one fiction thing Technomancer 2190. A GURPS Solo role playing adventure using my highly adapted version of David Pullver’s Technomancer. The prompt that started it all was.
When Magic returned to Earth we thought it would welcome in a new era of peace, and harmony. What fools we were. All we got was more exploitation and oppression. So we fought the military industrial complex of the world againsts a small rag tag group of fugitive Mageborn. With none of the training the Complex affords to it’s slaves. 200 years later we won. But is it a new day, or just the begining of a new cycle of violence. Only time will tell.
My Blog is on the Fedi
Yes I wrote this post mostly to see if it would propagate correctly 😀
Speaking of Time
I’ve gotta go let the cable guy in to fix the Internet
In our last adventure we got SlowCGI working under Ubuntu. That was great. But one must wonder Why? Well I did it because I wanted to learn how to make web applications in pure C. Both to swat up on my rusty skills in C, and for no other reason than I want to learn the skill. You see about 10 years ago I interned at a mid sized enterprise cloud provider with roots going back to the late 90s. During which they produced some of the first web applications for the Federal and State Governments. They were all done in pure ANSI C89. Why Because none of the web technologies of those days think Perl, and PHP 2.0, ColdFusion. Could work at the scale required, this was common in the early days, from what I gather. Yahoo Stores for example was written in LISP for example.
A bucket list item
My mind was blown when one of my supervisors showed me the contents of their old CVS repos. And it’s been on my programing bucket list to learn how to do webapps the old fashioned way. Thus my port of SlowCGI to make it possible. And recently i’ve completed my first dynamic web toy in C. It’s here source is here. Output example here
Notes on CGI in C
These are my notes on the pitfalls of it. First off you really want CFLAGS set to -Wall -Werror when doing this sort of thing because the compiler will allow you to do some pretty stupid stuff that will result in segfaults otherwise. But that’s true of almost every C program i find. For those not in the know -Wall -Werror is a mode in modern C compilers which will warn you about code that is potentially problematic. And then treat those warnings as compiler errors. Think of it like training wheels for the C compiler. Granted not all warnings are valid, especially in older code. But for those returning to C after 10 years it’s a god send
I didn’t have this turned on my first try. So I spent an good two hours trying to figure out why segfaults? They were happening despite my use of only safe string functions and very early on in the program. With -Wall -Werror enabled I found out my strings weren’t being initialized properly, because of C’s order of operations.
This needs a better method of parsing form data. I use a rather bone headed method, that while safe from a memory access perspective. It can’t decode spaces in the form data for example.
We also really need some sort of template engine, Editing Strings in a C file, every time the html needs to change sucks
I hope someone gets something out of my silly little hobby project.
I make no secret of the fact I hate modern Web Development stacks. It doesn’t matter what language or framework it is. I hate it all equally, I hate PHP even more. Flask sucks less then all the others. But it still sucks. Granted I still use modern web tools, money, and food dull the pain slightly. As does the opportunity to abuse sqlite in ways it’s designers would find horrifying.
Why do I hate modern web stuff so much you might ask. Easy too much boilerplate, and deployment is a nightmare. The programs I want to expose to the web are usually silly little one offs. Most of what i want to do web doesn’t even merit a database connection. Let alone a full model view controller stack, containers, an ingress controller uWSGI and all the other goop, that one simply must have.
Once Upon a Time
It used to be simple to write web applications here’s an example
Ok What’s going on here. Well It’s easy m’kay. A web program was just a normal program which prints out http headers followed by a blank line, followed by whatever generated content you wanted. HTTP info was stored in well documented environment variables, and the program had to return a success code on exit. To use just compile, upload and presto. No docker or proxy passing required. This was called the Common Gateway Interface, and it was the backbone of dynamic content on the web for 15+ years. Heck Most modern web stacks just build or elaborate on this simple protocol
Why did things change?
Scalability, Security, and so forth. CGI as originally implemented spawned a separate process for each request sent to the server. Which could bog down busy sites quite easily. On the security side. Well I won’t go into it here but this article is quite nice if you want to look into it yourself.
But as I said above I hate the modern web, Most of it is overkill for the stuff i do. I know the security risks involved in using classic methods, and scalability concerns for the sites hosted here is a problem I’d love to have. So the question then becomes
How to get Classic CGI working on a modern webserver, by which I mean Nginx
<Troll> Why not Just switch to Apache CGI works great over there
I’m not switching back to Apache because I don’t like the memory hogging tendencies or the configuration file format is just bad m’kay.
<Troll> What is Nginx, I thought everyone used Apache
Nginx is a webserver sorta like Apache. In fact it is currently the most deployed webserver on the internet, it surpassed Apache in that role in about 2016 as I recall. Here’s the latest survey data I could find.
Nginx is much faster, and much less of a resource hog than Apache. But for present purposes there’s a problem Nginx has no ability to serve dynamic content on it’s own. Meaning no cgi support, no php support no nothing. What Nginx can do is pass http requests to so called application servers sitting behind it. Either through a protocol called FastCGI/WSGI, or a plain old reverse proxy. When it gets a result, it does some quick header rewriting and displays that to the user. This saves resources, has security benefits and also allows you to scale and load balance application, should you become the next Facespace or something. All this is great, and most people love it like 80% of the time the other 20% being used to curse out the inevitable 502 Bad Gateway Errors which you will get if you try to do some of the more advanced Nginx tricks.
From this description it should seem obvious what we have to do. Find an application server for use with Nginx that runs old style CGIs. Configure it, and profit.
From my configuration snippet above You’d think this would be simple, but it turns out until about whenever this post goes up it wasn’t. There’s not much reliable documentation on how to do it, and what exists is either old, or very distro specific. So I decided to work this out on my own with a little help from IRC as usual thanks xwindows.
So our first hurdle is as mentioned the application server piece. Turns out there are two appservers that allow you to run legacy CGI applications. One is known as fcgiwrap, and one is called SlowCGI
Both have problems as it turns out fcgiwrap is nearly unsupported, and after two hours of fiddling I couldn’t get it to work on Ubuntu 20.04. Although it works great under Fedora so there’s that. :P.
SlowCGI is actively supported by the folks at OpenBSD, but is alas an openBSD exclusive application. So to make it work i needed yo port it to Linux. Which turned out to be trivial, heck most of the work was already done WAY back in 2018.
I just needed to sync the code with upstream and make a few changes to Makefiles systemd units and so forth.
The most painful part of the port was figuring out the Ubuntu/Debian used LDLIBS instead of LDFLAGS. Which took about an hour of googling to figure out.
The last bit was making the systemd unit file work on Ubuntu, and configuring Nginx to use it. Which you can see above
Be careful with this legacy CGIs have security implications beyond just Shellshock. In the default configuration anything which the webserver has permission to read/write can also be read/written by the CGI program.
Also worth noting is the fact that SlowCGI is less tolerant of badly coded scripts. Be sure to send at least a Content-Type header, and the all important blank line at the end of headers, or you’ll get the dreaded 502 error, with only cryptic messages in the log to guide you.
If i ever follow up this post I will include information about how to use BubbleWrap to mitigate some of the security concerns.
I hear it be the fashion among young, hip open source professionals to post status updates on their blogs, every month. So I thought I’d try it for myself.
The main thrust of my a11y work this month has been to get my rather obscure custom reader program vsss into a state where other people who are not me can use it. You can download the patched version from both Github and SourceHut now. The documentation still needs work and i’ll be getting there shortly. So Watch out for that in coming weeks.
I created a new mailing list called disabled-linuxing for peer support of users with unconventional assistive tech needs. Go subscribe I hate talking to myself in public.
I’ve also been testing the latest distro releases well Debian, and Fedora at any rate for compatibility with the good olde MATE+Compiz accessibility setup that I’ve used since 2009, and results have been. Let’s call it mixed. Look for that document in the coming days.
Lastly I’m working on a document on how to upgrade from Fedora 33 to a release using pipewire. In the case you are still dependent on a Software Speech Synthesizer named after a bird.
Mental Health Outreach
I completed my first foray into this by posting about my experience with depression or bipolar depression in a technical setting. I am unsure how to follow it up without trauma dumping on my audience. Any Ideas hit me up in the usual places,
I started another new project this month. I know i should finish MasterText. But it’s just not gelling for me at the moment so I decided to put it aside and work on something else for a bit. Over in my staging area you’ll find rabbitears an IRC client module for python.
I’ve wanted to find a Linux distro to contribute to again, but things just won’t come together on that front. I’ve looked at Fedora, and Alpine and all the community there is lovely, but i just don’t see what i’d do there anymore. Anyone know of any small upstreams that could use a neurodivergent developer with a little bit of rust on the skillset.
Other than the above mentioned writings. I have a couple of church projects still ongoing, and my semi-annual attempt at fiction.
Thanks to all the people who have been so supportive as I get my feet back under me in the open source/tech world. Couldn’t be doing any of this without the tildeverse and associated communities . Love all you lovely people.