extends base.pug

block nav
	nav
		a(href='/') Home
		a(href='/stuff') Stuff
		a(href='/mindflow') Mindflow
		a(href='/guestbook') Guestbook
		h1 About

mixin isServiceUp(header, service)
	if (services[service])
		h3.service-up= header
	else
		h3.service-down= header

block content
	section#about-me
		h2 Me
		p #[span.highlighted Who am I?] My name is Alexander Andreev. I'm a russian guy of age 29 who likes tinkering with computers.
		p #[span.highlighted Why am I doing all of this?] Machines are up 24/7 anyway, so let they do some useful work.
		p #[span.highlighted Why am I almost &ldquo;doxxing&rdquo; myself?] Yes, my real first and last names, and age are here, and since I self-host you can get my city as well. And I simply don't see that as a problem.
		p #[span.highlighted Why particularly that slogan?] I just wanted sort of a slogan that would fit under the logo and this was the first thing came on mind. I actually like it. Don't you think of your websites as of very special place of your own? Of course you do. :) And who we are if not the wanderers who are looking for something in the vastness of Intenet? xD And yes, it's a pain in the ass to make it fit under logo across different browsers. That was the moment when I found out that different browsers render text differently.
		p #[span.highlighted Why English only?] I want this place to be accessible for a wide audience, and English happen to be todays lingua franca. Second, I do that to practice English. And third, I'm lazy to maintain two versions of the website, neither see a good reason for that.
		p Contact information and banners are #[a(href='#contacts') at the bottom of this page]. Yes, I totally agree with you not wanting to add my banner since I don't have a link page myself, neither participate in any webring. :) Well, it's way easier to make a banner than a links page. :)
		p Now a little break for...
	section#my-cat
		h2 My cat Boris :3
		div.grid.figs
			figure
				a(href='/assets/img/my_cat.webp')
					img(src='/assets/img/my_cat_thumb.webp' title=':3' alt='My cat. :3')
			figure
				a(href='/assets/img/my_cat_2.webp')
					img(src='/assets/img/my_cat_2_thumb.webp' title='xDDDD' alt='xDDDD')
		p And here we continue. :)
	section#more-about-me
		h3 Hobbies
		p Video games (since 1997)
		p Computers (since 11th November 2004)
		p #[s Wasting my life on] Surfing the Internets (since February 2006)
		p Mapping for Half-life 2, Counter-Strike: Source (since 2006, discontinued in 2009) (everything's fuarrkin' lost)
		p Music writing (since 2007, last track was made in 2010)
		p Programming (since 2007)
		p #[s (LARP'ing as a system administrator)] Home servers (since 1st January 2017)
		p Software Defined Radio (since June 2018)

		h3 What I know
		h4 Human languages
		p #[span.highlighted English] is my main foreign language and I think that I know it quite well, but every time I reread what I wrote here I'm constantly catching cringe vibes. xD I have a nice pronunciation (my teacher once said so :)) and tend to British non-rhotic variant. Of course I end up with a mix of all the flavours of different dialects. What I struggle from is a lack of speaking practice and vocabulary is also still a problem.
		p #[span.highlighted Ukrainian (Українська)] is a special case. :) Russian and ukrainian are related languages, so mutually understandable, yet many russians are struggling to understand it, and I don't know why. But it is a matter of putting some little effort to negatiate it. I never learnt it, but throughout past 8 years I saw enough material to learn it to a decent level of understanding and some speaking.
		p Агась, нiколи спецiйно не вчив українську, користував перекладач тiльки як словник, за цi вiсiм рокiв було досить матерiалiв. :) Слава Українi у складi Росiї! хД
		p I like learning languages, but me being a lazy fuck won't let me learn something up to a reasonable level. I ended up with being able to +- read some languages, like german, polish, french, japanese (hiragana + some yet not forgotten kanji). So, now I main only english.
		h4 Computer languages
		p #[span.highlighted For programming and scripting:] Python, Go, JavaScript, and Bash for now are most used by me. Later I used or tasted: Pascal, Delphi, C#, C, C++, Java, PHP.
		p #[span.highlighted Markup and declarative:] SQL (SQLite3, MariaDB), HTML5, CSS3, LaTeX, Markdown, XML, and JSON.
		p And I don't know what else to put here. :^)

		h3 What I like
		p In more or less timeline order.
		h4 Anime
		p Ghost in the Shell, Shaman King, Hellsing, Steins;Gate, Cowboy Beebop, Ergo Proxy, Jin-Rou, Black Lagoon, Jojo's Bizzare Adventures, Spice and Wolf, Konosuba, Demon Slayer: Kimetsu no Yaiba
		h4 Films
		p WarGames (1983), Hackers (1995), Johnny Mnemonic (1995), Snatch (2000), Valhalla Rising (2009), Who am I (2014), movies with Jackie Chan, Matrix (1999, 2003), Stargate (1994), Blade Runner (1982), Mandariinid (2013), Everything Everywhere All at Once (2022)
		h4 TV shows
		p X-Files (1993&mdash;2002), Lost (2004&mdash;2010), Stargate: SG-1 (1997&mdash;2007), Stargate: Atlantis (2004&mdash;2009), Два холма (two hills) (2022), Narcos (2015&mdash;2017)
		p These lists aren't complete, will extend when remember or like something.
		p I actually don't watch much, and if I watch I go for a marathon, and if only I take a break in the middle of a show, then that break could last for years. xD And if I download some film it could sit for years, as it was with Valhalla Rising, it was waiting for me to watch for 3 fucking years. xD Oh, what made me to watch it? An one and a half hour long power outage. xD
		h4 Games for SEGA Mega Drive
		p Not a lot of games I've played.
		p Bubba'n'Stix, Battletoads, Granada, Demolition Man, Road Rash, Doom Troopers - The Mutant Chronicles, The Lost Vikings, Ghostbusters, Mig-29 Fighter Pilot.
		h4 Games for PC
		p Grand Theft Auto: Vice City, Half-Life (all), StarCraft, Diablo 2, Far Cry (2004), Grand Theft Auto: San Andreas, Boiling Point: Road to Hell, Portal, Freelancer, F.E.A.R., S.T.A.L.K.E.R., Grand Theft Auto 4, Lineage 2, The Elder Scrolls V: Skyrim, The Walking Dead, The Wolf Among Us, Payday 2, The Witcher (1st, 2nd, 3rd didn't finished yet), Minecraft, Terraria, Starbound, Euro Truck Simulator 2, Mount &amp; Blade: Warband, Papers, Please, Insurgency, Elite: Dangerous, theHunter: Call of the Wild, American Truck Simulator, Rocket League, Sea Of Thieves.
		p I'm CMDR Arav in Elite: Dangerous. My <a href="https://www.edsm.net/en/user/profile/id/22541/cmdr/Arav" rel="noopener noreferrer">EDSM profile</a>.
		p I play TruckersMP mod for Euro Truck Simulator 2 and American Truck Simulator. Nickname is Arav with a tag [RU64].
		h4 Music
		p My favorites that I like almost fully are Falkenbach, Korpiklaani, Sólstafir, Lacrimosa, Enigma, Röyksopp, Nagrobki, Burzum, maybe I forgot to mention something. You can see what I like on #[a(href=files_site+"/music") file share]. I have a tendency to listening to the same music for a long time, so only way for me to know about other music are online-radios and WEBM threads on IBs. :)
	section#servers-summary
		h2 My servers
		p I have two of them, the first one is a #[a(href='https://www.raspberrypi.org/products/raspberry-pi-3-model-b/' rel='nofollow noreferrer') Raspberry Pi 3 rev. B] single board computer and the second one is a laptop. Yeah, not quite impressive, but they do their work just fine.
		p Laptop is Acer Packard Bell TE69CX that has a 2 core Intel Pentium 2117U 1.8GHz and 10GB RAM (2GB + 8GB), the system disk is a 120GB SSD and the other one is 2TB HDD where all the shit I have is stored. I've replaced my good old 500GB disk with 2TB one, since it became a little too tight, now it is a system disk for Raspberry Pi. Everything that have just a bit of importantance to me is backed up, encrypted and stored in the clouds. :)
		p #[span.highlighted TL;DR about services.] Laptop runs a network file share, a public file upload service, a seedbox, a HTTP public file share, TeamSpeak 3, Mumble, Matrix, I2P, an internet-radio, git server, ClamAV for email server, a web-server, and a database. Raspberry Pi 3 runs OpenVPN, BIND9, DNSCrypt-proxy, a Tor relay, an email server, and a XMPP server.
	section#servers-photos
		div.grid.figs
			figure
				a(href='/assets/img/raspi.webp')
					img(src='/assets/img/raspi_thumb.webp' alt='Raspberry Pi 3 rev. B')
				figcaption Raspberry Pi 3 rev. B
			figure
				a(href='/assets/img/acer.webp')
					img(src='/assets/img/acer_thumb.webp' title='Screen and keyboard are broken anyway.' alt='Laptop')
				figcaption Acer Packard Bell TE69CX
	section#servers-public-services
		h2 Public services
		p.center That are available for everyone.
		div.grid
			div
				+isServiceUp("Internet-radio", "liquidsoap")
				p
					a(href='https://radio.arav.top') radio.arav.top
					| .
					a(href='http://wsmkgnmhmzqm7kyzv7jnzzafvgm7xlmlfvzhgorpapd5or2arnhuktqd.onion') onion
					| .
					a(href='http://radio.arav.i2p') i2p
				p Runs using Liquidsoap through Icecast, which goes through NGiNX. I broadcast almost everything I have. Sorry, but I'm too lazy to make some kind of broadcasting program to stream so I just randomise the playlist and throw new music there from time to time.
				p This project grew from MPD I used to stream music over LAN for myself. Then I let it out and placed a player on my Neocities website. Then Icecast was added to see if there are listeners. I wasn't happy on how MPD was nearly overloading CPU, and later, after moving the radio off to a laptop, MPD was replaced by Liquidsoap.
			div
				+isServiceUp("File share", "dwelling-files")
				p
					a(href='https://files.arav.top') files.arav.top
					| .
					a(href='http://qf5e43nlhvnrutmikuvbdfj3cmtthokpbaxtkm6mjlslttzvtgm4fxid.onion') onion
					| .
					a(href='http://files.arav.i2p') i2p
				p There you'll find music, videos, films, animes, TV shows, books, games, programs, drivers (a very few), OS images (Winblows :)). Go check it out!
			div
				+isServiceUp("File upload", "dwelling-upload")
				p
					a(href='https://upload.arav.top') upload.arav.top
					| .
					a(href='http://.onion') onion
					| .
					a(href='http://upload.arav.i2p') i2p
				p I've made a file upload service for ya with a limit of 128MiB per file, keeping it for 36 hours, and overall storage I dedicated for it is 100GiB.
			div
				+isServiceUp("Gitea", "gitea")
				p 
					a(href='https://git.arav.top') git.arav.top
					| .
					a(href='http://qqitm7qlsbbubwmjos4cqzmvkqidg34rfnbyhuydhalep33fbvh22xyd.onion') onion
					| .
					a(href='http://git.arav.i2p') i2p
				p Gitea. This is a place where I put source code of everything I ever wrote and consider useful and worth sharing.
			div
				h3 Tor relay
				p #[a(href='https://metrics.torproject.org/rs.html#details/CEF2FD0E1973EA04D1444DDAEFF1B0BC3C0C39B1' rel='nofollow noreferrer') metrics.torproject.org]
				p It is set to use 8 MBits of my Internet connection. It cannot became a guard node because of dynamic IP-address.
				p #[b Since 1st December 2021 Tor is blocked in Russia, so the relay is down.]
			div
				h3 I2P router
				p I help the network using an official #[a(href='https://geti2p.net' rel='nofollow noreferrer') I2P router].
	section#servers-private-services
		h2 Private services
		p.center That are available for a narrow circle of people.
		div.grid
			div
				+isServiceUp("E-Mail server", "postfix")
				p Postfix, Dovecot (w/Sieve), Spamassassin, ClamAV, OpenDMARC and OpenDKIM.
				p Alas, I don't have a static IP. And there is not much sense in it because my ISP doesn't offer reverse DNS for regular clients (it'd be bloody awesome).
				p It results in my messages ends up in a spam box at best. Well, Yandex, Google, Microsoft Live, and Rambler lets me in an Inbox. :) But if service use Spamhaus' blocklists then I'm being rejected.
				p #[b TLDR; I may not be able to send a reply].
			div
				+isServiceUp("XMPP/Jabber", "prosody")
				p Prosody.
			div
				+isServiceUp("Matrix", "synapse.app")
				p #[a(href='https://the.arav.top') the.arav.top]
				p Synapse.
				p #[b Taken down because has no use.]
			div
				+isServiceUp("Mumble", "murmurd")
				p #[a(href="mumble://arav.top") mumble://arav.top]
				p It's private, but you still can join an entrance room where you can only write messages. A certificate is necessary.
			div
				+isServiceUp("TeamSpeak 3", "ts3server")
				p #[a(href="ts3server://arav.top") ts3server://arav.top]
				p Same as with Mumble applies to TS. It's security level is set to 29, so is yours identifier's level should be at least that high.
			div
				h3 Game servers
				p All game servers are private, if there's exception I'll mention it in its description. They are listed in a section below.
				p Some servers are listed in an in-game server list and theirs names looks like &ldquo;Arav's dwelling / &lt;Game name&gt;&rdquo;.
				p And, of course, I don't run them simultaneously and start them only when needed.
				p Expect poor performance because the server is a low-end laptop.
	section#servers-games
		h2 Game servers
		div.grid
			div
				+isServiceUp("Minecraft", "forge-1.16.5")
				p.highlighted arav.top:25565
				p Version is 1.16.5 currently. I homebrew clients for it. Here is #[a(href=files_site+"/games/minecraft/aravsdwelling-minecraft-1.16.5.exe") an installer for Windows] (412MiB) I make with NSIS. And a #[a(href=files_site+"/games/minecraft/aravsdwelling-minecraft-1.16.5.tar.gz") TAR.GZ archive] (424 MiB) that is for both Windows and Linux. You'll need to set a PLAYER and MC_DIR variables in scripts. And change JVM_PARAMS to your preferences (-Xmx usually needs to be adjusted). And that's only if you use an archive.
				p And you can get #[a(href=files_site+"/programs/windows/installators/jre-8u281-windows-x64.exe") jre-8u281-windows-x64.exe] from my file share.
				p SHA-1 hash for a Windows installer is 9140c9c84e9915d3af22e7b5c889cafdc34839cb.
				p SHA-1 hash for a TAR.GZ archive is 45ea54bfd8ac3ff56ac4655fb1c4a0ebf5c904db.
			div
				+isServiceUp("Starbound", "starbound_server")
				p.highlighted arav.top:21065
				p Server is using a Frackin' Universe mod.
				p Don't forget to set &ldquo;Allow assets mismatch&rdquo; option that you can find on the first page of the &ldquo;Options&rdquo; menu.
				p Access is restricted using accounts. Contact me if you want to play here, you'll need to give me a nickname and a password.
			div
				+isServiceUp("Avorion", "AvorionServer")
				p Server is listed in a server list as &ldquo;Arav's dwelling / Avorion&rdquo;. Whitelist is enabled. Bring your SteamID64 if you want to play here.
			div
				+isServiceUp("Project Zomboid", "ProjectZomboid")
				p.highlighted arav.top:16261
				p Server is listed as &ldquo;Arav's dwelling / Project Zomboid&rdquo;. Whitelist is enabled.
	section#servers-inner-services
		h2 Inner services
		p.center Services that maintains other services or used exclusively by me.
		div.grid
			div
				h3 Web-server
				p NGiNX + PHP-FPM (just for phpMyAdmin) + NodeJS + Go.
			div
				h3 Database server
				p MariaDB managed with phpMyAdmin.
			div
				h3 VPN
				p #[s OpenVPN] Wireguard.
			div
				h3 Network file share
				p Samba.
			div
				h3 Torrent seedbox
				p Transmission-cli gets shit done.
				p The only annoying thing is that it sometimes creates .part files for one of unchecked files.
			div
				h3 Print server
				p CUPS with CCP (Canon CAPT printer).
				p Holy shit, it finally works! Wow, even after kernel update it doesn't require a reboot anymore!
			div
				h3 DNS server
				p BIND9 via DNSCrypt-proxy.
				p For LAN I use &ldquo;home.arpa&rdquo; special-use domain introduced by RFC 8375. And for uniqueness &ldquo;arav.home.arpa&rdquo; specifically.
	section#contacts
		h2 Contacts
		span
			| E-Mail:&nbsp;#[a(href="mailto:me@arav.top" title='May not be able to reply due to being blacklisted because of dynamic IP.') me@arav.top]
		span
			| Jabber:&nbsp;#[a(href="xmpp://arav@arav.top") arav@arav.top]
		span
			s Matrix:&nbsp;#[a(href="https://matrix.to/#/@arav:arav.top") @arav:arav.top]
		br
		span
			| PGP&nbsp;key:&nbsp;#[a(href="~arav/68959406BDEDC57682C09FA60388CC8FAA51063F.asc") 6895 9406 BDED C576 82C0 9FA6 0388 CC8F AA51 063F] (available through #[a(href="https://wiki.gnupg.org/WKD" rel="nofollow noreferrer") Web Key Directory])
		br
		span
			| Jabber OMEMO fingerprint: 1DAE0A91 8DEFCFDF 9558BBBE 5ECFA46D 9D120E03 970A9FE2 3D17F648 C84BDD72
	section#donation
		h2 Donation
		span
			| #[a(href="monero:48namnfX17TX1kEGCpkXaRWhtw8p92cQjd5uQg7ivybgUuW4BTVaX8egxQhEi75JwuUGn3MDLKHYGNhu4eCfM6dRAAL2QAq") Monero]
			| #[a(href="bitcoin:bc1qrmpahnvtqp34kpjaghnmq8acq27n0eke5w35ec") Bitcoin]
			| #[a(href="litecoin:ltc1qpufwg92ghs35t34shcg3ydwsk87x5zxm3j5fu5") Litecoin]
			| #[a(href="https://www.donationalerts.com/r/arav") DonationAlerts]
			| #[a(href="https://qiwi.com/n/UPPON082") QIWI]
	section#banners
		h2 Banners
		p In case you found my site anyhow useful and would like to add me to your links page here are the banners for you.
		div.grid.banners
			figure
				img(src="/shared/img/banner_88x31.gif" alt="Light banner 88x31")
			figure
				img(src="/shared/img/banner_240x60.gif" alt="Light banner 240x60")
		p And theirs dark counterparts are also available.
		div.grid.banners
			figure
				img(src="/shared/img/banner_dark_88x31.gif" alt="Dark banner 88x31")
			figure
				img(src="/shared/img/banner_dark_240x60.gif" alt="Dark banner 240x60")
	section#privacy-statements
		h2 Privacy statements
		p Logs are collected and include a date and time of access, your IP-address, User-Agent, referer URL, and a request.
		p JavaScript is used at guestbook page to refresh CAPTCHA, and at mindflow page to filter posts by categories.