because the internet

on to the next one

it is pretty redundant given the built in hugo serve function, but i got a beta server going at https://yellowfog.xyz. the first wave of changes have been pushed to btn - mainly small style updates. the header font has been changed to montserrat, which pairs nicely with the inconsolata typeface used in the paragraph bodies. i would be interested in also finding a way to integrate an italic font in a way that emulates the gorgeous effect of the Operator Mono font, without having to pay hundreds of dollars for the privelege. (us damn millenials, always wanting everything for free…)

decided to push this post mainly because i’ve spent so much time over on the test website, that it started to look more fleshed out than the main website. damn.

the test server

i do want to mention the test server, because i’m pretty excited about it, as it represents a sort of new era in terms of the avaliability of the world wide web for the average user. when you think of a webserver, you might picture something like rows of computers in a datacenter. hell, you might even picture a single PC desktop. you might imagine the complexities of setting up multiple layers of software requiring alot of coding knowledge.

among the ruins: an orange pi zero

well… here it is in all its glory: the yellowfog test server. no, not the PC tower in the background. and no, not the intel NUC in the bottom foreground. it’s the tiny little thing sitting on top of the NUC. it is an alternative to the raspberry pi, called the orange pi zero and it is pretty awesome, if you are a glutton for punishment.

i say that half in jest - the frustration was going through a bunch of shoddy orange pi models that all seemed terribly built, or terribly supported. the Zero, however, is astounding. (my theory is the O-pi folks saw the popularity of the Zero, and have diverted alot of their resources into its development.) like any new tech there was a learning curve, but in the end I got it running by first installing Armbian(), and then running a script from the DietPi() github() that strips down any distro based on debian, and converts it to DietPi. not gonna lie, i am annoyed I had to do all that, because I really just needed access to the wonderful dietpi-launcher tool which contains the software submenu, containing one-click installs for a host of popular software. Armbian has a similar software suite, but it is lacking in the options that DietPi has. however, armbian has released their tools to the public(), and they can be used on virtually any distro that these little boards can run. DietPi continues to keep theirs in-house, though modifying the script to make it more universal is a longer-term project I have been working on. In the meantime I am forced to perform a complete upgrade, which has the drawback of chipping a little but of lifespan off my SD cards in the form of the read/writes I have to do, as software is first removed by DPi, and then re-installed by yours truly. The situation has been somewhat mitigated by using Win32DiskImager to generate a snapshot image right after performing that process. Hell, I should work the armbian-config tool in and create Diet PARMbian… I am sure this would make the maintainers of the two projects incredibly happy. (the joke here is that they are kinda beefing, as DietPi used armbian as its starting distro for a long time, but then covered it with DietPi logos and did not hype their use of Armbian much if at all.)

anyways, i mention all that because using dietpi-config allows you to get a webserver going with just about zero effort, as well as both a dynamic dns updater allowing one to use a domain name that stays connected to a local server regardless of any IP address change, as well as installing things like databases and even certbot. I wound up simply installing certbot via apt, and setting up SSL certificates allowing me to use the https:// protocol in a simple process that might have taken a minute tops. the entire thing - starting with a blank orange pi zero, and ending with a fully functioning website, might have taken 3 hours or so, most of that time simply spent watching progress bars.

in my grand tradition of setting goals i will not follow up on, i would like to maybe write up a guide on how to setup a webserver with an orange pi zero, perhaps any SoC board really, but honestly if you’re looking to setup a webserver you probably already know how to install an operating system and copy/paste commands from a set of instructions, which is more or less all you need to get the hardware side going, and then from there the main greeting/menu instructs you on how to launch the config utility, and from there it’s more or less straightforward.

hot soft ware

spacemacs - woah! i considered myself to be above emacs, but apparently spacemacs is emacs, except vim’d out. in particular there seems to be alot of influence derived from spacevim, which i have come to know and, more importantly, love. however, vim does have its weaknesses, and one in particular is fast becoming a wedge issue: plugins. as far as i am concerned, spacemacs is absolutely killing it in the plugin department, with a super easy, built-in package manager, MELPA. case in point: after installing a markdown editing layer to vim, i found it was somewhat obtuse, with quirks such as the fact that it live-rendered markup for alot of shortcodes. so i would go to insert an image, and the code would simply disappear… it would still be there, except I couldn’t see it, but my cursor would simply pause over it - I still had to move the cursor over x amount of times, as if the code was still there. this led to an annoying process of having to work around, and not with, the editor. so now i am polishing this post up with emacs, where everything just works. an artifact of this struggle can be seen above - you’ll see a few words with some parenthesis behind them like this() - this is where i added placeholders so i could go back later and add URL’s, because i just didn’t feel like going thru the hassle. i could not theoretically edit them with ease, but i am leaving them un-linked as a testament to vim letting me down, and also, well, because i am lazy.

rustup rustup is to cargo is to rust, what n is to npm is to java. need i say more? i don’t know a lick of code between either rust or java, but here lately i have become a fan of compiling my own binaries, because i’m all about options, tweaks, and digging around under the hood to see what makes the things i like to use, tick. that being said cargo seems to be wayyyy more brutal on my computer - i guess because it’s compiling the programs in the most direct sense, as opposed to npm more or less assembling a bunch of components for you. unfortunately this means alot of stuff tends to break, or break my computer. and anything beyond the most basic apps and utilities is a no-go if i want to locally compile something for one of my lil boards. lame. but the complications and obstacles are alot easier to deal with now that i have more or less figured out a painless way to deal with node packages, and when i do have issues i can be confident that i will most likely discover a solution which might even lead me to some solution that also improves my user experience for the entire rust ecosystem.

an honorable mention here should be curl. i definitely overlooked it as… something basic i guess, some tool used to do little tricks like rendering fun ascii animation in your terminal. but i mention it here because it is quickly becoming my preferred way to install software… praise be git and all, but my god between issues arising from merging things and dealing with submodules, curl simply allows me to run a script, download files, and be on its merry way. now that being said you should always concatenate any link you’re about to run into a textfile for a quick check to verify it does what it says it does, but you can find alot of popular, trusted apps using it for installs, from oh-my-zsh to spacevim to rustup.