Text
css
-generates a complex animation in one line of code.
-has 50 different ways of positioning a box on a screen and none of them work
0 notes
Text
being akemihomura is suffering
im very dissatisfied with every chat app currently on the market and have been for a long time, but discord kicking me out was the straw that broke the camels back. im making my own chat application. i heard of xmpp, an open protocol for secure comms, so i decided to use that. my webserver is currently running openbsd, and the only xmpp server that i know of that runs on bsd systems is this one called prosody. so i installed it and after a day of fucking around (mostly trying to set up tls) i got it working n me n my gf had a (minimal) working private chat that we can use with regular xmpp clients! cool, but we cant do anything other than set up a profile imwith im picture n talk in raw text. now is time to add new features
xmpp is modular, this means that on top of the regular protocol you can add other protocols for stuff like video calls, file sharing, stickers, etc. likewise, prosody has modules that implement different xmpp protocols (called XEPs). the first thing i wanna add to my chat is file sharing, where users can upload files and other users will see them in their client. this is done using the http_file_share module in prosody. why do we have to use http for this? idk, but it means i have to set up tls for https too and add more subdomain names to my dns records which is a pain in the ass. couldn’t they come up with a better way to have services rather than using fucking subdomains which require additional dns records? idk, but i had already dealt with all that the last day so it was no big deal, just annoying. what WAS a big deal was this: http_file_share isnt available in the latest version of prosody, which is what i have installed. rather, its available in their own git mercurial repository. in other words, the next version is still a work in progress and i http_file_share is part of it. fucking great, a feature that was in discord SIX YEARS AGO (and im sure other chat programs did it way before that, but i wasnt using chat programs before) is just now being implemented in prosody. to be fair, i cant really blame them too much since they probably only have a small team and idk how old prosody is, maybe just a year or two.
well, regardless, i downloaded their repository and read their build instructions. prosody needs lua (a scripting language) to work and they recommend version 5.4 for this development version. the latest available lua version in openbsd’s repository is 5.3 . shit, now i have to compile lua too. so i download lua and it compiles and installs with no problem. if only every other program could be like this... anyway, back to prosody, to compile it i need to run a configure script and then run an automatically-generated makefile. standard stuff. i run the configure script and it doesnt detect my lua version, even though i have it properly installed. i found out, by READING THE CONFIGURE SCRIPT MYSELF, that when you specify your os as openbsd in the script’s options, it checks for an program called “lua51″ (for lua 5.1) or “lua54″ (for lua 5.4) instead of just “lua”. this is because thats what the lua programs called when you install it from the openbsd repositories. i dont understand why it also doesnt check for “lua” since that’s what the default name is if you compile lua yourself, but whatever. if i dont specify my os, it probably assumes im on linux or something, but it works just fine. now i need to run the makefile. easy, right? just type “make”. NOPE! the makefile thats generated by the configure script is WRONG. specifically, it doesn’t add /usr/local/lib to the library paths so i had to manually edit it myself to get it to compile. in retrospect, maybe the problem was my system’s environment variables, im not sure. either way, i have it compiled and installed.
now if i try to run it, it doesnt work, obviously. the prosody documentation lead me to believe it would, because they didnt specify what lua modules i needed. thankfully, prosody itself tells me what i need in a nice, helpful error message. in addition to lua, prosody needs a few lua modules: luafilesystem, luaexpat, luasec, another one who’s name i forgot, and luaunbound. i didnt know dick about lua but i assume that i cant install these from the openbsd repositories since those would be tailored for lua 5.3 rather than 5.4 . so i did some research and found this program called “luarocks”, the lua package manager, which can easily install lua modules. again assuming i cant get the version from openbsd’s repositories, i decide to manually compile and install luarocks, which was quick and easy! man, the lua guys really seem to know what they’re doing, a rare sight in the software world. so then i install all the stuff i need with luarocks, all of which installs just fine, except for luaunbound...
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
luarocks can, instead of installing the package, download the package contents on your computer and unpack it to let you see its insides. so i did that, then saw that the luaunbound makefile didn’t account for /usr/local/lib, i change it, try to pack it back to install it with luarocks, but it still tells me it couldnt find libunbound, which was in /usr/local/lib. SO after much effort and frustration i finally understand that the problem is that luarocks doesnt actually read the makefile to compile luaunbound, it uses a “rockspec” file that is contained in every luarocks package. the rockspec file in luaunbound seems to specify some generic build procedure that bypasses the makefile and fails. i dont know the first thing about fixing that, but hey, since there’s a makefile in there, surely you can install it manually without luarocks, right? well yes, you can! i randomly run prosody again and it tells me that my luaexpat version is wrong and that i need a later version to support some features that prosody needs to work. i check the version with luarocks, and im actually using a version that’s more recent than the one prosody asked me for, meaning that it sould work. wtf? well whatever, ill install that one manually too and see if that works. so i uninstall luaexpat with luarocks and download the source for the latest releases of luaexpat and luaunboud and none of them compile right. wtf are these makefiles. seriously, go look them up, theyre weird as hell and not good at all. i had to almost rewrite them entirely to get them to work, but it wasnt too bad since the modules are small and the makefiles short. after installing it, they both work! prosody runs normally, so is that the end of my problems? hahahahaha, I wish!!!!
when i installed prosody, i had configured and installed it with the default settings, (default config file location, data directories, etc.) which was kind of stupid since i knew the openbsd prosody package used different settings. regardless, i thought id just use the default and move my files around but i soon realized this wouldnt work without completely breaking my system at least in terms of file permissions. this is because the settings on openbsd’s package make sense (configuration is /etc/prosody , server data is in /var/prosody) whereas the default configuration from prosody’s developpers is downright retarded. it puts the config data in /usr/local/etc and the server data in /usr/local/var . WHO IN THE UNHOLY NAME OF FUCK EVER HEARD OF /usr/local/var or /usr/local/etc . apparently luarocks did because i had just found out that /usr/local/etc had a luarocks subdirectory. wtf? what’s wrong with these people? the prosody configure script allows you to change the prefix variable and then installs stuff in $PREFIX/bin , $PREFIX/lib , and so on. this is standard stuff, and it defaults to /usr/local, also standard and very good, but it also installs the config in $PREFIX/etc and data in $PREFIX/var . WHY???? so that you can control all of it with just one prefix???? that’s retarded. the default config should be /etc/prosody and default data should be /var/prosody and THAT’S IT. it shouldn’t be related to PREFIX in any way. what a bitch. so now i have to uninstall and reinstall prosody, so i go to the repo and do make uninstall. easy, right?
...
there’s no make uninstall.
WHYYYYYYYYYYY. you gave me a make install, why not make uninstall????? seriously, what the fuck. at this point i was so confused and mad that i just said fuck it and went outside (i had to do groceries).
i tried thinking about what to do while walking and i came up with this: run make install again and watch the console to see where it installs the files and delete those files manually. so that’s what i did. then i reconfigured and reinstalled and everything worked. i enabled the http_file_share module in the prosody config file, set up encryption, and everything worked fine. a whole day of work to do something that AT WORST should’ve taken me an hour or two, assuming i had to manually compile and install all the stuff i had to. here’s my message to the developpers of all the software involved: fix your shit. ...and if my /usr/local not working problems had to do with a bad environment variable, then “the software involved” includes openbsd too.
anyway, now its time to program an xmpp client that doesnt suck balls. wish me luck!!
1 note
·
View note
Text
discord sucks
discord sucks. my girlfriend just told me that i can color my text. beautiful. now everythings purple. discord locked me out of my account so i have to email them to unlock me out. here's an offer for the discord jannies: unlock my account forever and ill spend the rest of this blog raving about how discord is great and the best and how much i love it thanks.
3 notes
·
View notes