leah-computing.md 15 KB

% How I do my computing % Leah Rowe % 2019-04-28

Important notice: In this article, I wholeheartedly recommend Debian several times. This is, by default, a completely free (as in freedom) distribution of GNU+Linux. HOWEVER, be warned that it is not endorsed by the Free Software Foundation or GNU project. You see, Debian has an optional repository containing non-free software. If you install Debian, make sure not to enable the non-free repository and then you will have an entirely free system installed onto your computer. I use Debian instead of Trisquel because it is technically superior. It really is that simple. And I know what I'm doing, so I know how to avoid common freedom pitfalls. I've used GNU+Linux for 15 years and Debian is my home country as far as distros go, so I will never ever switch to anything else.

This is partly inspired by Richard Stallman's page and again inspired by a friend's inspiration of the same page. Said friend made their own page inspired from Stallman's page, and i'm making this one inspired from my friend's page :)

Over the years, people have asked me what I use for my computing setup. I will now elaborate on this.

My overarching philosophy is one of minimalism and freedom. I strongly believe in Free Software. I have greatly admired Richard Stallman and his ilk since I was very young (basically as soon as I started using computers regularly, when I first heard about GNU+Linux).

I support the right to self-determination and freedom of thought. I am a libertarian socialist, with leanings towards state communism.

My politics extends to my computing. As a communist, I strongly believe that people should, themselves, have direct control and sovereignty over their own affairs and that they should work collectively to build a better world run by the people, for the people. Free Software fits perfectly within this paradigm. I have always felt this to be the case.

I do not believe in private property. I think that all resources should be open and accessible to the public, without any oppressor (aka proprietor). Proprietary software is a scourge that must be wiped from the face of the earth!

I am also a minimalist by nature. I lead a very simple life. I do not own a car. I live in a small house, with a good friend of mine. I don't like to buy things, instead I like to make things (I have my own lab!). I am a vegan (I temporarily sinned and went back to meat, as stated in a previous article, but I am now 100% vegan again). I want my impact on the world to not be negative in anyway. When I die, I went to leave a legacy of lasting contributions. I strongly believe that the way most people live today, and the way that they are told to live, is destroying the world. For instance, capitalism is the main cause of climate change on our planet.

My computers

I have several computers:

  • Desktop is my main computer
  • Laptop is my secondary computer, when I'm away somewhere
  • Server for ns1.libreboot.org and ns2.libreboot.org, also routing
  • Server for minifree.org (web only)
  • Server for libreboot.org (+mail), vimuser.org, transit.org.uk and (mail only) minifree.org
  • CH431A mini-programmer. This can flash SPI chips and EEPROMs. I use it to flash libreboot/coreboot images onto chips. I previously used a Raspberry Pi, but the RPi requires a non-free GPU blob to boot up the main CPU. Also, the CH431A does a much better job at actually flashing the chips, since it's dedicated and optimized for this exact purpose. It's convenient for flashing chips in DIP-8 form fact. For SOP/SOIC chips it has headers on the board, and it comes with an additional daughter board where you can place such a chip on top of and it converts that pinout to a DIP-8 pinout (it's a little adapter board for SOIC8/16 chips so that you can flash them using the normal DIP-8 socket on the CH431A)

Desktop

The desktop is running Libreboot and Debian GNU+Linux. It has an Intel Core 2 Duo E8400 with 2GB RAM, a Gigabyte GA-G41M-ES2L mainboard, 400W Corsair PSU (Corsair make good PSUs), 2 Western Digital Red (4TB) HDDs in RAID1 (encrypted) and, for audio, I use a DragonFly Red USB DAC with a pair of AKG K702 headphones (this is necessary for me, because I'm an audiophile. I am extremely sensitive to sound, it's one of the perks of my autism, and I love listening to music, especially the hi fidelity music in e.g. FLAC format. I am a very sound-oriented person. I can 'see' sound).

I have my own lab, with an AOYUE 2703A+ soldering station in it. It has solder, de-solder, hot air and a smoke absorber. It's very nifty. I've had it for years, though I've only recently (as of April 2019) started using it regularly.

I really dislike modern desktop environments and software. They use so much memory. I use all-lightweight software on my system, which is why I only need 2GB RAM. Software is as follows:

  • LXQt desktop environment
  • GNU IceCat web browser. I was previously using Midori and Netsurf, but GNU IceCat is lightweight in practise because it doesn't enable JavaScript by default (it uses GNU LibreJS). While this does slow down loading of some web pages, I find it to be a nice solution. DISCLAIMER: I have Javascript whitelisted on certain websites. E.g. bank, UPS, etc. (however, I tend not to use Javascript anywhere else). I could send out packages at the post office (and have my employee do that too) but the correct solution would be to write replacement javascript for those few sites that are needed. I need bank/UPS basically for my business, otherwise I can't make shipments or purchase stock.
  • Tor web browser bundle - I use Tor only for sensitive things. I otherwise use an ISP that respects privacy, and I use a VPN, so I don't feel the need to use Tor for absolutely everything. I have the safety settings on "max", which means that javascript, cookies etc are disabled.
  • Vim for editing text
  • Sylpheed for email
  • mpv for audio/video playback
  • smtube (with mpv+youtubedl method) for streaming from youtube
  • youtube-dl for downloading from YouTube
  • simple-scan for scanning documents (printer+scanner is an HP DeskJet 3050A. It's surprisingly very reliable. I've had it for many years and it has never failed me, and it works with the libre hp-lip driver)
  • transmission bittorrent client (I watch a lot of anime)
  • abiword and gnumeric (instead of libreoffice)
  • for PDF, I use qpdfview. it's a lightweight PDF reader

I used to have MATE+firefox+thunderbird and they ate RAM. I had 8GB of RAM and they'd still kill my system. Since switching to better software, I now only need 2GB of RAM, so I only installed 2GB when switching to this machine.

Programming languages

Mostly just C and BASH. I have experience with assembly programming but I haven't felt the need to use it in years. I once wrote a compiler and a virtual machine, many years ago when I was a highschool student (in the UK, it's called college not highschool, where university and college mean different things. I do not have a university education, I taught myself all the skills that I have).

I use the GNU C compiler and related tools. I refuse to use LLVM, since it's not copylefted and GCC does a good job anyway.

In the past, I have used Python and PHP. I have never used Perl. A million years ago, I briefly used C# (with Mono, not Visual Studio).

Besides programming, I also know a few non-programming languages like Markdown etc, and I have knowledge of HTML/CSS (though, these days I don't use HTML or CSS at all. My sites are generated via a static site generator that converts Markdown, though the vimuser.org homepage is written in HTML).

I don't do as much programming these days. My focus has shifted to hardware. I am currently working on a variety of my own personal projects in my lab. Most of them are just me messing around, nothing professional.

I don't feel the need to learn any more programming languages. I do not know how to write in JavaScript, and I have no interest in learning it because, honestly? I hate the web. I'd rather avoid using the web if at all possible. I find the modern WWW annoying, in that it focuses on design instead of content. Style without substance. When I use the web, it's to conduct business or to learn new information (mostly via text that I read). I occasionally work with images and video.

The modern WWW is insane, in my opinion.

Laptop

The laptop also runs Debian and Libreboot. It's a ThinkPad X200 that I've modded so that it is all-free-software.

Same setup as the desktop.

Router

The router is a librebooted X200 thinkpad with Debian on it. It just creates a very basic routing setup, which makes public IPv4 and IPv6 addresses available as supplied by my ISP. I have 13 static IPv4 addresses and several billion IPv6 addresses, so I don't have NAT on my network.

The router also has bind9 on it, for providing DNS. I need this for my servers. I'm lazy so it serves as both master and slave DNS.

Servers

I believe strongly in self sufficiency. As such, I do not outsource any of my server hosting.

I have a server which hosts most of my websits, and also provides mail services to libreboot.org and minifree.org. Minifree.org's own website is a separate server.

All servers run Libreboot and Debian (they are X200 thinkpads). For http I use nginx web server. For mail I use postfix.

I strongly believe that the best hosting provider for me is myself. For you, the best hosting provider is yourself. The internet was (is) intended to be a fully decentralized network, where people can share things in a peer to peer fashion. I strongly oppose the current efforts around the world to centralize the web.

As such, the only social media account that I have is twitter, which I use for sharing my art. Having said that, I rarely post anything to it. I otherwise host all services myself.

For HTTPS I use the LetsEncrypt CA.

Caveat: I don't have much bandwidth, so bandwidth-intensive resources like videos are hosted on an external server. It's a VPS that I rent out from a hosting company, and I've installed a basic nginx+letsencrypt setup on it.

Mobile phone

I don't have one :)

I grew up without mobile phones (hell, I grew up without internet. I first got online in my teen years). I know the dewey decimal system used in libraries. I can memorize a phone number. I maintain eye contact when talking to you. Even when I used a mobile phone for a brief few years, I never used it the way most people do; I only used it in emergencies, or basically my mother / roommate would call me. or a supplier would text me, etc (business partner). Well, all I need is email.

Here is my history of mobile phone usage:

  • Up until age 12: No mobile phone at all
  • 12-16 had a Nokia 3210 brick. I used it to play Snake, mostly. I didn't use it for phone calls. I also used it as an alarm clock.
  • 16-20 had a slightly less-bricky Nokia phone. It had Snake II
  • 20-24: No mobile phone
  • 24-27: Mother nagged me into getting a phone so she could text me. I moved out of home when I was 24.
  • 27+: No mobile phone again :)

During the last few years I used an Android phone. I barely knew how to use Android (I still don't). Well, I mainly used it just for phone calls, but like, I didn't even use basic features like the address book most of the time. I just remembered numbers in my head. I'm good at remembering things. I just look at a photograph in my head, which I shot when I first read the number. It's always there and it never fades.

Honestly, mobile phones are pointless

As of 8 May 2019 I am without a mobile phone. And honestly? I don't care, since I barely used my phone anyway... you can always email me. Or idk, if you know me you could knock on my door and come in for a cup of tea? Not that I personally drink tea. I could also serve coffee, or water.

Now I am untraceable again, for the most part. You cannot reach me unless I want you to reach me. This is exactly how I like it. I hate talking on the phone.

Games consoles and miscellaneous non-general-purpose computers

Connected to my desktop is a very decent LCD monitor with 1920x1080 display resolution. It has decent colour/contrast and 1ms response time... the kind of monitor that gamers use. Well, I'm a gamer :) Although I'm a hardcore free software activist (I'm the founder of the Libreboot project. I have a drawing of Richard Stallman which I made, and I've put it on my fridge), I wasn't always like this. I used to play a lot of videogames on PlayStation as a kid, and for purely nostalgic reasons I decided to buy a PS1 and PS2. The PS2 has a Matrix Infinity modchip in it. I've installed a PIC 12C508A modchip with MM3/stealth in the PS1. In the PS1 (a SCPH-7502 model) I've also soldered a headphone jack for connecting my speakers to it. The jack is connected directly to the analog output from the PS1's own DAC, instead of going through the multi-out (the multi-out is connected to an amp. I've bypassed the amp and I use my own amp, for audio). I have the Open Source Scan Converter (OSSC) and the PS1 connects to it via RGB SCART, the PS2 to it via Component RGB, and then that connects to my monitor via HDMI. This is why I wanted a decent monitor (<1ms response time). I modded both consoles myself.

I make an exception for games. My position on games is this:

  • Ideally, the engine must be free software (but I don't mind non-free games)
  • The game must not run on a general purpose computer (I will never use Windows). I don't have a problem with dedicated games consoles, since these are not intended to be general purpose computers.
  • Games are just mindless fun. They serve no functional purpose. I also play libre games, and I like to write games too :)
  • HOWEVER, the game engines can be used for more things than just games, such as construction planning, design, etc. It can also be used in medical applications (e.g. particle simulator for research on protein folding).
  • I oppose DRM. I refuse to own a games console with DRM. I will only use it if it has a jailbreak (e.g. modchip to bypass copy protections, or hacked firmware etc). All of the games systems that I own are modified to remove all DRM and copy protection, which means that I have the freedom to run my own code on them should I choose to do so. GNU has quite decent support for MIPS in GCC, which can be used for writing games on the Playstation 1. There are also decent dev kits (free software friendly) for PS 1 and 2, not necessarily from the GNU project but from others.
  • I generally prefer older consoles, since the games on these systems run on bare metal (PS1 and PS2 have an OS, but it doesn't do anything except load interrupt services that games can make use of, but the games have direct execution on bare metal). I think bare metal is the most fun way to do games programming. I don't like working behind bars :) Though, for non-game programming an OS like GNU+Linux is generally better.