website source

commit 27815931001f8f7fd0e4abf8ae10140c0915fcb0
parent f39d915f1c7f2b1d6a37d8fee45a2fb5235c8c0c
Author: opal hart <>
Date:   Mon,  6 May 2019 09:33:32 +0000

add historic blog .md files

PGP-signed markdown files from bashblog days, for posterity. now we use
git's commit signing to verify not only blog articles, but everything on
the site that's tracked in the repository

Aout/blog/historic/ | 22++++++++++++++++++++++
Aout/blog/historic/ | 46++++++++++++++++++++++++++++++++++++++++++++++
Aout/blog/historic/ | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aout/blog/historic/ | 71+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aout/blog/historic/ | 25+++++++++++++++++++++++++
Aout/blog/historic/ | 43+++++++++++++++++++++++++++++++++++++++++++
Aout/blog/historic/ | 37+++++++++++++++++++++++++++++++++++++
Aout/blog/historic/ | 30++++++++++++++++++++++++++++++
Aout/blog/historic/ | 15+++++++++++++++
Aout/blog/historic/ | 17+++++++++++++++++
Aout/blog/historic/ | 31+++++++++++++++++++++++++++++++
Aout/blog/historic/ | 30++++++++++++++++++++++++++++++
Aout/blog/historic/ | 60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
13 files changed, 492 insertions(+), 0 deletions(-)

diff --git a/out/blog/historic/ b/out/blog/historic/ @@ -0,0 +1,22 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +a musing on sharing and receiving opinions + +from [my fediverse post]( +> am i perfect? no, far from it. i go out of my way to be an edgy fuck more than enough, i am quick to resort to namecalling, but overall i feel like i'm a reasonable person if you can look past that. while some people use edginess/insults to carry out their "race war now" politics, i simply use it because i'm used to it, i don't take offence to it when it's used against me, and i believe (to a fault) in "treat others how you want to be treated." +> +> except sometimes i put my edginess aside for a brief bit, and i try to discuss something maturely, without the intent to provoke. and that isn't even well-received as much as it should be, for whatever reason. people choose to be ignorant to differing opinions rather than to be openly sceptical, rather than to judge whether a new idea is acceptable, needs additional review/argument, or can be discarded safely (and ideally in an adultlike manner that doesn't end up accusing people of stuff simply because they believe in something). +> +> psychologists have a term for silencing opposition: it's a maladaptive coping response to stressors, meaning it is unhealthy in the long run and only causes more problems. the adage "you can run but you can't hide" is suitable here; you can temporarily silence dissenting opinions (or ruin your life trying to permanently silence all sources of it) instead of just taking those opinions as they are: opinions. nobody's forcing you to believe anything, and the people who do use force to spread their opinions are to be looked down upon. most of us are simply exposing others to new ideas based off our own experiences and knowledge; we're doing it in an attempt to help out but we don't always show our intent straight up, because we're naïve and believe that everyone is as open as us to new ideas and opinions. +> +> like i said, i'm flawed as fuck, but i don't believe my flaws and edginess has a profound impact on my ability to diffuse my opinions and knowledge to others out there + +Tags: psychology society knowledge +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQTTaa3wA7+tqaxSfUAwzn1m3mlJEAUCW6jNQQAKCRAwzn1m3mlJ +ENpLAP4gQjDStT+EpNEicyyCd+0VGdw/0xARCwZSyyLfPQPNuwD/WPxYRWz8G9df +6pIxccBL3DCb6R3SGx9x4xE0kJKw/gw= +=/iF9 +-----END PGP SIGNATURE----- diff --git a/out/blog/historic/ b/out/blog/historic/ @@ -0,0 +1,46 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +a new era for Hidden Answers + +this post is specifically for users of the Hidden Answers website. if you don't know what it is, this probably isn't worth reading. still, curious people who want to help out with the website are welcome to [contact me](/contact); any help is appreciated. + +for those who aren't on Hidden Answers: it's a hidden service question-answer website using the [Question2Answer]( software, and in similar format to Stack Exchange. it's available [on tor](http://answerstedhctbek.onion/) and [on i2p](http://hiddenanswers.i2p/) and currently is multilingual for English, Spanish, Portuguese, and Russian speakers. + +at the time of writing, new user registration is closed for a multitude of reasons. I have hopes of re-enabling registration soon, after we have fixed some long-lasting issues with the site. + +as users have inevitably noticed by now, there are a few issues with the site, ranging from the community to the software. the past month, the MySQL database for Hidden Answers has experienced unexplained corruption, and last week the server's disk space was completely consumed by MySQL binary logs, causing the site to be totally inaccessible. (seriously MySQL/MariaDB, why keep all logs infinitely by default? and why did nobody tell me about this before I went into web hosting?) + +over the past year pinochet, the website founder, has come in and out of the scene for being responsible for the site. the grunt of the website's work has been handled by both me and the dedicated moderation team. but even we aren't enough to keep the website running optimally. not only that, but mods come and go, and some of them understandably become tired of dealing with the site. and we have no idea what's going on with the multilingual sites (Portuguese HA was overrun by scammers at some point, for example). communication between all the moderators is barely established, and this causes additional strain on relationships and on the state of the website. + +pinochet is now long gone and only the mods and I are left to run the site. I am officially taking over the site; this is effective at the time of writing this post. that means you should write down my PGP key and you should write down my contact information (it's best to contact me over E-mail and XMPP, and *please* tell me who you are and why you wish to contact me, or I'll likely ignore you. saying <q>hi</q> isn't enough to get my attention because I deal with a lot of people and things daily). + +I am going to make a few assertions. before, I have made these as suggestions, but they have clearly not been enough to cause any notable change in the site. from this point on: + +* I *need* moderators, editors, and anyone else with an official Hidden Answers role to post their E-mail and/or XMPP address on their profile, and I *need* them to have a copy-pastable PGP key or fingerprint. no exceptions. we need to improve communication, especially since the PM system has been disabled (and more on that in the next point). +* PMs are *indefinitely* disabled. they're a venue of abuse. they're unencrypted. I have had to look into suspicious accounts per moderator request, and each suspicious account I looked into, I found shitloads of messages breaking the website's rules. if you need to contact someone, do it off-site. do it on their public wall. PMs are useless for a question-answer site such as ours. +* I will make my source code changes to Question2Answer available on my git. I am aware this will make the website easier to clone, but I believe this isn't an issue, since people already try to set up scam sites targeting HA users anyway. the benefit of open software development outweighs the risks, in my view. +* we *need* a defined process to choose official roles. we need more concise roles too: + - super administrator: the website owner (me, now). I can add new admins and mods, change site settings, and be the <q>last say</q> of what goes on. + - administrator: trusted people who represent Hidden Answers probably more than I do, lift a lot of the site's weight, and can maintain relations with mods and users. I'm appointing v0h20 and Fox to this role because they have done a shitload for this site and I trust their judgment for adding new mods. + - global moderator. their main roles will be to oversee editors and to block rulebreaking users. + - global editor. responsible for backtracking through the older questions (at least until they're all cleaned up eventually) and recategorising, editing, closing, and selecting answers as necessary. does this for new questions and answers as well. + - category editors. responsible for cleaning up posts under their own category and can be seen as a category expert as well. + - emeritus. just a status for ex-mods and -admins that have stepped down from their roles voluntarily (or were inactive). + - technical contributor. I promised a role for anyone willing to help with the code. these people contribute to Q2A updates, debugging, and security penetration testing. +* we *need* administration transparecy. moderation decisions need to be made public so we're all on the same page, and so users can criticise us if we do something wrong. +* we *need* concrete rules and ways to deal with offences. so far, it's just been play-by-ear. +* additional focus needs to be placed on the other HA languages. +* additional focus also needs to be placed on supplementary shit like a showcase of frequently-asked questions, to make it easier for newbies to search. +* anything else needs to be discussed on HA, in front of everyone, making use of the poll system I installed recently. that way, we have a more democratic approach to the site. + +I'm busy with IRL shit (school semester is wrapping up for instance, I have a lot of studying to do and projects to wrap up), so anything that's broken will stay broken until I get around to it or until someone is able to help me with it. be reminded that since this is a hidden service website, I have trust issues and if you contact me anonymously, asking to help, I'll probably assume you're a malicious entity. so *please* tell me anything that can help me establish who you are. I'm not all that anonymous so I don't think I'm being hypocritical for asking you for some additional information about yourself. if you disagree with my approach, don't contact me. + +any issues or questions or whatever you have about any of this, please [contact me directly](/contact) so I can respond to you sooner. I check E-mail and XMPP more often than I check Hidden Answers, and I prefer those methods of contact because they are much easier for me to keep track of shit. pinochet/oqypa are out of the picture; don't use those E-mail addresses because you won't get a response. +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQRcPZmVt5VWwLs2LqZTpu3wjXLF9gUCWs//7gAKCRBTpu3wjXLF +9izRAQD3bp1Z+Ih7FNO3loWJGubd0vb+iTsJdgUmKxeNIniWygEA+1mMGLCkoRRo +0N3jQy4zojI4L1/kNqLIQdsc52jiIQA= +=lqY8 +-----END PGP SIGNATURE----- diff --git a/out/blog/historic/ b/out/blog/historic/ @@ -0,0 +1,65 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +acme-client (letskencrypt) dns-01 how-to + +I just spent half my day literally yelling at the screen trying to figure out how to use [acme-client]( (formally known as letskencrypt) for dns-01 challenges. there's no examples in the man page, none online, and the source code didn't help much. + +- ---- + +why not [certbot]( I've tried it, but it insists on making its own crazy filetree structure, and I needed everything contained to a single directory (more specifically, a mountpoint shared between my LXC containers, with appropriate file permissions set). why not [dehydrated]( I probably could have used it, but I was attracted to acme-client for its implementation in C, portability, and minimal dependencies. I was pretty much stubborn to make it work. why not just use http-01? I run a dedicated server with containerised services and a bunch of NAT black magic, so DNS challenges allow me to create my certs in one container instead of entrusting all my containers with the task and causing more headache for myself. + +anyway, after digging through an issue on github and dehydrated's source, I finally had enough information in order to implement a working dns-01 script. I hope this saves someone else from spending a day like I did, and wanting to kill themselves at the end of it. + +I use mksh, but with a bit of editing you can translate it to POSIX sh, or just replace the shebang with bash. as you can see, I didn't really place much effort into making this pretty; I just wanted it to work. + +``` +#!/bin/mksh + +domains=( + '' + '' + '' + '' + '' + # ... +) +nsupdate_key=/etc/bind/ddns.key + +for line in "${domains[@]}"; do + zone=`cut -f1 <<<"$line"` + domainlist=`cut -f2 <<<"$line"` + echo "Updating '$domainlist' in $zone" + pemdir=/mnt/certs/`cut -d' ' -f1 <<<"$domainlist"` + mkdir -p $pemdir + acme-client -vnNmt dns-01 -c $pemdir -k $pemdir/privkey.pem $domainlist |& + while read -p type domain token; do + keyauth=`printf '%s' "$token" | openssl dgst -sha256 -binary | base64 | tr '+\/' '-_' | tr -d '='` + nsupdate -4l -k $nsupdate_key <<-EOF + zone $zone + update delete _acme-challenge.$domain TXT + update add _acme-challenge.$domain 60 TXT $keyauth + send + EOF + wait 10 + print -p "$type $domain $token" + done + wait + for domain in `echo $domainlist`; do + nsupdate -4l -k $nsupdate_key <<-EOF + zone $zone + update delete _acme-challenge.$domain TXT + send + EOF + done +done > /var/log/acme.log +``` + +this script is under the same licence as the rest of my site (Creative Commons Zero) and is free to redistribute and modify. let me know if this has been of any use to you. +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQTTaa3wA7+tqaxSfUAwzn1m3mlJEAUCW6UgPgAKCRAwzn1m3mlJ +EAlLAQCScFe3ZX3x4I2Ye5cMZINPFLIQtIV0g4WrdsXbRYS+cwEAyKSDwyTlGjNT +7yF99B4mq1vfeFq0L/MqhkYYi//YCw0= +=AkvX +-----END PGP SIGNATURE----- diff --git a/out/blog/historic/ b/out/blog/historic/ @@ -0,0 +1,71 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +are passwords the right solution? + +[I have lacked motivation to write anything lately, but this week marks the beginning of my spring college semester, so I figured I'd force myself back into a schedule.] + +a month or two ago I read [an article by Alec Muffett](, where he attempted to defend password authentication as possibly the only viable online security solution. I even sent him an E-mail asking him to reconsider some of his thoughts toward passwords: + +> [...] I came across your opinion +> on password use [4] and I have to disagree with you. My issue with +> passwords (as they are currently widely implemented) is that the +> password has to be sent to the server verbatim, and it is up to the +> server to safely handle this password (hashing it and making sure memory +> where passwords are handled is promptly cleared, in case of +> vulnerabilities in the server that allow reading memory), and it is up +> to both the user and the server to initiate a secure connection so that +> password eavesdropping is infeasible. I favour PKI, challenge +> authentication, and other mechanisms which do not require any +> transmission of a private key or passphrase over plaintext to the +> server. This places the burden of security on the user and on the +> PKI/challenge protocol itself, which I believe to be much safer than +> having to place the burden on all of the user, server, and transmission +> medium. Please consider these points and perhaps revise your decision on +> claiming that passwords as they are used today are a sound security +> mechanism. + +so already, that explains half my stance on passwords off the bat. I do favour PKI -- I use elliptic curve keys for all SSH connections and disable password authentication, and I would use similar authentication for websites if it was an option. to me, it makes more sense to have a file or files tied to each device I own, and should that device be compromised, I can simply log in from another device and revoke the now-insecure key. this allows for finer-grained access control than I would have with passwords: for example, right now I would have to reset my password if I logged in even once on an untrusted public computer. granted, I would have to use a temporary key for a public computer, stored on something such as a USB drive, but at least I wouldn't have to change the key on each device I own. it's a different story if you have a remarkable memory and can memorise random passwords with ease, but a lot of people including myself cannot or will not trust our memory to this task. + +I have more faith in <abbr title="two-factor authentication">TFA</abbr> than I do in plain passwords. to save myself from reiterating ideas I have already typed (again) I will cite my response to the [Hidden Answers question <q>What and how much credentials do you save in KeePassX?</q>](http://answerstedhctbek.onion/227514) (please note this link is only accessible over Tor or this [I2P link](http://hiddenanswers.i2p/227514)): + +> [W]e should look more into TFA. KeePass supports it to some extent (it combines a password, something you know - with a keyfile, something you have like a USB drive). It allows you a little more time to react to breached security because even if the attacker has one piece of the TFA, it will take him some time to get the other piece and actually be able to utilise that information. +> +> Weigh the differences: +> +> * Store the passwords in your head. **Pros:** you can't hack a brain (as far as I know). **Cons:** unless you have impeccable memory, you will likely formulate smaller, weaker passwords because that's all you can remember. Also, you may choose to reuse passwords more often, which is also unsafe. +> * Store the passwords on paper. **Pros:** you can't hack a piece of paper. Also, if you don't label the passwords (you use something like you can be a little safer in case you lose it / someone sees it. **Cons:** someone can easily steal that piece of paper, and even if you use the PasswordCard, you have significantly narrowed the possible passwords for the attacker. So, if you lose that card, you're going to want to rush to change all your passwords. +> * Store the passwords in a password manager. **Pros:** Password managers organise your passwords and they require you to only know the master password, leaving you with less to remember. Good managers can also generate strong random passwords for you. **Cons:** once someone gets the master password, your passwords are all in the open and you're in big trouble unless you set up TFA for all your accounts. + +TFA/multi-factor authentication is a definite improvement over single-factor authentication, and only recently have I decided to add TFA to any account I could find an option to do so. I also use a combination of storing frequently-used passwords in my head and storing the rest in a password manager, which are encrypted and synchronised to Google Drive and, in effect, to my phone. that way, I have a copy wherever I go and I am as secure as possible within the confines of password management. + +I still believe authentication should be given more thought; there are still *plenty* of organisations that have very poor regard for security and impose artificial limits on passwords out of cost/laziness: + +* limits on password length or character composition, +* storing passwords in the remote database as plaintext, +* sending back a password over an insecure channel as <q>confirmation</q> of a password reset, and +* requiring a user to add <q>security questions</q> to one's account (which is a huge fucking oxymoron; there's nothing secure about security questions). + +if all websites agreed that these are poor practices, that would eliminate many of the issues with passwords right away. combine that with mandatory use of a secure channel such as TLS (which many sites thankfully do now), use of server-side password hashing such as bcrypt or Argon2, and user education on proper password formulation (no password reuse, no dictionary words, et cetera) and sites would be sitting pretty while not compromising compatibility with the current security ecosystem. users should know that password managers are as necessary as an Internet browser at this point, and that there are many user-friendly solutions to this already: many Web browsers even have built-in password saving and synchronisation across devices, but of course there are also solutions such as KeePass and LastPass. in fact, these points I just made are in line with Alec's article I linked at the beginning, so we're in agreement there. + +but what if we want to take a step further and opt for a more secure (but less orthodox) solution? let's look at the list of advantages Alec gave favouring passwords, and compare this to something like PKI: + +1. passwords are easy to deploy *[and so is a PKI solution, at the cost of a temporary stage of switching from passwords to PKI. if done correctly, PKI can be abstracted to the end-user so that it is actually easier to use than passwords, and users can just click <q>generate login</q> to create a random file and save it to an internal (optionally synched) database on-the-fly.]* +2. passwords are easy to manage *[... see above for why PKI would be easy to manage without the user being concerned with implementation.]* +3. passwords don’t require identity linkage between silos – so your Google username can be different from your Skype username, can be different from your username *[... PKI doesn't require this either; simply generate new keys for each site you use.]* +4. passwords are scalable – you can use as many different ones as you like *[... same for PKI.]* +5. passwords can be varied between silos so that loss of one does not impact the others *[... see above.]* +6. passwords don’t (necessarily) expire *[... still same for PKI. advanced users could optionally be allowed to set expiries for keys (just like X.509 allows), and users could at any time revoke a key from a website if it's compromised.]* +7. passwords are the purest form of authentication via ‘something you know’, and thus ideal for the network or “cyber” environment. *[now, this **is** an actual argument for passwords. PKI is along the lines of <q>something you have</q>, but for the majority of security-conscious users, so are passwords. passwords are stored in a database or on a piece of paper (something we have) unless we have remarkable memory (more power to you) or we reuse passwords (which is wrong).]* +8. you don’t need to pay an intermediary or third-party a surcharge just to get a new password, nor to maintain an old one *[... same for PKI.]* + +aside from the fact that PKI is <q>something you have</q> rather than <q>something you know</q>, it maintains many of the properties of passwords and has the added benefit of being secure by default: secret keys are not transmitted over the wire, and server database compromises would be fruitless since all keys stored are already public. end result, both users and server administrators have less to think about and worry about. there are still perfectly valid uses for passwords, but I would like for people not to fool themselves into thinking passwords are the universal solution. passwords should *strictly* be something you know rather than something you stick in a database, and you should only have to memorise a handful of passwords, instead of having to remember one password per mail account, social network account, bank account, forum account, game account, and whatever other accounts you have. passwords should be used in a local context: useful to decrypt your PKI database locally or to unlock your computer/phone quickly. + +Tags: security +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQRcPZmVt5VWwLs2LqZTpu3wjXLF9gUCWlSe5AAKCRBTpu3wjXLF +9k0/AQD6LFCnaZoJXmdDahnY1o2jDTlbXec2JZzzYvUwLjOJFQD8C3jJDW5HtWya +CptytTk0/rV66tODD0s9zWb0nAoSvwI= +=IiJh +-----END PGP SIGNATURE----- diff --git a/out/blog/historic/ b/out/blog/historic/ @@ -0,0 +1,25 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +Chen Hosting goals and difficulties + +since late 2015, I have hosted the website Hidden Answers [accessible via tor](http://answerstedhctbek.onion/) [and i2p](http://hiddenanswers.i2p/). the Hidden Answers administrator was upset by the constant downtime of Freedom Hosting 2 and was seeking another host. shortly after I decided to offer my hosting to anyone interested, thus starting [Chen Hosting](http://chchchiasaeljqgs.onion/) (available on i2p as [chen.i2p](http://chen.i2p/)). I wanted to do this both to learn more about web hosting, and to earn some cash while in college. two years in hidden service web hosting has given me plenty of time and experience that I can share with others. + +to start off with the upsides, I have definitely learned a fair share about shared web hosting, software, and configuring everything for security, performance, and ease of deployment. I have been able to perform unorthodox installs of popular web software such as WordPress, Question2Answer, and MediaWiki (one shared install for all users). I have partitioned off access between users and services as best I could without the use of fully-virtualised containers, by way of hardened chroots (thanks to grsecurity), process separation (a php-fpm pool per user), and proper file permissions. I have made sure that the real server IP address could not be leaked under any circumstance. on top of this, I have met a handful of people whom I would consider to be good friends by now. + +on the flip side, a lot of frustration has come out of web hosting, especially for the niche market in Tor and I2P. obviously, I have to deal with a lot of scammers, trolls, and difficult people. I cannot count with my fingers alone how many times someone has requested a website and never ended up paying for or using it; most people simply run out of patience, apparently. this makes it very difficult to find the motivation to improve my services for current and new customers; it seems like nobody cares enough. in fact, as of the time I am writing this blog post, I have this on the Chen Hosting website: + +> Chen Hosting is causing me more of a headache than I can handle right now. I'm busy with school and personal projects (and soon, hopefully a part- or full-time job in IT) and the requests for websites I get are rarely serious. People abandon their sites and I'm not making any real money off it. + +other issues I have come across with hosting: the Tor network itself. most of the traffic I receive for Hidden Answers is automated, and some of the automated traffic is very malicious in nature, causing the server's load to spike and performance to drop, at times causing the whole server to be unavailable for legitimate users. on top of that, I have witnessed Tor become unresponsive or crash for unexplainable reasons; I can only assume these are other attacks on the network or on my onion sites. I have tried to find suitable log-monitoring solutions, but this is an exasperating process and I finally just hacked everything together enough that it would <q>just work,</q> not too concerned with whether it was at optimal performance. also, while I have always preferred I2P over Tor for its hidden service support, it doesn't come without its own share of issues: the main implementation is in Java, and the C++ implementation still has a way to go before it is feasible for a live production server. + +if I had an interested customer base, I would be able to find the motivation to improve my services to support all major CMSes and web softwares, to spawn a robust ticket and newsletter system, to expand to clearnet hosting, to build a real community and set a precedent for anonymous and secure hosting. sadly, my efforts are now going unnoticed, and it sort of disheartens me that something I spent this much time on has not proven itself to be too useful. I would love to continue putting effort into <q>the best</q> professional shared hosting setup, with proper log monitoring and statistics, tight engagement with customer base and surrounding Tor/I2P community, contribution to free software, and embodiment of free speech. maybe I could have placed effort into decentralised solutions as well, in order for people not to rely on a single entity -- such as myself -- for their web hosting. but apparently I will not end up doing this because there is no demand for it. people are perfectly content with half-assed solutions that we have now, and I cannot for the life of me understand why. + +Tags: +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQRcPZmVt5VWwLs2LqZTpu3wjXLF9gUCWpzHrwAKCRBTpu3wjXLF +9ppFAP4wtL/Wdph1H5KW+3QYQv6MEojV9SmaGSBMP5kDV7SAgAEA+LxkD7DRdQaa +6wFXc2YdDVZSCy82bUj9QNSHcPkO7Aw= +=Lvre +-----END PGP SIGNATURE----- diff --git a/out/blog/historic/ b/out/blog/historic/ @@ -0,0 +1,43 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +"Learning how to learn" + +here's a verbatim essay I wrote in response to the common misconceptions held by many Tor users and <q>privacy freaks</q>: + +> You probably see advice published everywhere – guides and tutorials and lessons. People who claim to have your best interests at heart. Many people do, but at the same time many people don't. And even the people who do can make mistakes. If you don't do so already, you need to learn how to think like a scientist: always sceptical, but never driven by fear. Being able to think for yourself, weighing all information you come across for validity, is a necessary asset that people seem to overlook in their quest toward activism. +> +> ## Know what you're using +> +> You installed Tor because it's nice and secure. Do you know exactly how it works though? Do you know what happens if you use it wrong? +> +> I see these technologies get thrown around all the time in privacy-related conversation: Tor, VPN, PGP, Tails. And for the aspiring hackers, Kali comes up quite often. All these things are fine, but people discover them more out of haphazard curiosity than anything. They know what these things are, they know that others tell them to use these things, but they don't often know why people talk about them so much. +> +> Read up about these subjects. You don't have to do an entire research debacle on them, but you should be able to summarise to yourself what everything does and why it works. Wikipedia is a great resource; it's concise and you can always branch out to learn more if you're interested. Once you know exactly what these technologies were made for, you will be able to utilise them intelligently. +> +> I can summarise up a few common misconceptions: Tor's primary purpose is to provide a secure proxy to the Web, while I2P's is to provide an anonymous network that replaces the Web. A commercial VPN is for privacy, while Tor is for anonymity (this article explains their differences nicely). +> +> Tails and Kali are simply customised Linux distributions (these two happen to be Debian-based), meaning that I could take Arch Linux (or your favourite distro) and replicate the functionality of either, after I take the time to configure it to my liking. The reason people use Tails, Whonix, or Kali is because they trust the developers to make a system that meets their needs, and they are incapable or unwilling to configure their own system. Ultimately, the choice of operating system is up to you; there is no "best" operating system, so try various systems out until you find your match. +> +> ## Be sceptical +> +> Don't believe everything you see. Professionals make mistakes, amateurs make mistakes, you and I make mistakes. Even with these guides, you should use your own judgment and filter out what seems logical. I wrote this in hopes that I was making sense, in hopes that my logic was sound and worth reading. But, I can always miss important things, and I'm here to learn just as everyone else is. After reading anything, you should cross-reference with other information if you're unsure about certain points, and ultimately you should test the information against your own knowledge to see if it fits in with what you believe. +> +> Knowledge evolves; people go to sleep believing in one cause, only to wake up believing in something else. The best any of us can do is follow what our heart says, keep our wits about us, and hope that our current beliefs will lead us on a better path. +> +> ## Lead effectively +> +> A good leader shows power by being motivated and experienced, not by being deceptive and forceful. You gain followers by relating with them, by sharing common core values, and by educating them. People should follow you because it is their decision to do so, because they actually wish to listen to you. If someone leaves you, do not try to pull them back; it only means that they felt your group was not the best fit in terms of ideals, goals, or methods. If everyone leaves you, you may want to ask why and adjust your actions based on the response. Leaders are people too, and they're bound to make mistakes, but a good leader (and a well-formed group) can recover from these mistakes quickly and easily. +> +> With that said, leadership is bound to change. It's natural, it's seamless (in a mature group, people just know who's "in charge" simply by the way they present themselves in the group), and it fosters new ideas and a different way of approaching issues. When starting a group, don't worry about who's head; that will come naturally and by consensus. Just focus on what you, as a group, need to do, and take everyone's opinions and suggestions into account. There should be an equal level of trust placed on all group members, and if the group simply cannot trust someone then it should make a decision on whether removing the person from the group is the best move. Feelings may be hurt, but a good group is resilient to this sort of friction. The group will carry on its business and wait for the conflict to pass. +> +> Most importantly, never trust someone solely because they are a figurehead. There is a strong difference between a figurehead and a true leader, and more often than not, people will grow to oppose a figurehead once they begin learning the truth about him. A figurehead is usually defaulted into power – either by status or by money or heritage. In contrast, a leader starts out as an equal and is brought into high esteem by his peers. Both leaders and figureheads are influential, but figureheads will hardly have your best interests at heart. Figureheads will do what they need to retain power, and they will trick others into believing whatever they have to say. They rely on the power of emotion in order to convince others that certain views are correct. And once they have a following, they can dispatch whatever lies they wish, knowing that their followers will eagerly eat it up. +> +> If you think this part sounds a bit overreactionary, I apologise, but I have seen this cult-like pattern in quite a few groups, namely the social justice movement. Everyone in the movement is bound together by a common emotional appeal: they are all minorities (real or imagined) and they seek safety in their circle by rejecting outsiders and playing the role of a victim. This is a toxic, spiraling attitude that only strengthens the power of the group, and the worst part is, people who seek acceptance see this movement and think they are doing the "right thing" by promoting minorities. So, they join in, finally feeling a sense of acceptance, and they learn from others in the movement that the patriarchy is the cause of all suffering in the world. A logical person would dismiss this claim and assign the blame to real issues (sexism and racism are issues, but not in the ways that the social justice movement claims), but once you have given someone hope and reassurance, you can make them believe whatever you wish. +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQRcPZmVt5VWwLs2LqZTpu3wjXLF9gUCWmeCFgAKCRBTpu3wjXLF +9tB3AQCEVwxIrxquKs6OEzD/BXsiN4Xd4nbv7lLPKOELCB4VPgEAjIGlTf1HQaMp +jLgoVV6BUfAsPgu+L9g/w5SuvKdXkwg= +=DRyf +-----END PGP SIGNATURE----- diff --git a/out/blog/historic/ b/out/blog/historic/ @@ -0,0 +1,37 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +my (and your) PGP habits could be better + +I am an opportunistic PGP user, and I've used PGP for quite some time. if you encrypt mail to me, I'll encrypt back. if a download has a signature, I'll check it. I sign every one of my blog posts automatically, thanks to some dirty hacks to [bashblog]( + +what's the issue then? well, I don't always do it religiously. I used to have a proper canary, but I abandoned it because it was a hassle on my end and I was afraid that nobody checked it anyway (I was wrong, one person actually did check it). that's why I have switched to blogging, which is sort of a more natural medium to sign and doesn't require me to go as out of my way to update (and even then, I have been slacking on my blog really hard). + +there are some other issues with my current use of PGP. check to see if the following also applies to you: + +* [creating a perfect keypair?]( forget it. I don't have an airgapped device to do this safely. and even if I settled for a special removable medium, I used to have some trouble importing my stripped keypair into [OpenKeychain]( not to mention, the GnuPG utility &ndash; or any utility, for that matter &ndash; doesn't really have first-class support for this kind of scenario. there are a lot of issues with PGP's user experience, and I'll go into more detail with those later. +* confirming trust of keys by signing them? signing keys and publishing my signatures to keyservers? it's difficult for me to remember to do this. so far, I'm pretty sure I have signed fewer than a dozen other people's keys. +* confirming keys in general? I do basic checking, but I don't know how much is enough. +* maintaining my key properly? who knows, honestly. I have not had a religious policy for subkey creation, deletion, and renewal. nor do I really know what is the <q>optimal</q> practice for maintaining my key. +* refreshing and maintaining my keyring? a while ago, I found [a safer way to do this]( but I have never ended up using it. furthermore, I have made very little effort to remove invalid keys from my keyring. + +here are some issues I have seen with others' use as well as when I have been trying to use PGP with others: + +* first off, this is really on my side: I use elliptic-curve subkeys for signing and encryption, but I also have RSA 4096 subkeys when communicating with older PGP implementations. there are a few issues I have run into with this, such as not really knowing which subkeys I'm using since I let programs handle this automatically, as well as possible delivery errors because my recipient has no support for ECC algorithms. it's all very opaque to me and I tend to dismiss errors as <q>their issue, not mine</q> while in hindsight that might not have actually been the case. +* I have seen many people, especially on Tor, try to be smart and reveal as little detail about them in their key metadata. this is straight-up *the wrong way to use PGP* especially over E-mail. your address *is not* `asdasdfsdf@asdf.asd`, stop making your key more difficult to use. create separate keys for separate purposes and use them appropriately. +* since there is no <q>right way</q> of using PGP, we end up with people using all kinds of algorithms, all kinds of expiry policies, all kinds of renewal policies. some people properly renew their keys, others create new keys to replace the old ones (and I was guilty of this). some people's keys expire never, others' expire next week. I know some of this is a personal threat model consideration, but still, I believe too many people set unrealistic, unsafe expiries on their keys. + +and lastly, usability and interface issues. it feels like XMPP all over again, what with all the different clients and none of them implementing the full standard in a correct and easy-to-use manner. there are practically no full-featured GUI frontends for PGP, and the GnuPG commandline implementation discourages newbies (and even people like me) from figuring out how to correctly maintain personal keypairs and a full keyring. I use keys for different purposes (some for E-mail, others for download signing) and it isn't immediately obvious that I could probably have two or more keyrings for that. also, is it possible to attach metadata to PGP keys (such as your XMPP account, website, or anything else that could possibly help verify people)? if it's possible, I surely don't know how to do it, nor do I know where I can search for more information. + +so, my suboptimal use of PGP is everyone's fault. and if you use PGP, you're probably using it suboptimally as well. I don't want to bash PGP outright for being a poor standard &ndash; I mean, come on, it has been around for decades, and it's still suggested by security professionals. but over those decades, *very little* has been done to change the state of affairs, and it's so easy to use it wrong. + +as always, I accept E-mail replies to my posts, but I especially want to hear readers' thoughts on this. I want to gauge how others use PGP, and I want to see what others believe should be the <q>correct</q> way of using it. + +Tags: security +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQTTaa3wA7+tqaxSfUAwzn1m3mlJEAUCW0qtSQAKCRAwzn1m3mlJ +EPzsAP9Ch5snC6hvgO0n7sbNAMvC/30PABYHfnScuSyyCMwX0AD/aVkW9sg+8ZjL +zIdgsUQQMo3NhPk3QtjMwV4i2R0+8gE= +=Xeqw +-----END PGP SIGNATURE----- diff --git a/out/blog/historic/ b/out/blog/historic/ @@ -0,0 +1,30 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +paving the road for the future of technology + +when computing first became a real thing, they were mainly geared toward big business, education, government, and science. networks were groups of trusted entities, there was less need for security or future-proofing, because nobody had anticipated that this technology would become for personal use in the future. early computing and programming pioneers were passionate about their work; software and hardware were built durably because it was still only a niche market, and everyone in the market cared deeply about quality. + +now, the tide has shifted and with the advent of personal computers and mobile/IoT technologies, both sides of the equation have weakened: the target market has adopted a consumer approach to technology, and the developers have followed suit. there is no push for developers to cater to quality; there is high demand for cheap labour in these fields. small businesses remain insecure, large businesses can get away with opaque policies and planned obsolescence, and decent software and ideas become overlooked for a few reasons: the creators of good software normally work under the mantra of FOSS, they normally work as a hobby in their own free time, and they do not attract much of a following for one big reason: choice. + +give a user a choice between security and ease of use: they'll choose ease of use. give them elegant code or elegant UI, they'll choose UI. it is therefore the *developer's responsibility* to give users the easy UI/UX they desire *as well as* the security and elegance they need. some big players like Google understand the value of security (others such as Equifax, maybe not so much, sadly) but they still cut corners with regard to privacy and quality in an effort to take the easy route. because the fact still stands, users have a mentality that <q>anything bad won't happen to me</q> or <q>I have no information that anyone cares to utilise, therefore I must be safe</q> -- they will not do any more than is required to access their services and move on with their life. because of this, it is the developer's responsibility to set a precedence and to give users only one choice. + +I believe that all big businesses can invest enough to improve hardware and software quality; to improve security practices; to approach newer, saner standards that match the growing demands of the twenty-first century. it is a shame that thousand-dollar smartphones are not physically worth a thousand dollars, aside from the brand esteem these products have developed. it is sad that phones are not able to last as long as most cars or computers, or to last half as long as houses; they are seen as disposable technologies that are not built to last. it is sad that people cut corners for safety even though basic security practices are easy and cheap to implement these days; and more-advanced security would cost a short-term investment but set a future-proof standard for this type of thing. + +a lot of things could be implemented today that would be a bit of a speed bump for companies, but it would be a net improvement both for security and for ease of use. some things I want to see implemented: + +* public/private key authentication for online services rather than passwords. I have touched on this previously and I will say it again because I believe in it so much. users would not have to remember passwords; their software could automatically generate the necessary keys and provide a simple <q>log in</q> button (or fingerprint TFA, something that requires an extra step of authentication but is easy to use), and the software could tell the user to periodically back up these account databases to a flash drive or some other medium. +* client-side encryption. we're already increasingly seeing this in some messaging platforms. Google Chrome and Chromium do this for browser setting synchronisation. does this for file uploads and downloads. it needs to be extended to cloud file storage: your files are tied to your account login, only you (or friends, or people with the link, if you configure filesharing as such) may decrypt and access the files, and the server only sees an encrypted copy of anything, making passive and active file analysis impossible. I wish to see E-mail headed toward the same direction. +* the return of user-serviceable appliances. we invented removable parts ages ago for a reason: it allows for reliable, repairable, inexpensive products and cuts down on wastefulness, since a user will not need to throw away the entire appliance if one part is broken. +* user education. people and businesses need to know the consequences of inadequate technology. privacy and security are important to protect against identity theft and money fraud. if you are not using secure and reliable technology, you are putting not only yourself but also your friends at risk. + +it's a shame that not everyone is passionate about technology and that most people just want things to work without exploring them, but that's a fact of life. what we *don't* need is for this attitude to leak into developers' attitudes. security and quality can be easy, maybe with some additional short-term costs, but it's for the better. + +Tags: +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQRcPZmVt5VWwLs2LqZTpu3wjXLF9gUCWrmdCQAKCRBTpu3wjXLF +9oUdAQClmMN72lcq6QjmXi+fcx9JNjaROglMO+C36YvX8D8K4gEAlDLy+Nnmv84B +S1g3fsJcdw9mPy5CU39TBLlUQm3ShAs= +=p8+w +-----END PGP SIGNATURE----- diff --git a/out/blog/historic/ b/out/blog/historic/ @@ -0,0 +1,15 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +site update + +by the way, you may be curious as to why some of my websites were down this week. something happened to one of my VPSes so I had to reinstall the operating system and set everything back up. the new install is now enjoying Alpine Linux just like all my other boxes. + +Tags: update +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQRcPZmVt5VWwLs2LqZTpu3wjXLF9gUCWrmeogAKCRBTpu3wjXLF +9t15AQCK0MpIkrGeNJroO2KOhTxmUQ3ygRWCHstEID+UxoV76gEAlNfr2llk+bfz ++RUlzdZdCTuY+blbrWOSfREGQk0Gqws= +=2keE +-----END PGP SIGNATURE----- diff --git a/out/blog/historic/ b/out/blog/historic/ @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +testing patches made to bashblog script + +since I'm using a linux desktop now in place of my windows 8.1 laptop, I can now sanely use linux commands such as gpg and rsync (and the bashblog script itself) to locally sign my posts and transmit them to my server with minimum effort. the [original bashblog script]( relies heavily on GNUisms especially in the `date` command, therefore requiring a little effort to adapt to alpine linux (which uses busybox and not coreutils) and the inability to use some of these odd GNU requirements. I wish people would pay attention to compatibility; everyone seems to focus only on GNU and BSD and completely forgets about POSIX standards and requirements. + +anyway, this post should be signed (click <q>PGP signature</q> near the top of this post to get a markdown version of the article along with the appended PGP signature). I will manually sign previous blog posts as well, for completeness. + +Tags: update +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQRcPZmVt5VWwLs2LqZTpu3wjXLF9gUCWjwivgAKCRBTpu3wjXLF +9rReAQCfH+OQSXwsFh9vEBNiFf6bKY6jZVDsZrU4EwyeUCBkJAD/TjxWXqouMJko +M61c8H0oBnkwOW2jhUzIBQ1WN81tQgc= +=h+tt +-----END PGP SIGNATURE----- diff --git a/out/blog/historic/ b/out/blog/historic/ @@ -0,0 +1,31 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +the grey area of paedophilia + +before anyone gets shocked: **I am against rape and abuse of any kind.** this post is only to address the fact that most people -- those who claim to protect the rights of children -- are focusing in the wrong places. + +lately, I have come across articles online that explain the difference between Western and Japanese views on [lolicon]( (which refers to Japanese media that focuses on cartoon underage girls). contrarily, I have also come across some real counts of child abuse such as [a review on Dr. Phil's interview that <q>exposes global elite pedophiles</q>]( which seems to sum up the issue the best. + +also within the past year, various people have questioned my stance on paedophilia, and they seem to not grasp a full picture on my beliefs, so I would like to make this all clear within a full written explanation, complete with supporting information. + +where am I going with this? in the Americas and Europe, there seems to be a sacred air around anything involving children. this is not necessarily a bad thing; children are impressionable and deserve every chance to experience a fulfilled life without fear of harm in any way. but it seems as if this is being used as an *excuse* to push certain legislation and cultural norms, rather than an actual reason for focusing on these issues. take for example child exploitation. somehow a count for rape is deemed lesser than a count for child rape? what's the difference? they're both inhumane and deserve harsh <q>eye for eye</q> punishment in my book. so why is it any worse for this to happen to children than for it to happen to anyone else? + +both adult and child molestation are sadly very prominent in the world, not only with undeveloped nations but also with this global elite -- sometimes the same people who publicly support legislation to crack down on child abuse. if that isn't hypocritical, nothing is. + +but are we focused on the right issues? being an active member in various Tor/I2P hidden service communities, as well as on online imageboards, I see a lot of talk against the possession of child pornography itself. there is no mention about the severity of the case, and to these people, a picture of a fourteen-year-old posing nude in a mirror is fully equivalent to one of a violent rape scene involving children who may not even be old enough to talk. these people stop at the mention of <q>children</q> and don't take into account all of the aspects of whatever they're speaking against. + +the fourteen year old? fourteen is an age of consent in various parts of the world, and it is a natural stage in life for sexual exploration. should someone post their nudes on the internet -- probably not, because they might regret it later, but this is true for any aged person, right? I'm sure some twenty- and thirty-somethings have regretted drunkenly posting sexual depictments of themselves for everyone to see. to sum up, I don't see why this should be up for legislation to decide. children should be educated on what is okay and not okay to post online instead, and they need to learn to think for themselves. + +the rape scene? this is **not okay**. this is what people need to focus on when they are advocating for humane reform. it is a very real issue and many people, children and adults alike, are involuntarily involved in the sex trade every day, with little to no hope of escaping this life. *this* should be what I see when I hear people speaking against child abuse. with enough care, these injustices can be corrected, and police may work together so that the criminals responsible may be punished (by death, as far as I care). that way, we are *objectively* making the world a more humane place, and we aren't only satisfying people who hold subjectively-moral beliefs. you as an individual are welcome to have your own beliefs, but please focus on concrete efforts to stop unjust activity in the world. + +I don't typically like to be involved in political discussion, but this issue has been concerning me for a while, and people genuinely believe I am a paedophile due to my <q>liberal</q> opinions of paedophilia and lolicon. as I have said, my issue is about the different classifications of crimes against children versus those against adults. crime is crime, no matter the victim. + +Tags: politics +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQRcPZmVt5VWwLs2LqZTpu3wjXLF9gUCWuTb1QAKCRBTpu3wjXLF +9g7pAP0WVqPz/W7EWhydHLlSB0bBsmZjjWfGnC+IZ8WqP3FLfgD/XnsmF5X8zqBr +MnQzqZuh2bxJRyQbKddv2H1vneR5ywY= +=kp/t +-----END PGP SIGNATURE----- diff --git a/out/blog/historic/ b/out/blog/historic/ @@ -0,0 +1,30 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +trying new software + +I haven't been motivated to write anything lately, but I guess I can give an update on what software I am currently trying or going to try: + +* neovim, to replace vim. I chose it because the codebase and development is supposed to be cleaner and less dependent on one person pulling in patches. liking it so far; it also has a few small features I've been looking for in vim, namely the ability to resize panes using mouse. this may have already been possible in vim but it has never worked for me. +* neomutt, saw it when I was looking up mutt and chose it because it offers some plugins built-in. once I configure it I may replace seamonkey with that and a different internet browser. first issue I see with mutt/neomutt is lack of mouse support, but I'll still play with it for a while. +* sway (wayland compositor). I haven't really had a chance to try this yet but I want to see how well wayland works, and I may switch to it from X. +* ConnMan, to replace NetworkManager. it's definitely light and apparently it supports USB tethering and bluetooth PAN, so I'll give it a shot. + +I also downloaded some ISOs to play with in qemu: + +* Void Linux -- haven't run it yet +* TempleOS -- tried it, it works but the 100% sound volume scared me +* ReactOS -- it won't boot properly; I'll have to look at the error again +* Gentoo -- I used this briefly years ago but haven't accustomed myself to it at all. I want to install it with musl and busybox, possibly also a hardened profile. +* Plan 9 -- haven't run it yet + +aside from that, I had a very spiritual dream last night so I have decided to keep a dream/meditation log now. I used to keep a dream log years ago but stopped due to lack of interest. hopefully I keep my interest this time, because I feel I may be able to learn some things from my experiences. if I make any notable discoveries I may write about them here. + +Tags: update +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQRcPZmVt5VWwLs2LqZTpu3wjXLF9gUCWoAxtAAKCRBTpu3wjXLF +9mJ6AQC0qMZw1WUnz92uoiUKjdcC9OLKkb5j77vayP87HWCNEAEA2JbKBSDPt+yU +rf0D0aW9zypfa0zg38k2o5OQtgY+TAg= +=HSL5 +-----END PGP SIGNATURE----- diff --git a/out/blog/historic/ b/out/blog/historic/ @@ -0,0 +1,60 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +why I no longer use GitHub + +I have had issues with GitHub long before the Microsoft acquisition this year. in fact, Microsoft is the best thing that could have happened to it because it's an excuse for people to leave GitHub. but for everyone who continues to use it, who has built their FOSS projects on top of its infrastructure, they need a little more motivation to move than just an acquisition scare. and the fact that these projects stay behind inconveniences me, as a FOSS contributor, especially if they outright *refuse* to collaborate outside of GitHub and they *insist* on you making an account, opening pull requests and new issues through the web interface. + +since I am tired of reiterating to every project the reasons I refuse to sign up to and contribute via GitHub, I feel like the best course of action is to write it all out, once, and give this article to anyone who asks. plus, maybe all my readers may find this an interesting read to perhaps rethink their decision to use GitHub for their projects. + +## GitHub is not FOSS + +GitHub boasts its love for the FOSS community, but the site itself runs on proprietary software. if you hate double standards as I do, you may stop reading as you should be content with the answer I gave you. + +but really, look at GitLab in comparison. GitLab is the leading competitor and the current go-to for most people fleeing GitHub because of its similar <q>social coding</q> interface. guess what? it's FOSS, so you can take GitLab's software and run it on your own server. and from what I understand, GitLab manages to be a for-profit company despite the fact it gives away its software to the community, so why doesn't the <q>FOSS-loving</q> GitHub do it as well? it just doesn't fly with me. + +## GitHub is (poorly) reinventing git + +git is a distributed version control system. it says that right on the tin. and it does a damn good job at being one. so why turn it into something that it isn't? I don't know, but GitHub seems happy doing away with many of the benefits of this. with plain git, I can stick my repository anywhere, give people the link to clone it, and take pull requests through mail. everyone on the Internet has an E-mail address (which is also a federated communication technology, so it's easy to see how it can be best friends with git) and E-mail doesn't lock you into a single terms-of-service agreement (I'll go in depth on that in a bit). this makes it easier for the passerby to contribute to a project, regardless where the project is hosted. no new user accounts necessary. + +with GitHub, E-mail is second-class and people become spoiled by the wrong way of doing things, so they insist that you do things the wrong way as well. this is called *vendor lock-in* and it's very bad especially for FOSS projects. you can witness a similar effect between [Blender and YouTube]( that surfaced recently. GitHub knows it has you by the nape and can shut you down whenever they want, and it can use that to manipulate you into making decisions for your project that you otherwise wouldn't take. and GitHub knows that your project's success is imperative to its own success, since it means more people signing up to contribute, more people being exposed to its nice, incorrect, not-git interface, and thus more people becoming locked in to GitHub as well. + +## there are some AUP/ToS loopholes, and they *will* shut you down + +I promised I would go into detail about the terms of service. there are two clauses that are poorly worded, subjective, and ... well, loopholish in nature. + +> You agree that you will not under any circumstances upload, post, host, or transmit any content that[...] contains or installs any active malware or exploits, or uses our platform for exploit delivery (such as part of a command and control system) + +this means that you can develop an innocuous research tool, note in your README that it must not be used maliciously and that you are not responsible for skids using your software, and still get punished. all it takes is a skid cloning your repo, pissing off the wrong people with it, and those people reporting you to GitHub. and yes, I am not making this up. I know of people who have been affected by this and I am sure you can find your own examples if you search for a bit. + +> [...]transmit any content that[...] is discriminatory or abusive toward any individual or group + +oh, this is a fun one. this basically means that anyone can report you as long as they feel offended. I'm sure you have heard enough about this so I won't go into excruciating detail, but I will tell you that it is a *huge* loophole allowing anyone to abuse the report function to knock you off GitHub. + +- ---- + +so, you may be wondering what I *do* prefer in stead of GitHub. of course you could use GitLab or software such as Gogs or Gitea, but that still has the issue of revolving around <q>social coding</q> and locking users in to specific software. + +thankfully, the components of GitHub, GitLab, et cetera -- they are all available standalone. personally I set up [gitolite]( for repository access control, [cgit]( for a simple Web frontend, and I plan to include an issue tracker that treats E-mail as first-class rather than forcing users to create accounts (possibly [Bugzilla]( but I'm open to suggestions). and if you are attached to your <abbr title="continuous integration">CI</abbr>s then there are probably decent FOSS solutions for that; personally I don't see myself using them that much so I don't know much about them. + +or, you could take advantage of the fact that there are people interested in abandoning the GitHub and social-coding ecosystems just like I am: []( is both a service that you can sign up for as well as [a suite of programs]( you can set up on your own server to provide something similar to what I have described above. + +in the end, GitHub isn't the only thing out there for FOSS projects. nor is it the best thing. plenty of projects already spun out their own solutions, and the only presence they may have on GitHub (if any) is a simple backup mirror to their repository. + +I hope that my reasoning has maybe encouraged you to try to use something else for your own projects, but if not, I hope you at least understand why I no longer wish to use GitHub. +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCAAdFiEE/fYKlEn7DgXQ2PnGmjS1B8nEGWcFAlsrqNcACgkQmjS1B8nE +GWe2hBAAlfMh4aIcrqYo3mpO0US+GxIq0BvXl3+eJFtq6oLAPgiE/Yz0w3fDhL+1 +/Thmo859rvB439DvMGJkPSz8Iw01Lx1mD8trvemporLEae9YGz66KI02AHabSwRM +lJACit2oN7XGNZ5bPw+CB6LAgDb/+zqI3A4QaH5HvPigP/Vh7zrZqsbpr8WRyFfD +WJxuVbhdy62RphahxVR0Hsqf2pZzfklpnGDw5MYrNLVTZC8C5s/8EEyW7A6oYrKo ++zV7XyIAF6yb3p+/MpKIWBJYcLG0hPks6emsv5CNK8PcdHDl77kD/E0JGoZTC2TB +fwL+MZgJfU5UOyK2KTywHl8eLhEDkjENwpnJP5iL/amcSZ7m+bwf6qc/jMz6rZQl +2piro7lL2wRgSiQVQPIlQmAOIRVSztH0WSwaNSzzfb/0ifH43SvYAInHyeajcriQ +oYVLt8r0ly4w5Co2Bw3mXajUHvyN38Vn+2IFPsjNEcUKPCvelq+WKkiZH6fVBBmC +DHJyZjbEYV21/0ak/7q93jOqkipMYGGTdbW/3g15lrINepnI7HHHBkBT2A/lz1LJ +DLN5kaeogwKEYxiwAbwv9Lp38XjfDcAhCy/ZDBBo7l7wxv7CUNEto3AG8bUWsFCi +FtMauGziF2pF+a3X7QR8DaOEO69uxweNCbqtO+knRoUwehZJrxA= +=BzsD +-----END PGP SIGNATURE-----