Compare commits
10 commits
cf478cd095
...
1dc24d57b5
Author | SHA1 | Date | |
---|---|---|---|
1dc24d57b5 | |||
2acb8ad309 | |||
a51ff6dd6b | |||
b6d382f15c | |||
9db00b3357 | |||
abdc0316b1 | |||
e1c7eb047b | |||
ece8794417 | |||
72fd5f0ffd | |||
75023b6eb6 |
4
.domains
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
mayvaneday.org
|
||||||
|
www.mayvaneday.org
|
||||||
|
mayvaneday.art
|
||||||
|
www.mayvaneday.art
|
|
@ -29,5 +29,10 @@
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
<script data-goatcounter="https://stats.letsdecentralize.org/count"
|
||||||
|
async src="//stats.letsdecentralize.org/count.js"></script>
|
||||||
|
<noscript>
|
||||||
|
<img src="https://stats.letsdecentralize.org/count?p=/blog/2019/august/consumption.html">
|
||||||
|
</noscript>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,57 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>Death Of A Gopher - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../../../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<script src="../../../checktor.js"></script>
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>Death Of A Gopher</h1></p>
|
|
||||||
<p>published: 2019-12-14</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p>The wire bars of the <a href="../../../poetry/g/the-golden-cage.txt">golden cage</a> bend open just a little farther, enough for me to stick my head out: I have a job now! A part-time job, I should clarify, so I won't be able to move out anytime soon, but the tiny sprout of <em>something</em> is better than the black hole of <em>nothing</em>.</p>
|
|
||||||
<p>The new revenue stream means that, unless something catastrophic happens like a mass deplatforming or getting fired, MayVaneDay can stay on its own stable VPS indefinitely.</p>
|
|
||||||
<p>Thanks to college payments, my bank balance dropped below a comfortable amount sometime in October, so I moved everything to the Raspberry Pi on my desk in my room for the following two months since it would be free. Surprisingly enough, even though IPv4 was blocked to hell, IPv6 was completely open, so I could run whatever the hell I wanted!</p>
|
|
||||||
<p>Except for pygopherd. Because pygopherd only supported IPv4. So my Gopher mirror was shot to hell, and because there's no point in updating a mirror that nobody can use, I let the whole thing fall into disrepair. Everything else I struggled to keep online since the router at home likes to periodically disconnect every device and refuse to let them back on for hours on end, so I put a line in the crontab to reboot the Pi at midnight every night to force it to reconnect and crossed my fingers that the ZeroNet mirror would finally get some seeders.</p>
|
|
||||||
<p>Which it did, thanks to <a href="https://archive.md/20200821214932/http://misc-stuff.terraaeon.com/articles/miss-old-internet.html">a little exposure</a>! And it was easier to maintain than Gopher, since all I had to do was change all the absolute links to relative links, as opposed to Gopher where I had to also strip out all the images and CSS (since most everyone views Gopher in a terminal, and what would be the point of transmitting things they couldn't see?) That would be "bloat". And everyone hates <a href="../august/consumption.html">"bloat"</a>.</p>
|
|
||||||
<p>Why? Why should I care about bloat? Who even defines "bloat", anyway? Some <a href="https://archive.md/20200821215101/https://regularflolloping.com/posts/slow-down/">authoritarian jerk who can't even be fucked to use proper grammar</a>? Is "bloat" defined by lines of code, or megabytes of RAM used, or the mental strain required to remember how to use the program? Sure, most of us can agree that Windows 10 with all the spyware options enabled with five browsers and seventeen autostart-on-boot programs <del>and one of those unironically being Discord</del> is bloat, but where do we draw the line from there? Where does the red side of the spectrum line officially turn blue? At the beginning, where it's no longer pure #FF0000? Only when it's pure #0000FF, and we've devolved into cavemen using stick figure pictures to communicate with each other? But aren't pictures bloat? Or is it language? Speaking? Writing? <em>Thinking?</em></p>
|
|
||||||
<p>It can't be <a href="../april/run-every-day.html">being dead</a>, for part of decomposing is <a href="https://archive.md/20200821215250/https://sciencing.com/the-stages-of-the-human-decomposition-process-12757794.html">intestinal bacteria producing gases</a>, which makes one rather... bloated.</p>
|
|
||||||
<p>Maybe I want decadence! Maybe I want lavish websites with pleasing color schemes and little image icons as buttons! (Given that the buttons have alt text, of course.) Maybe I want reflowable text and custom fonts that won't break the UI! Maybe I want <a href="https://weirdiverse.mayvaneday.art">pages with a thousand faces</a> that reinvent themselves every page load! Maybe I want websites that I can zip up in a single archive and throw wherever I damn please, instead of asking permission from some purposely convoluted database!</p>
|
|
||||||
<p>Maybe I want the crazy and macabre, the <a href="../../../poetry/l/lumo-en-vivo.txt">spirited and alive</a>!</p>
|
|
||||||
<p>And maybe I want transport security too, which Gopher seems to have a <a href="https://archive.md/20200821215459/https://gopher.tildeverse.org/zaibatsu.circumlunar.space/0/~solderpunk/phlog/why-gopher-needs-crypto.txt">little problem with</a>. And the <a href="https://archive.md/20200821215625/https://gopher.tildeverse.org/zaibatsu.circumlunar.space/1/~solderpunk/gemini">proposed fix</a>, which I must admit is the best fix to Gopher possible without scrapping the whole thing and reinventing HTTP, can't be easily implemented because of all those ancient machines bogging everyone else down. And heaven forbid we leave <em>them</em> out. Seriously, a protocol with <em>absolutely no transport security</em>- what kind of a braindead idea is Gopher? Are you okay with having every word thrown down the pipe accessible to your ISP to log and peer into and inject whatever they want into it? And signing every post with PGP won't help, since your key would also be transmitted in plaintext: if your government <em>really</em> wanted to fuck you over, they could just make your ISP reroute all requests to that particular Gopher server to their own and substitute their own PGP keys, and you'd be none the wiser. There would be no possible trust that a specific post was written by a specific person, unless you'd received their keys through a different, more secure channel. In which case: what's the point?</p>
|
|
||||||
<p>Security through obscurity is no security at all, and I've lived enough of my life as an insecure sniffling little imitation of a human being.</p>
|
|
||||||
</div>
|
|
||||||
<hr />
|
|
||||||
<div class="box">
|
|
||||||
<p>In tangentially related news, I'm deleting my Github and Keybase accounts.</p>
|
|
||||||
<p>I've already known of the <a href="https://archive.md/20200821215750/https://www.theverge.com/2018/10/26/17954714/microsoft-github-deal-acquisition-complete">Microsoft acquisition</a> for some time now. But the main problem with Github is the network effect: without an account, one can't easily submit bug reports or pull requests. My Github page has mainly sat abandoned since that one Python class I took last year at college, the exception being the aforementioned bug reports.</p>
|
|
||||||
<p>I signed up for Keybase at the start of <a href="../../../poetry/o/october-7-2018.txt">October of 2018</a>, right after the explosive aftermath of the Lucine saga, where I was worried that one of the Tumblrites I'd pissed off would start impersonating me in attempts to get me in trouble with the law. My line of thought was that, if I had some kind of centralized official service where I could prove exactly what websites and social media accounts I was in control of, the likelihood of someone else to successfully put on my personage like a meat puppet would be effectively zero.</p>
|
|
||||||
<p>So why leave now?</p>
|
|
||||||
<p>Long story short:</p>
|
|
||||||
<ul>
|
|
||||||
<li>Keybase made a big deal about their <a href="https://web.archive.org/web/20190915210946/https://keybase.io/a/i/r/d/r/o/p/spacedrop2019">Stellar airdrop</a>. Woo! Everyone gets up to $500 in free cryptocurrency! I wake up one morning, and suddenly I'm $20 richer.</li>
|
|
||||||
<li>A shitton of spam bots sign up for Keybase, Github, and Hacker News. The latter two complain to Keybase, who <a href="https://web.archive.org/web/20191009002412/https://keybase.io/a/i/r/d/r/o/p/spacedrop2019">cancels the October airdrop</a> and changes the requirements to receiving an SMS from a relatively short list of countries, notable for essentially saying "fuck you" to anyone living in Canada.</li>
|
|
||||||
<li>Stellar, the cryptocurrency they were giving out, peaks for a few days (around $0.08) and then plummets (to $0.05).</li>
|
|
||||||
<li>The spam bots <a href="https://archive.md/20200821220001/https://www.whiskey-tango.org/2019/11/keybase-weve-got-privacy-problem.html">get</a> <a href="https://web.archive.org/web/20200408155300/https://github.com/keybase/keybase-issues/issues/3546">worse</a>, sending unsolicited messages and requests for payment. Yours truly got a few spam followers, but no weird messages.</li>
|
|
||||||
<li>Keybase, feeling the heat, says "fuck it" and <a href="https://web.archive.org/web/20191213195655/https://keybase.io/a/i/r/d/r/o/p/spacedrop2019">cancels the whole airdrop</a> so nobody gets anything after 2019 ends.</li>
|
|
||||||
</ul>
|
|
||||||
<p>Which would be all fine and dandy if Keybase had <em>asked</em> users if they had wanted to participate first, instead of automatically adding a Stellar wallet to every account the first month of the airdrop. <b>Keybase took the private keys of its users and <a href="https://archive.md/20200821220224/https://sneak.berlin/20190929/keybase-backdoor/">automatically signed a payment address onto their profiles without their consent</a>, which <i>they themselves</i> <a href="https://archive.md/20200821220516/https://keybase.io/blog/2014-10-08/the-horror-of-a-secure-golden-key">define as a backdoor</a>. And <a href="https://archive.md/20200821220646/https://github.com/keybase/client/issues/15555">there is currently no way to remove the Stellar wallet from one's profile</a>.</b></p>
|
|
||||||
<p>And while Keybase technically lets you have the secret keys to the Stellar wallet, meaning one could theoretically use a different wallet app, the issue remains that none of this should have happened without the users' consent- and that Keybase violated it for a glorified promotion.</p>
|
|
||||||
<p>If they have the ability to do <em>this</em>, even if it's for (disputably) benevolent purposes, what's to stop them from getting malicious in the future?</p>
|
|
||||||
<p>There are smaller issues with Keybase as well. The desktop app doesn't work on Tails, for one. The FUSE filesystem mounts automatically and doesn't seem to be removable, which can mess up <code>df -h</code> counts, even though technically Ubuntu's Snap system has the same problem. And, the most egregious one in my eyes, is that <em>it's centralized</em>.</p>
|
|
||||||
<p>There is no further reason for me to be using Keybase or Github, and the upcoming new decade is the perfect excuse to do some <del>spring</del> winter cleaning.</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -17,8 +17,8 @@
|
||||||
<hr>
|
<hr>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<p><h2>Webkinz, eleven years on</h2></p>
|
<p><h2>Webkinz, eleven years on</h2></p>
|
||||||
<p>April 26, 2008. The birthday party mere days before my eighth birthday. First grade- or maybe second; I can’t keep track of time- girls sitting in my living room upstairs, opening presents, having a good time.</p>
|
<p>April 26, 2008. The birthday party mere days before my eighth birthday. First grade- or maybe second; I can't keep track of time- girls sitting in my living room upstairs, opening presents, having a good time.</p>
|
||||||
<p>One of them gave me a little blue hippo for some online game I’d never heard of before. And when all the girls left and the dread of writing all those thank-you notes settled into my chest, I sat down with my parents and signed up with the little code in the tag affixed to the hippo’s paw.</p>
|
<p>One of them gave me a little blue hippo for some online game I'd never heard of before. And when all the girls left and the dread of writing all those thank-you notes settled into my chest, I sat down with my parents and signed up with the little code in the tag affixed to the hippo’s paw.</p>
|
||||||
<p>Webkinz is a standard game geared for little kids where you can adopt a pet and decorate a house and play shoddy Flash games to earn in-game currency. What separated it from the other dime-a-dozen MMORPGs for kids at the time I joined, however, was the fact that you <em>had</em> to buy a physical stuffed animal in order to receive a code to join, and that you <em>had</em> to keep buying these at least once a year to keep your account alive. If you couldn't afford to buy one in time, or simply forgot, then your account was deactivated and placed in a short waiting period before it was permanently deleted. Because of the forced paywall, the servers could afford to stay open, and so there was only one tier of membership. A few years in, and the company introduced “Deluxe” accounts, which at the time only meant a fancy gold hat you could put on your virtual pet and access to a separate store and a few extra social features. Not that it mattered much to me, since I could play all the games I wanted, and whatever exclusive items I wanted I could scam out of the Deluxe players in the trading rooms with a little bit of effort. Some of those items, like a kimono and a tornado in a pot and a few vehicles, still sit scattered around my inventory and my house to this day.</p>
|
<p>Webkinz is a standard game geared for little kids where you can adopt a pet and decorate a house and play shoddy Flash games to earn in-game currency. What separated it from the other dime-a-dozen MMORPGs for kids at the time I joined, however, was the fact that you <em>had</em> to buy a physical stuffed animal in order to receive a code to join, and that you <em>had</em> to keep buying these at least once a year to keep your account alive. If you couldn't afford to buy one in time, or simply forgot, then your account was deactivated and placed in a short waiting period before it was permanently deleted. Because of the forced paywall, the servers could afford to stay open, and so there was only one tier of membership. A few years in, and the company introduced “Deluxe” accounts, which at the time only meant a fancy gold hat you could put on your virtual pet and access to a separate store and a few extra social features. Not that it mattered much to me, since I could play all the games I wanted, and whatever exclusive items I wanted I could scam out of the Deluxe players in the trading rooms with a little bit of effort. Some of those items, like a kimono and a tornado in a pot and a few vehicles, still sit scattered around my inventory and my house to this day.</p>
|
||||||
<p>Somewhere along the way, probably with my transition into middle school, I forgot about the whole place. Desperately sought to make my own online game with my nonexistent coding skills, and failed every time. My stuffed animals got packed away into a storage box when we moved houses, and stayed forgotten. It must have been the summer after I graduated from high school, then, that I remembered that Webkinz existed, and logged in to find that I had been demoted to a free tier.</p>
|
<p>Somewhere along the way, probably with my transition into middle school, I forgot about the whole place. Desperately sought to make my own online game with my nonexistent coding skills, and failed every time. My stuffed animals got packed away into a storage box when we moved houses, and stayed forgotten. It must have been the summer after I graduated from high school, then, that I remembered that Webkinz existed, and logged in to find that I had been demoted to a free tier.</p>
|
||||||
<p>Oh yeah, there was a free tier! And the “normal” tier was now a standard membership, and Deluxe members still got to strut around with their exclusive items and unwarranted self-importance like they always had. And half of the wallpapers in my house were gone, deleted long after they were “retired” to make space in the shop for the new Deluxe-only items along with most of the items in those rooms. And a good two-thirds of the arcade games I used to spend hours upon hours playing were paywalled, and my privileges to KinzChat Plus, which was the free-for-all typing mode in the social areas instead of stringing together pre-made sentences, were revoked. My house, once a thematic wonderland with a little school and a massive kitchen and bedrooms for each pet sorted by species and theme, was a barren wasteland.</p>
|
<p>Oh yeah, there was a free tier! And the “normal” tier was now a standard membership, and Deluxe members still got to strut around with their exclusive items and unwarranted self-importance like they always had. And half of the wallpapers in my house were gone, deleted long after they were “retired” to make space in the shop for the new Deluxe-only items along with most of the items in those rooms. And a good two-thirds of the arcade games I used to spend hours upon hours playing were paywalled, and my privileges to KinzChat Plus, which was the free-for-all typing mode in the social areas instead of stringing together pre-made sentences, were revoked. My house, once a thematic wonderland with a little school and a massive kitchen and bedrooms for each pet sorted by species and theme, was a barren wasteland.</p>
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>So I guess I'm gender-critical now - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../../../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<h1>So I guess I'm gender-critical now</h1>
|
|
||||||
<p>published: 2019-05-23</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p>I am biologically female.</p>
|
|
||||||
<p>That's not hate speech. I was born female. I have female genitals. Had I been born a male, my parents would have had me circumcised, but instead I was a girl, so I was spared for the time being. I was raised female, with all the emotional trappings and socialization and enforced femininity that comes as such. I grew up with the societal expectation that I would get married to a man and have children and live a standard suburban life, an expectation that the vast majority of people in my life still operate under despite being quite vocal in recent years that I have no intention of reproducing.</p>
|
|
||||||
<p>At the end of 2014, after my first girlfriend cheated on me (which I don't want to elaborate on), I came out as bisexual to my parents and slowly my friends (at the time). Starting the summer of 2016, as the sudden fluxes of puberty settled into something resembling the rhythm of womanhood and my dysphoria flared up in response, I toyed with the idea of being nonbinary.</p>
|
|
||||||
<p>Labels are not intended to be permanent once first applied. Not to political positions, or religious affiliation, or things like gender or sexuality. Labels are for accurately describing experiences. One's loyalty should be to reflecting the truth of themselves, not clinging to labels as if they were the last lifeboats leaving the Titanic. If that means changing the labels one uses as shorthand for all the intricacies of themselves, then so be it.</p>
|
|
||||||
<p>As my time at college draws to a close, I've been doing a lot of self-reflection. Who I am, where I want to go on life. And as it turns out, I'm... not attracted to men. All the men I've ever been attracted to have been fictional, far out of my social standing, or held power over me in some capacity. Either they had no capacity to actually hurt me, or they did, and my subconscous mind thought that, if I got close to them, I would somehow be "spared" from whatever danger it was picking up on. Not actual attraction, but a defense mechanism. Hardly something that could <em>ever</em> blossom into a healthy relationship.</p>
|
|
||||||
<p>Even to one not knee-deep in the clusterfuck that is the postmodern gender theory sphere, it's obvious that a woman exclusively attracted to other women is called a... lesbian.</p>
|
|
||||||
<p>An admission to which one might respond, "but what about fem-aligned nonbinary people? You can't tell what gender someone is by looking at them! And what about women who look like men?" To which I would respond, I am not attracted to male genitals. I am not attracted to the male physiology. A masculine woman's presentation will always have that undertone of womanness underneath it, which makes it special, <em>what I'm attracted to</em>, different from a masculine man or any other kind of man. (And there's a whole discourse on biological men who identify as female and are attracted to women and how lesbians should feel about <em>that</em>, and how trans activist rhetoric can get kind of rapey at times concerning this... but that's a post for another day.)</p>
|
|
||||||
<p>And, as it turns out, I'm not nonbinary either. Because the idea of "nonbinary" genders has <a href="http://web.archive.org/web/20200407181140/https://pinifera.tumblr.com/post/183924925858/hey-i-read-soemthing-abt-u-saying-nobinary">been historically used to oppress gender-non-conforming people</a>, and given that there is no definite meaning of what a nonbinary person transitioning would entail, it's kind of a... useless designation. Not to mention that it implies that one could simply "identify" in or out of sex-based oppression: I can barely get the people in my college to address me with they/them pronouns, and they're supposed to be super liberal and accepting about that kind of stuff! Do you <em>really</em> think that some random attacker on the street prowling for his next rape victim is going to care about what a pronoun pin says? I look like a female. I sound like a female. Everything about me screams "female", and no amount of "identifying" as something other than female is going to change biological reality.</p>
|
|
||||||
<p>Societal reasons aren't enough to get me to stop being something. If that were true, you'd still be reading this on a WordPress blog, and I'd have announced that this post went up via Twitter. As for personal reasons... I am still dysphoric. I still have dreams where I have a male body. But now I realize that most of it was because of these societal expectations that I so heavily resent being bound with. The technology side of the sphere on the internet that I inhabit (or used to inhabit, anyway) is heavily male-dominated. Back during the summer of 2018, when I was struggling through anhedonia, I spent a lot of time on chans, where the prevailing culture towards women is generally "tits or GTFO". And society in general, where I'm "too weak" or "too emotional" or "too-lighthearted". Being a man on the internet afforded me status, greater mobility, a greater likelihood of being <em>taken seriously</em>. And despite whatever book titles I use, I've never been great at the whole duality of spirit thing, so my brain took my mental reality and tried to apply it to my physical reality as well. And then, as a result, dysphoria.</p>
|
|
||||||
<p>This isn't to say that I'm a radfem now. A lot of radical feminist rhetoric centers around women and men being two different social classes, collectivizing everyone and their experiences based on their biological sex. There are times when this is <em>greatly</em> useful, like examining religion's misogynistic influence on culture. But I believe in individual rights over all. They are <em>extremely rare</em>, few and far between, but there are genuinely good men in this world. And innocent individuals, no matter if they're male or female, should not have to suffer for the sins of the larger group that they did not personally commit.</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
41
blog/2019/may/gender-critical.html
Executable file
|
@ -0,0 +1,41 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>So I guess I'm gender-critical now - Archive - MayVaneDay Studios</title>
|
||||||
|
<link href="../../../style.css" rel="stylesheet" type="text/css" media="all">
|
||||||
|
<meta name="author" content="Vane Vander">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
</head>
|
||||||
|
<body class="mayvaneday">
|
||||||
|
<article>
|
||||||
|
<div class="box">
|
||||||
|
<h1>So I guess I'm gender-critical now</h1>
|
||||||
|
<p>published: 2019-05-23</p>
|
||||||
|
<p>updated: 2022-11-20</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<p>I am biologically female.</p>
|
||||||
|
<p>That's not hate speech. I was born female. I have female genitals. Had I been born a male, my parents would have had me circumcised, but instead I was a girl, so I was spared. I was raised female, with all the emotional trappings and socialization and enforced femininity that comes as such. I grew up with the societal expectation that I would get married to a man and have children and live a standard suburban life, an expectation that the vast majority of people in my life still operate under despite being quite vocal in recent years that I have no intention of reproducing.</p>
|
||||||
|
<p>At the end of 2014, after my first girlfriend cheated on me, I came out as bisexual to my parents and slowly my friends (at the time). Starting the summer of 2016, as the sudden fluxes of puberty settled into something resembling the rhythm of womanhood and my dysphoria flared up in response, I toyed with the idea of being nonbinary.</p>
|
||||||
|
<p>Labels are not intended to be permanent once first applied. Not to political positions, or religious affiliation, or things like gender or sexuality. Labels are for accurately describing experiences. One's loyalty should be to reflecting the truth of themselves, not clinging to labels as if they were the last lifeboats leaving the Titanic. If that means changing the labels one uses as shorthand for all the intricacies of themselves, then so be it.</p>
|
||||||
|
<p>As my time at college draws to a close, I've been doing a lot of self-reflection. Who I am, where I want to go on life. And as it turns out, I'm... not attracted to men. All the men I've ever been "attracted" to have been fictional, far out of my social standing, or held power over me in some capacity. Either they had no capacity to actually hurt me, or they did, and my subconscious mind thought that, if I got close to them, I would somehow be "spared" from whatever danger it was picking up on. Not <em>actual</em> attraction, but a defense mechanism. Hardly something that could <em>ever</em> blossom into a healthy relationship.</p>
|
||||||
|
<p>Even to one not knee-deep in the clusterfuck that is the postmodern gender theory sphere, it's obvious that a woman exclusively attracted to other women is called a... lesbian.</p>
|
||||||
|
<p>An admission to which one might respond, "but what about fem-aligned nonbinary people? You can't tell what gender someone is by looking at them! And what about women who look like men?" To which I would respond, I am not attracted to male genitals. I am not attracted to the male physiology. A masculine female's presentation will always have that undertone of femaleness underneath it, which makes it special, <em>what I'm attracted to</em>, different from a masculine male or any other kind of male. We can discourse all day about the defintion of the word "woman", but no amount of redefining "woman" as a misogynistic stereotype will make me attracted to a male.</p>
|
||||||
|
<p>And, as it turns out, I'm not nonbinary either. Because the idea of "nonbinary" genders has historically been used to slot gender-non-conforming people into a "failed at assigned gender role" category, and given that there is no definite meaning of what a nonbinary person transitioning would entail, it's kind of a... useless designation. Not to mention that it implies that one could simply "identify" in or out of sex-based oppression: I can barely get the people in my college to address me with they/them pronouns, and they're supposed to be super liberal and accepting about that kind of stuff! Do you <em>really</em> think that some random attacker on the street prowling for his next rape victim is going to care about what a pronoun pin says? I look like a female. I sound like a female. Everything about me screams "female", and no amount of "identifying" as something other than female is going to change biological reality.</p>
|
||||||
|
<p>Societal reasons aren't enough to get me to stop being something. If that were true, you'd still be reading this on a WordPress blog, and I'd have announced that this post went up via Twitter. (Or Mastodon, now that I'm rewriting this post in 2022 and Twitter is up in flames.) As for personal reasons... I am still dysphoric. I still have dreams where I've managed to get a double mastectomy and a perfectly androgynous body and nobody saddles me with the gender role of "woman". But now I realize that most of it was because of these societal expectations that I so heavily resent being bound with. The technology side of the sphere on the internet that I inhabit (or used to inhabit, anyway) is heavily male-dominated. Back during the summer of 2018, when I was struggling through anhedonia, I spent a lot of time on chans, where the prevailing culture towards women is generally "tits or GTFO". And society in general, where I'm "too weak" or "too emotional" or "too-lighthearted". Being a man on the internet afforded me status, greater mobility, a greater likelihood of being <em>taken seriously</em>.</p>
|
||||||
|
<p>If my dysphoria is the result of societal messaging saying that I'm inferior for being a female, then why the hell do <em>I</em> have to change? Why <em>should</em> I? Why should I take hormones and get surgery and make myself into a lifelong medical patient in search for a salvation that will never come? I stand alone in the wilderness, and my desired androgyny feels sterile, lifeless, out of place. I stand alone in the wilderness, and nothing hurts.</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<script data-goatcounter="https://stats.letsdecentralize.org/count"
|
||||||
|
async src="//stats.letsdecentralize.org/count.js"></script>
|
||||||
|
<noscript>
|
||||||
|
<img src="https://stats.letsdecentralize.org/count?p=/blog/2019/may/gender-critical.html">
|
||||||
|
</noscript>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -18,7 +18,7 @@
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<p>The funny thing about elucidation is that everywhere you once thought safe is no longer so.</p>
|
<p>The funny thing about elucidation is that everywhere you once thought safe is no longer so.</p>
|
||||||
<p>For our first example, take my local park. I went on a walk, not too far from my house (probably the only place I could get away from home without breaking out in a sweat, one-way ticket to sensory meltdown) and sat down in the shaded pavilion, where sat three rows of picnic tables.</p>
|
<p>For our first example, take my local park. I went on a walk, not too far from my house (probably the only place I could get away from home without breaking out in a sweat, one-way ticket to sensory meltdown) and sat down in the shaded pavilion, where sat three rows of picnic tables.</p>
|
||||||
<p><i>This area is under surveillance,</i> a sign mounted high up inside the roof greeted me. And, sure enough, on either side of the roof were two black glassy boxes pointed straight at me. And surely the eyes of the state are no better than my parents', and <i>those</i> certainly aren't conducive for writing, so I picked myself up (for luckily I'd seen the cameras before unpacking my stuff to work) and continued walking.</p>
|
<p><i>This area is under surveillance,</i> a sign mounted high up inside the roof greeted me. And, sure enough, on either side of the roof were two black glassy boxes pointed straight at me. And surely the eyes of the state are no better than those of my parents, and <i>those</i> certainly aren't conducive for writing, so I picked myself up (for luckily I'd seen the cameras before unpacking my stuff to work) and continued walking.</p>
|
||||||
<p>The shattered remnants of a pen rest farther down the path, little shards of neon yellow plastic. One can't go a single step without stepping on a strip of asphalt darker than the rest, hasty fix for cracks that just shone right back through anyway.</p>
|
<p>The shattered remnants of a pen rest farther down the path, little shards of neon yellow plastic. One can't go a single step without stepping on a strip of asphalt darker than the rest, hasty fix for cracks that just shone right back through anyway.</p>
|
||||||
<p>I cracked open my window earlier, and a burning scent filled my room. A disused furnace, sleeping dragon awoken from slumber and put back to work despite its groggy mind. And the same cold that beckoned a year ago crept back in, calling, whispering of the same things as it had a year ago back in college: to go outside and see what I could of the world, lest I rot to nothing in my room and discovered that I had survived everything thrown at me so far only to languish and give up and turn to dust.</p>
|
<p>I cracked open my window earlier, and a burning scent filled my room. A disused furnace, sleeping dragon awoken from slumber and put back to work despite its groggy mind. And the same cold that beckoned a year ago crept back in, calling, whispering of the same things as it had a year ago back in college: to go outside and see what I could of the world, lest I rot to nothing in my room and discovered that I had survived everything thrown at me so far only to languish and give up and turn to dust.</p>
|
||||||
<p>Which my mother would have probably liked, since it would mean more material to sacrifice to her pet hedgehogs as bedding. The same fate as my old stack of art paper, a few unfinished journals, hasty heartfelt notes. Gods only know what else has been condemned to a fate of shit.</p>
|
<p>Which my mother would have probably liked, since it would mean more material to sacrifice to her pet hedgehogs as bedding. The same fate as my old stack of art paper, a few unfinished journals, hasty heartfelt notes. Gods only know what else has been condemned to a fate of shit.</p>
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
<p>For our third example, we'll turn the cameras around, and focus on... me. Or, rather, the places I live.</p>
|
<p>For our third example, we'll turn the cameras around, and focus on... me. Or, rather, the places I live.</p>
|
||||||
<p>My friend's house is <i>covered</i> in Amazon Alexas and Google Homes. Every device has voice controls turned on. Always listening, always reporting everything to their respective corporations. And my mother- my <i>mother</i>, of all people- has made fun of them for this, for consenting to the auditory cameras, but they just shrug it off every time.</p>
|
<p>My friend's house is <i>covered</i> in Amazon Alexas and Google Homes. Every device has voice controls turned on. Always listening, always reporting everything to their respective corporations. And my mother- my <i>mother</i>, of all people- has made fun of them for this, for consenting to the auditory cameras, but they just shrug it off every time.</p>
|
||||||
<p>And the air grows frigid around us. Where once sparks flew and we spent hours thinking they were only mere minutes between us, the sparks go out, and I count the minutes until we go home, feigning a smile and going through the same routines in Minecraft for the millionth time.</p>
|
<p>And the air grows frigid around us. Where once sparks flew and we spent hours thinking they were only mere minutes between us, the sparks go out, and I count the minutes until we go home, feigning a smile and going through the same routines in Minecraft for the millionth time.</p>
|
||||||
<p>At home- or the place I spend most of my time in, for <i>true home</i> is lost to me forever- the surveillance is less thick. No Alexas disgrace the air, but everyone except for me is apparently too lazy to use their device keyboards, opting for voice dictation instead. Asking Siri the most ridiculous questions for the sole purpose of making me miffed, laughing to themselves when I refuse to consent to Apple analyzing whatever noises I make and leave the room.</p>
|
<p>At home- or the place I spend most of my time in, anyway- the surveillance is less thick. No Alexas disgrace the air, but everyone except for me is apparently too lazy to use their device keyboards, opting for voice dictation instead. Asking Siri the most ridiculous questions for the sole purpose of making me miffed, laughing to themselves when I refuse to consent to Apple analyzing whatever noises I make and leave the room.</p>
|
||||||
<p>But something more sinister is lurking beneath the surface. I... I can't seem to concentrate in the confines of my home anymore. The first third of this post was drafted at the park, and these last two seem to be some mere moment of respite, some sweet relief. I don't know if it's a psychic attack, willing or not, or my subconscious forcing me out of a place I swore I'd be out of forever just a year ago, or something else...</p>
|
<p>But something more sinister is lurking beneath the surface. I... I can't seem to concentrate in the confines of my home anymore. The first third of this post was drafted at the park, and these last two seem to be some mere moment of respite, some sweet relief. I don't know if it's a psychic attack, willing or not, or my subconscious forcing me out of a place I swore I'd be out of forever just a year ago, or something else...</p>
|
||||||
<p>But I keep all my devices encrypted, full disk whenever possible, and I wipe and reinstall everything regularly, for I'll be damned if the cameras become real. Even if this is the only way to resist the golden cage, in such a seemingly insignificant area, I keep it close to my heart.</p>
|
<p>But I keep all my devices encrypted, full disk whenever possible, and I wipe and reinstall everything regularly, for I'll be damned if the cameras become real. Even if this is the only way to resist the golden cage, in such a seemingly insignificant area, I keep it close to my heart.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
<p>But I bring you readers here today on my twentieth birthday, or whenever you read this (for the written word cares not about the linear aspect of time), to witness me make my own vow. I offer it to none other than myself, just as binding as those words spoken at the altar to hoped and hopeful.</p>
|
<p>But I bring you readers here today on my twentieth birthday, or whenever you read this (for the written word cares not about the linear aspect of time), to witness me make my own vow. I offer it to none other than myself, just as binding as those words spoken at the altar to hoped and hopeful.</p>
|
||||||
<p>It is said that a person who enters into association with any group, codified or not, will inevitably end up assuming at least some of their values. This happens regardless of whether or not the person wants this to happen, or if they are even aware that they are slowly being absorbed into the collective.</p>
|
<p>It is said that a person who enters into association with any group, codified or not, will inevitably end up assuming at least some of their values. This happens regardless of whether or not the person wants this to happen, or if they are even aware that they are slowly being absorbed into the collective.</p>
|
||||||
<p>When I was with the Tumblr otherkin, I simped for the Tumblr otherkin. And they led me away from myself, ensnared in the promise of companionship and a shared pining for an inaccessible past.</p>
|
<p>When I was with the Tumblr otherkin, I simped for the Tumblr otherkin. And they led me away from myself, ensnared in the promise of companionship and a shared pining for an inaccessible past.</p>
|
||||||
<p>When I was with the <a href="https://web.archive.org/web/20200430180226/https://regularflolloping.com/posts/chippies/">chippies</a>, I simped for the chippies. And they led me away from myself, ensnared in the promise of companionship and a shared hatred of <a href="../../2019/december/death-of-a-gopher.html">software bloat</a>.</p>
|
<p>When I was with the <a href="https://web.archive.org/web/20200430180226/https://regularflolloping.com/posts/chippies/">chippies</a>, I simped for the chippies. And they led me away from myself, ensnared in the promise of companionship and a shared hatred of software bloat.</p>
|
||||||
<p>When I was with the <a href="https://web.archive.org/web/20200425015851/https://gopher.tildeverse.org/circumlunar.space">Gopher Gang</a>, I simped for the Gopher Gang. And they led me away from myself, ensnared in the promise of companionship and a shared hatred for the excesses of the modern internet.</p>
|
<p>When I was with the <a href="https://web.archive.org/web/20200425015851/https://gopher.tildeverse.org/circumlunar.space">Gopher Gang</a>, I simped for the Gopher Gang. And they led me away from myself, ensnared in the promise of companionship and a shared hatred for the excesses of the modern internet.</p>
|
||||||
<p>Over and over and over again, I find myself joining groups and communities in the vain hopes that they will augment myself, allow myself to be more than what I envision I can be. Sometimes I even do it on purpose out of boredom. I tittilate myself for hours on end with treatises and theories on the extreme fringes of the political spectrum, wandering from anarcho-capitalism to their communist-and-adjacent brothers to the rolling plains of nomadism, coming home to agorism, falling down a stone well into the underworld and anarcho-nihilism and accelerationism. I wander in the shadowy valleys of state-ambivalent egoism and I crawl in the harsh nigh-blinding light of the Kybalion.</p>
|
<p>Over and over and over again, I find myself joining groups and communities in the vain hopes that they will augment myself, allow myself to be more than what I envision I can be. Sometimes I even do it on purpose out of boredom. I tittilate myself for hours on end with treatises and theories on the extreme fringes of the political spectrum, wandering from anarcho-capitalism to their communist-and-adjacent brothers to the rolling plains of nomadism, coming home to agorism, falling down a stone well into the underworld and anarcho-nihilism and accelerationism. I wander in the shadowy valleys of state-ambivalent egoism and I crawl in the harsh nigh-blinding light of the Kybalion.</p>
|
||||||
<p>But they are all as a spider inviting a butterfly into its web under pretenses of holding a lovely conversation. A beautiful guest enters a beautiful house, slowly being bound and prepared for annihilation all the while.</p>
|
<p>But they are all as a spider inviting a butterfly into its web under pretenses of holding a lovely conversation. A beautiful guest enters a beautiful house, slowly being bound and prepared for annihilation all the while.</p>
|
||||||
|
@ -39,5 +39,10 @@
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
<script data-goatcounter="https://stats.letsdecentralize.org/count"
|
||||||
|
async src="//stats.letsdecentralize.org/count.js"></script>
|
||||||
|
<noscript>
|
||||||
|
<img src="https://stats.letsdecentralize.org/count?p=/blog/2020/april/vow.html">
|
||||||
|
</noscript>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<p>Searching for a webhost without any kind of social aspect, I eventually returned to <a href="https://archive.md/https://www.freehostingeu.com/">the very first (actual) host I had ever used</a> four days later and <a href="../../../poetry/o/october-7-2018.txt">immediately went back to writing</a>. It would be a few more days before I would discover Keybase, which carried me until I got access to my bank account and could finally rent my own VPS.</p>
|
<p>Searching for a webhost without any kind of social aspect, I eventually returned to <a href="https://archive.md/https://www.freehostingeu.com/">the very first (actual) host I had ever used</a> four days later and <a href="../../../poetry/o/october-7-2018.txt">immediately went back to writing</a>. It would be a few more days before I would discover Keybase, which carried me until I got access to my bank account and could finally rent my own VPS.</p>
|
||||||
<p>The <a href="../july/html.html">very first website I had ever written was actually an online game</a>. I made several, each just as broken as the last: first a clone of Webkinz (which never really panned out beyond a mockup in PowerPoint), then of Howrse and Babydow after I got banned for spamming Christian propaganda on the forums, then of a generic pet care game. There were no actual server-side mechanics to control anything; I would have to go in and manually update the HTML every day after checking about a hundred different page view counters and recalculating each entity's stats.</p>
|
<p>The <a href="../july/html.html">very first website I had ever written was actually an online game</a>. I made several, each just as broken as the last: first a clone of Webkinz (which never really panned out beyond a mockup in PowerPoint), then of Howrse and Babydow after I got banned for spamming Christian propaganda on the forums, then of a generic pet care game. There were no actual server-side mechanics to control anything; I would have to go in and manually update the HTML every day after checking about a hundred different page view counters and recalculating each entity's stats.</p>
|
||||||
<p>Funnily enough, it was a youth group pastor at my old church who introduced me to blogging. He had asked me one night early in seventh grade if I could make a website for him. Excited, I spent the next week slavishly gathering all the website-making resources and tutorials I could- and then, come the actual night, he shrugged his shoulders and said he had just gone ahead and signed up for Google's Blogger. I think that was the start of my resentment towards him. I never had enthusiasm for Wednesday night youth group ever again.</p>
|
<p>Funnily enough, it was a youth group pastor at my old church who introduced me to blogging. He had asked me one night early in seventh grade if I could make a website for him. Excited, I spent the next week slavishly gathering all the website-making resources and tutorials I could- and then, come the actual night, he shrugged his shoulders and said he had just gone ahead and signed up for Google's Blogger. I think that was the start of my resentment towards him. I never had enthusiasm for Wednesday night youth group ever again.</p>
|
||||||
<p>I stayed on Blogger until about early 2015, when I jumped ship to WordPress. Not because I knew anything about Google's evils yet- that would take another year for me to realize- but because my parents had <a href="https://mars.mayvaneday.org/blog/2019/0919.html">threatened once to contact Google's support team in order to hijack my account</a> if I did not acquiesce to their censorship. The more spread out my online presence was, the harder it would be for my parents to push one button to shut it all down the moment I said something they did not like.</p>
|
<p>I stayed on Blogger until about early 2015, when I jumped ship to WordPress. Not because I knew anything about Google's evils yet- that would take another year for me to realize- but because my parents had threatened once to contact Google's support team in order to hijack my account if I did not acquiesce to their censorship. The more spread out my online presence was, the harder it would be for my parents to push one button to shut it all down the moment I said something they did not like.</p>
|
||||||
<p>Of course, it didn't take them long to find the WordPress blog I had set up. But I persisted. And after I had deleted my Facebook account, it was like my parents' knowledge of my having a website completely vanished from their consciousness, as if, without it spoonfed to them in their home feed, it was outside of their electronic myopia, had ceased to exist altogether.</p>
|
<p>Of course, it didn't take them long to find the WordPress blog I had set up. But I persisted. And after I had deleted my Facebook account, it was like my parents' knowledge of my having a website completely vanished from their consciousness, as if, without it spoonfed to them in their home feed, it was outside of their electronic myopia, had ceased to exist altogether.</p>
|
||||||
<hr />
|
<hr />
|
||||||
<p>"Xeper" is an <a href="https://archive.md/https://en.wikipedia.org/wiki/Temple_of_Set#Self-deification_and_Xeper">Egyptian hieroglyphic term</a> that roughly means "to come into being", mainly as an act of apotheosis. It stands in opposition to traditional occultic practices, namely the Hermetic ones, where one is expected to surrender their sense of self and subsume themselves into some higher entity: THE ALL, God, the universe, whatever other names collectivists have given it. It is not a one-time action, but instead a continual process, a constant state of change.</p>
|
<p>"Xeper" is an <a href="https://archive.md/https://en.wikipedia.org/wiki/Temple_of_Set#Self-deification_and_Xeper">Egyptian hieroglyphic term</a> that roughly means "to come into being", mainly as an act of apotheosis. It stands in opposition to traditional occultic practices, namely the Hermetic ones, where one is expected to surrender their sense of self and subsume themselves into some higher entity: THE ALL, God, the universe, whatever other names collectivists have given it. It is not a one-time action, but instead a continual process, a constant state of change.</p>
|
||||||
|
|
|
@ -81,7 +81,7 @@
|
||||||
<p>A memory floats to the front of my sluggish mind. A syllable in my mouth, tough and rich. I mouth it, trying it on for size. The shorter person, whose face in my vision has become distinct enough for me to recognize her as a woman, a person I should know, notices, but writes it off as barely-conscious babble as they exit the spiral staircase and start the approach to the main staircase heading up to the front doors.</p>
|
<p>A memory floats to the front of my sluggish mind. A syllable in my mouth, tough and rich. I mouth it, trying it on for size. The shorter person, whose face in my vision has become distinct enough for me to recognize her as a woman, a person I should know, notices, but writes it off as barely-conscious babble as they exit the spiral staircase and start the approach to the main staircase heading up to the front doors.</p>
|
||||||
<p>Once they're outside, they slowly set me down right beside a tree, making sure I'm in the shade. Grass tickles the back of my arms. Everything else is blurry, but her face is crystal-clear. My heart flutters as she takes my right hand and holds it up against her cheek. The foreign sound in my mouth finally makes sense.</p>
|
<p>Once they're outside, they slowly set me down right beside a tree, making sure I'm in the shade. Grass tickles the back of my arms. Everything else is blurry, but her face is crystal-clear. My heart flutters as she takes my right hand and holds it up against her cheek. The foreign sound in my mouth finally makes sense.</p>
|
||||||
<p>"Jett," I whisper, the syllable thick in my mouth.</p>
|
<p>"Jett," I whisper, the syllable thick in my mouth.</p>
|
||||||
<p><em>Jett Hysminai Lysander Vander.</em></p>
|
<p><em>Jett Hysminai Lysander.</em></p>
|
||||||
<p><em>The only person who'd think to come back for me.</em></p>
|
<p><em>The only person who'd think to come back for me.</em></p>
|
||||||
<p>She hears me. Her face collapses in an "ugly" cry. I've recognized her, despite the time apart, the... days? weeks? months? I spent numbed to the world. The soft warmth of tears flood my fingers.</p>
|
<p>She hears me. Her face collapses in an "ugly" cry. I've recognized her, despite the time apart, the... days? weeks? months? I spent numbed to the world. The soft warmth of tears flood my fingers.</p>
|
||||||
<p>"Now tell me," a far older woman with long silver hair who I recall is the headmaster of the college drawls, "why did you feel the need to endanger the rest of the students with your little rescue mission? The Holy Freezers are climate-controlled, in a part of the campus that can seal itself off in case of flood or fire. She would have been fine where she was."</p>
|
<p>"Now tell me," a far older woman with long silver hair who I recall is the headmaster of the college drawls, "why did you feel the need to endanger the rest of the students with your little rescue mission? The Holy Freezers are climate-controlled, in a part of the campus that can seal itself off in case of flood or fire. She would have been fine where she was."</p>
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
<p>But what does it mean to be "harmful", anyway? Let's open a dictionary (or just dictionary.com) and see:</p>
|
<p>But what does it mean to be "harmful", anyway? Let's open a dictionary (or just dictionary.com) and see:</p>
|
||||||
<blockquote>harmful: adj. causing or capable of causing harm; injurious: a harmful idea; a harmful habit.</blockquote>
|
<blockquote>harmful: adj. causing or capable of causing harm; injurious: a harmful idea; a harmful habit.</blockquote>
|
||||||
<p>So <strong>a piece of "harmful" software would be one that caused the user harm or is capable of doing so</strong>. I specify the user because software meant to facilitate piracy might "harm" a corporation's profits, or a tool to break through firewalls might "harm" a control freak's attempt to filter the outside world, but I do not think a reasonable person would consider any of those programs harmful. The user in this sense must also be extended to the computer the user, well, <em>uses</em>, as impairing a person's tools would also impair their ability to complete whatever tasks they were using the tools for, thus harming the user albeit indirectly.</p>
|
<p>So <strong>a piece of "harmful" software would be one that caused the user harm or is capable of doing so</strong>. I specify the user because software meant to facilitate piracy might "harm" a corporation's profits, or a tool to break through firewalls might "harm" a control freak's attempt to filter the outside world, but I do not think a reasonable person would consider any of those programs harmful. The user in this sense must also be extended to the computer the user, well, <em>uses</em>, as impairing a person's tools would also impair their ability to complete whatever tasks they were using the tools for, thus harming the user albeit indirectly.</p>
|
||||||
<p>Right and away, we can consider all malware and viruses to be "harmful" under this definition, for hopefully obvious reasons. If a program is so poorly written that it results in catastrophic data loss or leaks information to parties said information was not intended for, it is harmful because it has done tangible harm to the user. But much like trying to determine what's <a href="../../2019/december/death-of-a-gopher.html">bloat</a> and what's not, the waters turn murky from here. What makes a program harmful, if not for its actual capacity to do harm to the user? According to the types of people who unironically still use "considered harmful" in Current Year, some of the reasons include:</p>
|
<p>Right and away, we can consider all malware and viruses to be "harmful" under this definition, for hopefully obvious reasons. If a program is so poorly written that it results in catastrophic data loss or leaks information to parties said information was not intended for, it is harmful because it has done tangible harm to the user. But much like trying to determine what's bloat and what's not, the waters turn murky from here. What makes a program harmful, if not for its actual capacity to do harm to the user? According to the types of people who unironically still use "considered harmful" in Current Year, some of the reasons include:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>complexity of the code</li>
|
<li>complexity of the code</li>
|
||||||
<li>number of lines of code</li>
|
<li>number of lines of code</li>
|
||||||
|
@ -49,5 +49,10 @@
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
<script data-goatcounter="https://stats.letsdecentralize.org/count"
|
||||||
|
async src="//stats.letsdecentralize.org/count.js"></script>
|
||||||
|
<noscript>
|
||||||
|
<img src="https://stats.letsdecentralize.org/count?p=/blog/2021/september/not-harmful.html">
|
||||||
|
</noscript>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -61,5 +61,10 @@
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
<script data-goatcounter="https://stats.letsdecentralize.org/count"
|
||||||
|
async src="//stats.letsdecentralize.org/count.js"></script>
|
||||||
|
<noscript>
|
||||||
|
<img src="https://stats.letsdecentralize.org/count?p=/blog/2022/april/blood.html">
|
||||||
|
</noscript>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
227
blog/2022/december/web3-2.html
Executable file
|
@ -0,0 +1,227 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Broke Dumbass Attempts To Web3 Again - Archive - MayVaneDay Studios</title>
|
||||||
|
<link href="../../../style.css" rel="stylesheet" type="text/css" media="all">
|
||||||
|
<meta name="author" content="Vane Vander">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
</head>
|
||||||
|
<body class="mayvaneday">
|
||||||
|
<article>
|
||||||
|
<div class="box">
|
||||||
|
<h1>Broke Dumbass Attempts To Web3 Again</h1>
|
||||||
|
<p>published: 2022-12-07</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<p>For the sake of Let's Decentralize, I looked into Dat and Hyperdrive and found out that, as of earlier this year, <a href="https://web.archive.org/web/20221124035740/https://github.com/beakerbrowser/beaker/discussions/1944">Beaker Browser</a> is <a href="https://web.archive.org/web/20221124035606/https://github.com/beakerbrowser/beaker/issues/1959">officially dead</a>. Supposedly some of the developers are now working on <em>another</em> damn <a href="https://web.archive.org/web/20221118211242/https://keet.io/">decentralized chat platform</a>. Because there aren't enough of those already.</p>
|
||||||
|
<p>For the sake of entertainment, as I'm desperately bored after having recovered from COVID-19 and from my father deciding to catch it the <em>day before</em> Thanksgiving and thus cancelling all our travel plans, I looked into the current state of web3. Since the cryptocurrency ecosystem is in the process of <a href="https://web.archive.org/web/20221124040523/https://web3isgoinggreat.com/">collapsing before our eyes</a>, I thought I'd see lots of previously-hyped projects folding like a house of cards. I was surprisingly wrong. Filecoin is still chugging along, supposedly <a href="https://web.archive.org/web/20221124040849/https://filecoin.io/blog/posts/the-filecoin-masterplan/">going "from 22 PiB to 215 PiB of data stored on the network" over the course of 2022</a>, although who knows if that stat's accurate since it's self-reported. <a href="https://web.archive.org/web/20221124041357/https://news.coincu.com/116834-skynet-labs-closed-cannot-raise-capital/">Skynet Labs</a> is <a href="https://web.archive.org/web/20221021113848mp_/https://siasky.net/FAD8MqXHfRSbFXdZpQhw4Q09_ZWP2a-miEchmm0VUSzDUA">dead</a> because they <a href="https://web.archive.org/web/20221124042657/https://bitcoinwisdom.com/skynet-labs-the-firm-behind-siacoin-shuts-shop/">can't get any more funding</a>, but many of the Skynet developers insist they're going to <a href="https://archive.ph/TAIM7">continue development</a> on Skynet regardless. Arweave is doing... <a href="https://web.archive.org/web/20221124042045/https://www.reddit.com/r/Arweave/new/">whatever Arweave usually does</a>, but it doesn't seem to be in any chaos. Either I am not looking at small-enough projects, or web3 has finally achieved some semblance of resilience.</p>
|
||||||
|
<p>Assuming, of course, that it's <a href="https://archive.ph/AbAYP">an actual web3 project</a> with a proper blockchain and not just several databases in a trenchcoat.</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<h2>Solid</h2>
|
||||||
|
<p>Solid is, according to the <a href="https://web.archive.org/web/20221123132731/https://solidproject.org/">project's homepage</a>, "a specification that lets people store their data securely in decentralized data stores called Pods. Pods are like secure personal web servers for data. When data is stored in someone's Pod, they control which people and applications can access it."</p>
|
||||||
|
<p>Any kind of arbitrary data, from text files created by applications to music and documents uploaded through a file manager app, can be stored inside a Pod. A person's Pod stores all the data for all the apps they use inside the Solid ecosystem. Instead of person A hosting a blogging service and your blog being stored on person A's servers and person B hosting an online document editor and your documents living on person B's servers, both your blog and your documents live in your Solid Pod, and the services that others host are just interfaces for the data that lives inside your Pod.</p>
|
||||||
|
<p>At no point does Solid ever use a blockchain. This technically makes it "web 3.0" (<a href="https://web.archive.org/web/20221125014430/https://solidproject.org/faqs#arguably-the-semantic-web-or-linked-data-never-took-off-so-why-is-solid-working-with-it">"Semantic Web"</a>) instead of "web3" proper. But I see even technically-inclined people mix the two terms up all the time- I mean, I don't blame them; I never got the hang of all the seemingly-arbitrary numbering schemes the tech industry uses anyway- and web3 proponents will often bring up Solid when asked for an example of a functional web3 project.</p>
|
||||||
|
<p>As the whole point of <del>web 3.0</del> web3 is decentralization of data, I decided to self-host my own Solid server so that my Pod, and the data within it, would remain on a server within my control. The Solid Project website offers four options for open-source Solid server software. However, the "Community Solid Server" that the <a href="https://web.archive.org/web/20221125014834/https://solidproject.org//self-hosting/css">Project's self-hosting instructions</a> documents is written in... Node.js. Which initially put me off, until I saw that my other options were:</p>
|
||||||
|
<ul>
|
||||||
|
<li>another Node.js server,</li>
|
||||||
|
<li>a plugin for Nextcloud,</li>
|
||||||
|
<li>and <a href="https://archive.ph/ir8Wi">a server written in PHP</a>.</li>
|
||||||
|
</ul>
|
||||||
|
<p>So I just chose the community server since that one seemed to have the best documentation.</p>
|
||||||
|
<p>I opted to run it in Docker since I prefer to not have Node.js code running on bare metal unsandboxed. Plus then I didn't have to worry about Debian Stable's Node.js version not being up-to-date enough. As per the documentation, I ran the following:</p>
|
||||||
|
<pre>
|
||||||
|
cd ~/Gits
|
||||||
|
git clone https://github.com/CommunitySolidServer/CommunitySolidServer.git
|
||||||
|
cd CommunitySolidServer
|
||||||
|
docker run --rm -v ~/Solid:/data -p 3344:3000 -it solidproject/community-server:latest -c config/file.json
|
||||||
|
</pre>
|
||||||
|
<p>With the last Docker command, the Solid server will run on localhost port 3344, save your data in a "Solid" folder in the home directory of the user running the Docker command, and actually persist data on disk instead of keeping it in memory and losing it when the Docker container is stopped.</p>
|
||||||
|
<p>At least, that was the intention. My first problem came when I attempted to visit the Solid web interface now running on port 3344. It complained that <code>127.0.0.1:3344</code> wasn't a configured URL and that for security reasons it would refuse to let me continue. But it also said that I could pass the <code>-b</code> flag to change the URL I could access the interface at. So I changed the last Docker command to the following:</p>
|
||||||
|
<pre>docker run --rm -v ~/Solid:/data -p 3344:3000 -it solidproject/community-server:latest -c config/file.json -b "http://127.0.0.1:3344"</pre>
|
||||||
|
<p>Then it started working again. I completed setup, giving it an email address (which it did not attempt to confirm) and a password and opting to make it a single-user server so that nobody else could register after me. But when I logged in, the web interface just showed me a file listing with two options, <code>README</code> and <code>profile/</code>, and attempting to access <code>profile/</code> gave me an error page insisting I wasn't logged in. The error told me I needed to connect to the Pod via an app and interact with its data that way. So I went to Solid's <a href="https://solidproject.org/apps">app store</a> and found some apps to test.</p>
|
||||||
|
<p>But the login pages for all of the apps assume that one's Solid server is configured with a fully-qualified domain name. So I went into my Caddyfile and set up an actual domain for my Solid server, so I was now accessing it at <code>solid.letsdecentralize.org</code>. The Solid server saw that the base URL had changed, so I once again stopped the Docker image and amended the command used to run it:</p>
|
||||||
|
<pre>docker run --rm -v ~/Solid:/data -p 3344:3000 -it solidproject/community-server:latest -c config/file.json -b "https://solid.letsdecentralize.org"</pre>
|
||||||
|
<p>After that, I went to try some apps again. I was able to log in with the <a href="https://otto-aa.github.io/solid-filemanager/">Solid file manager</a>, but because I had been using the localhost IP when I created my user in the web interface, the file manager kept throwing errors. I had to delete all my data and start over from the beginning. And by delete all my data, I mean running <code>sudo rm -rf ~/Solid/*</code>, deleting the Docker images, and then re-downloading the Docker images. Turns out this is a <a href="https://web.archive.org/web/20221123022111/https://github.com/CommunitySolidServer/CommunitySolidServer/issues/1394">known problem</a> that the developers don't feel like solving at the moment:</p>
|
||||||
|
<blockquote>The account system is still quite rudimentary and does not include account deletion yet. To delete the accounts on your server you would have to delete the <code>.internal/accounts/</code> folder on your disk.</blockquote>
|
||||||
|
<p>After the full reset, the file manager then worked as intended, and I was able to create folders and upload files.</p>
|
||||||
|
<p><img class="big" src="../../../img/asuka_on_web3.png" alt="screenshot of a browser showing an image of Asuka eating a Happy Meal" /></p>
|
||||||
|
<p>I thought about self-hosting the file manager, but I looked at the <a href="https://web.archive.org/web/20221123020213/https://github.com/Otto-AA/solid-filemanager">Git repo</a>, and apparently it's unmaintained:</p>
|
||||||
|
<blockquote>NOTE: This project has no active maintainer. It may or may not be working, and from time to time stuff will probably get fixed.</blockquote>
|
||||||
|
<p>As for alternatives, <a href="https://archive.ph/s82eL">Penny</a> and <a href="https://web.archive.org/web/20221123023441/https://github.com/jeff-zucker/solid-content-manager">Solid IDE</a> are actively maintained, and the UI for Penny is nicer. But Penny constantly sends HTTP requests every time you do <em>anything</em> in the window, which could easily overwhelm a server if you have more than a few Pods hosted on it, and the hosted instance of Solid IDE linked in the Solid app listing 404s, so I couldn't test it.</p>
|
||||||
|
<p><img class="big" src="../../../img/jett_via_penny.png" alt="screenshot of Penny showing an image" /></p>
|
||||||
|
<p>I thought about <a href="https://archive.ph/UEf0r">deploying Plume</a> on my Pod since my whole reason for exploring web3 is to find new and creative ways to host my website, but the guide links to <a href="https://web.archive.org/web/20221123020854/https://github.com/happybeing/solid-plume/releases">an empty Releases page</a> on a <a href="https://web.archive.org/web/20221123020600/https://github.com/happybeing/solid-plume">Github repo that's been abandoned since early last year</a>. Not exactly reassuring.</p>
|
||||||
|
<p>Next on my list of apps to try was <a href="https://archive.ph/oJb3P">Notepod</a>, a notepad application (also with an abandoned Git repo, this time from 2020). But after I entered the URL of my Solid provider (solid.letsdecentralize.org) and clicked "go"... nothing happened. Docker showed a few HTTP requests were being made every time I clicked "go":</p>
|
||||||
|
<pre>
|
||||||
|
2022-11-23T02:10:12.472Z [BaseHttpServerFactory] {Primary} info: Received GET request for /.well-known/openid-configuration
|
||||||
|
2022-11-23T02:10:12.557Z [BaseHttpServerFactory] {Primary} info: Received GET request for /.oidc/jwks
|
||||||
|
</pre>
|
||||||
|
<p>I gave Notepod about ten minutes or so in case it was loading in the background, but nothing happened, so I abandoned it.</p>
|
||||||
|
<p><a href="https://archive.ph/sinXT">O Edit</a>, abandoned by the developers since 2019 (?!), would only let me select "Inrupt" or "Solid Community" as a valid ID provider from a drop-down list with no option to enter in my own pod. There <em>is</em> a text box to log in with WebID, but I had to go digging into my config files to find a valid string to put (<code>https://solid.letsdecentralize.org/profile/card#me</code>) and then I just got the same two HTTP requests and no response as Notepod. Tiddlywiki and Poddit did the same thing: two HTTP requests, and no visible response. If there was an error being thrown somewhere, I didn't see it, and I shouldn't have to open Developer Tools in my browser to see what a simple popup in the browser window could have told me instead. Remember, Solid is supposed to help normies get away from corporations... <strong>if technological liberation is only ever available to those knowledgeable enough to put up with unpolished and barely-functional software, and normies are lazy, and the network effect is what determines what software society forces everyone to use, we will never be free.</strong></p>
|
||||||
|
<p>After a while, I finally found a Solid app that would let me edit the text files in my Pod: <a href="https://podpro.dev/">PodPro</a>! But with one little caveat: <em>I couldn't find any source code.</em> If you're reading this and you know where PodPro's source code is, <em>please</em> let me know: the user interface was slick, and the editor had syntax highlighting, and it felt like a Solid app should... but I can't recommend proprietary software with a clear conscience.</p>
|
||||||
|
<p>In conclusion: Solid works surprisingly well, regardless of it's actually "web3" or "web 3.0", but there are barely any functional apps. What exists is just a glorified Nextcloud with less than half of the apps Nextcloud has. Hey, maybe if I'd gone with that plugin...</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<h2>Internet Computer</h2>
|
||||||
|
<p>This one popped into my head out of the blue one night, and was the inspiration for starting this post. I don't remember if it was this project in particular, or just mixing it up with the term for the Ethereum compute, "world computer", which is laughably weak: according to an article by Nicholas Weaver, <!-- https://www.usenix.org/publications/loginonline/web3-fraud -->
|
||||||
|
<a href="https://archive.ph/GMHAm#selection-965.416-965.520">it would take <em>five thousand</em> of the Ethereum "world computer"s to match the computing power of <em>one</em> Raspberry Pi 4.</a></p>
|
||||||
|
<p>You know what else my Raspberry Pi 4 can do? Serve web pages without needing a connection to a blockchain. When I tried to go to the Internet Computer homepage, I got this error message:</p>
|
||||||
|
<blockquote>Blockchain cryptography will make this domain more secure.<br><a href="https://web.archive.org/web/20221127165307/https://internetcomputer.org/">This web browser cannot interact with the Internet Computer securely. (No: serviceWorker) Please try new web browser software.</a></blockquote>
|
||||||
|
<p>Funny... I thought having an up-to-date TLS certificate that doesn't use outdated or broken ciphers was what made a connection to a site more secure. And what's this about "new web browser software"? I'm using the latest version of Firefox!</p>
|
||||||
|
<p>...Okay, I admit, it's the latest that <em>Debian Stable</em> has to offer. Chromium seemed to be "new" enough for Internet Computer, anyway, and I finally got through to the homepage, where Internet Computer describes itself:</p>
|
||||||
|
<blockquote>The Internet Computer makes it possible to flip the script with online services, by making user communities their owners. That's because online services can now run 100% on blockchain, for the very first time. There is no need for centralized traditional IT, such as cloud services, which form the largest part of services built "on" other blockchains.</blockquote>
|
||||||
|
<p>But if there's no traditional IT, then how will users interact with the blockchain in the first place? <em>Someone</em> has to develop the apps. And unless you expect users to all have their own devices they have permission to run apps on <em>and</em> that have the computing power to run the apps in the first place, or self-host all the programs they want to use on a server they somehow also miraculously have, then <em>someone</em> is going to have to introduce some centralization and host the frontends for the apps on traditional infrastructure.</p>
|
||||||
|
<p>Scrolling through the <a href="https://internetcomputer.org/showcase">dapp showcase</a> shows mostly NFT bullshit: of the eighty apps in the showcase, twenty-five of them (more than a quarter) are in the "NFT" category. Several are linked to games which either haven't launched yet or <a href="https://archive.ph/Stpm3#selection-321.0-321.7">are in the very early stages of development</a>. One of them, Plethora, has its description listed as:</p>
|
||||||
|
<blockquote>Plethora is all about abundance and making you feel fulfilled.</blockquote>
|
||||||
|
<p>...but the autoplay video shows a sparse and sterile-looking mansion with a new 3D NFTs scattered around. Not very abundant of them.</p>
|
||||||
|
<p>Another one, <del>PokedStudio Bots</del> ahem, I'm sorry, "Poked bots", has a professionally-written description on the Internet Computer showcase... but the <a href="https://web.archive.org/web/20220723095951/https://entrepot.app/marketplace/poked">official marketplace</a> could use a little work:</p>
|
||||||
|
<blockquote>500 years from now humans have long left earth and only the Robots remain. Robots have managed to create new identities often based on relics they have found from earths past. This collection features 5 groups of Robots that exist in the eastern waste lands near former Delta city. The Battle bots, they are tough and are used to hard work, entertainment bots constructed from old video game and junk food toy parts found in the giant rubbish heaps of former Antarctica. Wild bots have become deranged after the giant solar flare of 2453AD. The god class has come to rule much of eastern earth, they have abilities beyond normal bots. The masters are a secret society of robots that have links to the off world colony of Europa base 7.</blockquote>
|
||||||
|
<p>Let's take a look at all the grammar problems this paragraph has:</p>
|
||||||
|
<ol>
|
||||||
|
<li>In the first sentence, there should be a comma after "now" and "earth". "earth" should also be capitalized as "Earth" since it's being used as a name and is thus a proper noun.</li>
|
||||||
|
<li>In the second sentence, there should be a comma after "identities".</li>
|
||||||
|
<li>In the third sentence, "city" should be capitalized as it's being used as part of a name: "Delta City". If it's meant to be lowercase, then the phrase should be rewritten as "near the city of Delta".</li>
|
||||||
|
<li>The fourth sentence should be split up into separate sentences for each type of "Robot" being described.</li>
|
||||||
|
<li>In the part of the fourth sentence, "The battle bots" is a <a href="https://web.archive.org/web/20220519092831/https://www.grammarly.com/blog/mistake-of-the-month-sentence-fragments/">fragment</a>. The comma and "they are" should be removed so the sentence now reads, "The battle bots are tough and are used to hard work."</li>
|
||||||
|
<li>Likewise, the part of the fourth sentence about "entertainment bots" is missing a verb describing what the entertainment bots are doing: in this case, <em>being</em>. It should read, emphasis mine to show correction, "The entertainment bots <em>are</em> constructed from old video game and junk food toy parts..."</li>
|
||||||
|
<li>In the fifth sentence, although not necessary, "have become" could be replaced with "became".</li>
|
||||||
|
<li>In the sixth sentence, "earth" should once again be capitalized, and the comma replaced with a semicolon since it is connecting two otherwise-complete sentences.</li>
|
||||||
|
<li>In the last sentence, "off world" should be hyphenated as "off-world".</li>
|
||||||
|
</ol>
|
||||||
|
<p>And here I was, saying that I wouldn't do free labor for cryptobros... Payment for the editing is welcome, PokedStudio. Fiat only. <a href="../../../identity/index.html">You know where to contact me.</a></p>
|
||||||
|
<p>If you want to do something other than buy expensive images, there are nine projects in the "Social" category. As my patience was starting to wear thin, I decided to try the first one listed: a Reddit clone named <a href="https://dscvr.one/">DSCVR</a>. But I wanted to be prepared before I dove in, so I went to the "Wallet" category and installed the first one listed, <a href="https://archive.ph/nztaK">Plug</a>. I mean, if web3 is all about cryptocurrency, then it makes sense that you'd need a wallet, right? I clicked on the extension icon once it popped up by the address bar, and I was immediately met with this sleep paralysis demon:</p>
|
||||||
|
<p><img class="big" src="../../../img/plug1.png" alt="screenshot of a creepy plug mascot with the text 'create password for Plug' underneath" /></p>
|
||||||
|
<p>(For those not familiar with zoomerspeak, "frfr" is short for "for real, for real".)</p>
|
||||||
|
<p>It prompted me to create a password, so I gave it a fourteen-word-long passphrase made in KeePassXC. Then it gave me a recovery phrase to backup... and whatever the hell this is:</p>
|
||||||
|
<p><img class="big" src="../../../img/plug2.png" alt="screenshot of a creepy plug mascot saying 'keep this sh*t safe, forreal'" /></p>
|
||||||
|
<p>I get the feeling that the people at Fleek (the company that made Plug) don't take professionalism very seriously. Which is all good and fine when you're a Broke Dumbass like me who just wants to snark at everything, but when you're a company dealing with financial assets... well, a mascot with a creepy face who swears at you during the onboarding process doesn't exactly reassure the user that the company won't lose all the customer's assets.</p>
|
||||||
|
<p>Once I'd suffered all the way through the Plug setup, I went back to DSCVR, now ready to sign in. The homepage immediately blasted me with a post where... <a href="https://archive.ph/orEH0">Christians were arguing over whether Christ had a vagina</a>. (DSCVR also seems quite hostile to being archived by both the Wayback Machine and archive.md.) I was expecting the usual NFT hype to clog every post, but this time I had to actually scroll for it. I'm still not sure if I'd prefer the NFTs or not.</p>
|
||||||
|
<p>On your first visit, a welcome popup appears offering a site tour. Page one of the tour (there are six in total) is about receiving NFT airdrops... and so is page three. Page five says you can make <del>subreddits</del> "portals", and then paywall them by requiring certain NFTs to visit. I don't have any NFTs, and I don't have any interest in <a href="../../2021/december/copywrong.html">paywalling my content</a>, but I forged ahead to the login page anyway.</p>
|
||||||
|
<p>There are two options for logging in to DSCVR: Google, and Internet Computer. It'd be a pretty weird Internet Computer app if you couldn't log in that way, and I'm not letting Google touch my device with a ten-foot pole, so I chose Internet Computer...</p>
|
||||||
|
<p>...and, instead of using the Plug wallet I set up solely for the purposes of interacting with Internet Computer, it prompted me to create an "anchor". I didn't have one, so I clicked the "create anchor" button. It asked for the name of the device I was using, and then a popup appeared asking me to plug in a Yubikey.</p>
|
||||||
|
<p>But I don't have one.</p>
|
||||||
|
<p>Naturally, the login failed. I went digging into the Internet Computer documentation and discovered that the login prompt uses <a href="https://web.archive.org/web/20221120095606/https://webauthn.guide/">WebAuthn</a>, meaning I have to either have a hardware token (the Yubikey) or use a device which has access to biometric sensors like Face ID or a fingerprint reader. My ThinkPad T510 has neither of those, so I switched to my phone and tried again.</p>
|
||||||
|
<p>My phone had no luck either. Samsung Browser and Brave, despite both using the Chromium engine, threw a "your browser isn't supported for Internet Identity" error. Bromite, also a Chromium reskin, threw a "No: WebAssembly" error. The only supported browser on Android is Chrome proper, which I forcibly uninstalled from my device a long time ago. So, as far as Internet Computer is concerned, it's either "log in with Google" or "log in with Google". Or "buy an iPhone". No thanks to any of those.</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<h2>Radicle</h2>
|
||||||
|
<p>Radicle is decentralized Git hosting, <em>not</em> to be confused with <a href="https://web.archive.org/web/20221114195621/https://radicale.org/v3.html">Radicale</a>, which is a CalDAV server. Radicle doesn't sync your contacts (unless you <em>want</em> to be that asshole who leaks the contact info of their friends all over the Internet) but it <em>can</em> help you sync your code across devices through a peer-to-peer network!</p>
|
||||||
|
<p>...Supposedly. The <a href="https://web.archive.org/web/20221126205901/https://radicle.xyz/">homepage</a> says nothing about hosting your own node other than that you can, and there are currently only three nodes available: "willow", "pine", and "maple". There <em>is</em> a <a href="https://web.archive.org/web/20221126205930/https://github.com/radicle-dev/radicle-link">Git repo</a> for... something, but the README is sparse and doesn't say if it's for the terminal client or a node. (And both of the "build" buttons say "failing". Fun!) The other Git repos that looked like they could be node software were archived, set to read-only, or were deprecated. I couldn't find a link to any documentation on the homepage, but <a href="https://archive.ph/A3hTg">there <em>is</em> a forum</a>... filled mostly with talks about DAOs and barely anything about actual software development, and a Discord which I can't look at since I refuse to have a Discord account.</p>
|
||||||
|
<p>To be honest, I wasn't sure if Radicle was actually web3 at first, but it <em>was</em> on <a href="https://archive.ph/KJX3R">a list of "best web3 projects"</a>. Since cryptobros like to pretend that they're smarter than everyone else (cue the Bitcoin "few will understand" meme), I've decided in this <em>one</em> instance to take them at their word.</p>
|
||||||
|
<p>To install the command-line client, you run the following:</p>
|
||||||
|
<pre>
|
||||||
|
curl https://europe-west6-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
|
||||||
|
echo deb https://europe-west6-apt.pkg.dev/projects/radicle-services radicle-cli main | sudo tee -a /etc/apt/sources.list.d/radicle-registry.list
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install radicle-cli
|
||||||
|
</pre>
|
||||||
|
<p>Please note that, at the time of writing, the Radicle binary apparently takes a hundred and seventy-one <em>megabytes</em> of storage space once installed.</p>
|
||||||
|
<p>You then run <code>rad auth</code> to create an identity. It creates two keys: one to "identify your device", and another to "identify you across devices". You create a new Radicle repository by running <code>rad init</code>, similar to <code>git init</code>. Instead of <code>git remote -v</code> to show the URL for your repository, you run <code>rad .</code> (That is, <code>rad</code> and then a space and a period.)</p>
|
||||||
|
<p>Because I only intend to use Radicle for this test and not as an everyday tool, I chose for my test data <a href="https://codeberg.org/lethe/ovarit_sucks">a Git repository I don't see myself updating much in the future</a>, if at all. (I'm personally hoping for the "not at all" option. You'd have to pay me <em>big bucks</em> to willingly hang out with <a href="../october/ovarit.html">a bunch of ableists</a>.) Radicle didn't like that I had used GPG to sign some of the existing commits, though, because it threw this error:</p>
|
||||||
|
<pre>
|
||||||
|
user@host:/home/user/radicle-jail/ovarit_sucks$ rad push
|
||||||
|
Pushing 🌱 to remote 'rad'
|
||||||
|
$ git push rad
|
||||||
|
== Push failed
|
||||||
|
error: unsupported value for gpg.format: ssh
|
||||||
|
fatal: bad config variable 'gpg.format' in file '.git/config' at line 18
|
||||||
|
</pre>
|
||||||
|
<p>I removed everything in <code>.git/config</code> relating to GPG, but then Radicle complained that my Git version wasn't new enough:</p>
|
||||||
|
<pre>
|
||||||
|
user@host:/home/user/radicle-jail/ovarit_sucks$ rad push
|
||||||
|
Pushing 🌱 to remote 'rad'
|
||||||
|
$ git push rad
|
||||||
|
Everything up-to-date
|
||||||
|
== Push failed a minimum git version of 2.34.0 is required
|
||||||
|
</pre>
|
||||||
|
<p>As Git version 2.30.2 (the latest available in Whonix and Debian Stable at the time of writing) works perfectly fine for everything else I do, I see no reason to upgrade purely for the sake of Radicle. So into the trash Radicle goes.</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<h2>Storj</h2>
|
||||||
|
<p>Storj is <a href="https://web.archive.org/web/20221124025318/https://www.storj.io/benefits/decentralized-storage">"a distributed network of independent nodes where data is encrypted, split into smaller pieces, and then spread worldwide."</a> In other words, you give it your files and a small amount of payment depending on how much storage space you use, and the Storj network will automatically select the best nodes to host the files. Unlike back in the first post when I was looking at Filecoin, the <a href="https://web.archive.org/web/20221124023541/https://www.storj.io/node#vetting-process">minimum requirements for hosting a node</a> aren't atrocious: very doable, in fact... the only thing I don't have is enough storage space on my VPS.</p>
|
||||||
|
<p>Oh, wait, I take that back: apparently you need to <a href="https://web.archive.org/web/20221124023646/https://docs.storj.io/node/before-you-begin/auth-token">get an auth token</a> to set up a node. And the only way to get one is to <a href="https://web.archive.org/web/20221124023635/https://www.storj.io/host-a-node">request one from Storj Labs</a>. Silly me! I thought web3 was supposed to be decentralized!</p>
|
||||||
|
<p>"Whatever," I thought. "I'll try it anyway since <a href="https://web.archive.org/web/20221124024157/https://us1.storj.io/signup">you can get 150 GB of space without paying</a> or begging for tokens from a faucet. Unlike <em>some</em> other web3 projects."</p>
|
||||||
|
<p>A few moments later: "Wait, why do I have to give an email address and password? I thought web3 was about using crypto for everything, including authentication!"</p>
|
||||||
|
<p>So after giving Storj my <em>very centralized</em> email address to make an account, the Storj website gave me two choices:</p>
|
||||||
|
<ol>
|
||||||
|
<li>either use the web UI and opt in to server-side encryption,</li>
|
||||||
|
<li>or install the Uplink CLI to make "object data, metadata and path data" end-to-end encrypted.</li>
|
||||||
|
</ol>
|
||||||
|
<p>I opted for the second, both because I don't like trusting web UIs if I don't have to and because I wanted to see how well it would perform inside of Whonix, which locks everything behind Tor.</p>
|
||||||
|
<pre>
|
||||||
|
cd /tmp
|
||||||
|
curl -L https://github.com/storj/storj/releases/latest/download/uplink_linux_amd64.zip -o uplink_linux_amd64.zip
|
||||||
|
unzip -o uplink_linux_amd64.zip
|
||||||
|
sudo install uplink /usr/local/bin/uplink
|
||||||
|
uplink setup
|
||||||
|
</pre>
|
||||||
|
<p>The CLI tool at first run prompts for permission to send analytics, then asks for the name of your device, an API key and satellite address you created for said device during the in-browser account setup, and the passphrase for your account. After successful setup, you can then create a bucket for your data:</p>
|
||||||
|
<p><code>uplink mb sj://cakes</code></p>
|
||||||
|
<p>"cakes" in this example is the default name given in the online demo. You can make it whatever you want.</p>
|
||||||
|
<p>You can then copy files to it:</p>
|
||||||
|
<p><code>uplink cp /path/to/file sj://cakes</code></p>
|
||||||
|
<p>A progress bar appears. On Whonix, it didn't show any actual progress and the percentage was stuck at 100%, but the upload succeeded after a few seconds.</p>
|
||||||
|
<p>You can view a list of files in a bucket by running:</p>
|
||||||
|
<p><code>uplink ls sj://cakes</code></p>
|
||||||
|
<p>which produces output like the following:</p>
|
||||||
|
<pre>
|
||||||
|
user@host:/tmp$ uplink ls sj://cakes
|
||||||
|
KIND CREATED SIZE KEY
|
||||||
|
OBJ 2022-11-24 03:35:34 162839 afkyturj.png
|
||||||
|
</pre>
|
||||||
|
<p>To make files publically accessible, you can generate a sharing link:</p>
|
||||||
|
<p><code>uplink share --url sj://cakes/path/to/file/you/want/to/upload</code></p>
|
||||||
|
<p>Uplink originally got angry at me because I didn't specify an expiration date for my file, even though the examples in the online demo didn't say that was an option:</p>
|
||||||
|
<pre>
|
||||||
|
user@host:/tmp$ uplink share --url sj://cakes/afkyturj.png
|
||||||
|
It's not recommended to create a shared Access without an expiration date.
|
||||||
|
If you wish to do so anyway, please run this command with --not-after=none.
|
||||||
|
</pre>
|
||||||
|
<p>Passing the <code>--not-after</code> option made Uplink happy again:</p>
|
||||||
|
<pre>
|
||||||
|
user@host:/tmp$ uplink share --url sj://cakes/afkyturj.png --not-after=none
|
||||||
|
Sharing access to satellite 12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S@us1.storj.io:7777
|
||||||
|
=========== ACCESS RESTRICTIONS ==========================================================
|
||||||
|
Download : Allowed
|
||||||
|
Upload : Disallowed
|
||||||
|
Lists : Allowed
|
||||||
|
Deletes : Disallowed
|
||||||
|
NotBefore : No restriction
|
||||||
|
NotAfter : No restriction
|
||||||
|
Paths : sj://cakes/afkyturj.png
|
||||||
|
=========== SERIALIZED ACCESS WITH THE ABOVE RESTRICTIONS TO SHARE WITH OTHERS ===========
|
||||||
|
Access : 1npMNz2QGpdys5h7u9xrq9pWeq1EMqMpGRNzeDWHDVgE4BgATazv6Nw2cufqZuQsrkywpUaC4kUa3LTyASvj6m7ri6xcQGoetJPaHu7Dzdb9xHHiz2XGH1Zxznn4vC4TrCMfmSLyEMYpqSpLyZi7VXf17FRPX9Z4jDdAPV1i7CZ118E4X6FDHBug7he4qF7a4SfQCv64ZT1HEgqtbjaf4X6JyHkWCNw9Zk188GXGFntu6mi4yMawaYUQCB1SKDEqkg9kuLXoSVsZv5WMsVU1URvUyKRvjmioz3FaakKnYfhQM4Z426sZ8cMjgQdYmCjbE8iy3AUU6yaZy415bZDmgpjsSnPU2YunPvntm5bbpZdyJnFUWvGZnUnkmnNZ8GmfpU8vS1ZzZfJ1GZ7oZ2A2kwapG7mk3mETGr24x3s6N6pvVBba6E9Vv36ZAXgUQkPZqgW4H6WRDat8rbqsDnghGZgTJZAhhGtymLZZDgQBdhpA4Wv6
|
||||||
|
========== CREDENTIALS ===================================================================
|
||||||
|
Access Key ID: [REDACTED]
|
||||||
|
Secret Key : [REDACTED]
|
||||||
|
Endpoint : https://gateway.storjshare.io
|
||||||
|
Public Access: true
|
||||||
|
=========== BROWSER URL ==================================================================
|
||||||
|
REMINDER : Object key must end in '/' when trying to share a prefix
|
||||||
|
URL : https://link.storjshare.io/s/jxxkrms7du35byqxbwx7csyprueq/cakes/afkyturj.png
|
||||||
|
</pre>
|
||||||
|
<p>You can also view files you've uploaded in the web UI, but then you have to trust the server with your encryption key. If your key ever expires, you can create new ones in the web UI.</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<h2>Conclusion</h2>
|
||||||
|
<p>Unlike the last time I waded knee-deep into web3, this round seems to have actually brought some projects I can use without shelling out money. Solid's only problem was its lack of apps, and I have no reason to doubt Radicle would have worked beautifully had my local Git binary only been newer. But I can't exactly use Radicle to host a website, and Solid, being "web 3.0" instead of web3 proper and thus every Pod still tethered to a specific server, offers no advantages over just throwing some static files behind Caddy. If the storage requirements for a Storj node were lower, I could even be <em>earning</em> money through web3... pennies, maybe. If my goal is to host a website in a decentralized manner, none of the four aforementioned projects would be of any help. I'll just have to keep searching, I suppose. I'll just have to keep wandering.</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<script data-goatcounter="https://stats.letsdecentralize.org/count"
|
||||||
|
async src="//stats.letsdecentralize.org/count.js"></script>
|
||||||
|
<noscript>
|
||||||
|
<img src="https://stats.letsdecentralize.org/count?p=/blog/2022/december/web3-2.html">
|
||||||
|
</noscript>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -22,7 +22,7 @@
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<h2>Filecoin</h2>
|
<h2>Filecoin</h2>
|
||||||
<p>Filecoin was the first web3 project that came to mind. I mean, it has the name "file" in it! So one would think that the whole point would be to host files online. And what is a website other than a pile of files?</p>
|
<p>Filecoin was the first web3 project that came to mind. I mean, it has the name "file" in it! So one would think that the whole point would be to host files online. And what is a website other than a pile of files?</p>
|
||||||
<p>Since I was already familiar with IPFS, which Filecoin is apparently built off of, I thought that setting up a Filecoin node would be as simple as compiling and installing the IPFS node is. Apparently not. The <a href="https://web.archive.org/web/20220706204229/https://filecoin.io/">main website</a> felt janky and broken with a "loading experience" spinner than just spun forever, and the homepage displayed little to no relevant information other than a glorified version of "we store files", which one could already guess from the name. Going to "Build" and then "View Filecoin storage tutorials" gave an <a href="https://archive.ph/lNC80">IPFS resolving error.</a> <!-- https://docs.filecoin.io/build/examples/ -->
|
<p>Since I was already familiar with IPFS, which Filecoin is apparently built off of, I thought that setting up a Filecoin node would be as simple as compiling and installing the IPFS node is. Apparently not. The <a href="https://web.archive.org/web/20220706204229/https://filecoin.io/">main website</a> felt janky and broken with a "loading experience" spinner that just spun forever, and the homepage displayed little to no relevant information other than a glorified version of "we store files", which one could already guess from the name. Going to "Build" and then "View Filecoin storage tutorials" gave an <a href="https://archive.ph/lNC80">IPFS resolving error.</a> <!-- https://docs.filecoin.io/build/examples/ -->
|
||||||
Digging on an external search engine turned up the <a href="https://web.archive.org/web/20220706174435/https://github.com/filecoin-project/lotus">GitHub for the Lotus daemon</a>, which allows one to interact with the Filecoin blockchain, but the "getting started" documentation at the end of the page <a href="https://archive.ph/hAQls">also 404ed</a> with an IPFS error. Because what you truly want to see when researching if a new technology is trustworthy or not is to see it crashing and burning at every turn.</p>
|
Digging on an external search engine turned up the <a href="https://web.archive.org/web/20220706174435/https://github.com/filecoin-project/lotus">GitHub for the Lotus daemon</a>, which allows one to interact with the Filecoin blockchain, but the "getting started" documentation at the end of the page <a href="https://archive.ph/hAQls">also 404ed</a> with an IPFS error. Because what you truly want to see when researching if a new technology is trustworthy or not is to see it crashing and burning at every turn.</p>
|
||||||
<p>Strangely, a different link to the documentation was on the sidebar. "Surely we're getting <em>somewhere</em>," I wondered. "Not even <a href="https://web.archive.org/web/20220706205526/https://medium.com/coinmonks/how-to-add-site-to-ipfs-and-ipns-f121b4cfc8ee">figuring out IPNS</a> took this long."</p>
|
<p>Strangely, a different link to the documentation was on the sidebar. "Surely we're getting <em>somewhere</em>," I wondered. "Not even <a href="https://web.archive.org/web/20220706205526/https://medium.com/coinmonks/how-to-add-site-to-ipfs-and-ipns-f121b4cfc8ee">figuring out IPNS</a> took this long."</p>
|
||||||
<p>If the destination was "imagining myself slamming my fists into my keyboard", then sure, we got somewhere.</p>
|
<p>If the destination was "imagining myself slamming my fists into my keyboard", then sure, we got somewhere.</p>
|
||||||
|
|
126
blog/2022/november/asking.html
Executable file
|
@ -0,0 +1,126 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>It's insane, the things you can get simply by asking - Archive - MayVaneDay Studios</title>
|
||||||
|
<link href="../../../style.css" rel="stylesheet" type="text/css" media="all">
|
||||||
|
<meta name="author" content="Vane Vander">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
</head>
|
||||||
|
<body class="mayvaneday">
|
||||||
|
<article>
|
||||||
|
<div class="box">
|
||||||
|
<h1>It's insane, the things you can get simply by asking</h1>
|
||||||
|
<p>published: 2022-11-22</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<h2>At long last, Google will remove your address from search results without a legal order</h2>
|
||||||
|
<p>When I search up my legal name on Google, I don't even have to start scrolling down before I find pages showing my full street address, phone number, and a list of relatives. While I've never done anything that would compel the average person to track me down and make my life a living hell, like be a sexual predator, unfortunately sites like Kiwi Farms still exist, clinging on to life as they try to justify their existence as a harassment forum, and I <em>do</em> have a number of enemies I've made over the years who would love to fuck up my life purely for the crime of being a woman with Wrong Opinions on the Internet.</p>
|
||||||
|
<p>Fortunately, Google now has <a href="https://support.google.com/websearch/troubleshooter/9685456#ts=2889054%2C2889099%2C9166584%2C9171202">a form you can fill out</a> to request that they remove any links containing your personal information from search results. You don't even need to upload an ID or be signed into a Google account or show proof that you've tried to contact the webmaster of the offending pages first. Hell, you don't even need to <em>be</em> the person as long as you explain how you're related or authorized to fill out the form on their behalf. You simply need to give Google the following through the form:</p>
|
||||||
|
<ul>
|
||||||
|
<li>your legal name</li>
|
||||||
|
<li>country of residence</li>
|
||||||
|
<li>an email address for Google to contact you about the results of your request</li>
|
||||||
|
<li>a list of the offending links</li>
|
||||||
|
<li>a link to the Google search that shows the offending links</li>
|
||||||
|
<li>(optionally) any screenshots that show exactly where the personal information is on the webpage, because sometimes the Google support team doesn't like to scroll or hit Control+F</li>
|
||||||
|
</ul>
|
||||||
|
<p><strong>Please note that this does <em>NOT</em> take down the actual webpages, nor does it remove them from the indexes of other search engines like Bing.</strong> Bing <em>does</em> have its <a href="https://www.microsoft.com/en-us/concern/bing">own removal request form</a>, but at the time of writing I cannot yet confirm whether Microsoft will actually honor takedown requests made through it. The best course of action is to get the webmasters of the actual pages to remove your personal information, but getting the search results for one's name scrubbed is a good first action and, if the webmaster refuses to remove your personal information, better than doing nothing.</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<h2>Wayback Machine will remove and blacklist your site on request without a DMCA takedown notice</h2>
|
||||||
|
<p>A while back, I was looking through my <a href="https://web.archive.org/web/20221118190214/https://github.com/arp242/goatcounter">GoatCounter</a> stats when I saw some visits in the past day from a new referer. Curious, I fired up Tor Browser (because who knows if new referers are just a sting operation to get my residential IP address, knowing my curiosity) and visited it... only to find it was a Christofascist trying to promote Let's Decentralize to his woman-hating friends. My first course of action to fuck him up a bit (which has worked for others) was to <a href="../september/gamutto.html">configure Caddy to forcibly redirect users coming from his site to a different webpage</a> in hopes of <a href="https://upload.letsdecentralize.org/misc/MisogynistsKeepMoving.png">signalling</a> that I don't appreciate the attention.</p>
|
||||||
|
<p>However, a week later, I checked back to see that he had replaced the link with a Wayback Machine archive of Let's Decentralize. Which I don't appreciate either for the same reason I don't keep that website in a Git repository like my other sites: if one of the darknet links turns into a child porn site in between my weekly checks, even if I remove it, the link will remain accessible because I can't retroactively edit the archive.</p>
|
||||||
|
<p>But I can <em>destroy</em> the archive.</p>
|
||||||
|
<p>To remove your site from the Wayback Machine, you send an email to <a href="mailto:info@archive.org">info@archive.org</a> asking politely:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Hello,</p>
|
||||||
|
<p>Please remove the following websites that I own from the Wayback Machine and exclude them from further archival:
|
||||||
|
<ul>
|
||||||
|
<li>mayvaneday.org</li>
|
||||||
|
<li>mayvaneday.art</li>
|
||||||
|
<li>deadendshrine.online</li>
|
||||||
|
<li>letsdecentralize.org</li>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
<p>Please let me know if you need any more information, such as to verify that I own these sites.</p>
|
||||||
|
<p>- vclv</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>They respond with the actual form (truncated here for length) from a randomly generated Zendesk address:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Hello,</p>
|
||||||
|
<p>Thank you for contacting us. The Wayback Machine is a non-profit project founded by the Internet Archive to preserve a historical record of the Internet for purposes of research and broad public benefit. Thank you for considering the potential benefits of a more complete archive as you submit your request.</p>
|
||||||
|
<p>To allow us to better review and assist with this request, please follow the steps below.</p>
|
||||||
|
<p><em>STEP 1</em> : LIST (a) EACH URL/URL PATH THAT YOU WISH TO EXCLUDE, (b) THE PERIOD OF YOUR OWNERSHIP, AND (c) THE PERIOD YOU WISH TO EXCLUDE (where possible, we will target an exclusion to the requested period for a verified request)</p>
|
||||||
|
<p><em>EXAMPLE 1 (multiple URLs/paths from the same domain for same time period)</em>:</p>
|
||||||
|
<p>URL/URL path to exclude: site1.com/dir/file.html</p>
|
||||||
|
<p>URL/URL path to exclude: site1.com/images/</p>
|
||||||
|
<p>time period of domain ownership: 2020-02-25 to present</p>
|
||||||
|
<p>time period to exclude: 2020-02-25 to future</p>
|
||||||
|
<p><em>EXAMPLE 2 (full domain & subdomains):</em></p>
|
||||||
|
<p>URL/URL path to exclude: site2.com (and all subdomains)</p>
|
||||||
|
<p>time period of domain ownership: 1998-01-31 to 2001-08-30</p>
|
||||||
|
<p>time period to exclude: 1998-01-31 to 2001-08-30</p>
|
||||||
|
<p><em>STEP 2</em> : Select and follow the applicable section(s) below for the URL(s) you want to exclude from the Wayback Machine.</p>
|
||||||
|
<p><em>A. IF YOU PERSONALLY OWN THE WEBSITE(S)</em> for the URL(s), please help us verify your ownership for those URLs by doing <em>one of the following</em>:</p>
|
||||||
|
<p>(PLEASE NOTE: if the whois listing for the domain shows that the most recent registration was later than the period you wish to exclude, we may ask for verification of past ownership in addition to any verification of current ownership)</p>
|
||||||
|
<ul>
|
||||||
|
<li>Add a text file with your request to the site’s root directory (e.g., domain.com/waybackverify.txt) or to your DNS records.</li>
|
||||||
|
<li>If a main email contact is identified on your site, send us your request from that address (and include a link to the place on the site where the contact is listed). Note: for companies with general customer service addresses listed as contacts and the like, we may request further verification.</li>
|
||||||
|
<li>If the registrant email is publicly viewable on a WHOIS lookup listing, send us an email from that address (and a link to the whois listing where it is displayed).</li>
|
||||||
|
<li>If your personal information (name, point of contact, verifiable image of self) appears on the site in a way that identifies you as owner, send us a scan of a valid photo ID bearing the same unique personal information (other sensitive information such as birth date, address, or phone number can be redacted). Please also send us a link to where it appears (not screenshots). </li>
|
||||||
|
</ul>
|
||||||
|
</blockquote>
|
||||||
|
<p>You then reply with the same request as the first email you sent them, but in the format that they requested. I'll use one of the sites I submitted as an example:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Request 1</p>
|
||||||
|
<p>URL/URL path to exclude: mayvaneday.org (and all subdomains)</p>
|
||||||
|
<p>time period of domain ownership: 2021-06-01 to present</p>
|
||||||
|
<p>time period to exclude: 2021-06-01 to future</p>
|
||||||
|
<p>Proof of ownership at https://mayvaneday.org/waybackverify.txt</p>
|
||||||
|
<p>I am also listed as a contact address at https://mayvaneday.org/identity</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>For "time period of domain ownership", you can usually go into your registrar's dashboard and it'll tell you when you registered the domain. Otherwise, if you're the first and only person who has ever owned the domain you want blacklisted, WHOIS records almost always show when the domain was created. For example, when you look up <code>mayvaneday.org</code>, <a href="https://web.archive.org/web/20221119002545/https://www.whois.com/whois/mayvaneday.org">WHOIS responds with</a>:</p>
|
||||||
|
<p><code>Creation Date: 2021-06-02T00:35:25Z</code></p>
|
||||||
|
<p>It may be off by a day depending on your time zone, but the people behind the Wayback Machine didn't get hung up on the time difference when I tried, so I doubt they'll care much in the future.</p>
|
||||||
|
<p>You will also need to upload a file created after the first removal request explicitly stating that you are the webmaster and you want the site removed. The email address that you used to make the original request should also be listed on the site's contact page. If signing a snippet with a GPG key listed on the site had been an option, I would have done that as well. Hey, if you're reading this and you work at the Internet Archive...</p>
|
||||||
|
<p>Within a few days, if your request is successful, you will receive a reply:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Hello,</p>
|
||||||
|
<p>The following has been submitted for exclusion from the Wayback Machine at web.archive.org:</p>
|
||||||
|
<ul>
|
||||||
|
<li>mayvaneday.org</li>
|
||||||
|
<li>mayvaneday.art</li>
|
||||||
|
<li>deadendshrine.online</li>
|
||||||
|
<li>letsdecentralize.org</li>
|
||||||
|
</ul>
|
||||||
|
<p>Please allow up to a day for the automated portions of the process to run their course and for the changes to take effect.</p>
|
||||||
|
<p>The Internet Archive Team</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>After waiting the recommended day for the Wayback Machine to purge my sites from their archive, I checked back on the Christofascist's website and saw that he had removed the link to Let's Decentralize in a fit of frustration. A few months later, or "now" as I write this, and it seems he's also deleted his entire site. Good riddance.</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<h2>Librarians will <em>not</em> kill you if you call and ask for a book return date extension</h2>
|
||||||
|
<p>At the time of writing this, I have been sick with COVID-19 for about a week. It took you three <em>years</em> to find me, you stupid virus. Come on, my wife's not even corporeal and spends most of her time in a completely different world and it took her <em>less than a month</em>. Aren't you supposed to be backed by the state of China or something? Anyways, my mother got infected first, and I honestly can't tell which of us have it worse: she's up and doing laundry and other household chores but sneezing and coughing constantly and her skin has the pallor of death, and my symptoms are milder and I feel more alert but only have short bursts of lucidity lasting half an hour or so before I need to go back to sleep. I've been taking the opportunity to tease my brothers about how I'm sick too and therefore there's no expectation that I make dinner for them in Mother's absence. ("What do you mean, you <em>don't</em> want the COVID spaghetti?")</p>
|
||||||
|
<p>Normally, every week on the way to my job search meetings, I like to stop at the library for an hour or two and get some reading done without having to worry about being interrupted by one of my family members. Jett and I like to play a game where I sit down at <a href="../../2019/november/other-world.html">the table I've always liked to write at when at the library</a> and, whatever book on the shelf across from me first catches my eye, I have to check out and read. The first time we played this, she picked out a book titled "Angels for Idiots" and a print copy of <em>The Woman's History of the World</em> by Rosalind Miles (which I'd been meaning to read for a long time) and a YA book I'd first attempted to get through in 2017 shortly after I'd moved there but only read the first chapter and had to pay late fees on. This time, the selections were <em>The Re-Enchantment of Everyday Life</em> by Thomas Moore (kinda meh, considering most of his suggestions were some variant of "do more religion, LMAO") and <em>Finding Your Own North Star</em> by Martha Beck (a self-help book, and also full of pencil annotations by whoever checked it out last).</p>
|
||||||
|
<p>But I missed my meeting this week due to my illness, and the next scheduled meeting would be <em>after</em> the due date, assuming I would be recovered enough to go back out in public. So I looked up my local library's website, which looked like the webmaster had duck-taped together a bunch of static HTML pages over a half-installed WordPress instance, and called the number. (I may need help with a lot of things, but making calls to people I don't know is <em>not</em> one of them.)</p>
|
||||||
|
<p>And the librarian answered after a few rings. And I asked her, "I have some books due next week, but I have COVID-19 and I can't leave my house. Is it possible to renew my books over the phone?"</p>
|
||||||
|
<p>And, thankfully, she responded: "Of course! Do you have your library card ready?"</p>
|
||||||
|
<p>So I read her the barcode number on the back of my card, and she renewed my books for another month. I don't think I'll need the whole month, since I'm already done with the first book (what a slog it was; I think I spent half of <a href="https://web.archive.org/web/20221120023137/https://nitter.pussthecat.org/Waffuum/status/1592160247971729408">Dead End Day this year</a> speed-reading at Jett's insistence I get the damn thing over with) and the second book is going by faster than I expected. All in all, my phone says the call only lasted a whole <em>fifty-three seconds</em>. Hell yeah, speedrunning LARPing as a functional adult!</p>
|
||||||
|
<p>I only hope my "quick phone interview" I have next week is just as painless...</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<script data-goatcounter="https://stats.letsdecentralize.org/count"
|
||||||
|
async src="//stats.letsdecentralize.org/count.js"></script>
|
||||||
|
<noscript>
|
||||||
|
<img src="https://stats.letsdecentralize.org/count?p=/blog/2022/november/asking.html">
|
||||||
|
</noscript>
|
||||||
|
</body>
|
||||||
|
</html>
|
55
blog/2022/november/ld.html
Executable file
|
@ -0,0 +1,55 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Woman who would have been revered prophetess 4,000 years ago now relegated to clicking links, opening tabs - Archive - MayVaneDay Studios</title>
|
||||||
|
<link href="../../../style.css" rel="stylesheet" type="text/css" media="all">
|
||||||
|
<meta name="author" content="Vane Vander">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
</head>
|
||||||
|
<body class="mayvaneday">
|
||||||
|
<article>
|
||||||
|
<div class="box">
|
||||||
|
<h1>Woman who would have been revered prophetess 4,000 years ago now relegated to clicking links, opening tabs</h1>
|
||||||
|
<p>published: 2022-11-01</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<p>One of the funniest genres of emails I get in relation to my personal projects is the man (it's always been a man, <em>every single damn time</em>) who clearly has no idea how I manage to keep Let's Decentralize running and thinks he can improve on operations and fails immensely.</p>
|
||||||
|
<p>Nothing will top the Lokinet dev who came into my inbox unsolicited one day, looked at my site, and thought to himself, "Oh dear. An SVG of an outdated logo. You know how I can fix this? Being a condescending ass and then sending her the <em>blurriest JPEG</em> that's ever existed and demanding she use that as the logo instead." Needless to say, I did not change the logo. I instead put a note in the Lokinet section stating that the daemon doesn't seem to work when compiled from source (no sites will connect) and that the Lokinet developers haven't yet proven themselves trustworthy enough to not secretly be injecting other code into their precompiled binaries. "Chief" did not bother me again after that. (Despite the source code having been fixed for Debian since, the build instructions for FreeBSD conveniently omit that <code>libtool</code> and <code>automake</code> also need to be installed. And it doesn't compile. Maybe stop jerking off your shitcoin for a few minutes and fix that?)</p>
|
||||||
|
<p>I also occasionally get random scripts claiming to automate the task of checking if every individual site on each link list is still up. As if, if I wanted to use a script, I'm not perfectly capable of writing one myself. But the problem with these scripts, or any automation really, is that they invariably only check to see if the server returns the HTTP status <code>200 OK</code>. There are a lot of failure modes that require action on my part to keep the list safe and organized that would still return <code>200 OK</code> in a script:</p>
|
||||||
|
<ul>
|
||||||
|
<li>A completely blank page.</li>
|
||||||
|
<li>A site that was innocuous when I added it to the list, like a search engine or an anonymous mail service, that has now sold out and become a CSAM distributor. I remove these the instant I find them.</li>
|
||||||
|
<li>An instance of a privacy frontend, like Nitter (for Twitter), becoming an instance for a different frontend that proxies a different service, like Invidious (for YouTube). I keep these, but move them to their new proper sections.</li>
|
||||||
|
<li>A message from the admin stating that they aren't going to be running the site anymore and that it should be removed from the user's bookmarks and link lists.</li>
|
||||||
|
<li>A misconfigured nginx server that used to serve a hidden service but doesn't any longer, but the hidden service is still configured in Tor. The request for the hidden service hits nginx, but since it's no longer a defined site, nginx redirects the request to whatever site has been configured as default, meaning the user is now browsing a clearnet site. The clearnet site then returns <code>200 OK</code>, misleading the script into thinking the check was successful.</li>
|
||||||
|
</ul>
|
||||||
|
<p>The difference between Let's Decentralize and other collectors of Tor links is that I individually click on <em>every single link</em>, <em>every week</em>, to check to see if the site is still what it was when I last checked it. I used to be able to do this in a single Sunday morning before I went to work, but now the Tor list is so damn long that I have to limit myself to an hour a day for my own sanity and start on Thursday or Friday so that I can still push the finalized list every Sunday. I don't know of any other link lists or Hidden Wiki clones that do this. They simply do what the people sending me the scripts want me to start doing and check for an HTTP <code>200 OK</code> response. That's why you go onto sites like "Fresh Onions" and see a bunch of CSAM and porn and scam markets <a href="../may/divide.html">clogging everything up</a>, or find a list that's organized but everything is horrifically outdated and half of the sites are dead and there's been no new additions since the list was originally uploaded.</p>
|
||||||
|
<p>Speaking of no new additions, I'm starting to hit the upper wall of services to add that aren't pornography or markets. You may have noticed that, over the course of this year, the Tor link list has more than tripled in size. This isn't due to a <a href="https://web.archive.org/web/20221030085838/https://www.britannica.com/science/Cambrian-explosion">Cambrian explosion</a> of new hidden services, but because my methods of finding them has gotten better. If I somehow, despite my myriad backups both online and offline, managed to completely lose the files to Let's Decentralize and had to bootstrap the list again from scratch, here's how I would go about finding hidden services:</p>
|
||||||
|
<ol>
|
||||||
|
<li>Find one of the legion <a href="https://archive.ph/0E2yB">Hidden Wiki</a> clones floating around. Most of the sites linked there are for cryptocurrencies or markets, but near the bottom is usually a small collection of blogs and personal pages. Add those personal pages to the list and check to see if they have any lists of their own; if they're on the darknet, they usually have at least a small handful.</li>
|
||||||
|
<li>Go to one of the "Fresh Onions" mirrors. (I can't link any because, as I stated before, these are flooded with links to CSAM.) Click on anything that looks interesting from the first few pages. As long as it's not porn or a market or displaying highly objectionable material, it goes on the list. Note that sometimes the links can be marked red for "not available" when really their web servers have just been configured to block requests from suspected web scrapers.</li>
|
||||||
|
<li>Go to <a href="http://juhanurmihxlp77nkq76byazcldy2hlmovfu2epvl5ankdibsot4csyd.onion/onions/">Ahmia's list of known onion services</a> and <a href="../may/divide.html">manually scrape the titles from all of them</a> to try to find ones that look interesting. I picked Ahmia because it claims to remove URLs to sites that distribute CSAM. I wish all Tor hidden service search engines did that...</li>
|
||||||
|
<li>Sign up for a free Shodan account. Shodan lets you search by HTTP headers. Because the "Onion-Location" header is <a href="https://web.archive.org/web/20221029072927/https://community.torproject.org/onion-services/advanced/onion-location/">often used to signal that a site has a mirror on Tor</a>, you can find hidden services (whose clearnet mirrors haven't blacklisted Shodan's IP ranges in <code>iptables</code>) by handing Shodan the following query in the search box:</li>
|
||||||
|
</ol>
|
||||||
|
<p><code>onion-location -http.title:"Globaleaks" -http.title:"Sign in" -http.title:"Hack This Site" -http.title:"302 Found" -http.title:"Log in" -http.server:"GlobaLeaks"</code></p>
|
||||||
|
<p>Free accounts on Shodan can only view the first two pages of results. This can be bypassed, <em>kind of</em>, by going to the left sidebar and right-clicking each country code to open it in a new tab. The query above also filters out by title certain sites that have lots of duplicate mirrors or are just blank pages. If Shodan didn't restrict free accounts to only the first two pages of a search, this wouldn't be a problem. You can theoretically <a href="https://web.archive.org/web/20221030175723/https://account.shodan.io/billing">pony up $50 one time to get access to twenty pages per search</a>, but that seems a bit pricey considering that finding Tor hidden services is the only thing I'd use it for.
|
||||||
|
<ol start="5">
|
||||||
|
<li>Lurk in places like r/onions and the technology boards on imageboards and other places online where people discuss Tor. Invariably there will be threads where people ask for links to hidden services or show off ones that they've made themselves.</li>
|
||||||
|
</ol>
|
||||||
|
</p>
|
||||||
|
<p>Personally, given the amount of effort I've put into Let's Decentralize since I broke it off from MayVaneDay a few years ago, I'd rather just trust my backups. Although I suppose I will die one day, maybe sooner than later, and someone else will inherit all this mess. If you, the reader, think you can do this better than me, are <em>you</em> prepared to take up all the effort detailed above and relegate yourself to clicking links and opening tabs?</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<script data-goatcounter="https://stats.letsdecentralize.org/count"
|
||||||
|
async src="//stats.letsdecentralize.org/count.js"></script>
|
||||||
|
<noscript>
|
||||||
|
<img src="https://stats.letsdecentralize.org/count?p=/blog/2022/november/ld.html">
|
||||||
|
</noscript>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -105,7 +105,7 @@
|
||||||
</table>
|
</table>
|
||||||
<p>Conclusion: <strong>as far as Tor-available email providers go, ProtonMail has the highest deliverability</strong>. SecTor.City has piss-poor deliverability, but they work for the purposes of getting a ProtonMail account. <strong>If you don't want to daisychain email providers together like this, Onion Mail comes in second</strong> but also has a relatively low quota of emails you can send per day on the free plan, a fact which considerably slowed my research for this post down.</p>
|
<p>Conclusion: <strong>as far as Tor-available email providers go, ProtonMail has the highest deliverability</strong>. SecTor.City has piss-poor deliverability, but they work for the purposes of getting a ProtonMail account. <strong>If you don't want to daisychain email providers together like this, Onion Mail comes in second</strong> but also has a relatively low quota of emails you can send per day on the free plan, a fact which considerably slowed my research for this post down.</p>
|
||||||
<p>But anonymous email addresses are kind of useless if you don't already have someone you want to talk to. So I took my new plethora of addresses and attempted to sign up for some mainstream social media sites.</p>
|
<p>But anonymous email addresses are kind of useless if you don't already have someone you want to talk to. So I took my new plethora of addresses and attempted to sign up for some mainstream social media sites.</p>
|
||||||
<p>Reddit isn't nearly as hostile to Tor users as I had expected. They accepted my Onion Mail address without issue. However, reCAPTCHA, better known as "please click seven thousand traffic lights", kept accusing my IP of being part of a botnet. I had to restart Tor Browser no less than <em>seven</em> tims (I counted) before I got a clean IP that reCAPTCHA would let through. My problems with Reddit after that were less "ew, Tor user" and more "AutoMod is set to remove posts/downvotes from extremely new accounts"... until suddenly the "join" button on subreddits stopped working. Although maybe that was just Jett trying to keep me from purposely wading into cringe.</p>
|
<p>Reddit isn't nearly as hostile to Tor users as I had expected. They accepted my Onion Mail address without issue. However, reCAPTCHA, better known as "please click seven thousand traffic lights", kept accusing my IP of being part of a botnet. I had to restart Tor Browser no less than <em>seven</em> times (I counted) before I got a clean IP that reCAPTCHA would let through. My problems with Reddit after that were less "ew, Tor user" and more "AutoMod is set to remove posts/downvotes from extremely new accounts"... until suddenly the "join" button on subreddits stopped working. Although maybe that was just Jett trying to keep me from purposely wading into cringe.</p>
|
||||||
<p>Something with Tor Browser's implementation of uBlock Origin prevented me from completing the Twitter signup, even via the <a href="https://twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid.onion">hidden service</a>. Smashing the F12 button on my keyboard revealed that uBlock Origin was blocking a third-party domain used to load "Arkose challenges", which Twitter uses instead of captchas. For example, one of the "Arkose challenges" shows six images of monochrome dice with symbols on them, and you have to pick the image where two of the dice have the same symbol on top. Temporarily disabling uBlock Origin allowed me to complete these, but then Twitter threw a "we can't complete your signup right now" error. So I booted up Falkon and configured it to use a random proxy from <a href="https://openproxylist.com">this free proxy list</a>. It worked for a few hours until my account was locked for "suspicious activity". I did another "Arkose challenge" to prove I was a human, but I ended up locked out of the account anyway because Twitter demanded I give them a phone number.</p>
|
<p>Something with Tor Browser's implementation of uBlock Origin prevented me from completing the Twitter signup, even via the <a href="https://twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid.onion">hidden service</a>. Smashing the F12 button on my keyboard revealed that uBlock Origin was blocking a third-party domain used to load "Arkose challenges", which Twitter uses instead of captchas. For example, one of the "Arkose challenges" shows six images of monochrome dice with symbols on them, and you have to pick the image where two of the dice have the same symbol on top. Temporarily disabling uBlock Origin allowed me to complete these, but then Twitter threw a "we can't complete your signup right now" error. So I booted up Falkon and configured it to use a random proxy from <a href="https://openproxylist.com">this free proxy list</a>. It worked for a few hours until my account was locked for "suspicious activity". I did another "Arkose challenge" to prove I was a human, but I ended up locked out of the account anyway because Twitter demanded I give them a phone number.</p>
|
||||||
<p>I didn't test Facebook or Instagram despite a Tor hidden service for Facebook existing because I already knew I'd get locked out of any account I made in five minutes with a demand to see my driver's license. Tumblr works fine if you can get past the billion captchas every time you want to log in. Ovarit works fine if you have an invite code, although I don't know why you'd want to join <a href="./ovarit.html"><em>that</em> cesspit given recent events</a>. I'm sure ThePinkPill will work fine once (if) registrations open up again.</p>
|
<p>I didn't test Facebook or Instagram despite a Tor hidden service for Facebook existing because I already knew I'd get locked out of any account I made in five minutes with a demand to see my driver's license. Tumblr works fine if you can get past the billion captchas every time you want to log in. Ovarit works fine if you have an invite code, although I don't know why you'd want to join <a href="./ovarit.html"><em>that</em> cesspit given recent events</a>. I'm sure ThePinkPill will work fine once (if) registrations open up again.</p>
|
||||||
<p>In conclusion, the "age" of anonymous email is <em>far</em> from over. Providers who don't need to know any information about you are still alive and well. As with anything that research-allergic boomers or technological doomers think is dying, anonymous email is still out there... you just have to know where to look.</p>
|
<p>In conclusion, the "age" of anonymous email is <em>far</em> from over. Providers who don't need to know any information about you are still alive and well. As with anything that research-allergic boomers or technological doomers think is dying, anonymous email is still out there... you just have to know where to look.</p>
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<p>The instructions and ideas contained in this post could technically be used by any group that seeks to fly under the radar of the mainstream "clearnet". I write "female-only" because I started thinking about this after receiving many DMs from women on Ovarit asking if I could potentially in the future provide technical support for their own personal liberation projects. In case any of those women are reading this right now: I'm sorry I'm so busy! I'm trying to get back into my state's Vocational Rehabilitation Services program and also looking into if I'm eligible for Section 8 rent assistance so I can finally move out of the hellhole I call my parents' house. Plus, you know, living under a (borderline-)abusive household is rather draining on the psyche, and the lack of control over my own life makes me accidentally lash out at others in unproductive-at-best ways. I hope soon I'll get into a living situation that doesn't send me into an "I want to die" spiral every other night so I know what it's like to live without a constant fight-or-flight reflex tight in my chest.</p>
|
<p>The instructions and ideas contained in this post could technically be used by any group that seeks to fly under the radar of the mainstream "clearnet". I write "female-only" because I started thinking about this after receiving many DMs from women on Ovarit asking if I could potentially in the future provide technical support for their own personal liberation projects. In case any of those women are reading this right now: I'm sorry I'm so busy! I'm trying to get back into my state's Vocational Rehabilitation Services program and also looking into if I'm eligible for Section 8 rent assistance so I can finally move out of the hellhole I call my parents' house. Plus, you know, living under an unsupportive household is rather draining on the psyche, and the lack of control over my own life makes me accidentally lash out at others in unproductive-at-best ways. I hope soon I'll get into a living situation that doesn't send me into an "I want to die" spiral every other night so I know what it's like to live without a constant fight-or-flight reflex tight in my chest.</p>
|
||||||
<p>A common theme in imageboards and other alt-tech spaces is a feeling that ranges from resentment (at best) to vitriol (at worst) at women as a class for not being as technologically literate as their male counterparts. Never mind that the damn field of study was <a href="https://web.archive.org/web/20221006024237/https://en.wikipedia.org/wiki/Ada_Lovelace">invented by women in the first place</a>. I like to call the resulting spiral "the techbro cycle of exclusion", which goes as follows:</p>
|
<p>A common theme in imageboards and other alt-tech spaces is a feeling that ranges from resentment (at best) to vitriol (at worst) at women as a class for not being as technologically literate as their male counterparts. Never mind that the damn field of study was <a href="https://web.archive.org/web/20221006024237/https://en.wikipedia.org/wiki/Ada_Lovelace">invented by women in the first place</a>. I like to call the resulting spiral "the techbro cycle of exclusion", which goes as follows:</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li>Men mock women for not knowing about the trendy piece of software <em>du jour</em> or not having the will or time to go looking for alternatives to websites they use daily, such as Facebook.</li>
|
<li>Men mock women for not knowing about the trendy piece of software <em>du jour</em> or not having the will or time to go looking for alternatives to websites they use daily, such as Facebook.</li>
|
||||||
|
@ -50,7 +50,7 @@ Peers:
|
||||||
tls://tasty.chowder.land:9001
|
tls://tasty.chowder.land:9001
|
||||||
tls://supergay.network:9001
|
tls://supergay.network:9001
|
||||||
tls://lancis.iscute.moe:49274
|
tls://lancis.iscute.moe:49274
|
||||||
tls://mayvaneday.org:1414
|
tls://letsdecentralize.org:1414
|
||||||
]
|
]
|
||||||
</pre>
|
</pre>
|
||||||
<p>All these peers are taken from the <a href="https://web.archive.org/web/20221006040725/https://github.com/yggdrasil-network/public-peers/blob/master/north-america/united-states.md">public peer list</a> that the Yggdrasil developers maintain. <strong>We won't use these in our theoretical female-only network.</strong> The peers listed above are only for the global Yggdrasil testnet currently in operation. In our theoretical network, we would only add peers of other members of the network.</p>
|
<p>All these peers are taken from the <a href="https://web.archive.org/web/20221006040725/https://github.com/yggdrasil-network/public-peers/blob/master/north-america/united-states.md">public peer list</a> that the Yggdrasil developers maintain. <strong>We won't use these in our theoretical female-only network.</strong> The peers listed above are only for the global Yggdrasil testnet currently in operation. In our theoretical network, we would only add peers of other members of the network.</p>
|
||||||
|
|
252
blog/2023/february/utopia.html
Executable file
|
@ -0,0 +1,252 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>I installed Utopia so you don't have to - Archive - MayVaneDay Studios</title>
|
||||||
|
<link href="../../../style.css" rel="stylesheet" type="text/css" media="all">
|
||||||
|
<meta name="author" content="Vane Vander">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
</head>
|
||||||
|
<body class="mayvaneday">
|
||||||
|
<article>
|
||||||
|
<div class="box">
|
||||||
|
<h1>I installed Utopia so you don't have to</h1>
|
||||||
|
<p>published: 2023-02-01</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<p>Because this post deals with a potentially sensitive topic, I feel the need to put the following disclaimers:</p>
|
||||||
|
<ol>
|
||||||
|
<li><strong>I AM NOT A SECURITY RESEARCHER.</strong> I don't do malware testing for a living, or even as a hobby. Just because I didn't find any concrete evidence of spyware/malware in Utopia doesn't mean that there isn't any at all; it just means that, if there is any, it's not blatantly obvious to the amateur eye.</li>
|
||||||
|
<li>Near the middle of this post, I show some analysis I did using <code>strace</code>. Programs can likely see that they're attached to <code>strace</code> and act differently if so. My analysis only shows what the Utopia client does when connected to <code>strace</code> and not when it isn't.</li>
|
||||||
|
<li>Utopia devs or cryptobros, do <em>not</em> misinterpret this post as approval or endorsement of Cryptons or the Utopia ecosystem. I hope you crash and burn along with every other shitcoin. Tell your devs to spend less time spamming people on Twitter who even so much as mention Monero and more time fixing their hopelessly broken app.</li>
|
||||||
|
</ol>
|
||||||
|
<p>Now, with that out of the way...</p>
|
||||||
|
<p>Once upon a time, there was a chat app called <a href="https://web.archive.org/web/20230113001704/https://en.wikipedia.org/wiki/ANOM">ANOM</a>. Marketed towards drug cartels, human traffickers, and other criminals, it was distributed on Android phones specially modified to leak as little data about their surroundings as possible: no texting, no cellular radios, no GPS, et cetera. To conceal its existence on the phone, it pretended to be a calculator app and would only reveal to the user that it was ANOM after the user inputted a very specific calculation. ANOM <a href="https://web.archive.org/web/20230113001750/https://www.cbsnews.com/news/anom-app-fbi-criminals-messaging-app/">claimed to use end-to-end encryption</a> to protect its messages in the case of the servers being seized by a law enforcement agency. It used a number of proxy servers to route traffic between the user and the ANOM servers, thus concealing the purpose of the traffic to anyone running a network sniffer.</p>
|
||||||
|
<p>However, it turned out that those proxy servers were... ran by the FBI. Along with the rest of the app, developed by a man who was already writing a chat app, then got charges slapped on him, and chose to work with the FBI for a reduced sentence. And the "criminal influencers" who recommended ANOM to other criminals were <a href="https://web.archive.org/web/20230113001822/https://www.businessinsider.com/fbi-anom-chat-app-leads-800-suspected-organized-crime-arrests-2021-6?op=1">mainly FBI informants</a> or criminals <a href="https://web.archive.org/web/20210608184123/https://www.bbc.com/news/world-57397779">unknowingly influenced by FBI informants</a>. As far as I can tell, ANOM was closed-source, meaning <a href="https://web.archive.org/web/20210610004653/http://webcache.googleusercontent.com/search?q=cache%3Ahttps%3A%2F%2Fanomexposed.wordpress.com%2F2021%2F03%2F29%2Fanom-encrpted-scam-exposed%2F">very few people</a> were able to figure out that <a href="https://web.archive.org/web/20210609010314/https://the-latest.news/anom-encrypted-app-analysis/">it was a scam</a> before <a href="https://web.archive.org/web/20210609034517/https://www.rte.ie/news/world/2021/0608/1226789-global-organised-crime/">over eight hundred people got arrested</a> in the FBI's Operation Trojan Shield.</p>
|
||||||
|
<p>Why do I bring this up? Well, ANOM and Utopia have a lot in common. Both are closed-source, supposedly encrypted, distributed by a shady group of unknown people, (allegedly) connected to money laundering...</p>
|
||||||
|
<p>For those unaware of what Utopia is, exactly: Utopia is a self-proclaimed "P2P ecosystem" that effectively amounts to yet another chat app with a shitty browser and cryptocurrency tacked on at the end. The <a href="https://archive.md/afFA1">homepage</a> has the usual slew of buzzwords like "censorship-free", "decentralized", and "anonymous". Its unique integrated cryptocurrency, "Cryptons", is billed as a "privacy coin" similar to Monero (their official Twitter account seemingly exists solely to <a href="https://archive.md/fGofI">encourage its users to spam Monero users</a> with <a href="https://archive.md/txIs5#selection-2943.39-2943.108">ads for Crypton</a>) that can somehow be mined without <a href="https://web.archive.org/web/20220809233802/https://www.utopia-ecosystem.com/crypton/index.html">an increase to power consumption or CPU load</a> and <a href="https://archive.md/QO7Ru#selection-1581.0-1581.120">doesn't have a whitepaper</a>. And no, a <a href="https://web.archive.org/web/20230107204146/https://github.com/utopia-opensource/crypton-frostbox-whitepaper">"frostbox" for HODLing crypto</a> doesn't count. Utopia also comes with its own darknet, accessed using the bundled "Idyll Browser", billed as a Tor alternative but without the outproxy function that was <a href="https://web.archive.org/web/20230107211123/https://www.torproject.org/about/history/">the whole point of Tor in the first place</a>. You'd think a SUPER SECRET cabal of EPIC HACKERS would know that a darknet meant for hidden services that <em>maybe</em> might get an outproxy function later is better compared to I2P. As we zoomers say, "SMH my head."</p>
|
||||||
|
<p>Utopia, Cryptons, Idyll, and the other myriad pieces of the Utopia ecosystem have one glaring problem: <a href="https://archive.md/fwvAG#selection-1183.93-1183.150"><strong>THERE IS NO PUBLICALLY AVAILABLE SOURCE CODE.</strong></a> (<a href="https://web.archive.org/web/20230107204227/https://github.com/utopia-opensource/utopia-codebase">Community-contributed accessories</a> don't count. I want the source to the NETWORK.) The reason for this is a bunch of whining from the devs on the FAQ about potential forks of the protocol causing instability, despite the fact that ZeroNet's "main network" is unstable <em>precisely because</em> nobody there is competent enough to fix the code and Freenet has existed for over twenty years now and yet <a href="https://archive.md/uomJX">there is still no good alternate implementation</a> of the Freenet protocols other than the original Java reference daemon, proving that the availability of the source has no bearing on the stability of the network and does not guarantee that the community is going to go out of their way to break compatibility without good reason.</p>
|
||||||
|
<p>But since people keep harassing me to add Utopia to Let's Decentralize, I suppose the only way to get the emails to stop (server-side email filtering doesn't do shit against GPG-encrypted messages) is to install it and give it a spin.</p>
|
||||||
|
<p>I installed a fresh copy of Linux Mint in a new VirtualBox VM, downloaded the Utopia client (not the mining bot) from the Utopia website, and installed it. At the time of writing, the latest version was 1.2.166, and this was the version I used throughout testing. Because I wanted to see what files on my machine the Utopia client would access, just in case it really was a Trojan horse like ANOM, I didn't launch Utopia through the Cinnamon desktop's application menu but through a terminal so I could attach <code>strace</code> to it and whatever other processes it spawned:</p>
|
||||||
|
<p><code>strace -f -e execve,access,openat -o ~/utopia.txt /opt/utopia/messenger/utopia</code></p>
|
||||||
|
<p>Utopia didn't like my virtual machine's screen resolution of 1360x696 (the biggest I could get it with my host running i3 with only a small status bar on the top and fullscreen otherwise) because the bottom of the window was cut off and the program refused to allow me to resize it smaller. The default UI is full of visual clutter on first launch, and I couldn't find a way to close "Dashboard", really just a messaging inbox, or "Channels". I was automatically added to an announcements channel last updated in November of last year. Bonus points if you can find the grammar error in this screenshot.</p>
|
||||||
|
<p><img class="big" src="../../../img/UtopiaUI.png" alt="Utopia dashboard"></p>
|
||||||
|
<p>Since I don't have anyone already on Utopia to chat with, and I don't want to expose anyone else to Utopia in case it actually is malware, I couldn't chat with anyone. I saw that there are two games available, chess and poker, but I don't know how to play poker and the chess game doesn't let you play singleplayer.</p>
|
||||||
|
<p>No chats, no email, no games. What's left to do on Utopia? The darknet, I suppose.</p>
|
||||||
|
<p>So I launched Idyll, Utopia's built-in darknet browser. I got a blank page. No directory or anything. I went back to the main Utopia window, opened the Tools menu, and then started the uNS manager. uNS is Utopia's version of DNS, where you can pay cryptons to register a "domain" that you can then use to forward traffic from the network to your computer. Forwarding is port-based, so you can host pretty much any arbitrary program on Utopia. Going to "Registry" and then opening the "Sync Progress" tab, I could see that the last registered domain was "utopia.forever". An apt name, since it took... forever to load in Idyll, and then just timed out.</p>
|
||||||
|
<p><img class="big" src="../../../img/IdyllTimeout.png" alt="Idyll Browser timeout error"></p>
|
||||||
|
<p>Going back to the main Utopia window, I went to the "Search" tab and started typing in random terms. The first one that came to mind was "music", which returned the domain... "justinbiebermusic.com". That site didn't load. I tried "utopia", which returned "darkutopia" and "utopia-google", neither of which loaded. (uNS doesn't require a domain to have a TLD, and you can just add whatever arbitrary TLDs you want to your registered domain.) Most domains were registered sometime in 2019, but I couldn't sort for new ones because clicking the "registration date" title on the table doesn't trigger any sorting. I looked in the manual to see if I was doing something wrong, but the troubleshooting section only gave instructions to reinstall the proxy configuration file and nothing else. The manual also claimed that I could go to "http://utopia" to test if the browser was working, but <em>that</em> domain also timed out. The only uNS site I could get working was "http://crp"... which is an internal crptocurrency exchange.</p>
|
||||||
|
<p><img class="big" src="../../../img/NoUtopia.png" alt="http://utopia: Server Not Found"></p>
|
||||||
|
<p>I thought about setting up a test site in Utopia. My usual <em>modus operandi</em> when it comes to darknets is to eschew any centralized domain service, like how I2P users insist you register a domain on one of three barely-functional services: one of them tried to set up <code>mayvaneday.i2p</code> without my knowledge, but I blocked requests from that domain pretty quickly- and just use the public key I'm given. So I opened up the uNS registry and went to "Packet Forwarding", but Utopia insisted that I could only set up packet forwarding after I bought a uNS record, costing about 10 CRP. (At the time of writing, <a href="https://web.archive.org/web/20230107220410/https://nomics.com/markets/crp2-crypton/usd-united-states-dollar">that's about $6.25</a>.)</p>
|
||||||
|
<p>So I can't chat or email because I have nobody to do it with. I can't play chess by myself. (And there are better ways to do so.) I can't access websites unless it's to buy a shitcoin. I can't host my own website because I don't have the money to burn on shitcoins for a network where almost none of the websites work. There's nothing for me to do on Utopia. So I closed the program and copied my <code>strace</code> capture to the host computer and shut down the VM.</p>
|
||||||
|
<p>Now for the allegations of the Utopia client being malware...</p>
|
||||||
|
<p>According to <code>strace</code>, Utopia did not attempt to access any sensitive files in my home directory. If it had tried to access something sensitive like <code>~/.ssh</code>, it would have shown up in the logs, even if the file or directory was nonexistent. In my home directory, Utopia accessed:</p>
|
||||||
|
<ul>
|
||||||
|
<li>directory <code>/home/lethe/.cache/Utopia/</code></li>
|
||||||
|
<li>directory <code>/home/lethe/.cache/qtshadercache-x86_64-little_endian-lp64/</code></li>
|
||||||
|
<li>directory <code>/home/lethe/.cache/mesa_shader_cache/</code></li>
|
||||||
|
<li>directory <code>/home/lethe/.icons/</code></li>
|
||||||
|
<li>directory <code>/home/lethe/.config/pulse/</code></li>
|
||||||
|
<li>directory <code>/home/lethe/.local/share/Utopia/</code></li>
|
||||||
|
<li>directory <code>/home/lethe/.local/share/sounds/</code></li>
|
||||||
|
<li>directory <code>/home/lethe/.local/share/flatpak/exports/share/sounds/</code></li>
|
||||||
|
<li>file <code>/home/lethe/.Xauthority</code></li>
|
||||||
|
<li>file <code>/home/lethe/.config/mimeapps.list.new</code></li>
|
||||||
|
<li>file <code>/home/lethe/.fonts.conf.d</code></li>
|
||||||
|
<li>file <code>/home/lethe/.local/share/fonts/.uuid</code></li>
|
||||||
|
<li>file <code>/home/lethe/.drirc</code></li>
|
||||||
|
<li>file <code>/home/lethe/.pulse/client.conf</code></li>
|
||||||
|
<li>file <code>/home/lethe/.asoundrc</code></li>
|
||||||
|
<li>file <code>/home/lethe/.config/alsa/asoundrc</code></li>
|
||||||
|
</ul>
|
||||||
|
<p>When running the Idyll browser, Utopia also accessed:</p>
|
||||||
|
<ul>
|
||||||
|
<li>directory <code>/home/lethe/.idyll/idyll browser</code> (with the space in it)</li>
|
||||||
|
<li>directory <code>/home/lethe/.cache/idyll/idyll browser</code></li>
|
||||||
|
<li>directory <code>/home/lethe/.config/gtk-3.0/</code></li>
|
||||||
|
<li>directory <code>/home/lethe/.local/share/themes/</code></li>
|
||||||
|
<li>directory <code>/home/lethe/.local/share/flatpak/exports/</code></li>
|
||||||
|
<li>directory <code>/home/lethe/Idyll</code></li>
|
||||||
|
</ul>
|
||||||
|
<p>Utopia did not attempt to access any personal files I did not explicitly tell it to open.</p>
|
||||||
|
<p>However, <strong>Utopia DID read from <code>/etc/passwd</code></strong>:</p>
|
||||||
|
<p><code>3270 openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 11</code></p>
|
||||||
|
<p>and <code>/etc/hosts</code>:</p>
|
||||||
|
<p><code>3270 openat(AT_FDCWD, "/etc/hosts", O_RDONLY|O_CLOEXEC) = 10</code></p>
|
||||||
|
<p>and may have attempted to determine what security measures were on the device:</p>
|
||||||
|
<p><code>3387 access("/etc/selinux/config", F_OK) = -1 ENOENT (No such file or directory)</code></p>
|
||||||
|
<p>Utopia also, for whatever reason, looks for Firefox, Thunderbird, and Hexchat:</p>
|
||||||
|
<pre>
|
||||||
|
2864 openat(AT_FDCWD, "/usr/share/applications/firefox.desktop", O_RDONLY) = 86
|
||||||
|
2864 access("/usr/local/sbin/firefox", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/local/bin/firefox", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/sbin/firefox", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/bin/firefox", X_OK) = 0
|
||||||
|
2864 access("/usr/local/sbin/firefox", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/local/bin/firefox", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/sbin/firefox", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/bin/firefox", X_OK) = 0
|
||||||
|
2864 openat(AT_FDCWD, "/usr/share/applications/io.github.Hexchat.desktop", O_RDONLY <unfinished ...>
|
||||||
|
2864 access("/usr/local/sbin/hexchat", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/local/bin/hexchat", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/sbin/hexchat", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/bin/hexchat", X_OK) = 0
|
||||||
|
2864 openat(AT_FDCWD, "/usr/share/applications/io.github.Hexchat.desktop", O_RDONLY) = 86
|
||||||
|
2864 access("/usr/local/sbin/hexchat", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/local/bin/hexchat", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/sbin/hexchat", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/bin/hexchat", X_OK) = 0
|
||||||
|
2864 openat(AT_FDCWD, "/usr/share/applications/io.github.Hexchat.desktop", O_RDONLY) = 86
|
||||||
|
2864 access("/usr/local/sbin/hexchat", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/local/bin/hexchat", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/sbin/hexchat", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/bin/hexchat", X_OK) = 0
|
||||||
|
2864 openat(AT_FDCWD, "/usr/share/applications/io.github.Hexchat.desktop", O_RDONLY) = 86
|
||||||
|
2864 access("/usr/local/sbin/hexchat", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/local/bin/hexchat", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/sbin/hexchat", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/bin/hexchat", X_OK) = 0
|
||||||
|
2864 openat(AT_FDCWD, "/usr/share/applications/thunderbird.desktop", O_RDONLY) = 86
|
||||||
|
2864 access("/usr/local/sbin/thunderbird", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
2864 access("/usr/local/bin/thunderbird", X_OK) = -1 ENOENT (No such file or directory)
|
||||||
|
</pre>
|
||||||
|
<p>And Utopia also <em>really</em> wants to know when your version of Debian is EOL:</p>
|
||||||
|
<p><code>3074 openat(AT_FDCWD, "/usr/share/distro-info/debian.csv", O_RDONLY|O_CLOEXEC) = 3</code></p>
|
||||||
|
<p>To be fair, I didn't even know this file existed. I suppose this'll save me a few trips to Wikipedia in the future. Thanks, Utopia!</p>
|
||||||
|
<p>I was also able to take a Wireshark capture of the traffic going in and out of my VM... for the first half-hour, anyway. I realize now as I write this that I could have ran it on the host machine attached to the virtual network interface VirtualBox creates, but I was in a rush to get set up, so I had Wireshark running <em>inside</em> the VM because that's what I knew would work. I only allocated two gigabytes to the virtual machine, so cue my surprise when the entire thing slowed to a crawl for a few minutes until the Linux OOM killer nuked Wireshark. Thankfully I discovered the <code>.pcapng</code> file in the VM's <code>/tmp</code> directory (and it was two gigabytes large! fancy that!) so I was still able to salvage what Wireshark had managed to capture of Utopia's network traffic. I also learned that Wireshark has a command-line version, <code>tshark</code>, which makes it far easier to rip data from a packet capture file than waiting for the GUI to load and then figure out how to export traffic as a text file.</p>
|
||||||
|
<p><code>tshark -T fields -e ip.dst -r /home/lethe/Documents/wireshark_enp0s3Y4PGY1.pcapng | grep -Ev "10.0.2" > /home/lethe/Documents/ip.txt</code></p>
|
||||||
|
<p>About twenty minutes or so (I wasn't counting because I was eating dinner) later, I had condensed the two-gigabyte packet capture into a twelve-megabyte list of only the IPs that the VM had talked to, minus any LAN traffic. I then had to create two new lists: one with each IP address ranked by the number of times Utopia had connected to it, and one with only unique IPs so that I could see how many people Utopia had connected to. As it turns out, <code>uniq</code>, the command-line tool that can do both of those jobs, has a bug where it only counts a line as a duplicate of another line if those two lines are adjacent to each other. Thus I had to run <code>sort</code> twice.</p>
|
||||||
|
<p>For the first list, I ran <code>cat ~/Documents/ip.txt | sort | uniq -c | sort -gr | head -n 15</code>, and it gave me the following data for the fifteen most connected-to IPs:</p>
|
||||||
|
<p><table>
|
||||||
|
<thead>
|
||||||
|
<th>Number of connections</th>
|
||||||
|
<th>IP address</th>
|
||||||
|
<th>Country</th>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>79778</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230113002027/https://www.abuseipdb.com/check/142.202.241.229">142.202.241.229</a></td>
|
||||||
|
<td>USA</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>71747</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230113002110/https://www.abuseipdb.com/check/142.202.241.227">142.202.241.227</a></td>
|
||||||
|
<td>USA</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>68267</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230113002146/https://www.abuseipdb.com/check/142.202.242.91">142.202.242.91</a></td>
|
||||||
|
<td>USA</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>63915</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230201164312/https://www.abuseipdb.com/check/142.202.242.235">142.202.242.235</a></td>
|
||||||
|
<td>USA</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>56505</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230201164422/https://www.abuseipdb.com/check/142.202.241.181">142.202.241.181</a></td>
|
||||||
|
<td>USA</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>54366</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230201164510/https://www.abuseipdb.com/check/95.217.32.101">95.217.32.101</a></td>
|
||||||
|
<td>Finland</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>50786</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230201164551/https://www.abuseipdb.com/check/95.216.226.81">95.216.226.81</a></td>
|
||||||
|
<td>Finland</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>49881</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230201164630/https://www.abuseipdb.com/check/138.201.223.188">138.201.223.188</a></td>
|
||||||
|
<td>Germany</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>47458</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230201164721/https://www.abuseipdb.com/check/195.201.196.58">195.201.196.58</a></td>
|
||||||
|
<td>Germany</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>42893</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230201164831/https://www.abuseipdb.com/check/23.88.71.29">23.88.71.29</a></td>
|
||||||
|
<td>Germany</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>42166</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230201164922/https://www.abuseipdb.com/check/95.217.45.95">95.217.45.95</a></td>
|
||||||
|
<td>Finland</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>38891</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230201165027/https://www.abuseipdb.com/check/88.198.1.111">88.198.1.111</a></td>
|
||||||
|
<td>Germany</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>38819</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230201165113/https://www.abuseipdb.com/check/185.222.66.220">185.222.66.220</a></td>
|
||||||
|
<td>Germany</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>37368</td>
|
||||||
|
<td><a href="https://web.archive.org/web/20230201165201/https://www.abuseipdb.com/check/85.14.248.179">85.14.248.179</a></td>
|
||||||
|
<td>Germany</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>25267</td>
|
||||||
|
<td>173.208.183.82</td>
|
||||||
|
<td>USA</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<pre><code>
|
||||||
|
</code></pre>
|
||||||
|
<p><a href="https://web.archive.org/web/20230113001915/https://www.abuseipdb.com/user/26767">All (but one) of the top IPs seem to really hate AbuseIPDB user Tha_14</a>, as this user has reported each one at least once within the past year for port scanning. While this isn't definitive evidence of a botnet, the fact that each one was active in Utopia within a day or two of my test (otherwise my device would not have connected to them) <em>and</em> port-scanned the same person definitely implies some kind of coordinated attack.</p>
|
||||||
|
</p>
|
||||||
|
<p>For the second list, I ran <code>cat ~/Documents/ip.txt | sort | uniq | wc -l</code> and fed the results of that list to a custom script that queries the AbuseIPDB API for the purpose of each IP. (Well, it gives the full information about each IP, so I could see that Russia only showed up once or twice, but I had it filtered further with <code>jq</code>.) The list only returned about three hundred and eighty unique IP addresses, which was well within the daily limits for AbuseIPDB's free tier of membership.</p>
|
||||||
|
<p><table>
|
||||||
|
<thead>
|
||||||
|
<th>IP allocation</td>
|
||||||
|
<th>Number of occurrences</td>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Data Center/Web Hosting/Transit</td>
|
||||||
|
<td>329</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Fixed Line ISP</td>
|
||||||
|
<td>12</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Commercial</td>
|
||||||
|
<td>6</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Mobile ISP</td>
|
||||||
|
<td>4</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table></p>
|
||||||
|
<p>As shown in the table, the vast majority of IP addresses that Utopia connected to during the tests were owned by VPS hosting companies, not residential ISPs as I would have first guessed. I have three hypotheses as to why this is the case.</p>
|
||||||
|
<p>Firstly, as I wrote in the beginning of this post, Utopia's devs nowadays mainly focus on their cryptocurrency, Cryptons. When attempting to debug why no sites were loading in Idyll, I forgot to mention that there was a "Console" feature, which I thought would allow me to run tools like <code>ping</code>, but instead it was a glorified log viewer that showed that Utopia was making thousands of connections a minute to fetch "mining history updates" and "finance balance requests". The vast majority of these mackets were marked "skipped", but that doesn't negate that they were sent to my node in the first place. Given how gung-ho the Utopia devs are about crypto, and considering that the <a href="https://archive.md/fwvAG#selection-2577.0-2577.46">official mining bot apparently requires four gigabytes of RAM <em>at minimum</em> and a public IP</a>, it's not that far of a stretch to assume that these VPSes were running the Crypton mining bot. Please note that the bot is also closed-source, so these people trying to scrape pennies together have effectively given the Utopia devs access to lots of VPSes trusting that they won't become part of a botnet.</p>
|
||||||
|
<p>Secondly, if these are potential command-and-control centers for a Utopia botnet, then it would make sense to have as many IPs as possible in case of some of them going down from seizure and to get them from virtual private server providers to reduce the cost of quickly rotating IPs. But that doesn't explain why so many of the IP addresses are owned by the same company. In the case of an active botnet, that company would have the power to kill a large part of the infected machines.</p>
|
||||||
|
<p>Thirdly, less likely but still worth mentioning, is that some of these virtual private servers might be set up as personal VPNs to save users from a nasty letter from their ISP should the <em>closed-source</em> Utopia client generate some shady traffic. Depending on how the VPN was set up and if the VPN blocks local LAN traffic, it could make it harder for Utopia, if it was really a Trojan horse, to attempt to infect the rest of the machines in one's house.</p>
|
||||||
|
<p>To close out this investigation, I downloaded the Utopia installers for every operating system Utopia supports (Windows, macOS, and Debian-based and RPM-based Linux) and threw them into VirusTotal. Someone had tested the Debian installer before me, which <a href="https://archive.md/B9xMq">came back clean</a>. The <a href="https://archive.ph/ijc59">RPM installer</a> also passed VirusTotal's scans, but the Windows installer <a href="https://archive.ph/u56PJ">came back with a high chance</a> of being <a href="https://web.archive.org/web/20230109021312/https://www.2-spyware.com/remove-malicious-moderate-ml-score.html">unclassified malware</a>. The <a href="https://archive.md/1WLUE">Mac version</a> also read some sensitive system files, may have attempted to determine if it was in a sandbox, and tripped an IDS rule relating to <a href="https://web.archive.org/web/20230109023920/https://cve.mitre.org/cgi-bin/cvename.cgi?name=2019-12259">two</a> <a href="https://web.archive.org/web/20230109023923/https://cve.mitre.org/cgi-bin/cvename.cgi?name=2019-12265">CVEs</a>.</p>
|
||||||
|
<p>In conclusion, while Utopia didn't immediately lock up my virtual machine and demand crypto to restore my files or start DDoSing some poor schmuck's server, it still displayed quite a lot of shady behavior. An open-source project, if a debugger caught it looking around in sensitive system files, could point to the exact points in the code where this behavior occurs and justify the access. If an end-user still did not trust the binaries, if they were competent enough at programming, they could attempt to patch out this behavior and compile from source. But Utopia is closed-source, and its developers are more concerned with the value of their cryptocurrency than with addressing any of the real concerns about trust and privacy due to the lack of source code. Considering the lack of public source code, the clear priorities of the developers, and the lack of things to do from the viewpoint of a user who cannot acquire money to spend in the ecosystem, <strong>Utopia has no function, no worth, and no future except as a platform for a future exit scam.</strong></p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<script data-goatcounter="https://stats.letsdecentralize.org/count"
|
||||||
|
async src="//stats.letsdecentralize.org/count.js"></script>
|
||||||
|
<noscript>
|
||||||
|
<img src="https://stats.letsdecentralize.org/count?p=/blog/2023/february/utopia.html">
|
||||||
|
</noscript>
|
||||||
|
</body>
|
||||||
|
</html>
|
41
blog/2023/january/UterusPin.html
Executable file
|
@ -0,0 +1,41 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Uterus Pin Perler Bead Pattern - Archive - MayVaneDay Studios</title>
|
||||||
|
<link href="../../../style.css" rel="stylesheet" type="text/css" media="all">
|
||||||
|
<meta name="author" content="Vane Vander">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
</head>
|
||||||
|
<body class="mayvaneday">
|
||||||
|
<article>
|
||||||
|
<div class="box">
|
||||||
|
<h1>Uterus Pin Perler Bead Pattern</h1>
|
||||||
|
<p>published: 2023-01-01</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<p>Something was wrong with the milk machines at Hell College. Skim milk tasted like literal cow water, and the 2% milk made me want to puke. The chocolate milk dispenser was alright, but since my main source of milk meal-wise during my stay at Hell College was at breakfast for cereal, that would have been <em>too</em> much sugar at once for my poor body.</p>
|
||||||
|
<p>Thankfully, due to the high volume of lactose-intolerant and vegan students on campus, there was a regularly-restocked soy milk dispenser. It was delicious, which is a shame because I don't remember what brand it was and I have yet to find soy milk that tastes just as smooth. The cooks- and even a campus administrator once- ran out of the kitchen multiple times during my year there to yell at me for taking so much. I think once they purposely didn't refill the damn thing until noon because they knew I was coming to drink it all at breakfast. So, just for that morning, I was forced to use the almond milk dispenser instead. Maybe it was starting to go bad, or maybe almond milk just naturally tastes <em>rancid</em>, but I never tried that again.</p>
|
||||||
|
<p align="center"><img class="big" src="../../../img/AlmondMilkMeme.jpg" alt="meme where a dude does an online quiz to tell him what the next five years are like, and 2019-2022 is a bunch of pictures of Hell and 2023 is a meme about almond milk" /></p>
|
||||||
|
<p>Which is why, when I look at the calendar and see that the Year of the Almond Milk is upon us, my hope is that it means this is the year where I close the loopholes that men keep using to cause me pain, just like how I eventually stopped eating cereal at Hell College so the cooks would stop threatening to beat my ass for the crime of... drinking milk. (Have you ever had hash browns covered in hot sauce at six in the morning? Religious experience right there. Highly recommended. Alternatively, get a bunch of noodles in alfredo sauce in a take-out box, put some chicken tenders on top, and let it sit in the fridge overnight. The food is the only thing I really miss about Hell College.)</p>
|
||||||
|
<p>Dammit, I'm digressing again.</p>
|
||||||
|
<p>Wanna know one thing the cooks <em>didn't</em> do? Keep harassing me after I left Hell College. Exactly zero of the cooks stalked me after I left the campus and never returned. Not a single one gave me unsolicited passive-aggressive "career advice". <strong>Not a single one sicced their friends on me to leave nasty misogynistic screeds in my inbox, email or IRL, after I got COVID-19.</strong> I can't think of a single one who went out of their way to bypass my elaborate server filters just to tell me to kill myself. (I wish Zoho's web admin panel had an <em>actual</em> mobile version. Too much pinching and zooming for my bleary eyes.) I left Hell College, and they forgot about me, and we went our separate ways. Maybe it helped that all the cooks I remember were female. I mean, Ovarit was <a href="../../2022/october/ovarit.html">full of shitty people</a>, but I haven't received even a single <em>peep</em> of harassment from them since I left. I wish I knew exactly what it is about the Y chromosome that makes men <a href="https://archive.md/tHVeh">Behave Like That</a>.<!-- https://www.tumblr.com/r4dioe/704642314862215168 --></p>
|
||||||
|
<p>So, as the first post of the Year of the Almond Milk on this blog, let me remind everyone who this website is <em>really</em> for: on Christmas, instead of pretending to be a Christian, I sat in my grandmother's basement and designed from scratch a uterus pin. There were existing designs already on the Internet, but they were either too simplistic or too oblong and likely to have dangling pieces chip off when actually used as a pin.</p>
|
||||||
|
<p>I don't have a PO box to ship these from, so I currently have no way of safely selling them on Etsy... so apologies if you wanted one Certifiably Made By A Madwoman. As recompense for a crime not committed, here's the pattern. Use the "mini" bead size for these. Good luck, have fun, and may your first womynstruation in the Year of the Almond Milk be light and pain-free.</p>
|
||||||
|
<p align="center"><img class="big" src="../../../img/UterusPin1.png" /></p>
|
||||||
|
<p align="center"><img class="big" src="../../../img/UterusPin2.png" /></p>
|
||||||
|
<p align="center"><img class="big" src="../../../img/UterusPin3.png" /></p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<script data-goatcounter="https://stats.letsdecentralize.org/count"
|
||||||
|
async src="//stats.letsdecentralize.org/count.js"></script>
|
||||||
|
<noscript>
|
||||||
|
<img src="https://stats.letsdecentralize.org/count?p=/blog/2023/january/UterusPin.html">
|
||||||
|
</noscript>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -15,9 +15,19 @@
|
||||||
<p>The list items marked with a star are the posts I feel are the most written and should be considered a kind of "greatest hits".</p>
|
<p>The list items marked with a star are the posts I feel are the most written and should be considered a kind of "greatest hits".</p>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
|
<div class="box">
|
||||||
|
<h2>2023</h2>
|
||||||
|
<ul>
|
||||||
|
<li>February 1 - <a href="./2023/february/utopia.html">I installed Utopia so you don't have to</a></li>
|
||||||
|
<li>January 1 - <a href="./2023/january/UterusPin.html">Uterus Pin Perler Bead Pattern</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<h2>2022</h2>
|
<h2>2022</h2>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>December 7 - <a href="./2022/december/web3-2.html">Broke Dumbass Attempts To Web3 Again</a></li>
|
||||||
|
<li>November 22 - <a href="./2022/november/asking.html">It's insane, the things you can get simply by asking</a></li>
|
||||||
|
<li>November 1 - <a href="./2022/november/ld.html">Woman who would have been revered prophetess 4,000 years ago now relegated to clicking links, opening tabs</a></li>
|
||||||
<li>October 25 - <a href="./2022/october/email.html">Anonymous email is still alive and well</a></li>
|
<li>October 25 - <a href="./2022/october/email.html">Anonymous email is still alive and well</a></li>
|
||||||
<li>October 24 - <a href="./2022/october/ovarit.html">Short statement on the Ovarit situation</a></li>
|
<li>October 24 - <a href="./2022/october/ovarit.html">Short statement on the Ovarit situation</a></li>
|
||||||
<li>October 6 - <a href="./2022/october/yggdrasil.html">Theoretical design for a female-only internet</a></li>
|
<li>October 6 - <a href="./2022/october/yggdrasil.html">Theoretical design for a female-only internet</a></li>
|
||||||
|
@ -93,7 +103,6 @@
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<h2>2019</h2>
|
<h2>2019</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>December 14 - <a href="./2019/december/death-of-a-gopher.html">Death Of A Gopher</a></li>
|
|
||||||
<li class="based">November 19 - <a href="./2019/november/masthead.html">A New Masthead</a></li>
|
<li class="based">November 19 - <a href="./2019/november/masthead.html">A New Masthead</a></li>
|
||||||
<li>November 13 - <a href="./2019/november/possession.html">Possession</a></li>
|
<li>November 13 - <a href="./2019/november/possession.html">Possession</a></li>
|
||||||
<li class="based">November 9 - <a href="./2019/november/other-world.html">A World Just Beyond My Grasp</a></li>
|
<li class="based">November 9 - <a href="./2019/november/other-world.html">A World Just Beyond My Grasp</a></li>
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
-----BEGIN PGP SIGNED MESSAGE-----
|
|
||||||
Hash: SHA256
|
|
||||||
|
|
||||||
The files in this directory SHOULD match these md5sum hashes.
|
|
||||||
If they don't, someone (or something, like Calibre) edited them
|
|
||||||
and you shouldn't trust them.
|
|
||||||
|
|
||||||
5ecbc079398e21adbd6d74ea9c881ad0 h.epub
|
|
||||||
33a456b49a35de1363a0031113a8a585 is.epub
|
|
||||||
9c8b1c2a2736262170405f1f0b2709c8 lw.epub
|
|
||||||
13177369af52872c4689f3f498a5ce5f mby.epub
|
|
||||||
e4006c3f1c26e38a645da116ce2770e3 mm_tac.epub
|
|
||||||
2bacb0cc9ddf0e5ac6a8900e0aa9659c mm_tpf.epub
|
|
||||||
bff06d4671b3543128ee06645fd6acd9 tdom.epub
|
|
||||||
d1d8ce55deebef3fba7000fc2a46639c tsf.epub
|
|
||||||
2db09e80effb9a0781b351bd1446e19c tvsc.epub
|
|
||||||
cbac3b59516ab2ec5cf008a9a9ecd471 twlf.epub
|
|
||||||
9c46f5ea13d0507b9072be81dc3efb15 tyia.epub
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQFOBAEBCAA4FiEEq2j4OrvQF4SeDEtjVj/VgT2D7rUFAmL9KWoaHHZhbmV2YW5k
|
|
||||||
ZXJAbWF5dmFuZWRheS5hcnQACgkQVj/VgT2D7rVFGAgAlkNVALy0rFMeeZ1MJ5kO
|
|
||||||
Ohi/dd34+/9++zNPyazxgGXP/hBeVjFSB67C05tQ+fyDl52ecXk6HPc+wn02+gQs
|
|
||||||
0azg4yLddmA5USBn4MbP8BV9D0yKEvZPrVLSrfg2NCrYpm5EigsCbyXqDJmM2NUe
|
|
||||||
IdfWDlvTGopbzuyZelSusvNWO7ZCdhFaH0/cAEcL7sbws9DqOAdDCfKVWU7SMDFD
|
|
||||||
+s36ITUK2tNNpTyetzzW83f1JQgxEtSVyQA9uGqbPI/iKobQ6uFKZh3WEFn+RyAD
|
|
||||||
a8D/mCjiZCZSAoLiq2kdEKmZhll+TkERrMGoAEfueH+YymivoXeD6bVaKpWhIwjM
|
|
||||||
ng==
|
|
||||||
=DAXD
|
|
||||||
-----END PGP SIGNATURE-----
|
|
BIN
books/tsf.epub
BIN
books/twlf.epub
7
feed.ass
|
@ -1,5 +1,12 @@
|
||||||
# MayVaneDay ASS (https://tilde.town/~dzwdz/ass/) feed
|
# MayVaneDay ASS (https://tilde.town/~dzwdz/ass/) feed
|
||||||
|
|
||||||
|
2023-02-01 https://mayvaneday.org/blog/2023/february/utopia.html I installed Utopia so you don't have to
|
||||||
|
2023-01-23 https://mayvaneday.org/poetry/s/small_world_theory.txt Small World Theory
|
||||||
|
2023-01-01 https://mayvaneday.org/blog/2023/january/UterusPin.html Uterus Pin Perler Bead Pattern
|
||||||
|
2023-01-01 https://mayvaneday.org/poetry/z/zircons_beacon.txt ZIRCON'S BEACON
|
||||||
|
2022-12-07 https://mayvaneday.org/blog/2022/december/web3-2.html Broke Dumbass Attempts To Web3 Again
|
||||||
|
2022-11-22 https://mayvaneday.org/blog/2022/november/asking.html It's insane, the things you can get simply by asking
|
||||||
|
2022-11-01 https://mayvaneday.org/blog/2022/november/ld.html Woman who would have been revered prophetess 4,000 years ago now relegated to clicking links, opening tabs
|
||||||
2022-10-25 https://mayvaneday.org/blog/2022/october/email.html Anonymous email is still alive and well
|
2022-10-25 https://mayvaneday.org/blog/2022/october/email.html Anonymous email is still alive and well
|
||||||
2022-10-24 https://mayvaneday.org/blog/2022/october/ovarit.html Short statement on the Ovarit situation
|
2022-10-24 https://mayvaneday.org/blog/2022/october/ovarit.html Short statement on the Ovarit situation
|
||||||
2022-10-06 https://mayvaneday.org/blog/2022/october/yggdrasil.html Theoretical design for a female-only internet
|
2022-10-06 https://mayvaneday.org/blog/2022/october/yggdrasil.html Theoretical design for a female-only internet
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
# Rooting the Samsung Galaxy Note 3 (Verizon) and installing LineageOS
|
|
||||||
|
|
||||||
## Stuff you need
|
|
||||||
|
|
||||||
=> https://download.lineageos.org/hltetmo The latest LineageOS recovery file
|
|
||||||
=> https://download.lineageos.org/hltetmo The latest LineageOS ROM file
|
|
||||||
=> https://androidfilehost.com/?fid=4349826312261712202 This very specific version of the Odin image flashing tool
|
|
||||||
=> https://developer.samsung.com/android-usb-driver Samsung Android USB Driver
|
|
||||||
=> https://ipfs.letsdecentralize.org/ipfs/QmNhEPB2oCAmkwM7rD6bN2EhmXxVTRZKxLckRh7DHAZnNf ArabicToolApp.exe (ignore virus warnings. Of course an Android exploit is going to be classified as "malware")
|
|
||||||
=> https://web.archive.org/web/20221010233203/https://forum.xda-developers.com/t/official-note-3-verizon-bootloader-unlock.3359370/ Note 3 Verizon Bootloader Unlock
|
|
||||||
|
|
||||||
### If some of the links are broken, try these mirrors
|
|
||||||
=> ../../dl/hltevzw/Odin_3.13.1.zip Odin image flashing tool
|
|
||||||
=> ipfs://QmaBWnbqJsWMFXS8aDspWsga7s3MtH7Gt3xF5sfKL6qGxr Odin image flashing tool (IPFS)
|
|
||||||
=> ipfs://QmaRn2E65XPT1YHFXL5qkMeWdgd7MwnNCtWzmQQtgWguNR Note 3 Verizon Bootloader Unlock script (IPFS)
|
|
||||||
=> ipfs://QmNhEPB2oCAmkwM7rD6bN2EhmXxVTRZKxLckRh7DHAZnNf ArabicToolApp.exe (IPFS)
|
|
||||||
|
|
||||||
### Also:
|
|
||||||
|
|
||||||
* a machine running Windows 10 (a VM will likely not work)
|
|
||||||
* the Note 3 has to be running build version "OB6" (not "SEPL")
|
|
||||||
* a blank microSD card (the bootloader unlock script will say how big it has to be)
|
|
||||||
|
|
||||||
## Instructions
|
|
||||||
|
|
||||||
1. Wipe the phone
|
|
||||||
2. Downgrade the software to OB6 using Odin (you don't need to do anything fancy to downgrade; just flash the image)
|
|
||||||
3. Enable ADB in developer settings
|
|
||||||
4. Get root using ArabicToolApp.exe
|
|
||||||
5. Follow the instructions on the bootloader unlock page to push the "unlock_n3" binary to the device and run it
|
|
||||||
6. Follow these instructions (it says "hltetmo", but it counts for "hltevzw" too):
|
|
||||||
|
|
||||||
=> https://wiki.lineageos.org/devices/hltetmo/install Install LineageOS on hltetmo
|
|
|
@ -1,69 +0,0 @@
|
||||||
# Rooting the Barnes & Noble Nook 1st Generation
|
|
||||||
|
|
||||||
## Stuff you need
|
|
||||||
|
|
||||||
=> ../../dl/nook/ Individual files
|
|
||||||
=> https://upload.letsdecentralize.org/misc/nook.7z All the files in one .7z pack
|
|
||||||
=> ipfs://QmPV9YTCNV3StpfbbXGpcJQWDbxstrato1keqprvBG7Gw9 All the files in one .7z pack (IPFS)
|
|
||||||
|
|
||||||
## Instructions
|
|
||||||
|
|
||||||
1. Get a server running on port 80 on a machine on the same Wi-Fi network as the Nook.
|
|
||||||
|
|
||||||
All the server needs to host is "exploit.html" from the pack linked above. For best results, rename the HTML file to "index.html".
|
|
||||||
|
|
||||||
2. Crash your Nook's browser to enable ADB.
|
|
||||||
|
|
||||||
Using the Nook's browser, navigate to the web server via its local IPv4 address. The browser should refresh a few times and then crash to the home menu.
|
|
||||||
|
|
||||||
3. Connect to the Nook over ADB.
|
|
||||||
|
|
||||||
```
|
|
||||||
adb connect YOUR_NOOKS_LOCAL_IP_HERE
|
|
||||||
```
|
|
||||||
|
|
||||||
If ADB refuses to connect, run step 2 repeatedly until ADB manages to connect. It could take between one and one hundred tries.
|
|
||||||
|
|
||||||
4. Get and edit "/init.rc".
|
|
||||||
|
|
||||||
```
|
|
||||||
adb pull /init.rc
|
|
||||||
```
|
|
||||||
|
|
||||||
Open "init.rc" in your favorite text editor on your local machine. Find the line that says:
|
|
||||||
|
|
||||||
```
|
|
||||||
service adbd /sbin/adbd
|
|
||||||
```
|
|
||||||
|
|
||||||
Below that should say "disabled". Change that to "enabled".
|
|
||||||
|
|
||||||
5. Get root access.
|
|
||||||
|
|
||||||
While still connected to the Nook over ADB, run:
|
|
||||||
|
|
||||||
```
|
|
||||||
adb push ratc.bin /sqlite_stmt_journals
|
|
||||||
adb shell
|
|
||||||
cd /sqlite_stmt_journals
|
|
||||||
/system/bin/chmod 777 ./ratc.bin
|
|
||||||
./ratc.bin
|
|
||||||
```
|
|
||||||
|
|
||||||
Several lines of output will appear. Do not press anything. A few seconds later, adb will disconnect you.
|
|
||||||
|
|
||||||
```
|
|
||||||
adb kill-server
|
|
||||||
```
|
|
||||||
|
|
||||||
6. Push the patched "init.rc" to the Nook.
|
|
||||||
|
|
||||||
Repeat step 3 to reconnect to the Nook over ADB. Then run:
|
|
||||||
|
|
||||||
```
|
|
||||||
adb push init.rc /
|
|
||||||
```
|
|
||||||
|
|
||||||
After a reboot, your Nook should now be rooted.
|
|
||||||
|
|
||||||
The default launcher will not show third-party apps. "ru.mynook.launcher.apk" included in the pack is an alternative launcher that will show all apps installed, including third-party ones.
|
|
|
@ -1,73 +0,0 @@
|
||||||
# Creating a Tor hidden service using Caddy and Debian 11
|
|
||||||
|
|
||||||
1. Install Tor.
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo apt install tor
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Install the Caddy web server.
|
|
||||||
|
|
||||||
```
|
|
||||||
echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
|
|
||||||
sudo apt update; sudo apt install caddy -y
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Edit "/etc/tor/torrc" to create the hidden service.
|
|
||||||
|
|
||||||
Open "/etc/tor/torrc" in your favorite text editor. (Please note that this usually requires root privileges.)
|
|
||||||
|
|
||||||
Go to the lines that say:
|
|
||||||
|
|
||||||
```
|
|
||||||
#HiddenServiceDir /var/lib/tor/hidden_service/
|
|
||||||
#HiddenServicePort 80 127.0.0.1:80
|
|
||||||
```
|
|
||||||
|
|
||||||
Uncomment them by deleting the # mark in front of each line.
|
|
||||||
|
|
||||||
If you want, you can change the HiddenServiceDir directory, but you will need to remember it for later. For security purposes, keep the new directory inside of "/var/lib/tor/".
|
|
||||||
|
|
||||||
4. Restart the Tor daemon.
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo systemctl restart tor@default
|
|
||||||
```
|
|
||||||
|
|
||||||
5. As root, go to the hidden service directory and get the new hidden service's domain.
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo -i
|
|
||||||
cd /var/lib/tor/directory/
|
|
||||||
```
|
|
||||||
|
|
||||||
Replace "directory" with the actual directory you chose in step 3.
|
|
||||||
|
|
||||||
```
|
|
||||||
cat hostname
|
|
||||||
```
|
|
||||||
|
|
||||||
If all is well, you should now see a long string of letters and numbers that ends in ".onion". Copy this somewhere safe. You'll need it next step.
|
|
||||||
|
|
||||||
6. Configure Caddy to serve the hidden service.
|
|
||||||
|
|
||||||
Open "/etc/caddy/Caddyfile" with your favorite text editor. You should already be root, but if you did "exit" after getting the Tor hostname, just "sudo -i" again.
|
|
||||||
|
|
||||||
Type the following in:
|
|
||||||
|
|
||||||
```
|
|
||||||
http://YourTorHostnameHere.onion {
|
|
||||||
root * /your/website/file/path/here
|
|
||||||
file_server
|
|
||||||
encode gzip
|
|
||||||
bind 127.0.0.1
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
The "http://" in front of the address is important as that tells Caddy to not try to enable HTTPS on that domain. HTTPS is unnecessary for Tor hidden services as all traffic to and from the server is already encrypted in transit. And since Tor hidden services aren't accessible on the normal clearnet, the request for Let's Encrypt to give Caddy a certificate would fail as they wouldn't be able to access the domain.
|
|
||||||
|
|
||||||
7. Restart Caddy to apply your changes.
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo systemctl restart caddy
|
|
||||||
```
|
|
|
@ -1,81 +0,0 @@
|
||||||
# Creating a Yggdrasil website using Caddy and Debian 11
|
|
||||||
|
|
||||||
1. Install Yggdrasil.
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo apt install dirmngr
|
|
||||||
gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt
|
|
||||||
gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -
|
|
||||||
echo 'deb http://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list
|
|
||||||
sudo apt update; sudo apt install yggdrasil
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Install Caddy.
|
|
||||||
|
|
||||||
```
|
|
||||||
echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
|
|
||||||
sudo apt update; sudo apt install caddy -y
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Get the IP Yggdrasil generates for you.
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo systemctl start yggdrasil; sudo systemctl enable yggdrasil
|
|
||||||
sudo journalctl -xfe -u yggdrasil
|
|
||||||
```
|
|
||||||
|
|
||||||
There will be a line that says "Your IPv6 address is". Copy the rest of that line somewhere safe.
|
|
||||||
|
|
||||||
Press the Control and C buttons on your keyboard at the same time to exit "journalctl".
|
|
||||||
|
|
||||||
4. Configure Caddy to serve the hidden service.
|
|
||||||
|
|
||||||
Open "/etc/caddy/Caddyfile" as root with your favorite text editor.
|
|
||||||
|
|
||||||
Type the following in:
|
|
||||||
|
|
||||||
```
|
|
||||||
http://[YGGDRASIL_IP_ADDRESS_HERE] {
|
|
||||||
root * /your/website/file/path/here
|
|
||||||
file_server
|
|
||||||
encode gzip
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
The "http://" in front of the address is important as that tells Caddy to not try to enable HTTPS for that website. HTTPS is unnecessary for Yggdrasil hidden services as all traffic to and from the server is already encrypted in transit. Besides, Let's Encrypt wouldn't be able to issue a certificate for an IP address anyway.
|
|
||||||
|
|
||||||
5. Restart Caddy to apply your changes.
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo systemctl restart caddy
|
|
||||||
```
|
|
||||||
|
|
||||||
6. Get some peers for Yggdrasil.
|
|
||||||
|
|
||||||
=> https://github.com/yggdrasil-network/public-peers Copy some peers from this page. Try to select ones closest to your geographical location.
|
|
||||||
|
|
||||||
On your server, open "/etc/yggdrasil.conf" as root with your favorite text editor. At the top of the configuration file will be a section that looks like this:
|
|
||||||
|
|
||||||
```
|
|
||||||
Peers: []
|
|
||||||
```
|
|
||||||
|
|
||||||
Pick some peers from the list and add them to that section of the file (one per line) so it now looks something like this:
|
|
||||||
|
|
||||||
```
|
|
||||||
Peers:
|
|
||||||
[
|
|
||||||
tls://01.scv.usa.ygg.yt:443
|
|
||||||
tls://lax.yuetau.net:6643
|
|
||||||
tls://tasty.chowder.land:9001
|
|
||||||
tls://supergay.network:9001
|
|
||||||
tls://lancis.iscute.moe:49274
|
|
||||||
tls://mayvaneday.org:1414
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
||||||
Save the file and close it, then run:
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo systemctl restart yggdrasil
|
|
||||||
```
|
|
|
@ -1,38 +0,0 @@
|
||||||
# Quick guide to GPG
|
|
||||||
|
|
||||||
## Generate a key
|
|
||||||
|
|
||||||
```
|
|
||||||
gpg --generate-key
|
|
||||||
```
|
|
||||||
|
|
||||||
## Import an existing key
|
|
||||||
|
|
||||||
```
|
|
||||||
gpg --import key.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
## Export a key
|
|
||||||
|
|
||||||
```
|
|
||||||
gpg --export -a person@domain.tld public.gpg
|
|
||||||
gpg --export-secret-keys -a person@domain.tld
|
|
||||||
```
|
|
||||||
|
|
||||||
## Encrypt a file using a specific key
|
|
||||||
|
|
||||||
```
|
|
||||||
gpg --encrypt -a -r person@domain.tld file.ext
|
|
||||||
```
|
|
||||||
|
|
||||||
## Sign a file using a specific key
|
|
||||||
|
|
||||||
```
|
|
||||||
gpg --clear-sign -a file.ext
|
|
||||||
```
|
|
||||||
|
|
||||||
## List all keys in the keyring
|
|
||||||
|
|
||||||
```
|
|
||||||
gpg --list-keys
|
|
||||||
```
|
|
|
@ -1,19 +0,0 @@
|
||||||
# MayVaneDay Wiki
|
|
||||||
|
|
||||||
=> ./vlc.gmi VLC has an ncurses frontend that also supports equalizers
|
|
||||||
=> ./gpg.gmi Quick guide to GPG
|
|
||||||
=> ./list.gmi List of miscellaneous useful things
|
|
||||||
|
|
||||||
## Android rooting
|
|
||||||
|
|
||||||
=> ./android_root/hltevzw.gmi Samsung Galaxy Note 3 (Verizon)
|
|
||||||
=> ./android_root/nook1.gmi Barnes & Noble Nook 1st Generation
|
|
||||||
|
|
||||||
## Darknet setup
|
|
||||||
|
|
||||||
=> ./darknet/tor.gmi Tor
|
|
||||||
=> ./darknet/yggdrasil.gmi Yggdrasil
|
|
||||||
|
|
||||||
## Making operating systems usable
|
|
||||||
|
|
||||||
=> ./os/openbsd.gmi (Abandoned) notes for OpenBSD
|
|
|
@ -1,38 +0,0 @@
|
||||||
# A big list of useful links
|
|
||||||
|
|
||||||
## Alternate search engines
|
|
||||||
|
|
||||||
=> https://wiby.me Wiby
|
|
||||||
=> https://millionshort.com Million Short
|
|
||||||
=> https://search.marginalia.nu Marginalia
|
|
||||||
=> https://www.seekport.com Seekport
|
|
||||||
=> https://teclis.com Teclis
|
|
||||||
|
|
||||||
## Obscure site discovery
|
|
||||||
|
|
||||||
=> https://theforest.link The Forest
|
|
||||||
|
|
||||||
## AI image generation
|
|
||||||
|
|
||||||
=> https://huggingface.co/spaces/stabilityai/stable-diffusion Stable Diffusion Demo
|
|
||||||
=> https://stabilityai.us.auth0.com/u/login?state=hKFo2SBqWXBRQ25mblJrSGFuZzNIM1l2VGJxNk1SeERKUEdMWqFur3VuaXZlcnNhbC1sb2dpbqN0aWTZIHJvN2huZFA1QWJDOUhfMmNaTHJoQmtNT2xvWUw1bVlyo2NpZNkgS3ZZWkpLU2htVW9PalhwY2xRbEtZVXh1Y0FWZXNsSE4 StabilityAI
|
|
||||||
=> https://www.drawanything.app Draw Anything
|
|
||||||
=> https://huggingface.co/spaces/hakurei/waifu-diffusion-demo Waifu Diffusion
|
|
||||||
=> https://neuralblender.com Neuralblender
|
|
||||||
=> https://www.wombo.art/create Dream by WOMBO
|
|
||||||
|
|
||||||
## IP anon check
|
|
||||||
|
|
||||||
=> https://www.whatismyip.com What Is My IP?
|
|
||||||
=> https://myip.wtf WTF is my IP?!?!?!??
|
|
||||||
=> https://check.torproject.org Am I using Tor?
|
|
||||||
|
|
||||||
## Piracy
|
|
||||||
|
|
||||||
=> https://fitgirl-repacks.site FitGirl Repacks
|
|
||||||
=> https://piratebayproxy.info List of Pirate Bay proxies
|
|
||||||
=> https://gog-games.com GOG Games
|
|
||||||
=> https://hshop.erista.me hShop for 3DS
|
|
||||||
=> https://archive.org/details/psxgames Console Living Room: Playstation
|
|
||||||
=> https://nxbrew.com NXBrew
|
|
||||||
=> https://nsw2u.in nsw2u
|
|
|
@ -1,30 +0,0 @@
|
||||||
## installation
|
|
||||||
|
|
||||||
https://www.openbsd.org/faq/faq14.html#softraid
|
|
||||||
|
|
||||||
remember to run `ifconfig re0 up` before starting any shell operations
|
|
||||||
|
|
||||||
## package manager
|
|
||||||
|
|
||||||
https://www.openbsd.org/faq/faq15.html#Intro
|
|
||||||
|
|
||||||
apt search | pkg_info -Q
|
|
||||||
apt install | pkg_add
|
|
||||||
apt remove | pkg_delete
|
|
||||||
|
|
||||||
## wifi
|
|
||||||
|
|
||||||
run `ifconfig` and get name of wifi interface (for example, mine is `urtwn0`)
|
|
||||||
|
|
||||||
make a text file (as root) at `/etc/hostname.InterfaceName` (for example, `/etc/hostname.urtwn0`) with the following contents:
|
|
||||||
|
|
||||||
```
|
|
||||||
join SSID wpakey WIFIPASSWORD
|
|
||||||
inet autoconf
|
|
||||||
```
|
|
||||||
|
|
||||||
then run `doas sh /etc/netstart`
|
|
||||||
|
|
||||||
## misc
|
|
||||||
|
|
||||||
there is no `lsblk`. to get a list of all disks connected, run `sysctl hw.disknames`
|
|
|
@ -1,37 +0,0 @@
|
||||||
# Using VLC via its ncurses frontend with equalizers
|
|
||||||
|
|
||||||
1. Install VLC.
|
|
||||||
2. Open VLC and drag some music in.
|
|
||||||
3. While playing some music, open the Tools > Effects and Filters menu. Play around with the presets until you find one that sounds good.
|
|
||||||
4. Write down the name of the preset you used and then close VLC.
|
|
||||||
5. In a terminal, "cd" to where the music you want to play is.
|
|
||||||
6. In that terminal, execute this command:
|
|
||||||
|
|
||||||
```
|
|
||||||
cvlc --equalizer-preset=INSERT_PRESET_NAME_HERE -I ncurses *.ext
|
|
||||||
```
|
|
||||||
|
|
||||||
".ext" is the file extension of your music files, like ".mp3" or ".flac".
|
|
||||||
|
|
||||||
Here is a list of possible presets as of 2020:
|
|
||||||
|
|
||||||
* flat
|
|
||||||
* classical
|
|
||||||
* club
|
|
||||||
* dance
|
|
||||||
* fullbass
|
|
||||||
* fulltreble
|
|
||||||
* fullbasstreble
|
|
||||||
* headphones
|
|
||||||
* largehall
|
|
||||||
* live
|
|
||||||
* party
|
|
||||||
* pop
|
|
||||||
* reggae
|
|
||||||
* rock
|
|
||||||
* ska
|
|
||||||
* soft
|
|
||||||
* softrock
|
|
||||||
* techno
|
|
||||||
|
|
||||||
Pressing the "h" key will open the help menu, which will show you the plyer controls.
|
|
BIN
img/AlmondMilkMeme.jpg
Executable file
After Width: | Height: | Size: 66 KiB |
BIN
img/IdyllTimeout.png
Executable file
After Width: | Height: | Size: 24 KiB |
BIN
img/NoUtopia.png
Executable file
After Width: | Height: | Size: 10 KiB |
BIN
img/UterusPin1.png
Executable file
After Width: | Height: | Size: 240 KiB |
BIN
img/UterusPin2.png
Executable file
After Width: | Height: | Size: 440 KiB |
BIN
img/UterusPin3.png
Executable file
After Width: | Height: | Size: 30 KiB |
BIN
img/UtopiaUI.png
Executable file
After Width: | Height: | Size: 121 KiB |
BIN
img/asuka_on_web3.png
Executable file
After Width: | Height: | Size: 65 KiB |
BIN
img/hidden/lethe.png
Executable file
After Width: | Height: | Size: 322 KiB |
Before Width: | Height: | Size: 468 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 372 KiB |
Before Width: | Height: | Size: 344 KiB |
BIN
img/jett_via_penny.png
Executable file
After Width: | Height: | Size: 34 KiB |
BIN
img/plug1.png
Executable file
After Width: | Height: | Size: 19 KiB |
BIN
img/plug2.png
Executable file
After Width: | Height: | Size: 10 KiB |
11
index.html
|
@ -17,7 +17,7 @@
|
||||||
<hr>
|
<hr>
|
||||||
<div class="box center">
|
<div class="box center">
|
||||||
<p>THE ORACLE SPEAKS:</p>
|
<p>THE ORACLE SPEAKS:</p>
|
||||||
<p><a href="./poetry/f/firebrand.txt">[FIREBRAND]</a> <a href="./poetry/w/watershed.txt">[WATERSHED]</a> <a href="./poetry/e/earthbound.txt">[EARTHBOUND]</a> <a href="./poetry/a/airborne.txt"><b>[AIRBORNE]</b></a></p>
|
<p><a href="./poetry/f/firebrand.txt">[FIREBRAND]</a> <a href="./poetry/w/watershed.txt">[WATERSHED]</a> <a href="./poetry/e/earthbound.txt">[EARTHBOUND]</a> <a href="./poetry/a/airborne.txt">[AIRBORNE]</a> <a href="./poetry/z/zircons_beacon.txt"><b>[ZIRCON'S BEACON]</b></a></p>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
|
@ -44,10 +44,9 @@
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<h3>Announcement Box</h3>
|
<h3>Announcement Box</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>2022-10-24: Sorry, I ended up being wrong about the below. I still feel like shit, but I'm back to writing. Task failed successfully?</li>
|
<li>2022-11-28: <a href="https://web.archive.org/web/20221129021922/https://nitter.pussthecat.org/nowthisnews/status/1574575299370438657#m">Don't be a sucker.</a></li>
|
||||||
<li>2022-10-18: Not much motivation to write lately. Still reeling from the betrayal and loss of a dear friend... and also finally getting some new dressers in my room. Not sure of the direction I want to take this site in the future. <del>Don't expect anything new until November at the very least.</del></li>
|
<li>2022-11-25: I will be going out of state in a few days for a funeral. (Unfortunately it isn't my own.) I will be staying in a place where Internet connectivity is intermittent and weak at best. I don't know when I'll be coming back. Don't DDoS Codeberg in my absence.</li>
|
||||||
<li>2022-10-07: If there was a website dedicated to harassing someone I loved, I'd do everything I could to get it taken offline, "freeze peach" be damned. Maybe I'm just built different.</li>
|
<li>2022-11-21: Want to try out <a href="https://github.com/markqvist/NomadNet">NomadNet</a>? What, are you some kind of <em>nerd</em>? My peer address is <code>4e44c82f902bd69938a681a7aa200206</code>. Now you can watch me fail at the Micron markup language in <em>real time</em>!</li>
|
||||||
<li>2022-10-03: It's been four years since the first Rebirth Day, Ghost. I lived. You failed to kill me.</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -55,8 +54,6 @@
|
||||||
<p class="center">
|
<p class="center">
|
||||||
<a href="./blog/index.html">[Blog]</a>
|
<a href="./blog/index.html">[Blog]</a>
|
||||||
<a href="./poetry/">[Poetry]</a>
|
<a href="./poetry/">[Poetry]</a>
|
||||||
<a href="./garden/">[Garden]</a>
|
|
||||||
<a href="./tutorials/index.html">[Tutorials]</a>
|
|
||||||
</p>
|
</p>
|
||||||
<p><a href="./cli.html">The Terminal Life</a></p>
|
<p><a href="./cli.html">The Terminal Life</a></p>
|
||||||
<p><a href="./women.md">The big list of women who did things</a></p>
|
<p><a href="./women.md">The big list of women who did things</a></p>
|
||||||
|
|
|
@ -42,7 +42,7 @@ you'd live together with her until the cessation of time?
|
||||||
|
|
||||||
dear child, you remembered your wings and recalled how to fly
|
dear child, you remembered your wings and recalled how to fly
|
||||||
but you're being chased to a cliff and the edge looms nearby:
|
but you're being chased to a cliff and the edge looms nearby:
|
||||||
will you prostate yourself and live in self-scorn?
|
will you prostrate yourself and live in self-scorn?
|
||||||
or jump off the edge and trust you'll become airborne?
|
or jump off the edge and trust you'll become airborne?
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
|
@ -8,7 +8,7 @@ from the house down the street that went up in flames
|
||||||
because my friends always scream about taking life by the reins
|
because my friends always scream about taking life by the reins
|
||||||
and nothing really happened on my birthday anyways
|
and nothing really happened on my birthday anyways
|
||||||
|
|
||||||
I’ve finally learned how to draw
|
I've finally learned how to draw
|
||||||
with the statue in front of the window, greeting guests
|
with the statue in front of the window, greeting guests
|
||||||
who knock on my door, memories in hand
|
who knock on my door, memories in hand
|
||||||
from long ago, seeking immortality in portrait
|
from long ago, seeking immortality in portrait
|
||||||
|
@ -20,7 +20,7 @@ on the subject, feet twitch, begging to pace
|
||||||
|
|
||||||
the paper shakes my soul with sanity
|
the paper shakes my soul with sanity
|
||||||
but to others, I seem insane
|
but to others, I seem insane
|
||||||
how dare I call myself “artist” and live
|
how dare I call myself "artist" and live
|
||||||
without the empty stomach to qualify my name
|
without the empty stomach to qualify my name
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
|
@ -147,6 +147,7 @@
|
||||||
=> s/sweet-summer.txt Sweet Summer
|
=> s/sweet-summer.txt Sweet Summer
|
||||||
=> s/strange-proposal.txt A Strange Proposal
|
=> s/strange-proposal.txt A Strange Proposal
|
||||||
=> s/strawberry.txt Strawberry Pound Cake
|
=> s/strawberry.txt Strawberry Pound Cake
|
||||||
|
=> s/small_world_theory.txt Small World Theory
|
||||||
|
|
||||||
## T
|
## T
|
||||||
=> t/the-rebirth-of-memory.txt the rebirth of memory
|
=> t/the-rebirth-of-memory.txt the rebirth of memory
|
||||||
|
@ -177,3 +178,6 @@
|
||||||
|
|
||||||
## Y
|
## Y
|
||||||
=> y/YOU-NEED-TO-KNOW.txt YOU NEED TO KNOW
|
=> y/YOU-NEED-TO-KNOW.txt YOU NEED TO KNOW
|
||||||
|
|
||||||
|
## Z
|
||||||
|
=> z/zircons_beacon.txt ZIRCON'S BEACON
|
||||||
|
|
|
@ -148,6 +148,7 @@ iS
|
||||||
0Sweet Summer s/sweet-summer.txt
|
0Sweet Summer s/sweet-summer.txt
|
||||||
0A Strange Proposal s/strange-proposal.txt
|
0A Strange Proposal s/strange-proposal.txt
|
||||||
0Strawberry Pound Cake s/strawberry.txt
|
0Strawberry Pound Cake s/strawberry.txt
|
||||||
|
0Small World Theory s/small_world_theory.txt
|
||||||
|
|
||||||
iT
|
iT
|
||||||
0the rebirth of memory t/the-rebirth-of-memory.txt
|
0the rebirth of memory t/the-rebirth-of-memory.txt
|
||||||
|
@ -178,3 +179,6 @@ iW
|
||||||
|
|
||||||
iY
|
iY
|
||||||
0YOU NEED TO KNOW y/YOU-NEED-TO-KNOW.txt
|
0YOU NEED TO KNOW y/YOU-NEED-TO-KNOW.txt
|
||||||
|
|
||||||
|
iZ
|
||||||
|
0ZIRCON'S BEACON z/zircons_beacon.txt
|
||||||
|
|
|
@ -159,6 +159,7 @@
|
||||||
│ ├── <a href="./s/serpenton.txt">serpenton.txt</a><br>
|
│ ├── <a href="./s/serpenton.txt">serpenton.txt</a><br>
|
||||||
│ ├── <a href="./s/skin.txt">skin.txt</a><br>
|
│ ├── <a href="./s/skin.txt">skin.txt</a><br>
|
||||||
│ ├── <a href="./s/sleepover2011.txt">sleepover2011.txt</a><br>
|
│ ├── <a href="./s/sleepover2011.txt">sleepover2011.txt</a><br>
|
||||||
|
│ ├── <a href="./s/small_world_theory.txt">small_world_theory.txt</a><br>
|
||||||
│ ├── <a href="./s/somnolence.txt">somnolence.txt</a><br>
|
│ ├── <a href="./s/somnolence.txt">somnolence.txt</a><br>
|
||||||
│ ├── <a href="./s/stealing-time.txt">stealing-time.txt</a><br>
|
│ ├── <a href="./s/stealing-time.txt">stealing-time.txt</a><br>
|
||||||
│ ├── <a href="./s/strange-proposal.txt">strange-proposal.txt</a><br>
|
│ ├── <a href="./s/strange-proposal.txt">strange-proposal.txt</a><br>
|
||||||
|
@ -187,13 +188,15 @@
|
||||||
│ ├── <a href="./w/wip.txt">wip.txt</a><br>
|
│ ├── <a href="./w/wip.txt">wip.txt</a><br>
|
||||||
│ ├── <a href="./w/withering.txt">withering.txt</a><br>
|
│ ├── <a href="./w/withering.txt">withering.txt</a><br>
|
||||||
│ └── <a href="./w/wme.txt">wme.txt</a><br>
|
│ └── <a href="./w/wme.txt">wme.txt</a><br>
|
||||||
└── <a href="./y/">y</a><br>
|
├── <a href="./y/">y</a><br>
|
||||||
└── <a href="./y/YOU-NEED-TO-KNOW.txt">YOU-NEED-TO-KNOW.txt</a><br>
|
│ └── <a href="./y/YOU-NEED-TO-KNOW.txt">YOU-NEED-TO-KNOW.txt</a><br>
|
||||||
|
└── <a href="./z/">z</a><br>
|
||||||
|
└── <a href="./z/zircons_beacon.txt">zircons_beacon.txt</a><br>
|
||||||
<br><br>
|
<br><br>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
23 directories, 137 files
|
24 directories, 139 files
|
||||||
<br><br>
|
<br><br>
|
||||||
</p>
|
</p>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
78
poetry/s/small_world_theory.txt
Executable file
|
@ -0,0 +1,78 @@
|
||||||
|
Small World Theory
|
||||||
|
2023-01-23
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
The little graphs on my phone
|
||||||
|
show that web traffic has slowed,
|
||||||
|
that whoever's been attacking
|
||||||
|
my far-away digital home
|
||||||
|
hasn't yet chosen to leave me alone.
|
||||||
|
|
||||||
|
Have you ever heard
|
||||||
|
of the Small World
|
||||||
|
Theory?
|
||||||
|
Let me explain it quick.
|
||||||
|
It's rather easy.
|
||||||
|
|
||||||
|
The premise is that,
|
||||||
|
even though there are just shy
|
||||||
|
of eight billion people on this planet wide,
|
||||||
|
on both sides
|
||||||
|
of the hardware
|
||||||
|
software
|
||||||
|
OSI layer
|
||||||
|
divide,
|
||||||
|
the network is smaller than such a high
|
||||||
|
number leads
|
||||||
|
one to believe.
|
||||||
|
|
||||||
|
So either
|
||||||
|
these past months I've been popular
|
||||||
|
even without the referers
|
||||||
|
to back the numbers
|
||||||
|
up
|
||||||
|
(the people have to come from *somewhere*)
|
||||||
|
or I've been too passionate in my love
|
||||||
|
and I caught the hateful eye
|
||||||
|
of someone who would rather I shrivel up and die.
|
||||||
|
|
||||||
|
But then why choose me?
|
||||||
|
Is it because I look easy
|
||||||
|
to take down
|
||||||
|
even though my whole life I've been finding workarounds?
|
||||||
|
There's nothing that I'm selling,
|
||||||
|
so financial harm can't be it.
|
||||||
|
Is it just
|
||||||
|
for evil fun?
|
||||||
|
Just to stir up shit?
|
||||||
|
|
||||||
|
It's certainly been disruptive.
|
||||||
|
|
||||||
|
The Internet makes it look like
|
||||||
|
there's millions who want my hide,
|
||||||
|
but if I were to say my name
|
||||||
|
to any real-world person I come across,
|
||||||
|
they'd shrug their shoulders,
|
||||||
|
say, "Who's that?" and then move on.
|
||||||
|
I don't have any real fame,
|
||||||
|
nor have I ever yearned
|
||||||
|
for the fifteen minutes of public shaming be my turn.
|
||||||
|
I'm not equipped to handle an existence
|
||||||
|
where everything is under constant surveillance.
|
||||||
|
|
||||||
|
I think a steady babbling stream
|
||||||
|
is more my speed.
|
||||||
|
Don't you agree,
|
||||||
|
Jett?
|
||||||
|
I'd like to sit at the shores
|
||||||
|
of one of the rivers of Sablade
|
||||||
|
with you, tucked away
|
||||||
|
where nobody can hurt me anymore.
|
||||||
|
Like a router only on for an hour a day.
|
||||||
|
Get your outside business done
|
||||||
|
and then we'll again shut the gates.
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
CC BY-NC-SA 4.0 (c) Vane Vander
|
42
poetry/z/zircons_beacon.txt
Executable file
|
@ -0,0 +1,42 @@
|
||||||
|
ZIRCON'S BEACON
|
||||||
|
2023-01-01
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
before, in your grief, you sigh with a tear
|
||||||
|
"it would be better for everyone if I disappeared"
|
||||||
|
just remember every person who's ever held you dear
|
||||||
|
|
||||||
|
with faces erased and memories decayed
|
||||||
|
who recall your actions if not your own name:
|
||||||
|
"She brightened, even if only for a moment, my days."
|
||||||
|
|
||||||
|
but these last six months, you've in bed languished
|
||||||
|
as all the things you counted on from you slipped:
|
||||||
|
the promise of employment, the hope of safety,
|
||||||
|
the Outside-bound ticket messless and pain-free
|
||||||
|
|
||||||
|
you jumped from the cliff as exhorted last Oracle
|
||||||
|
and unfurled your wings to catch all the wind you could hold
|
||||||
|
but while has deepened the bond with your wife
|
||||||
|
this is not true flight but only slow glide
|
||||||
|
|
||||||
|
gradual realization that in life you lost
|
||||||
|
while the destination grows anything but soft:
|
||||||
|
the climate beats harsher, economy bereft,
|
||||||
|
hordes at the gates demanding your own death
|
||||||
|
|
||||||
|
wings too weak to your body elevate
|
||||||
|
but is there strength to turn elsewhere you'll less hate?
|
||||||
|
one of these days you'll be free again
|
||||||
|
can you find a way to survive until then?
|
||||||
|
|
||||||
|
I hold this zircon gem up to the sky
|
||||||
|
in hopes it'll catch the fading sunset light
|
||||||
|
and scatter to fire, diamond-like rainbow:
|
||||||
|
my beacon follow to know where to go
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
|
||||||
|
CC BY-NC-SA 4.0 (c) Vane Vander
|
|
@ -53,6 +53,7 @@ article a, ul a, td a, .bruh {
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
font-size: small;
|
font-size: small;
|
||||||
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
hr {
|
hr {
|
||||||
|
@ -72,8 +73,11 @@ i, em {
|
||||||
}
|
}
|
||||||
|
|
||||||
img.big {
|
img.big {
|
||||||
width: 100%;
|
max-width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* https://www.svgrepo.com/svg/6977/star */
|
/* https://www.svgrepo.com/svg/6977/star */
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to virtualhost on Gemini using Tor - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to virtualhost on Gemini using Tor</h1></p>
|
|
||||||
<p>published: 2020-11-14</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p>This guide will assume you are using a Debian-based system.</p>
|
|
||||||
<ol type="1">
|
|
||||||
<li>Install Tor and Jetforce, a Gemini server.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo -H pip3 install jetforce; sudo apt install tor</code></p>
|
|
||||||
<ol start="2" type="1">
|
|
||||||
<li>Set up a Tor hidden service.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Add the following lines to <code>/etc/tor/torrc</code>, adjusting as necessary:</p>
|
|
||||||
<pre>HiddenServiceDir /var/lib/tor/gemini/
|
|
||||||
HiddenServiceVersion 3
|
|
||||||
HiddenServicePort 1965 127.0.0.1:1966</pre>
|
|
||||||
<p><code>1965</code> is Gemini's default port and the one clients will expect the server to be listening on. <code>1966</code> will be the actual port the second server instance is running on. This will allow the server serving the clearnet version to use the default port. Do not worry about the port numbers not matching; Tor will redirect Tor traffic on 1966 to the proper server to look like it is also running on <code>1965</code>.</p>
|
|
||||||
<p>If you need multiple hidden services, copy these lines again, changing the <code>HiddenServiceDir</code> path to a different one and changing <code>1966</code> to a different port not in use.</p>
|
|
||||||
<ol start="3" type="1">
|
|
||||||
<li>Configure Jetforce.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Run the following to start the server:</p>
|
|
||||||
<pre>jetforce --host 127.0.0.1 \
|
|
||||||
--tls-certfile /path/to/certificate.crt \
|
|
||||||
--tls-keyfile /path/to/key.key \
|
|
||||||
--dir /path/to/gemsite/files/ \
|
|
||||||
--hostname YOUREXTREMELYLONGONIONHERE.onion \
|
|
||||||
--port 1966</pre>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,50 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to seed a Hyperdrive website on Debian 10 - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to seed a Hyperdrive website on Debian 10</h1></p>
|
|
||||||
<p>published: 2020-09-12</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<ol type="1">
|
|
||||||
<li>Install a recent version of Node.js.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo -i</code></p>
|
|
||||||
<p><code>curl -sL https://deb.nodesource.com/setup_14.x | bash -</code></p>
|
|
||||||
<p><code>apt-get install -y nodejs fuse</code></p>
|
|
||||||
<ol start="2" type="1">
|
|
||||||
<li>Install the Hyperdrive daemon.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>npm install -g hyperdrive-daemon && exit</code></p>
|
|
||||||
<p>The <code>exit</code> is necessary so that you're back in your normal user account again.</p>
|
|
||||||
<ol start="3" type="1">
|
|
||||||
<li>Set up the Fuse mount:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>mkdir ~/Hyperdrive</code></p>
|
|
||||||
<p><code>hyperdrive fuse-setup</code></p>
|
|
||||||
</code></pre>
|
|
||||||
<ol start="4" type="1">
|
|
||||||
<li>Start the Hyperdrive daemon. (You should do this in a multiplexer, as it will run in the foreground.)</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>hyperdrive start --foreground</code></p>
|
|
||||||
<ol start="5" type="1">
|
|
||||||
<li>Seed your first site.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>cd ~/Hyperdrive && hyperdrive mount MakeUpANameHere SiteKeyHere</code></p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,76 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to create an I2P eepsite on Caddy on Debian 10 - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to create an I2P eepsite on Caddy on Debian 10</h1></p>
|
|
||||||
<p>first published: 2021-02-08</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<ol style="list-style-type: decimal">
|
|
||||||
<li>Install I2PD (an I2P router that is lighter on resources than the original I2P).</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo apt install i2pd</code></p>
|
|
||||||
<ol start="2" style="list-style-type: decimal">
|
|
||||||
<li>Install the Caddy web server.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list</code></p>
|
|
||||||
<p><code>sudo apt update; sudo apt install caddy -y</code></p>
|
|
||||||
<ol start="3" style="list-style-type: decimal">
|
|
||||||
<li>Edit <code>/var/lib/i2pd/tunnels.conf</code> to create the eepsite.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Open /var/lib/i2pd/tunnels.conf in your favorite text editor. (Please note that this usually requires root privileges.)</p>
|
|
||||||
<p>Go to the end of the file and add:</p>
|
|
||||||
<pre>
|
|
||||||
[mycooleepsite]
|
|
||||||
type = http
|
|
||||||
host = 127.0.0.1
|
|
||||||
port = 80
|
|
||||||
keys = mycooleepsite.dat
|
|
||||||
</pre>
|
|
||||||
<ol start="4" style="list-style-type: decimal">
|
|
||||||
<li>Restart I2PD.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo systemctl restart i2pd</code></p>
|
|
||||||
<ol start="5" style="list-style-type: decimal">
|
|
||||||
<li>Find out your new eepsite's hash.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Open <code>http://127.0.0.1:7070</code> in a web browser that can access that machine's localhost.</p>
|
|
||||||
<p>If you don't know what you're doing, run the following:</p>
|
|
||||||
<p><code>sudo apt install lynx -y</code></p>
|
|
||||||
<p><code>lynx http://127.0.0.1:7070</code></p>
|
|
||||||
<p>Go to the "I2P Tunnels" page. (In Lynx, press the down arrow until "I2P Tunnels" is highlighted, and then press the enter key.)</p>
|
|
||||||
<p>In the "Server Tunnels" section, there should be a string that looks something like <code>VERYLONGHASH.b32.i2p</code>. Copy the VERYLONGHASH part.</p>
|
|
||||||
<ol start="6" style="list-style-type: decimal">
|
|
||||||
<li>Configure Caddy to serve the eepsite.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Open <code>/etc/caddy/Caddyfile</code> as root with your favorite text editor.</p>
|
|
||||||
<p>Type the following in:</p>
|
|
||||||
<pre>
|
|
||||||
http://VERYLONGHASH.b32.i2p {
|
|
||||||
root * /your/website/file/path/here
|
|
||||||
file_server
|
|
||||||
encode gzip
|
|
||||||
}
|
|
||||||
</pre>
|
|
||||||
<p>The "http://" in front of the address is important as that tells Caddy to not try to enable HTTPS for that website. HTTPS is unnecessary for I2P eepsites as all traffic to and from the server is already encrypted in transit. And since I2P eepsites aren't accessible on the normal clearnet, the request for Let's Encrypt to give Caddy a certificate would fail as they wouldn't be able to access the domain.</p>
|
|
||||||
<ol start="7" style="list-style-type: decimal">
|
|
||||||
<li>Restart Caddy to apply your changes.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo systemctl restart caddy</code></p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,39 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>Tutorials - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>Tutorials</h1></p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<h2>Darknet Guides</h2>
|
|
||||||
<p><a href="./onion.html">Create a Tor hidden service website on Caddy on Debian 10</a></p>
|
|
||||||
<p><a href="./yggdrasil.html">Create a Yggdrasil hidden service on Caddy on Debian 10</a></p>
|
|
||||||
<p><a href="./i2p.html">Create an I2P eepsite on Caddy on Debian 10</a></p>
|
|
||||||
<p><a href="./hyperdrive.html">Seed a Hyperdrive website on Debian 10</a></p>
|
|
||||||
<p><a href="./gemini-tor.html">Virtualhost on Gemini using Tor</a></p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p><a href="./nook.html">Root the Nook 1st Gen on Linux</a></p>
|
|
||||||
<p><a href="./oasis.html">Run Oasis, a Secure Scuttlebutt client, on a remote server</a></p>
|
|
||||||
<p><a href="./kristall-haiku.html">Install the Kristall browser in Haiku</a></p>
|
|
||||||
<p><a href="./lokinet-32.html">Build and install LokiNet on Linux Mint 32-bit</a></p>
|
|
||||||
<p><a href="./vlc.html">Play music in the CLI with an equalizer</a></p>
|
|
||||||
<p><a href="./misskey.html">Install Misskey on Debian 9</a></p>
|
|
||||||
<p><a href="./syncthing-tails.html">Install Syncthing on Tails</a></p>
|
|
||||||
<p><a href="./playlist-clip.html">Make playlists on the SanDisk Clip Sport on Linux</a></p>
|
|
||||||
<p><a href="./zeronet.html">Set up a detached and encrypted ZeroNet seedbox on a Raspberry Pi</a></p>
|
|
||||||
<p><a href="./tiles.html">Dump tiles from a GameBoy ROM on Linux</a></p>
|
|
||||||
<p><a href="./kobo-webdav.html">Browsing and publishing Gemini on a... Kobo?!</a></p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,89 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>Browsing and publishing Gemini on a... Kobo?! - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>Browsing and publishing Gemini on a... Kobo?!</h1></p>
|
|
||||||
<p>published: 2021-01-07</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p>I have a Kobo Libra H2O. It's a little e-ink tablet-like device. While the specs aren't great, it <em>does</em> run Linux, which means theoretically one can run whatever programs they want on it! ...As long as those programs are line-based command-line or written for Kobo's special flavor of Qt.</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<h2>Getting shell access to your Kobo</h2>
|
|
||||||
<p>The first step is getting KOReader on the Kobo. Not only is it a much better reading app than the Kobo's built-in Nickel, it <em>also</em> includes a terminal emulator, a text editor, and a SSH server. <a href="https://github.com/koreader/koreader/wiki/Installation-on-Kobo-devices">The install instructions are on the KOReader wiki</a>. I personally recommend using the NickelMenu installation method halfway down the page.</p>
|
|
||||||
<p>After you have KOReader set up, plug your Kobo into a computer with a USB cable.</p>
|
|
||||||
<p><code>cd /path/to/your/kobo/</code></p>
|
|
||||||
<p><code>cd ./.adds/koreader/settings/SSH/</code></p>
|
|
||||||
<p><code>ssh-keygen -trsa -b 2048 -f ~/.ssh/kobo</code></p>
|
|
||||||
<p><code>cp ~/.ssh/kobo.pub ./authorized_keys</code></p>
|
|
||||||
<p>Safely disconnect your Kobo from your computer. Go into KOReader, then tap the gear icon on the top of the screen. Tap "Network". Connect to the same WiFi network your computer is on, then tap on "SSH server" and then "Start SSH server".</p>
|
|
||||||
<code>ssh -i ~/.ssh/kobo -p 2222 root@your_kobo_local_ip_address</code>
|
|
||||||
<p>Shell access should only be necessary for troubleshooting. For this guide, we are more interested in SFTP file transfer.</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<h2>Setting up your environment</h2>
|
|
||||||
<p>There are four programs you'll need:</p>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://github.com/mattn/godown">godown</a>: an HTML to Markdown converter</li>
|
|
||||||
<li><a href="https://github.com/makeworld-the-better-one/gemget">gemget</a>: wget, but for the Gemini protocol</li>
|
|
||||||
<li><a href="https://gitlab.com/davidjpeacock/kurly">kurly</a>: cURL, but written in Golang (since the version of <code>wget</code> that ships with KOReader's Dropbear doesn't support HTTPS for some reason)</li>
|
|
||||||
<li><a href="https://github.com/micromata/dave">dave</a>: a simple WebDAV server</li>
|
|
||||||
</ol>
|
|
||||||
<p>The first three we will install on your Kobo. The last one will go on the server that runs your Gemini site.</p>
|
|
||||||
<p>I specifically picked programs written in Golang because they compile to a single binary. This means no trying to manually resolve dependencies, since the Kobo doesn't have a package manager installed (that I could see). However, they still must be compiled for ARM. I compiled them on my Raspberry Pi 4 (which is also an ARM device) and copied the resulting binaries to my computer. If you want to cross-compile on your local computer instead, you're on your own.</p>
|
|
||||||
<p>The config file for <code>dave</dave> needs to go in <code>~/.swd/config.yaml</code> on the remote server. It should look something like this:</p>
|
|
||||||
<pre>
|
|
||||||
address: "domain.tld" # the bind address
|
|
||||||
port: "7778" # the listening port
|
|
||||||
dir: "/path/to/your/gemsite/files" # the provided base dir
|
|
||||||
prefix: "/" # the url-prefix of the original url
|
|
||||||
users:
|
|
||||||
# user: # with password 'foo' and jailed access to '/home/webdav/user'
|
|
||||||
# password: "HASHED_PASSWORD"
|
|
||||||
# subdir: "/user"
|
|
||||||
YOURUSERNAME: # with password 'foo' and access to '/home/webdav'
|
|
||||||
password: "HASHED_PASSWORD"
|
|
||||||
tls:
|
|
||||||
keyFile: gemini.key
|
|
||||||
certFile: gemini.crt
|
|
||||||
</pre>
|
|
||||||
<p>You can make a HASHED_PASSWORD by running <code>davecli passwd</code> and following the prompts.</p>
|
|
||||||
<p>After that, you need to get TLS certificates so <code>kurly</code> doesn't <del>shit its pants</del> complain about having no certificates.</p>
|
|
||||||
<p>On your local computer:</p>
|
|
||||||
<p><code>sftp -P 2222 -i ~/.ssh/kobo root@your_kobo_local_ip_address</code></p>
|
|
||||||
<p><code>cd /etc/</code></p>
|
|
||||||
<p><code>mkdir ssl && cd ssl</code></p>
|
|
||||||
<p><code>mkdir certs && cd certs</code></p>
|
|
||||||
<p><code>lcd /usr/share/ca-certificates/mozilla/</code></p>
|
|
||||||
<p><code>put -r *</code></p>
|
|
||||||
<p>This will put all the certificates installed on your computer onto your Kobo. If this is too much for you, you can instead just upload the public key you used for your WebDAV server above (Gemini uses TOFU for its TLS and thus doesn't require a certificate store). Just change the extension to <code>.pem</code> first before uploading.</p>
|
|
||||||
<p>Put your binary program files in <code>/bin/</code>.</p>
|
|
||||||
<p>At this point, you should be all set up. You can disconnect from the SFTP server and turn the SSH server on your Kobo off.</p>
|
|
||||||
</div>
|
|
||||||
<div class="box">
|
|
||||||
<p><h2>The fun commands</h2></p>
|
|
||||||
<p>Next to the gear icon at the top of the KOReader menu is a tool icon. Press it and then press "More tools". There's a terminal emulator!</p>
|
|
||||||
<p>Except it's not interactive, only processing one command at a time, and it doesn't save the state of the terminal in between sessions. While <code>vi</code> is installed, curiously, it's really only for debugging over SSH and isn't usable here. Best case scenario, it'll only print a bunch of terminal control characters and then exit without letting you do anything.</p>
|
|
||||||
<p>To look at an HTTP/S site: <code>/bin/kurly http://example.com | /bin/godown | grep -v -e '^$'</code></p>
|
|
||||||
<p>To look at a Gemini site: <code>/bin/gemget -o - gemini://domain.tld</code></p>
|
|
||||||
<p>To upload a text file: <code>/bin/kurly -T /path/to/file.txt -u 'username:password' "https://domain.tld:port/"</code></p>
|
|
||||||
<p>These are quite a lot to type every time. I recommend saving them as shortcuts so you only have to change the domain or the file path every time instead of retyping everything.</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to install the Kristall browser in Haiku - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to install the Kristall browser in Haiku</h1></p>
|
|
||||||
<p>published: 2020-06-09</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p>Disclaimer: This was tested with Haiku nightly <code>hrev54304</code>. You may have to install more or different dependencies if you are using the <code>r1beta2</code> release instead.</p>
|
|
||||||
<ol type="1">
|
|
||||||
<li>Clone the Git repository:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>git clone https://github.com/masterq32/kristall</code></p>
|
|
||||||
<p><code>cd kristall</code></p>
|
|
||||||
<ol start="2" type="1">
|
|
||||||
<li>Install some build dependencies:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>pkgman install qt5 qt5_devel qt5_tools libiconv_devel</code></p>
|
|
||||||
<ol start="3" type="1">
|
|
||||||
<li>Compile and install:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>make</code></p>
|
|
||||||
<p><code>cd ~/config/settings/deskbar/menu/Applications/</code></p>
|
|
||||||
<p><code>ln -s ~/kristall/kristall .</code></p>
|
|
||||||
<p>Kristall should now be listed with the rest of your applications in the Deskbar.</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,50 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to build and install LokiNet on Linux Mint 32-bit - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to build and install LokiNet on Linux Mint 32-bit</h1></p>
|
|
||||||
<p>published: 2020-04-11</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<ol type="1">
|
|
||||||
<li>Install LokiNet’s build dependencies:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo apt install build-essential cmake git libcap-dev curl libuv1-dev libsodium-dev libcurl4-openssl-dev pkg-config</code></p>
|
|
||||||
<ol start="2" type="1">
|
|
||||||
<li>Clone the LokiNet Git repository:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>git clone https://github.com/loki-project/loki-network; cd loki-network</code></p>
|
|
||||||
<p><code>git submodule update --init --recursive</code></p>
|
|
||||||
<ol start="3" type="1">
|
|
||||||
<li>Edit the Makefile to force the correct libsodium to be used.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Open <code>Makefile</code> in your text editor of choice. Find the line that says <code>DOWNLOAD_SODIUM</code>. Change <code>OFF</code> to <code>ON</code>.</p>
|
|
||||||
<ol start="4" type="1">
|
|
||||||
<li>Build and install LokiNet:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>make</code> <code>sudo make install</code></p>
|
|
||||||
<ol start="5" type="1">
|
|
||||||
<li>Bootstrap and run:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>lokinet -g</code></p>
|
|
||||||
<p><code>lokinet-bootstrap</code></p>
|
|
||||||
<p><code>lokinet</code></p>
|
|
||||||
<p>If the LokiNet executable complains about not being able to set up network interfaces, run this command:</p>
|
|
||||||
<p><code>sudo setcap cap_net_admin,cap_net_bind_service=+eip /path/to/lokinet/executable</code></p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,104 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to install Misskey on Debian 9 - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to install Misskey on Debian 9</h1></p>
|
|
||||||
<p>published: 2019-09-21</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<ol type="1">
|
|
||||||
<li>Create a user for Misskey:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>adduser --disabled-password --disabled-login misskey</code></p>
|
|
||||||
<p><code>adduser misskey sudo</code></p>
|
|
||||||
<p><code>passwd</span> misskey</a></code></p>
|
|
||||||
<p>Give the misskey user a strong password. Write it down somewhere safe.</p>
|
|
||||||
<ol start="2" type="1">
|
|
||||||
<li>Add the Node.js and PostgreSQL repositories:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>curl -sL https://deb.nodesource.com/setup_12.x |bash</code></p>
|
|
||||||
<p><code>echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgdg.list</code></p>
|
|
||||||
<p><code>cd /tmp</code></p>
|
|
||||||
<p><code>wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -</code></p>
|
|
||||||
<p><code>apt-get update</code></p>
|
|
||||||
<ol start="3" type="1">
|
|
||||||
<li>Install Misskey’s dependencies:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>apt-get install -y nodejs postgresql redis-server build-essential python certbot byobu sudo</code></p>
|
|
||||||
<ol start="4" type="1">
|
|
||||||
<li>Set up a password for PostgreSQL:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>passwd postgres</code></p>
|
|
||||||
<p>Write this password down somewhere safe. You’ll need it later.</p>
|
|
||||||
<ol start="5" type="1">
|
|
||||||
<li>Download Misskey:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>su - misskey</code></p>
|
|
||||||
<p><code>git clone -b master git://github.com/syuilo/misskey.git</code></p>
|
|
||||||
<p><code>cd misskey</code></p>
|
|
||||||
<p><code>git checkout master</code></p>
|
|
||||||
<p><code>npm install</code></p>
|
|
||||||
<ol start="6" type="1">
|
|
||||||
<li>Configure Misskey:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>cp .config/example.yml .config/default.yml</code></p>
|
|
||||||
<p>Edit <code>.config/default.yml</code> with your terminal editor of choice.</p>
|
|
||||||
<p><code>url</code> should be the URL of your server.</p>
|
|
||||||
<p>Assuming you don’t know what you’re doing, which is probably true if you’re reading this, uncomment the line that says <code>port: 443</code>. This will make Misskey start its own web server on port 443 (the HTTPS port).</p>
|
|
||||||
<p>Uncomment the <code>key:</code> and <code>cert:</code> lines. Replace example.tld in the file path with the same URL as you used above, omitting the <code>https://</code> at the beginning.</p>
|
|
||||||
<p>Under the <code>user: postgres</code> line, there should be a password line. Make sure it is uncommented and put in the password that you set up earlier.</p>
|
|
||||||
<p>Uncomment the <code>autoAdmin: true</code> line. This will make the first user registrated on the instance the admin of the instance. Hopefully this is you!</p>
|
|
||||||
<ol start="7" type="1">
|
|
||||||
<li>Set up PostgreSQL:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>exit</code></p>
|
|
||||||
<p><code>su - postgres</code></p>
|
|
||||||
<p>You are now logged in as the postgres user. Type in <code>psql</code> and press enter. A different command prompt should show up. Type in <code>CREATE DATABASE misskey;</code> and follow whatever instructions it gives you.</p>
|
|
||||||
<!-- ALTER USER postgres PASSWORD 'newPassword'; as well? needs investigation-->
|
|
||||||
<ol start="8" type="1">
|
|
||||||
<li>Set up SSL:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>exit</code></p>
|
|
||||||
<p><code>certbot certonly -d example.tld</code></p>
|
|
||||||
<p><code>example.tld</code> should be the URL you previously configured in the Misskey config file. Make sure that your DNS is properly set up to point to your server’s IP address.</p>
|
|
||||||
<p>Follow the instructions Certbot gives you.</p>
|
|
||||||
<ol start="9" type="1">
|
|
||||||
<li>Compile Misskey:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>su - misskey</code></p>
|
|
||||||
<p><code>cd misskey</code></p>
|
|
||||||
<p><code>NODE_ENV=production npm run build</code></p>
|
|
||||||
<p>Sit back for a hot minute while it compiles. If you have 2 GB or less of RAM, pick a god and pray. If you have less than 1 GB of RAM and you’ve somehow made it this far, nuke your server and give up now.</p>
|
|
||||||
<p>After that’s done, run <code>npm run init</code> to set up the Misskey database.</p>
|
|
||||||
<ol start="10" type="1">
|
|
||||||
<li>Run Misskey:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>cd ~</code></p>
|
|
||||||
<p><code>byobu</code></p>
|
|
||||||
<p>You are now in Byobu. This is a window manager for the command line. This will allow you to daemonize Misskey (run it in the background) without using systemd, which is an absolute pain in the ass to diagnose and fix.</p>
|
|
||||||
<p><code>cd misskey</code></p>
|
|
||||||
<p><code>sudo NODE_ENV=production npm start</code></p>
|
|
||||||
<p>If everything looks good (there are no fatal error messages), open your configured URL in a web browser and complete setup from the web interface.</p>
|
|
||||||
<p>When you want to close the terminal, press Ctrl and A at the same time. Pick the first option for whatever Byobu nags you about. Press Ctrl and A again, and then press D. You should get a “detached from session” message. Log out of the misskey user and then the root user until the terminal disconnects from the server.</p>
|
|
||||||
<p>If Misskey ever locks up or it uses more than 70% of the server’s CPU, either:</p>
|
|
||||||
<ul>
|
|
||||||
<li>log in as root, run <code>systemctl reboot now</code> to reboot the server, then log in as root, <code>su - misskey</code>, and repeat step 10 to get Misskey running again.</li>
|
|
||||||
<li>use your VPS provider’s dashboard to reboot the server, then log in as root, <code>su - misskey</code>, and repeat step 10 to get Misskey running again.</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,57 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to root the Nook 1st Gen on Linux - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to root the Nook 1st Gen on Linux</h1></p>
|
|
||||||
<p>published: 2021-07-15</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p><i>Note: this guide assumes you already have ADB installed.</i></p>
|
|
||||||
<ol type="1"><li><a href="../dl/nook/">Download the prerequisite files.</a></li></ol>
|
|
||||||
<p>At the very least, you need the launcher APK, <code>ratc.bin</code>, and <code>exploit.html</code>. These files <em>should</em> also be accesible on <a href="https://forum.xda-developers.com/showthread.php?t=2395798">this XDA Forums thread.</a></p>
|
|
||||||
<p>Rename <code>exploit.html</code> to <code>index.html</code>.</p>
|
|
||||||
<ol start="2" type="1"><li>Setup the crash server.</li></ol>
|
|
||||||
<p>Run <code>sudo python3 -m http.server --bind YOUR_COMPUTERS_LOCAL_IP_HERE 80</code> in the directory with the <code>index.html</code> file in it.</p>
|
|
||||||
<ol start="3" type="1"><li>Crash your Nook's browser to enable ADB.</li></ol>
|
|
||||||
<p>Open http://YOUR_COMPUTERS_LOCAL_IP_HERE in your Nook's built-in web browser (make sure that your computer and Nook are on the same network). The browser should refresh a few times and then crash to the home menu.</p>
|
|
||||||
<ol start="4" type="1"><li>Connect to your Nook over ADB.</li></ol>
|
|
||||||
<p><code>adb connect YOUR_NOOKS_LOCAL_IP_HERE</code></p>
|
|
||||||
<p>If ADB refuses to connect, run step 3 again until it connects. This might take one try; this might take a hundred tries.</p>
|
|
||||||
<ol start="5" type="1"><li>Get and edit <code>/init.rc</code>.</li></ol>
|
|
||||||
<p><code>adb pull /init.rc</code></p>
|
|
||||||
<p>Open <code>/init.rc</code> in your favorite text editor.</p>
|
|
||||||
<p>Find the line that says <code>service adbd /sbin/adbd</code>.</p>
|
|
||||||
<p>Below that should say <code>disabled</code>. Change that to <code>enabled</code>.</p>
|
|
||||||
<ol start="6" type="1"><li>Get root access.</li></ol>
|
|
||||||
<p>Repeat step 4 to connect to the Nook. Once connected:</p>
|
|
||||||
<p><code>adb push ratc.bin /sqlite_stmt_journals</code></p>
|
|
||||||
<p><code>adb shell</code></p>
|
|
||||||
<p><code>cd /sqlite_stmt_journals</code></p>
|
|
||||||
<p><code>/system/bin/chmod 777 ./ratc.bin</code></p>
|
|
||||||
<p><code>./ratc.bin</code></p>
|
|
||||||
<p>Several lines of output will appear. Do not press anything. A few seconds later, adb will disconnect you.</p>
|
|
||||||
<p><code>adb kill-server</code></p>
|
|
||||||
<ol start="7" type="1"><li>Push the patched <code>init.rc</code> to the Nook.</li></ol>
|
|
||||||
<p>Repeat step 4, as usual.</p>
|
|
||||||
<p><code>adb push init.rc /</code></p>
|
|
||||||
<p>If all goes well, your Nook should now be rooted with adbd running on reboot.</p>
|
|
||||||
<p>Go to the source link on the top of these instructions and install whatever apps you want. You <em>must</em> install, at the very minimum, <code>ru.mynook.launcher.apk</code> in order to access any of the other third-party apps installed.</p>
|
|
||||||
<p>To install apps over ADB:</p>
|
|
||||||
<p><code>adb install APP_NAME_HERE.apk</code></p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,80 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to run Oasis, a Secure Scuttlebutt client, on a remote server - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<h1>How to run Oasis, a Secure Scuttlebutt client, on a remote server</h1>
|
|
||||||
<p>published: 2021-11-13</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p>This tutorial assumes you already have a functioning Node.js and Caddy installation.</p>
|
|
||||||
<ol type="1">
|
|
||||||
<li>Install Oasis.</li>
|
|
||||||
</ol>
|
|
||||||
<code>git clone https://github.com/fraction/oasis.git<br />cd oasis<br />npm install</code>
|
|
||||||
<p>Test the installation by running <code>node .</code> (yes, including the period).</p>
|
|
||||||
<ul>
|
|
||||||
<li>If the output stops after a few lines and isn't an obvious Node error, hit Control and C at the same time to exit; you're ready for the <code>systemd</code> file.</li>
|
|
||||||
<li>If you get an error about port 3000 already being in use, use the command <code>node . --port PORTNUMBER</code> instead, where <code>PORTNUMBER</code> is any open port you want.</li>
|
|
||||||
</ul>
|
|
||||||
<p>If your instance immediately throws <a href="https://github.com/fraction/oasis/issues/718#issuecomment-927379995">an error about <code>ssb.friends.get</code></a>:</p>
|
|
||||||
<code>git checkout 4e8f7426a4eb1d95f6e55cf894a3168f523f8af8<br />rm -rf node_modules<br />npm install</code>
|
|
||||||
<ol start="2" type="1">
|
|
||||||
<li>Prepare the <code>systemd</code> daemon file.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Edit <code>/lib/systemd/system/oasis.service</code> as root with your favorite text editor. Paste the following:</p>
|
|
||||||
<pre>
|
|
||||||
[Unit]
|
|
||||||
Description=Oasis client for Secure Scuttlebutt
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
User=YourUsername
|
|
||||||
Group=YourUsername
|
|
||||||
ExecStart=/path/to/your/node/binary . --port 8787
|
|
||||||
WorkingDirectory=/path/to/where/you/cloned/oasis/
|
|
||||||
TimeoutStopSec=5s
|
|
||||||
LimitNOFILE=1048576
|
|
||||||
PrivateTmp=true
|
|
||||||
ProtectSystem=full
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
</pre>
|
|
||||||
<p>Replace <code>/path/to/your/node/binary</code> with whatever comes up when you run <code>which node</code>. You may need to change this if you update Node.</p>
|
|
||||||
<ol start="3" type="1">
|
|
||||||
<li>Edit your Caddyfile. (This will probably also require root.)</li>
|
|
||||||
</ol>
|
|
||||||
<pre>
|
|
||||||
yourdomain.tld {
|
|
||||||
reverse_proxy 127.0.0.1:PORTNUMBER {
|
|
||||||
header_up Host 127.0.0.1
|
|
||||||
header_up Referer http://localhost
|
|
||||||
}
|
|
||||||
basicauth * {
|
|
||||||
AnyUsernameYouWant EXTREMELYLONGCADDYHASHHERE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</pre>
|
|
||||||
<p><code>EXTREMELYLONGCADDYHASHHERE</code> is used instead of an actual password so you don't have cleartext credentials hanging around. Generate this with <code>caddy hash-password</code>. Make sure you save your actual password in a password manager, as you can't reverse a hash!</p>
|
|
||||||
<p>The <code>header_up</code> lines are there to trick Oasis into thinking it is running on a local machine, as it (very aggressively) wants to be. Normally this would be true, as Secure Scuttlebutt is peer-to-peer and intended to be run on a personal device that may see intermittent internet connectivity. However, if you're looking at this tutorial, you probably want to host a public peer as an <em>actually functioning</em> alternative to a <a href="https://github.com/ssbc/ssb-server">pub</a> or <a href="https://github.com/ssb-ngi-pointer/go-ssb-room/">room</a>.</p>
|
|
||||||
<ol start="4" type="1">
|
|
||||||
<li>Get everything running.</li>
|
|
||||||
</ol>
|
|
||||||
<code>sudo systemctl daemon-reload<br />sudo systemctl restart caddy<br />sudo systemctl start oasis && sudo systemctl enable oasis</code>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,76 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to create a Tor hidden service website on Caddy on Debian 10 - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to create a Tor hidden service website on Caddy on Debian 10</h1></p>
|
|
||||||
<p>first published: 2020-01-31</p>
|
|
||||||
<p>last updated: 2021-01-13</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<ol style="list-style-type: decimal">
|
|
||||||
<li>Install Tor.</li>
|
|
||||||
</ol>
|
|
||||||
<code>sudo apt install tor</code>
|
|
||||||
<ol start="2" style="list-style-type: decimal">
|
|
||||||
<li>Install the Caddy web server.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list</code></p>
|
|
||||||
<p><code>sudo apt update; sudo apt install caddy -y</code></p>
|
|
||||||
<ol start="3" style="list-style-type: decimal">
|
|
||||||
<li>Edit <code>/etc/tor/torrc</code> to create the hidden service.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Open /etc/tor/torrc in your favorite text editor. (Please note that this usually requires root privileges.)</p>
|
|
||||||
<p>Go to the lines that say:</p>
|
|
||||||
<code>
|
|
||||||
#HiddenServiceDir /var/lib/tor/hidden_service/<br />
|
|
||||||
#HiddenServicePort 80 127.0.0.1:80
|
|
||||||
</code>
|
|
||||||
<p>Uncomment them by deleting the # mark in front of each line.</p>
|
|
||||||
<p>If you want, you can change the HiddenServiceDir directory, but you will need to remember it for later. For security purposes, keep the new directory inside of <code>/var/lib/tor/</code>.</p>
|
|
||||||
<ol start="4" style="list-style-type: decimal">
|
|
||||||
<li>Restart the Tor service.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo systemctl restart tor@default</code></p>
|
|
||||||
<ol start="5" style="list-style-type: decimal">
|
|
||||||
<li>As root, go to the hidden service directory and get the new hidden service's domain.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo -i</code></p>
|
|
||||||
<p><code>cd /var/lib/tor/directory/</code></p>
|
|
||||||
<p>Replace "directory" with the actual directory you chose in step 3.</p>
|
|
||||||
<p><code>cat hostname</code></p>
|
|
||||||
<p>If all is well, you should now see a long string of letters and numbers that ends in ".onion". Copy this somewhere safe. You'll need it next step.</p>
|
|
||||||
<ol start="6" style="list-style-type: decimal">
|
|
||||||
<li>Configure Caddy to serve the hidden service.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Open <code>/etc/caddy/Caddyfile</code> with your favorite text editor. You should already be root, but if you did <code>exit</code> after getting the Tor hostname, just <code>sudo -i</code> again.</p>
|
|
||||||
<p>Type the following in:</p>
|
|
||||||
<pre>
|
|
||||||
http://YourTorHostnameHere.onion {
|
|
||||||
root * /your/website/file/path/here
|
|
||||||
file_server
|
|
||||||
encode gzip
|
|
||||||
bind 127.0.0.1
|
|
||||||
}
|
|
||||||
</pre>
|
|
||||||
<p>The "http://" in front of the address is important as that tells Caddy to not try to enable HTTPS on that domain. HTTPS is unnecessary for Tor hidden services as all traffic to and from the server is already encrypted in transit. And since Tor hidden services aren't accessible on the normal clearnet, the request for Let's Encrypt to give Caddy a certificate would fail as they wouldn't be able to access the domain.</p>
|
|
||||||
<ol start="8" style="list-style-type: decimal">
|
|
||||||
<li>Restart Caddy to apply your changes.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo systemctl restart caddy</code></p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,44 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to make playlists on the SanDisk Clip Sport on Linux - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to make playlists on the SanDisk Clip Sport on Linux</h1></p>
|
|
||||||
<p>published: 2019-08-13</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<ol style="list-style-type: decimal">
|
|
||||||
<li>Make a playlist with the songs you want in VLC.</li>
|
|
||||||
<li>Save said playlist as an .m3u file. (Other playlist file types will not work.)</li>
|
|
||||||
<li>Make a copy of said playlist file. Open it up in a text editor of your choice.</li>
|
|
||||||
<li>Remove all the lines that start with "#EXTINF".</li>
|
|
||||||
<li>Using the find-replace function, change the following strings:</li>
|
|
||||||
</ol>
|
|
||||||
<p>Whatever the path to your main music folder on your computer is, starting with "file:///", to "\Music". For example, the path to my main music library is <code>file:///mnt/Hell3/Music/Music Archive/Popular</code>. (My music is sorted into "Popular", "Soundtrack", and "Vaporwave".)</p>
|
|
||||||
<p>"%20" to " " (that is, a space).</p>
|
|
||||||
<p>"/" to "\".</p>
|
|
||||||
<ol start="6" style="list-style-type: decimal">
|
|
||||||
<li>Change the end-of-line markers to the DOS/Windows version.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Open a terminal and <code>cd</code> to the directory you saved the copy of your playlist in, then type the following:</p>
|
|
||||||
<p><code>unix2dos playlist-copy.m3u</code></p>
|
|
||||||
<ol start="7" style="list-style-type: decimal">
|
|
||||||
<li>Plug in your Clip Sport player. Make sure it is mounted properly (ie. not as a read-only device) before proceeding.</li>
|
|
||||||
<li>Copy the playlist you just converted in step 6 to the "Playlists" folder, and your music to the "Music" folder.</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,55 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to install Syncthing on Tails - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to install Syncthing on Tails</h1></p>
|
|
||||||
<p>published: 2019-07-01</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<ol type="1">
|
|
||||||
<li>Create a persistent volume in Tails. If you already have a persistent volume configured with Additional Software, Dotfiles, and Personal Data enabled, skip to step 2.</li>
|
|
||||||
</ol>
|
|
||||||
<p>After your first boot, go to the Applications menu in the top left corner. Open the Tails menu, and then select “Configure persistent volume”. Follow the on-screen instructions. At the very least, enable Additional Software, Dotfiles, and Personal Data. When the on-screen instructions tell you to reboot, do so.</p>
|
|
||||||
<ol start="2" type="1">
|
|
||||||
<li><a href="https://tails.boum.org/doc/first_steps/welcome_screen/administration_password/index.en.html">Set up an admin password on Tails.</a></li>
|
|
||||||
</ol>
|
|
||||||
<p>On boot, go to the advanced settings button in Tails Greeter (the first window that pops up, before you go to the desktop). Click on the plus button, then select Administration Password. Type in a password of your choice and click Add.</p>
|
|
||||||
<ol start="3" type="1">
|
|
||||||
<li>Install Syncthing.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo apt install syncthing</code></p>
|
|
||||||
<ol start="4" type="1">
|
|
||||||
<li>Configure Syncthing to use Tails’ SOCKS5 proxy and use your Persistent folder for its configuration.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Open ~/.bashrc in your favorite text editor. At the end of the file, add the following lines:</p>
|
|
||||||
<p><code>export all_proxy=socks5://127.0.0.1:9150</code></p>
|
|
||||||
<p><code>alias sta=‘syncthing --home=/home/amnesia/Persistent/.config/syncthing’</code></p>
|
|
||||||
<p>Save and close the file. Copy it into your persistent Dotfiles folder, usually at <code>/live/persistence/TailsData_unlocked/dotfiles/</code>.</p>
|
|
||||||
<ol start="5" type="1">
|
|
||||||
<li>Initialize and start Syncthing.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Reboot and unlock your persistent volume. Once on the desktop, open a terminal and type <code>sta</code>.</p>
|
|
||||||
<ol start="6" type="1">
|
|
||||||
<li>Configure Tor Browser to connect to the Syncthing web interface.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Open Tor Browser (obviously). Open the hamburger menu and click on Preferences. At the very bottom, click on “Settings” next to “Configure how Tor Browser connects to the internet”. In the “no proxy for” box, type in “127.0.0.1” without the quotes.</p>
|
|
||||||
<p>Click the OK box and exit Preferences. Open another terminal and type:</p>
|
|
||||||
<p><code>sudo iptables -I OUTPUT -o lo -p tcp --dport 8384 -j ACCEPT</code></p>
|
|
||||||
<p>You will need to do step 6 every time you reboot Tails, as there is currently no way to make this persistent.</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,39 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to dump tiles from a GameBoy ROM on Linux - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to dump tiles from a GameBoy ROM on Linux</h1></p>
|
|
||||||
<p>published: 2020-04-08</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<ol type="1">
|
|
||||||
<li>Download <a href="https://www.romhacking.net/utilities/119/">the yy-chr tool</a>. Extract it to a directory of your choice.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Please note that it comes as a Windows binary; from my personal tests, it runs quite well in WINE.</p>
|
|
||||||
<ol start="2" type="1">
|
|
||||||
<li>Open/run <code>yychr.exe</code>. Go to <code>File > Open</code> and open the ROM you want to dump tiles from.</li>
|
|
||||||
<li>Scroll to the place in the ROM you want to dump files from.</li>
|
|
||||||
<li>Go to <code>File > Save snapshot</code>. It will ask you to save a file named <code>chrXXX.bmp</code>, where XXX is a number. Save it wherever you please.</li>
|
|
||||||
<li>Repeat steps 3 and 4 until you have saved screenshots of all the places in the ROM that have tiles you want to dump.</li>
|
|
||||||
<li>Once you are done, open a terminal and <code>cd</code> to the directory you saved the BMP files as.</li>
|
|
||||||
<li>Run the following command, replacing XXX with the actual numbers in the file name:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>convert chrXXX.bmp -crop 16x16@ +repage +adjoin tile-%d.bmp</code></p>
|
|
||||||
<p>This will dump each individual 8x8 tile into its own separate BMP file. Please be warned: this may generate more than a hundred files in that folder! Best to keep each separate chrXXX.bmp file in its own folder to keep everything organized.</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,63 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to play music in the CLI with an equalizer - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to play music in the CLI with an equalizer</h1></p>
|
|
||||||
<p>published: 2020-04-10</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<ol type="1">
|
|
||||||
<li>Install VLC.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo apt install vlc</code></p>
|
|
||||||
<ol start="2" type="1">
|
|
||||||
<li>Open VLC and drag some music in.</li>
|
|
||||||
<li>While playing some music, open the Tools > Effects and Filters menu. Play around with the presets until you find one that sounds good.</li>
|
|
||||||
<li>Write down the name of the preset you used and then close VLC.</li>
|
|
||||||
<li>In a terminal, <code>cd</code> to where the music you want to play is.</li>
|
|
||||||
<li>In that terminal, execute this command:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>cvlc --equalizer-preset=INSERT_PRESET_NAME_HERE -I ncurses *.flac</code></p>
|
|
||||||
<p><code>INSERT_PRESET_NAME_HERE</code> should be in all lowercase. For example, the “Headphones” preset (which is what I use) would be <code>--equalizer-preset=headphones</code>.</p>
|
|
||||||
<p>The full list of valid possibilities is:
|
|
||||||
<ul>
|
|
||||||
<li>flat</li>
|
|
||||||
<li>classical</li>
|
|
||||||
<li>club</li>
|
|
||||||
<li>dance</li>
|
|
||||||
<li>fullbass</li>
|
|
||||||
<li>fullbasstreble</li>
|
|
||||||
<li>fulltreble</li>
|
|
||||||
<li>headphones</li>
|
|
||||||
<li>largehall</li>
|
|
||||||
<li>live</li>
|
|
||||||
<li>party</li>
|
|
||||||
<li>pop</li>
|
|
||||||
<li>reggae</li>
|
|
||||||
<li>rock</li>
|
|
||||||
<li>ska</li>
|
|
||||||
<li>soft</li>
|
|
||||||
<li>softrock</li>
|
|
||||||
<li>techno</li>
|
|
||||||
</ul>
|
|
||||||
<p>If your files are MP3 or some other format, replace the <code>flac</code> in <code>*.flac</code> with the actual file type.</p>
|
|
||||||
<ol start="7" type="1">
|
|
||||||
<li>Press the “h” key to open the help menu, which will show you the player controls.</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,84 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to create a Yggdrasil hidden service on Caddy on Debian 10 - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to create a Yggdrasil hidden service on Caddy on Debian 10</h1></p>
|
|
||||||
<p>first published: 2021-01-16</p>
|
|
||||||
<p>last updated: 2021-02-07</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<ol style="list-style-type: decimal">
|
|
||||||
<li>Install Yggdrasil.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo apt install dirmngr</code></p>
|
|
||||||
<p><code>gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt</code></p>
|
|
||||||
<p><code>gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -</code></p>
|
|
||||||
<p><code>echo 'deb http://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list</code></p>
|
|
||||||
<p><code>sudo apt update; sudo apt install yggdrasil</code></p>
|
|
||||||
<ol start="2" style="list-style-type: decimal">
|
|
||||||
<li>Install the Caddy web server.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list</code></p>
|
|
||||||
<p><code>sudo apt update; sudo apt install caddy -y</code></p>
|
|
||||||
<ol start="3" style="list-style-type: decimal">
|
|
||||||
<li>Get the IP Yggdrasil generates for you.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo systemctl start yggdrasil; sudo systemctl enable yggdrasil</code></p>
|
|
||||||
<p><code>sudo journalctl -xfe -u yggdrasil</code></p>
|
|
||||||
<p>There will be a line that says "Your IPv6 address is". Copy the rest of that line somewhere safe.</p>
|
|
||||||
<p>Press the Control and C buttons on your keyboard at the same time to exit <code>journalctl</code>.</p>
|
|
||||||
<ol start="4" style="list-style-type: decimal">
|
|
||||||
<li>Configure Caddy to serve the hidden service.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Open <code>/etc/caddy/Caddyfile</code> as root with your favorite text editor.</p>
|
|
||||||
<p>Type the following in:</p>
|
|
||||||
<pre>
|
|
||||||
http://[YGGDRASIL_IP_ADDRESS_HERE] {
|
|
||||||
root * /your/website/file/path/here
|
|
||||||
file_server
|
|
||||||
encode gzip
|
|
||||||
}
|
|
||||||
</pre>
|
|
||||||
<p>The "http://" in front of the address is important as that tells Caddy to not try to enable HTTPS for that website. HTTPS is unnecessary for Yggdrasil hidden services as all traffic to and from the server is already encrypted in transit. Besides, Let's Encrypt wouldn't be able to issue a certificate for an IP address anyway.</p>
|
|
||||||
<ol start="5" style="list-style-type: decimal">
|
|
||||||
<li>Restart Caddy to apply your changes.</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo systemctl restart caddy</code></p>
|
|
||||||
<ol start="6" style="list-style-type: decimal">
|
|
||||||
<li>Get some peers for Yggdrasil.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Open <a href="https://github.com/yggdrasil-network/public-peers">this page</a> in a new tab on your browser. On your server, open <code>/etc/yggdrasil.conf</code> as root with your favorite text editor.</p>
|
|
||||||
<p>At the top of the configuration file will be a section that looks like this:</p>
|
|
||||||
<p><code>Peers: []</code></p>
|
|
||||||
<p>Pick some peers from the list and add them to that section of the file (one per line) so it now looks something like this:</p>
|
|
||||||
<pre>
|
|
||||||
Peers:
|
|
||||||
[
|
|
||||||
tcp://50.236.201.218:56088
|
|
||||||
tcp://lancis.iscute.moe:49273
|
|
||||||
tcp://45.77.107.150:34660
|
|
||||||
tls://longseason.1200bps.xyz:13122
|
|
||||||
tcp://8.9.30.45:34371
|
|
||||||
tls://107.189.4.167:42024
|
|
||||||
]
|
|
||||||
</pre>
|
|
||||||
<p>Substitute for the peers closest to your server geographically.</p>
|
|
||||||
<p>Save the file and close it.</p>
|
|
||||||
<p><code>sudo systemctl restart yggdrasil</code></p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,103 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>How to set up a detached and encrypted ZeroNet seedbox on a Raspberry Pi - Archive - MayVaneDay Studios</title>
|
|
||||||
<link href="../style.css" rel="stylesheet" type="text/css" media="all">
|
|
||||||
<meta name="author" content="Vane Vander">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
</head>
|
|
||||||
<body class="mayvaneday">
|
|
||||||
<article>
|
|
||||||
<div class="box">
|
|
||||||
<p><h1>How to set up a detached and encrypted ZeroNet seedbox on a Raspberry Pi</h1></p>
|
|
||||||
<p>published: 2019-11-06</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<ol style="list-style-type: decimal">
|
|
||||||
<li>Format a USB stick with LUKS:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo apt install gnome-disk-utility cryptsetup</code></p>
|
|
||||||
<p>If you're running a different distro on your server, the package name will likely vary: it's usually some form of <code>gnome-disks</code>. <code>cryptsetup</code> is required for LUKS, and for some reason, apt doesn't install it by default.</p>
|
|
||||||
<p>Once it installs, make sure your USB stick is plugged in, open a terminal, and run <code>sudo gnome-disks</code>.</p>
|
|
||||||
<p>Hit the gear icon below the partition table and choose <i>Format Partition</i>, then choose LUKS. Enter a strong password (that you'll remember, of course). In the "Volume Label" section, enter "zeronet" just to make this guide a little easier.</p>
|
|
||||||
<ol start="2" style="list-style-type: decimal">
|
|
||||||
<li>Mount the USB stick:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo nano -$ /etc/fstab</code></p>
|
|
||||||
<p>Put the following line on the bottom:</p>
|
|
||||||
<p><code>/dev/disk/by-label/zeronet /mnt/zeronet auto user,nosuid,nodev,nofail,x-gvfs-show 0 0</code></p>
|
|
||||||
<p>Reboot your server.</p>
|
|
||||||
<p>If /mnt/zeronet isn't accessible by non-root users, execute the following command to fix that:</p>
|
|
||||||
<p><code>sudo chmod -R 777 /mnt/zeronet</code></p>
|
|
||||||
<p>Please note that 777 isn't the safest of permissions; if you know your username and group, a <code>chown</code> instead is safer:</p>
|
|
||||||
<p><code>sudo chown -R username:group /mnt/zeronet</sudo></p>
|
|
||||||
<ol start="3" style="list-style-type: decimal">
|
|
||||||
<li>Download and install the latest version of ZeroNet:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>cd /mnt/zeronet</code></p>
|
|
||||||
<p><code>git clone https://github.com/HelloZeroNet/ZeroNet</code></p>
|
|
||||||
<p><code>cd ZeroNet</code></p>
|
|
||||||
<p><code>sudo -H pip3 install -r requirements.txt</code></p>
|
|
||||||
<p>Enable the UiPassword plugin, and remove the Multiuser plugin to avoid future issues:</p>
|
|
||||||
<p><code>mv plugins/disabled-UiPassword plugins/UiPassword</code></p>
|
|
||||||
<p><code>rm -rf plugins/disabled-Multiuser</code></p>
|
|
||||||
<p>Then configure it to be accessible over the network:</p>
|
|
||||||
<p><code>nano -$ zeronet.conf</code></p>
|
|
||||||
<p>Paste the following into the text editor:</p>
|
|
||||||
<pre>
|
|
||||||
[global]
|
|
||||||
fileserver_port = 27328
|
|
||||||
ui_ip = your.local.ip.here
|
|
||||||
ui_password = set_a_password_here
|
|
||||||
</pre>
|
|
||||||
<ol start="4" style="list-style-type: decimal">
|
|
||||||
<li>Enable Tor access:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo apt install tor</code></p>
|
|
||||||
<p><code>sudo nano -$ /etc/tor/torrc</code></p>
|
|
||||||
<p>Uncomment the lines that say <code>ControlPort 9051</code> and <code>CookieAuthentication 1</code>.</p>
|
|
||||||
<p>Save and exit the file, then restart the Tor service:</p>
|
|
||||||
<p><code>sudo systemctl restart tor</code></p>
|
|
||||||
<p>Then give your user permission to read the Tor cookie you just set up:</p>
|
|
||||||
<p><code>sudo usermod -a -G debian-tor YourUsername</code></p>
|
|
||||||
<p>Login and logout of your user, or just reboot the server.</p>
|
|
||||||
<ol start="5" style="list-style-type: decimal">
|
|
||||||
<li>Make a systemd service:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo nano -$ /etc/systemd/system/zeronet.service</code></p>
|
|
||||||
<p>Paste the following:</p>
|
|
||||||
<pre>
|
|
||||||
[Unit]
|
|
||||||
Description=zeronet
|
|
||||||
After=syslog.target
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
User=YourUsername
|
|
||||||
WorkingDirectory=/mnt/zeronet/ZeroNet
|
|
||||||
ExecStart=/usr/bin/python3 /mnt/zeronet/ZeroNet/zeronet.py
|
|
||||||
Environment=USER=YourUsername
|
|
||||||
Restart=always
|
|
||||||
StandardError=syslog
|
|
||||||
CPUQuota=80%
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
</pre>
|
|
||||||
<p>Then reload systemd to install the new service:</p>
|
|
||||||
<p><code>sudo systemctl daemon-reload</code></p>
|
|
||||||
<ol start="6" style="list-style-type: decimal">
|
|
||||||
<li>Start ZeroNet:</li>
|
|
||||||
</ol>
|
|
||||||
<p><code>sudo systemctl start zeronet</code></p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="box">
|
|
||||||
<p align=right>CC BY-NC-SA 4.0 © Vane Vander</p>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
9
women.md
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
Unfinished, obviously.
|
Unfinished, obviously.
|
||||||
|
|
||||||
Last updated: 2022-10-20
|
Last updated: 2023-01-04
|
||||||
|
|
||||||
## Art
|
## Art
|
||||||
- [Aphra Behn](https://en.wikipedia.org/wiki/Aphra_Behn): one of the first English women to earn her living by her writing
|
- [Aphra Behn](https://en.wikipedia.org/wiki/Aphra_Behn): one of the first English women to earn her living by her writing
|
||||||
|
@ -10,13 +10,18 @@ Last updated: 2022-10-20
|
||||||
- [Enheduanna](https://en.wikipedia.org/wiki/Enheduanna): first known poet
|
- [Enheduanna](https://en.wikipedia.org/wiki/Enheduanna): first known poet
|
||||||
- [Herrad of Landsberg](https://en.wikipedia.org/wiki/Herrad_of_Landsberg): 12th-century nun who wrote an early pictoral encyclopedia, *Hortus deliciarum*, to teach the women in her convent about the sciences of the time
|
- [Herrad of Landsberg](https://en.wikipedia.org/wiki/Herrad_of_Landsberg): 12th-century nun who wrote an early pictoral encyclopedia, *Hortus deliciarum*, to teach the women in her convent about the sciences of the time
|
||||||
- [Murasaki Shikibu](https://en.wikipedia.org/wiki/Murasaki_Shikibu): wrote the first novel, *The Tale of Genji*
|
- [Murasaki Shikibu](https://en.wikipedia.org/wiki/Murasaki_Shikibu): wrote the first novel, *The Tale of Genji*
|
||||||
|
- [Valerie Thomas](https://en.wikipedia.org/wiki/Valerie_Thomas): invented the illusion transmitter, critical for the invention of 3D movies
|
||||||
|
|
||||||
## Computers
|
## Computers
|
||||||
- [Ada Lovelace](https://wikipedia.org/wiki/Ada_Lovelace): the first computer programmer
|
- [Ada Lovelace](https://wikipedia.org/wiki/Ada_Lovelace): the first computer programmer
|
||||||
|
- Kathleen Booth: inventor of assembly language
|
||||||
|
- [Evelyn Berezin](https://en.m.wikipedia.org/wiki/Evelyn_Berezin): designed the first computer word proecssor
|
||||||
- [Margaret Hamilton](https://en.wikipedia.org/wiki/Margaret_Hamilton_(software_engineer)): lead programmer on the Apollo project
|
- [Margaret Hamilton](https://en.wikipedia.org/wiki/Margaret_Hamilton_(software_engineer)): lead programmer on the Apollo project
|
||||||
- [Grace Hopper](https://en.wikipedia.org/wiki/Grace_Hopper): created the first compiler
|
- [Grace Hopper](https://en.wikipedia.org/wiki/Grace_Hopper): created the first compiler
|
||||||
- [Susan Kare](https://en.wikipedia.org/wiki/Susan_Kare): "pioneer of pixel art"; designed many of the icons, fonts, and images for Apple, NeXT, and IBM in the 1980s
|
- [Susan Kare](https://en.wikipedia.org/wiki/Susan_Kare): "pioneer of pixel art"; designed many of the icons, fonts, and images for Apple, NeXT, and IBM in the 1980s
|
||||||
- [Hedy Lamarr](https://en.wikipedia.org/wiki/Hedy_Lamarr#Inventor): invented Wi-Fi
|
- [Hedy Lamarr](https://en.wikipedia.org/wiki/Hedy_Lamarr#Inventor): invented Wi-Fi
|
||||||
|
- [Ruth Teitelbaum](https://web.archive.org/web/20221129021942/https://spectrum.ieee.org/the-women-behind-eniac): one of the six women who programmed ENIAC
|
||||||
|
- [Gladys West](https://en.wikipedia.org/wiki/Gladys_West): mathematician who developed the satellite geodesy models eventually developed into the Global Positioning System (GPS)
|
||||||
|
|
||||||
## Industry
|
## Industry
|
||||||
- [Tabitha Babbitt](https://en.wikipedia.org/wiki/Tabitha_Babbitt): invented the circular saw
|
- [Tabitha Babbitt](https://en.wikipedia.org/wiki/Tabitha_Babbitt): invented the circular saw
|
||||||
|
@ -63,6 +68,8 @@ Last updated: 2022-10-20
|
||||||
- [...and many more](https://en.m.wikipedia.org/wiki/List_of_female_scientists_before_the_20th_century)
|
- [...and many more](https://en.m.wikipedia.org/wiki/List_of_female_scientists_before_the_20th_century)
|
||||||
|
|
||||||
## Social Change
|
## Social Change
|
||||||
|
- [Claudette Colvin](https://en.m.wikipedia.org/wiki/Claudette_Colvin): pioneer of the 1950s civil rights movement; efused to give up her bus seat nine months before Rosa Parks did
|
||||||
|
- [Temple Grandin](https://en.wikipedia.org/wiki/Temple_Grandin): one of the first public figures to publically come out as Autistic; animal welfare activist that campaigned for humane treatment of cattle in beef processing plants
|
||||||
- [Judith Heumann](https://en.wikipedia.org/wiki/Judith_Heumann): held the longest sit-in in a government building for the enactment of Section 504 of the Rehabilitation Act of 1973 (civil rights protection for disabled people)
|
- [Judith Heumann](https://en.wikipedia.org/wiki/Judith_Heumann): held the longest sit-in in a government building for the enactment of Section 504 of the Rehabilitation Act of 1973 (civil rights protection for disabled people)
|
||||||
|
|
||||||
## Misc
|
## Misc
|
||||||
|
|