From dd71f019de0314f7b3f2ae1e0aa920e49e9f2759 Mon Sep 17 00:00:00 2001 From: Suleyman Farajli Date: Tue, 24 Jun 2025 18:37:57 +0400 Subject: refactor: everything chaged --- .gitignore | 4 +- BUGS | 3 - GNUmakefile | 30 +++-- README.md | 8 -- TODO | 8 -- archive/archive.md | 10 -- archive/dmenu-farajli-5.3.tar.gz | Bin 15497 -> 0 bytes archive/dwm-farajli-6.5.tar.gz | Bin 25971 -> 0 bytes archive/liberation_mono.zip | Bin 306521 -> 0 bytes archive/slcf.tar.gz | Bin 13719 -> 0 bytes archive/slstatus-farajli-1.0.tar.gz | Bin 17329 -> 0 bytes archive/st-farajli-0.9.2.tar.gz | Bin 41259 -> 0 bytes build-page | 44 ------- content/archive/index.md | 60 +++++++++ content/home/index.md | 32 +++++ content/keys/index.md | 24 ++++ content/posts/coding_standards.md | 54 ++++++++ content/posts/gentoo.md | 78 +++++++++++ content/posts/index.md | 20 +++ content/posts/nophone.md | 142 +++++++++++++++++++++ content/posts/selfhostmail.md | 55 ++++++++ content/posts/software.md | 82 ++++++++++++ content/posts/website_created.md | 28 ++++ favicon.ico | Bin 700 -> 0 bytes home/index.md | 22 ---- home/pgp.md | 19 --- home/ssh.md | 5 - index_pages.mk | 5 + posts/2024_new_year.md | 4 - posts/coding_standards.md | 43 ------- posts/gentoo.md | 71 ----------- posts/nophone.md | 134 ------------------- posts/posts.md | 10 -- posts/selfhostmail.md | 48 ------- posts/software.md | 74 ----------- posts/website_created.md | 20 --- public/archive/slcf.tar.gz | Bin 0 -> 13719 bytes public/favicon.ico | Bin 0 -> 700 bytes public/keys/id_ed25519.pub | 1 + public/keys/pubkey.asc | 86 +++++++++++++ public/style.css | 88 +++++++++++++ scripts/__pycache__/boiler.cpython-313.pyc | Bin 0 -> 2286 bytes .../__pycache__/parse_frontmatter.cpython-313.pyc | Bin 0 -> 999 bytes scripts/boiler.py | 55 ++++++++ scripts/build_page | 45 +++++++ scripts/filter_proper_md | 14 ++ scripts/generate_post_index | 35 +++++ scripts/parse_frontmatter.py | 19 +++ static/archive/JetBrainsMono.tar.gz | Bin 0 -> 118032066 bytes static/archive/LiberationMono.tar.gz | Bin 0 -> 306533 bytes static/archive/dmenu_farajli-5.3.0.tar.gz | Bin 0 -> 16811 bytes static/archive/dwm_farajli-6.5.0.tar.gz | Bin 0 -> 25480 bytes static/archive/slcf.tar.gz | Bin 0 -> 13719 bytes static/archive/slstatus_farajli-1.0.0.tar.gz | Bin 0 -> 17596 bytes static/archive/st_farajli-0.9.2.0.tar.gz | Bin 0 -> 43011 bytes static/favicon.ico | Bin 0 -> 700 bytes static/keys/id_ed25519.pub | 1 + static/keys/pubkey.asc | 86 +++++++++++++ static/style.css | 88 +++++++++++++ style.css | 73 ----------- 60 files changed, 1119 insertions(+), 609 deletions(-) delete mode 100644 BUGS delete mode 100644 README.md delete mode 100644 TODO delete mode 100644 archive/archive.md delete mode 100644 archive/dmenu-farajli-5.3.tar.gz delete mode 100644 archive/dwm-farajli-6.5.tar.gz delete mode 100644 archive/liberation_mono.zip delete mode 100644 archive/slcf.tar.gz delete mode 100644 archive/slstatus-farajli-1.0.tar.gz delete mode 100644 archive/st-farajli-0.9.2.tar.gz delete mode 100755 build-page create mode 100644 content/archive/index.md create mode 100644 content/home/index.md create mode 100644 content/keys/index.md create mode 100644 content/posts/coding_standards.md create mode 100644 content/posts/gentoo.md create mode 100644 content/posts/index.md create mode 100644 content/posts/nophone.md create mode 100644 content/posts/selfhostmail.md create mode 100644 content/posts/software.md create mode 100644 content/posts/website_created.md delete mode 100644 favicon.ico delete mode 100644 home/index.md delete mode 100644 home/pgp.md delete mode 100644 home/ssh.md create mode 100644 index_pages.mk delete mode 100644 posts/2024_new_year.md delete mode 100644 posts/coding_standards.md delete mode 100644 posts/gentoo.md delete mode 100644 posts/nophone.md delete mode 100644 posts/posts.md delete mode 100644 posts/selfhostmail.md delete mode 100644 posts/software.md delete mode 100644 posts/website_created.md create mode 100644 public/archive/slcf.tar.gz create mode 100644 public/favicon.ico create mode 100644 public/keys/id_ed25519.pub create mode 100644 public/keys/pubkey.asc create mode 100644 public/style.css create mode 100644 scripts/__pycache__/boiler.cpython-313.pyc create mode 100644 scripts/__pycache__/parse_frontmatter.cpython-313.pyc create mode 100644 scripts/boiler.py create mode 100755 scripts/build_page create mode 100755 scripts/filter_proper_md create mode 100755 scripts/generate_post_index create mode 100644 scripts/parse_frontmatter.py create mode 100644 static/archive/JetBrainsMono.tar.gz create mode 100644 static/archive/LiberationMono.tar.gz create mode 100644 static/archive/dmenu_farajli-5.3.0.tar.gz create mode 100644 static/archive/dwm_farajli-6.5.0.tar.gz create mode 100644 static/archive/slcf.tar.gz create mode 100644 static/archive/slstatus_farajli-1.0.0.tar.gz create mode 100644 static/archive/st_farajli-0.9.2.0.tar.gz create mode 100644 static/favicon.ico create mode 100644 static/keys/id_ed25519.pub create mode 100644 static/keys/pubkey.asc create mode 100644 static/style.css delete mode 100644 style.css diff --git a/.gitignore b/.gitignore index 0b21e5f..8f1be87 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -*.html +__pycache__ install.mk -output/ +public/ diff --git a/BUGS b/BUGS deleted file mode 100644 index 9e6d90d..0000000 --- a/BUGS +++ /dev/null @@ -1,3 +0,0 @@ -- lists on mobile view has no margin -+ Makefile html:md dependency is broken with the introduction of out/ directory -+ Non-markdown files are not placed in the site (CV, Archive files, etc.) diff --git a/GNUmakefile b/GNUmakefile index 26ca3e9..0d49d96 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,17 +1,25 @@ -MARKDOWN = $(shell find . -name '*.md') -HTML = $(patsubst ./%.md, %.html, $(MARKDOWN)) +MD = $(shell find content/ -name '*.md') +PROPERMD = $(shell scripts/filter_proper_md $(MD)) +HTML = $(patsubst content/%.md, public/%.html, $(PROPERMD)) +STATICASSETS = $(shell find static -type f) +PUBLICASSETS = $(patsubst static/%, public/%, $(STATICASSETS)) -all: $(HTML) +# Calling make is used for making sure that index pages are build first +all: + $(MAKE) -f index_pages.mk + $(MAKE) pages -%.html: %.md build-page - sh build-page $< > $@ +pages: $(HTML) $(PUBLICASSETS) -output/: $(HTML) - echo $? | xargs -n 1 dirname | xargs -I _ mkdir -p $@_ - echo $? | xargs -n 1 | xargs -I _ cp _ $@_ - cp favicon.ico style.css $@ +public/%.html: content/%.md + mkdir -p $$(dirname $@) + scripts/build_page $< > $@ + +$(PUBLICASSETS): public/%: static/% + mkdir -p $$(dirname $@) + cp $< $@ clean: - rm -rf $(HTML) output/ + rm -rf public -.PHONY: all clean +.PHONY: all clean pages diff --git a/README.md b/README.md deleted file mode 100644 index 124c54e..0000000 --- a/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Simple website for personal usage - -## Building -Use [GNU make](https://www.gnu.org/software/make/). - -``` shell -make output/ -``` diff --git a/TODO b/TODO deleted file mode 100644 index 6f73381..0000000 --- a/TODO +++ /dev/null @@ -1,8 +0,0 @@ -+ build-page: move html output to a seperate directory -- store fonts on the website itself rather than using google fonts -- proper handling of posts -- add a post about coding styles -+ add pgp key -- add how to contact me (pgp signed mail) -- add copyright link -+ style.css: needs to be reorganised. diff --git a/archive/archive.md b/archive/archive.md deleted file mode 100644 index c27d9f2..0000000 --- a/archive/archive.md +++ /dev/null @@ -1,10 +0,0 @@ - - - - -  [slcf.tar.gz](/archive/slcf.tar.gz) -  [dwm-farajli-6.5.tar.gz](/archive/dwm-farajli-6.5.tar.gz) -  [st-farajli-0.9.2.tar.gz](/archive/st-farajli-0.9.2.tar.gz) -  [dmenu-farajli-5.3.tar.gz](/archive/dmenu-farajli-5.3.tar.gz) -  [slstatus-farajli-1.0.tar.gz](/archive/slstatus-farajli-1.0.tar.gz) -  [liberation_mono.zip](/archive/liberation_mono.zip) diff --git a/archive/dmenu-farajli-5.3.tar.gz b/archive/dmenu-farajli-5.3.tar.gz deleted file mode 100644 index 5748923..0000000 Binary files a/archive/dmenu-farajli-5.3.tar.gz and /dev/null differ diff --git a/archive/dwm-farajli-6.5.tar.gz b/archive/dwm-farajli-6.5.tar.gz deleted file mode 100644 index 29f4828..0000000 Binary files a/archive/dwm-farajli-6.5.tar.gz and /dev/null differ diff --git a/archive/liberation_mono.zip b/archive/liberation_mono.zip deleted file mode 100644 index 78d2afa..0000000 Binary files a/archive/liberation_mono.zip and /dev/null differ diff --git a/archive/slcf.tar.gz b/archive/slcf.tar.gz deleted file mode 100644 index f41c026..0000000 Binary files a/archive/slcf.tar.gz and /dev/null differ diff --git a/archive/slstatus-farajli-1.0.tar.gz b/archive/slstatus-farajli-1.0.tar.gz deleted file mode 100644 index f841992..0000000 Binary files a/archive/slstatus-farajli-1.0.tar.gz and /dev/null differ diff --git a/archive/st-farajli-0.9.2.tar.gz b/archive/st-farajli-0.9.2.tar.gz deleted file mode 100644 index 3ee5e2a..0000000 Binary files a/archive/st-farajli-0.9.2.tar.gz and /dev/null differ diff --git a/build-page b/build-page deleted file mode 100755 index 37763ae..0000000 --- a/build-page +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh - -filename="${1}" -title=$(< "${filename}" head -n1 | sed 's///') - -cat << EOF - - - - - - - - ${title} - - - - - - - -
Suleyman Farajli
- - -
- - -
- $(sed '1 s///' "${filename}" | smu) -
-


copyleft (c) 2024-2025 Suleyman Farajli

- - - -EOF diff --git a/content/archive/index.md b/content/archive/index.md new file mode 100644 index 0000000..bc3c1e6 --- /dev/null +++ b/content/archive/index.md @@ -0,0 +1,60 @@ +--- +title: "Archive" +slug: "archive" +--- + +This archive includes both my own project and third-party software that I use. + +## My Projects + +## SLCF + +- Description: Suleyman's Linux Configuration Files. +- Source: https://git.farajli.net/slcf +- Downloads + - [slcf.tar.gz](/archive/slcf.tar.gz) + +### DWM + +- Description: My build of Dynamic Window Manager. +- Source: https://git.farajli.net/dwm +- Downloads + - [dwm_farajli-6.5.0.tar.gz](/archive/dwm_farajli-6.5.0.tar.gz) + +### ST + +- Description: My build of Simple Terminal. +- Source: https://git.farajli.net/st +- Downloads + - [st_farajli-0.9.2.0.tar.gz](/archive/st_farajli-0.9.2.0.tar.gz) + +### DMenu + +- Description: My build of Dynamic Menu. +- Source: https://git.farajli.net/dmenu +- Downloads + - [dmenu_farajli-5.3.0.tar.gz](/archive/dmenu_farajli-5.3.0.tar.gz) + + +### SLStatus + +- Description: My build of SLStatus. +- Source: https://git.farajli.net/slstatus +- Downloads + - [dmenu_farajli-5.3.0.tar.gz](/archive/dmenu_farajli-5.3.0.tar.gz) + + +## Third-Party Software + +### Liberation Mono +- Description: The font I use in my desktop environment. +- Homepage: https://www.dafont.com/liberation-mono.font +- Mirror: + - [LiberationMono.tar.gz](/archive/LiberationMono.tar.gz) + +### Jetbrains Mono Nerd Font +- Description: The font required by neo-tree nvim plugin. +- Homepage: https://www.nerdfonts.com/ +- Mirror: + - [JetBrainsMono.tar.gz](/archive/JetBrainsMono.tar.gz) + (2024-08-15) diff --git a/content/home/index.md b/content/home/index.md new file mode 100644 index 0000000..88ad694 --- /dev/null +++ b/content/home/index.md @@ -0,0 +1,32 @@ +--- +title: "Home" +slug: "home" +css: | + time { + font-size: 16px; + color: #bbbbbb; + padding-right: 0.5em; + } + #email { + font-size: 16px; + padding-right: 3.4em; + color: #bbbbbb; + } + #github { + font-size: 16px; + padding-right: 2.8em; + color: #bbbbbb; + } +--- + +### posts + [Hosting an email server is not possible.](/posts/selfhostmail.html) + [Software I use.](/posts/software.html) + [I dislike modern smartphones.](/posts/nophone.html) + [Why I like Gentoo.](/posts/gentoo.html) + [New webiste.](/posts/website_created.html) + +### links and contact info + +email: [suleyman@farajli.net](mailto:suleyman@farajli.net) +github: [sfarajli](https://github.com/sfarajli) diff --git a/content/keys/index.md b/content/keys/index.md new file mode 100644 index 0000000..e728b61 --- /dev/null +++ b/content/keys/index.md @@ -0,0 +1,24 @@ +--- +title: "Public keys" +slug: "public-keys" +--- + +# GPG Key + +### suleyman@farajli.net + +- Created: 2025-05-27 +- Expires: 2027-01-01 +- Fingerprint: AE38 55F0 F5E9 F27C 5F4D CBC6 E340 C0B8 5F70 7B8C + +Import: +```curl https://farajli.net/keys/pubkey.asc | gpg --import``` + +Download: [pubkey.asc](https://farajli.net/keys/pubkey.asc) + +# SSH Key + +Add to authorized keys: +`curl https://farajli.net/keys/id_ed25519.pub >> ~/.ssh/authorized_keys` + +Download: [id_ed25519.pub](https://farajli.net/keys/id_ed25519.pub) diff --git a/content/posts/coding_standards.md b/content/posts/coding_standards.md new file mode 100644 index 0000000..728b7dd --- /dev/null +++ b/content/posts/coding_standards.md @@ -0,0 +1,54 @@ +--- +title: "Post Title" +slug: post-title +created: 2024-12-31 +updated: 2025-06-23 +description: "A brief summary of what this page is about." +tags: [linux, self-hosting, minimalism] +draft: true +--- + + +Here are my **personal** coding standards for some languages. + +## Interpreted languages +#### Never put the file extension to the source file instead use a shebang. +`` + #!/bin/sh + #!/bin/python3 + #!/bin/perl +`` + +## Posix shell +#### Always wrap variables with `"${}"` to prevent globbing. +`` + echo "${var}" + echo "${1}" + echo "${@}" +`` + +## Makefiles +#### If Makefile is fully posix complient and doesn't have anything extra add +`.POSIX:` to the beginning of the file + +## C +#### Use K&R style `if`s +`` + if (condition) { + do this; + do that; + do another; + } +`` +#### if only one line don't use curly braces. +`` + while (condition) + do this +`` + +`` + if (condition) + do this + else + do that +`` diff --git a/content/posts/gentoo.md b/content/posts/gentoo.md new file mode 100644 index 0000000..ee89d40 --- /dev/null +++ b/content/posts/gentoo.md @@ -0,0 +1,78 @@ +--- +title: "Why I like Gentoo." +slug: "gentoo" +created: 2024-09-06 +description: "Why I think source based distros are better." +tags: [Technology] +draft: false +--- + +### Why I prefer Gentoo over Arch. +A lot of people say very good things about gentoo linux, it is very well maintained, +It is more secure, It is lightweight and so on. But when it comes down to it, +very few people actually use gentoo, I think that is because they install it +and after a month or so they really get sick of waiting for the packages to compile +and they switch back to whatever they were using before. I know it because, +I had done that in the past, I dual-booted my machine with gentoo and arch linux +intending to only use gentoo, and arch only when I didn't have the time to wait +for the package to compile, but ended up only booting to arch and almost never +to gentoo, at that time if you were to ask me the best package manager +I would have unhesitatingly said arch's pacman, while I still think that pacman is the best +**binary** package manager +for the past few months I have started to really like gentoo and its package manager +portage and there are different reasons for that. + +### Compiling programs makes more sense than downloading binaries. +On unix-like operating systems you generally use +open-source software and that software is made to be compiled by the users specific +to their machines, but on binary based distros you use programs that are compiled for +you by someone else and again to me, personally, compiling just makes more sense. + +### It gives you more perspective to the program you use. +If you'd downloaded a binary package you would only be able to tell if a program is fast, +has enough features and so on, but you wouldn't have known how much time it takes +to compile, what the build dependencies are, and even sometimes the +programming language that it is written in. I do agree that knowing those abstract details +of a package is utterly useless for a typical end-user who is not a programmer +but for a programmer those details are very important, since you get to know what build systems are +faster what programming language compiles faster, builds better and sometimes you +get to learn some stuff that you didn't even know existed. You can build programs from source in other distros +as well but gentoo makes it easier and forces you to do that +and be honest, If you could install binary package in 10 seconds +you wouldn't even bother waiting for it to compile for 20 minutes. + +### You install less packages. +In order to avoid compilation you tent to install less pieces of software +resulting in more stable and more performant system. God forbid you if +you are using arch linux and have access to the AUR +(I had installed more than 2000 useless packages on my arch system). + +### It is more secure, lightweight and faster (at least in theory). +I have not noticed any significant difference in terms of performance +between gentoo and binary based distros and I kind of think that security +on client OSes is overrated, but for some few people these might be important +since you literally can skip some useless parts of a program (useless for you of course) +resulting in less bloated, therefore faster and more secure programs, but again I +don't really find it that important. + +### **No systemd**! +I am not against systemd but I prefer to not use it. +On gentoo the default init system is openrc and it works +with no problem. + +### Bad parts. +Like everything, it has some negative stuff about it as well, +those are + +- Compilation can take some time. +- Gentoo is the one of **the hardest** distro to manage. + +I am saying both of those with an asterisk, because +although I agree that there are some big pieces of software that you basically have to have +like a browser, (it took 6h to compile a browser on my machine) but most of the time +if software takes too much time to compile that indicates that it is +overcomplicated and you shouldn't even be using it. +Gentoo is hard to use but, that also means gentoo forces to know more, making you better at +system administration. + +So, that is all. diff --git a/content/posts/index.md b/content/posts/index.md new file mode 100644 index 0000000..31ebb2b --- /dev/null +++ b/content/posts/index.md @@ -0,0 +1,20 @@ +--- +title: "Posts" +slug: "posts" +css: | + time { + font-size: 16px; + color: #bbbbbb; + padding-right: 0.5em; + } +--- + [Hosting an email server is not possible.](/posts/selfhostmail.html) + + [Software I use.](/posts/software.html) + + [I dislike modern smartphones.](/posts/nophone.html) + + [Why I like Gentoo.](/posts/gentoo.html) + + [New webiste.](/posts/website_created.html) + diff --git a/content/posts/nophone.md b/content/posts/nophone.md new file mode 100644 index 0000000..9592805 --- /dev/null +++ b/content/posts/nophone.md @@ -0,0 +1,142 @@ +--- +title: "I dislike modern smartphones." +slug: "no-smart-phone" +created: 2024-09-25 +description: "Explaining why I prefer not to use a smartphone." +tags: [Technology] +draft: false +--- + + +### Why I absolutely hate smartphones. + +For the past few years, the question that I have been asked the most +is that "why don't you use a smartphone", but I've never really  +answered any of those questions, even though,  +I do have different reasons not to use one. + +The main point is that if you ever use any sort of properly +designed "normal" operating systems and hardware you can't really  +go back and use garbage computer operating systems or phones +without getting disgusted.  +With smartphones, it is even worse than toy-like computer OSes like windows +or mac, because with those systems you at least get some sort of  +proper hardware components like a keyboard,  +a monitor with "normal" screen ratio and so on. +But with phones, not only you get an operating system that is no better than  +trash, but also some very cringe way to interact with the hardware.  +(Yes, I am talking about sensor screens.) + +Now, let's talk about why + +- Operating systems +- Package Management +- User space applications +- Hardware +- Privacy and Security +Absolutely suck on "smart" phones. + +### Operating Systems +There are 2 main OSes for phones: iOS and Android, there are also some not widely used ones  +like legacy Windows Phone and even some open-source ones, though here, I shall only talk about the +first 2 that I have mentioned, but that should also be somewhat relevant  +to almost all the other phone OSes as well. + +**Android Sucks**! because, you can't even perform the most basic +computer functionalities  +like compiling very simple software, writing scripts, and so on, you don't even have +the root access to the phone you "own", but the company that sold you that has full  +access to the phone over the internet, that is basically like slavery with extra steps, lol. +Some people might say "Well, that is not a computer +you are not supposed to compile programs and write scripts!" I don't buy that argument +because, in reality, computers and phones are indeed the same thing, the way that they +function is the same, the way they connect with other computers is the same, +they use the same technologies to function (in fact, Android uses the Linux kernel). +The difference between properly written computer OSes and android is that  +computer OSes care about the users while phones are trying to keep you under control. +It is also worth mentioning that I am not talking about the pure open source Android +project, I am talking about Android, on which companies put a load of garbage to make  +it more "beneficial" for the company.   + +With iPhones, it's the same thing except it is even worse,  +it should be obvious why, apple! the single worst company  +that has ever existed, Apple is trying so hard to keep you  +inside of its garbage-like "ecosystem" by making it very hard  +and even sometimes impossible to connect with hardware/software +other than Apple's, and all these ***morons*** will be like  +> "BuT, DuuuuuDe, APpLE DeVIces WeRk WItH oTher AppLE DeViCes sO SMoOthLy"  +Yeah, by making it impossible to work with basically everything else +and you have to have apple garbage all around you. + +### Package Management +Android and iOS do have some sort of package management, +on Android, it's Play store (But you can also install packages using .apk format) +on iOS, you have app store.   +Google owns Play Store, and you have to have a google account to be able to use  +Play Store (which on Android you basically also have to), on iOS, Apple owns +app store.    +That might not seem like a huge deal, but it is. It basically means Google and Apple +have all the control of the programs uploaded to Play Store and app store respectively, +meaning that Google and Apple can block and even change the source code of some programs, +inject absolutely anything inside them.   +Those companies need profit no matter what, meaning they would do anything to  +get profit, even unethical stuff, and you are the one who let them do that to you. + +### User Space applications +By user space applications, I mean just the programs that people +install on smartphones. Frankly speaking, those programs are +just for normies who don't understand  +technology and advances users are completely ignored. Phone programs +are graphical, thus they use more ram and cpu and most of the time they are +full of advertisements (Xiaomi Phones even have ads in the system's gallery). +They are not privacy-respecting, bloated, and kind of useless.  +There is one program, however, that is worth talking about separately, and that is  +"WhatsApp". It is the most widely used messaging application, though it has absolutely +nothing extraordinary and some stuff that is even worse than an average messaging program. +Here are some bad stuff about it: + +- WhatsApp is not private, **at all**! +- You have to have a smartphone and a phone number. + +Imagine a piece of software requires you to have a phone to be able to use it, +that is basically like saying that a $400  device is a dependency of that program, +this is absolutely *nuts*. I find it quite absurd +that people don't find it absurd.  +> If a program as simple as a messaging app requires you to have +> a cell phone, you shouldn't even be using that, +> no matter how many people around you use it! + +### Hardware +Hardware of cellphones absolutely suck they are designed to be broken so easily you can +break them by accident, that is, of course,  +to sell more of them, they are nothing like old classic solid Nokia phones  +with buttons and stuff, instead you have only a screen and you touch on it  +which is very very cringe.   +I just want buttons to press, not touchscreens to touch.   +Another thing is that you can't upgrade your RAM or your storage and you're supposed to use overpriced +services like iCloud or Google Drive. + +### Privacy and security +Privacy just doesn't exist on smartphones; that is just a matter of fact. +If you use an iPhone, all your photos are sent to Apple servers and can be hacked  +(though not quite probable) since, they are not stored only on your local system +which makes it less secure as well, +On Android, people use Google Photos, which is basically as bad as iPhones. + +### Health +Phones are also bad for your health, I can't +tell you the specifics since I am not a doctor. +But it is common knowledge that phones are bad for you. + +### Good stuff about phones +The only good thing about a phone is its camera.  +though many people take too many useless pictures +resulting in a mess of data. Nonetheless, cameras are very useful +but it is not worth it to use a smartphone just because of that. + +### Summing it up +Smartphones are useless pieces of garbage that are overpriced, not privacy respecting and  +meant for normies who don't understand how technology +works, or at least how it should work, ***no offense***. +Even if you must use a smartphone, that doesn't change the fact that they are  +bad for you. diff --git a/content/posts/selfhostmail.md b/content/posts/selfhostmail.md new file mode 100644 index 0000000..f0469ef --- /dev/null +++ b/content/posts/selfhostmail.md @@ -0,0 +1,55 @@ +--- +title: "Hosting an email server is not possible." +slug: "hosting-email-server" +created: 2025-01-24 +description: "Explaining why don't host an email server." +tags: [Technology] +draft: false +--- + +### Reasons to not host your own email server. + +Last summer, I had successfully managed to host my email server but +a couple of days ago I completely removed everything from my server +and purchased an email hosting service. + +I'd like to share my experience with hosting an email server +and what makes the process an absolute nightmare. + +#### - It's hard to find an affordable VPS provider that doesn't block port 25. + +If you don't know anything about email, you need the port 25 to be open to send mails but +most server providers block it to reduce spam and the ones that don't costs more than +the usual ones. + +#### - Getting a domain and IP that is not blacklisted. + +If you have already bought a domain it might be blacklisted meaning that +all the mails you'll send is going to go right into the spam folder of the receiver. +It's the same for IP but chaining it is a lot easier than getting a new domain on most +server providers. + +#### - Not enough documentation is available and some is outdated. + +There isn't that much documentation for setting up an email server, I think that is +partially because of the process being so tough that no one really wants to document it +and there are so many commands involved in the process +even just a small update on one program can make the documentation outdated. + +#### - It's very hard to set up. +Configuring an email server was perhaps the hardest thing that I'd ever done +(even after finding the proper documentation), I spent weeks on that. + +#### - Almost certainly, your mails won't be delivered. + +Even after going through the very difficult process of finding the correct server provider, +documentation and setting everything up (DKIM, SPF etc.) you'll still end up in spams, +you might be able to pass spam filters of some email services, but you'll never feel +confident of sending mails because big email services sometimes update their spam filters +and you got to keep up with those as well, so it doesn't just end there when you set it up. + +#### Summing it up + +I'd gladly host an email server, but I just can't make it work half as good as the paid +email service providers. In the future I might try to do it again +(though I don't think the results will be different) but now I'll stick to email services. diff --git a/content/posts/software.md b/content/posts/software.md new file mode 100644 index 0000000..09f4f6c --- /dev/null +++ b/content/posts/software.md @@ -0,0 +1,82 @@ +--- +title: "Software I use." +slug: "software" +created: 2024-12-27 +description: "Software I recommend, use and some I dislike." +tags: [Technology] +draft: false +--- + + +Here are some of the programs I use, recommend and some I dislike. +You can get my configuration for most of these programs [here](https://git.farajli.net/slcf.git). + +### Criteria +For software to be usable for me it has to be: +1. Free and Open-source +1. Uncomplicated, simple to use +1. Lightweight +1. Fast + +### Operating systems +* [Arch Linux](https://archlinux.org): The best linux distro for most people, since installing packages is very convenient using the AUR and has a great wiki. +* [Gentoo](https://gentoo.org): Unique operating system with a proper wiki, see my [post](../posts/gentoo.html) about it. +* [Void](https://voidlinux.org): Great linux distros free from filthy systemd and glibc. +* [Debian](https://www.debian.org/): Easy to install and use, the best distro for beginners. +* [FreeBSD](https://www.freebsd.org/): Simple operating system with a clean and elegant codebase. +* Ubuntu: Debian done wrong with snaps. +* Manjaro: Same as ubuntu except even worse doesn't even work properly. +* MacOS: BSD done wrong, with apple garbage. +* Windows: Graphical trash. + +### Programming languages +* C: Portable assembly, basically the default programming language for unix. +* Go: Modern version of C, very convenient and safe to write programs in. +* Posix Shell: Concise and convenient for scripts and small programs. +* C++: Bloated, not safe and a mess, literally every bad piece of software I've ever used was written in C++. + +### Window managers +* [DWM](https://dwm.suckless.org): At first a little hard to configure but at the end totally worth it. +* [BSPWM](https://github.com/baskerville/bspwm): Best static window manager, easy to configure with and an extraordinary tool called bspc. +* [i3wm](https://i3wm.org/): An average window manager, good for beginners. + +### Text editors +* vim and [nvim](https://neovim.io/): Just way too convenient to be real. +* JetBrains IDEs: Bloated, heavy, overcomplicated and costs money(?). + +### Browser +* [Qutebrowser](https://www.qutebrowser.org/): Has vim-keybinds making it very convenient to use. +* [Firefox](https://www.mozilla.org/en-GB/firefox/new/): Sometimes, you need a bloated browser to view bloated sites. + +### Terminal and terminal Utilities +* [st](https://st.suckless.org/): Terminal emulator though a little hard to configure. +* [alacritty](https://alacritty.org/): Terminal emulator which works perfectly fine without any configuration. +* [cmus](https://cmus.github.io/): Music player. +* [zsh](https://www.zsh.org/): Interactive shell. +* [dash](http://gondor.apana.org.au/~herbert/dash/): Shell script interpreter. +* [lf](https://github.com/gokcehan/lf): File manager. +* [translate-shell](https://github.com/soimort/translate-shell): Cli translator. + +### Xorg utilities +* [dmenu](https://tools.suckless.org/dmenu/): Interactive menu to select items. +* [slstatus](https://tools.suckless.org/slstatus/): Status monitor. +* [mpv](https://mpv.io/): Media player. +* [nsxiv](https://nsxiv.codeberg.page/): Image viewer. +* [zathura](https://pwmt.org/projects/zathura/): pdf viewer. + +### Other +* [pandoc](https://pandoc.org): Document converter. +* [git](https://git-scm.com/): Version control system. + +### About hardware +I don't really care about hardware because it is easily replacable and I am fine with whatever just works, +as long as it not overpriced. If you use proper software any hardware should get the job done. + +I am not going to shill thinkpads like everyone else, though I think they are fine, to me only 2 things +set apart thinkpads from all the other laptops, firstly, the fact that they are librebootable and, secondly, +they are really cheap. + +### See also +* [Suckless Rocks page](https://suckless.org/rocks/) +* [Cat-v harmful stuff](https://harmful.cat-v.org/software/) +* [Luke Smith's Post](https://lukesmith.xyz/programs/) diff --git a/content/posts/website_created.md b/content/posts/website_created.md new file mode 100644 index 0000000..fa42637 --- /dev/null +++ b/content/posts/website_created.md @@ -0,0 +1,28 @@ +--- +title: "New webiste." +slug: "new-website" +created: 2024-06-09 +description: "Announcing my new website." +tags: [Technology] +draft: false +--- + + +### I have a website! + +As of June 13th 2024, the best website on the internet has officially been created. + +This site is not made by using one of those fancy and bloated site generators +or any garbage like that, it was created, quite surprisingly, by writing HTML and +CSS, as it is supposed to be, though it is a little inefficient, error-prone +and a pain writing HTML and adding boilerplate code to each file, +thus it's quite probable that I shall write a small program to do that automatically +for me in the future, but that program won't be the same as bloated site generators, +in fact, it'd basically be the same as manual way of writing HTML. +Here are some of the advantages of my website compared to a lot of contemporary ones. + +- Doesn't fill your entire ram. +- Doesn't have ads, tracker or unnecessary JavaScript. +- Loads **Fast**! + +As of now, there isn't that much of content here, but I will probably add a lot more. diff --git a/favicon.ico b/favicon.ico deleted file mode 100644 index 2720d38..0000000 Binary files a/favicon.ico and /dev/null differ diff --git a/home/index.md b/home/index.md deleted file mode 100644 index 7aa22db..0000000 --- a/home/index.md +++ /dev/null @@ -1,22 +0,0 @@ - - -An engineering student interested in languages and literally anything about computers. - -### top posts - - - - - - - -
Reasons not to host an email server.
Software I use.
Why I absolutely hate smartphones.
Why I use gentoo.
Website Created!
- -### links and contact info - - - - - - -
emailsuleyman@farajli.net
sshSSH key
pgpPGP key
githubsfarajli
diff --git a/home/pgp.md b/home/pgp.md deleted file mode 100644 index a1e1cdc..0000000 --- a/home/pgp.md +++ /dev/null @@ -1,19 +0,0 @@ - - -### Public PGP key - ------BEGIN PGP PUBLIC KEY BLOCK----- - -mDMEZpOcQBYJKwYBBAHaRw8BAQdANOYO+BBsD5/cBecLZWT132Ekqsau -2/70Cn20L3N1bGV5bWFuIChkb2VzbnQgZXhwaXJlKSA8c3VsZXltYW5A -aS5uZXQ+iJMEExYKADsWIQSfcckR5au3BoMQHHCmjrGkrd+n3wUCZpOc -CQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRCmjrGkrd+n3xUiAQD8 -nVzoR1QgOtAN7HImJqB4qHmF+H2bzQ3sLwD+NvTapc6NUqFnLIfrB72w -FejuBdPZUicvVQ+4OARmk5xAEgorBgEEAZdVAQUBAQdAo/5SvzOSNeDP -ZWHQ0KNHClMKx8hDyoDERkkDAQgHiHgEGBYKACAWIQSfcckR5au3BoMQ -rd+n3wUCZpOcQAIbDAAKCRCmjrGkrd+n39NtAP40B28zkkjmqPVgn6lE -kvPg2XDGzDKS69RXIgD+LAJUmWskXG8S6mZbAbs4UVyfdqEmCYHRwGGK - -=aeqA - ------END PGP PUBLIC KEY BLOCK----- diff --git a/home/ssh.md b/home/ssh.md deleted file mode 100644 index 0615776..0000000 --- a/home/ssh.md +++ /dev/null @@ -1,5 +0,0 @@ - - -### Public ssh key - -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILPpdEyLRGs3GnlvL4aDR06dYCDv8Rag1d31oSDgkmC/ suleyman@farajli.net diff --git a/index_pages.mk b/index_pages.mk new file mode 100644 index 0000000..e8e0c54 --- /dev/null +++ b/index_pages.mk @@ -0,0 +1,5 @@ +POSTS = $(filter-out content/posts/index.md, $(wildcard content/posts/*.md)) +GENERATEDMD = content/posts/index.md + +content/posts/index.md: $(POSTS) + scripts/generate_post_index > $@ diff --git a/posts/2024_new_year.md b/posts/2024_new_year.md deleted file mode 100644 index 3f9c019..0000000 --- a/posts/2024_new_year.md +++ /dev/null @@ -1,4 +0,0 @@ - - -Happy new year, everyone! -Especially, the ones that I love. diff --git a/posts/coding_standards.md b/posts/coding_standards.md deleted file mode 100644 index aa2e1fd..0000000 --- a/posts/coding_standards.md +++ /dev/null @@ -1,43 +0,0 @@ -Here are my **personal** coding standards for some languages. - -## Interpreted languages -#### Never put the file extension to the source file instead use a shebang. -`` - #!/bin/sh - #!/bin/python3 - #!/bin/perl -`` - -## Posix shell -#### Always wrap variables with `"${}"` to prevent globbing. -`` - echo "${var}" - echo "${1}" - echo "${@}" -`` - -## Makefiles -#### If Makefile is fully posix complient and doesn't have anything extra add -`.POSIX:` to the beginning of the file - -## C -#### Use K&R style `if`s -`` - if (condition) { - do this; - do that; - do another; - } -`` -#### if only one line don't use curly braces. -`` - while (condition) - do this -`` - -`` - if (condition) - do this - else - do that -`` diff --git a/posts/gentoo.md b/posts/gentoo.md deleted file mode 100644 index d38ddce..0000000 --- a/posts/gentoo.md +++ /dev/null @@ -1,71 +0,0 @@ - - -### Why I prefer Gentoo over Arch. -A lot of people say very good things about gentoo linux, it is very well maintained, -It is more secure, It is lightweight and so on. But when it comes down to it, -very few people actually use gentoo, I think that is because they install it -and after a month or so they really get sick of waiting for the packages to compile -and they switch back to whatever they were using before. I know it because, -I had done that in the past, I dual-booted my machine with gentoo and arch linux -intending to only use gentoo, and arch only when I didn't have the time to wait -for the package to compile, but ended up only booting to arch and almost never -to gentoo, at that time if you were to ask me the best package manager -I would have unhesitatingly said arch's pacman, while I still think that pacman is the best -**binary** package manager -for the past few months I have started to really like gentoo and its package manager -portage and there are different reasons for that. - -### Compiling programs makes more sense than downloading binaries. -On unix-like operating systems you generally use -open-source software and that software is made to be compiled by the users specific -to their machines, but on binary based distros you use programs that are compiled for -you by someone else and again to me, personally, compiling just makes more sense. - -### It gives you more perspective to the program you use. -If you'd downloaded a binary package you would only be able to tell if a program is fast, -has enough features and so on, but you wouldn't have known how much time it takes -to compile, what the build dependencies are, and even sometimes the -programming language that it is written in. I do agree that knowing those abstract details -of a package is utterly useless for a typical end-user who is not a programmer -but for a programmer those details are very important, since you get to know what build systems are -faster what programming language compiles faster, builds better and sometimes you -get to learn some stuff that you didn't even know existed. You can build programs from source in other distros -as well but gentoo makes it easier and forces you to do that -and be honest, If you could install binary package in 10 seconds -you wouldn't even bother waiting for it to compile for 20 minutes. - -### You install less packages. -In order to avoid compilation you tent to install less pieces of software -resulting in more stable and more performant system. God forbid you if -you are using arch linux and have access to the AUR -(I had installed more than 2000 useless packages on my arch system). - -### It is more secure, lightweight and faster (at least in theory). -I have not noticed any significant difference in terms of performance -between gentoo and binary based distros and I kind of think that security -on client OSes is overrated, but for some few people these might be important -since you literally can skip some useless parts of a program (useless for you of course) -resulting in less bloated, therefore faster and more secure programs, but again I -don't really find it that important. - -### **No systemd**! -I am not against systemd but I prefer to not use it. -On gentoo the default init system is openrc and it works -with no problem. - -### Bad parts. -Like everything, it has some negative stuff about it as well, -those are - -- Compilation can take some time. -- Gentoo is the one of **the hardest** distro to manage. - -I am saying both of those with an asterisk, because -although I agree that there are some big pieces of software that you basically have to have -like a browser, (it took 6h to compile a browser on my machine) but most of the time -if software takes too much time to compile that indicates that it is -overcomplicated and you shouldn't even be using it. -Gentoo is hard to use but, that also means gentoo forces to know more, making you better at -system administration. - -So, that is all. diff --git a/posts/nophone.md b/posts/nophone.md deleted file mode 100644 index 423e3ca..0000000 --- a/posts/nophone.md +++ /dev/null @@ -1,134 +0,0 @@ - - -### Why I absolutely hate smartphones. - -For the past few years, the question that I have been asked the most -is that "why don't you use a smartphone", but I've never really  -answered any of those questions, even though,  -I do have different reasons not to use one. - -The main point is that if you ever use any sort of properly -designed "normal" operating systems and hardware you can't really  -go back and use garbage computer operating systems or phones -without getting disgusted.  -With smartphones, it is even worse than toy-like computer OSes like windows -or mac, because with those systems you at least get some sort of  -proper hardware components like a keyboard,  -a monitor with "normal" screen ratio and so on. -But with phones, not only you get an operating system that is no better than  -trash, but also some very cringe way to interact with the hardware.  -(Yes, I am talking about sensor screens.) - -Now, let's talk about why - -- Operating systems -- Package Management -- User space applications -- Hardware -- Privacy and Security -Absolutely suck on "smart" phones. - -### Operating Systems -There are 2 main OSes for phones: iOS and Android, there are also some not widely used ones  -like legacy Windows Phone and even some open-source ones, though here, I shall only talk about the -first 2 that I have mentioned, but that should also be somewhat relevant  -to almost all the other phone OSes as well. - -**Android Sucks**! because, you can't even perform the most basic -computer functionalities  -like compiling very simple software, writing scripts, and so on, you don't even have -the root access to the phone you "own", but the company that sold you that has full  -access to the phone over the internet, that is basically like slavery with extra steps, lol. -Some people might say "Well, that is not a computer -you are not supposed to compile programs and write scripts!" I don't buy that argument -because, in reality, computers and phones are indeed the same thing, the way that they -function is the same, the way they connect with other computers is the same, -they use the same technologies to function (in fact, Android uses the Linux kernel). -The difference between properly written computer OSes and android is that  -computer OSes care about the users while phones are trying to keep you under control. -It is also worth mentioning that I am not talking about the pure open source Android -project, I am talking about Android, on which companies put a load of garbage to make  -it more "beneficial" for the company.   - -With iPhones, it's the same thing except it is even worse,  -it should be obvious why, apple! the single worst company  -that has ever existed, Apple is trying so hard to keep you  -inside of its garbage-like "ecosystem" by making it very hard  -and even sometimes impossible to connect with hardware/software -other than Apple's, and all these ***morons*** will be like  -> "BuT, DuuuuuDe, APpLE DeVIces WeRk WItH oTher AppLE DeViCes sO SMoOthLy"  -Yeah, by making it impossible to work with basically everything else -and you have to have apple garbage all around you. - -### Package Management -Android and iOS do have some sort of package management, -on Android, it's Play store (But you can also install packages using .apk format) -on iOS, you have app store.   -Google owns Play Store, and you have to have a google account to be able to use  -Play Store (which on Android you basically also have to), on iOS, Apple owns -app store.    -That might not seem like a huge deal, but it is. It basically means Google and Apple -have all the control of the programs uploaded to Play Store and app store respectively, -meaning that Google and Apple can block and even change the source code of some programs, -inject absolutely anything inside them.   -Those companies need profit no matter what, meaning they would do anything to  -get profit, even unethical stuff, and you are the one who let them do that to you. - -### User Space applications -By user space applications, I mean just the programs that people -install on smartphones. Frankly speaking, those programs are -just for normies who don't understand  -technology and advances users are completely ignored. Phone programs -are graphical, thus they use more ram and cpu and most of the time they are -full of advertisements (Xiaomi Phones even have ads in the system's gallery). -They are not privacy-respecting, bloated, and kind of useless.  -There is one program, however, that is worth talking about separately, and that is  -"WhatsApp". It is the most widely used messaging application, though it has absolutely -nothing extraordinary and some stuff that is even worse than an average messaging program. -Here are some bad stuff about it: - -- WhatsApp is not private, **at all**! -- You have to have a smartphone and a phone number. - -Imagine a piece of software requires you to have a phone to be able to use it, -that is basically like saying that a $400  device is a dependency of that program, -this is absolutely *nuts*. I find it quite absurd -that people don't find it absurd.  -> If a program as simple as a messaging app requires you to have -> a cell phone, you shouldn't even be using that, -> no matter how many people around you use it! - -### Hardware -Hardware of cellphones absolutely suck they are designed to be broken so easily you can -break them by accident, that is, of course,  -to sell more of them, they are nothing like old classic solid Nokia phones  -with buttons and stuff, instead you have only a screen and you touch on it  -which is very very cringe.   -I just want buttons to press, not touchscreens to touch.   -Another thing is that you can't upgrade your RAM or your storage and you're supposed to use overpriced -services like iCloud or Google Drive. - -### Privacy and security -Privacy just doesn't exist on smartphones; that is just a matter of fact. -If you use an iPhone, all your photos are sent to Apple servers and can be hacked  -(though not quite probable) since, they are not stored only on your local system -which makes it less secure as well, -On Android, people use Google Photos, which is basically as bad as iPhones. - -### Health -Phones are also bad for your health, I can't -tell you the specifics since I am not a doctor. -But it is common knowledge that phones are bad for you. - -### Good stuff about phones -The only good thing about a phone is its camera.  -though many people take too many useless pictures -resulting in a mess of data. Nonetheless, cameras are very useful -but it is not worth it to use a smartphone just because of that. - -### Summing it up -Smartphones are useless pieces of garbage that are overpriced, not privacy respecting and  -meant for normies who don't understand how technology -works, or at least how it should work, ***no offense***. -Even if you must use a smartphone, that doesn't change the fact that they are  -bad for you. diff --git a/posts/posts.md b/posts/posts.md deleted file mode 100644 index 4c19873..0000000 --- a/posts/posts.md +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - -
Reasons not to host an email server.
Happy new year!
Software I use.
Why I absolutely hate smartphones.
Why I use gentoo.
Website Created!
diff --git a/posts/selfhostmail.md b/posts/selfhostmail.md deleted file mode 100644 index 98285a4..0000000 --- a/posts/selfhostmail.md +++ /dev/null @@ -1,48 +0,0 @@ - - -### Reasons to not host your own email server. - -Last summer, I had successfully managed to host my email server but -a couple of days ago I completely removed everything from my server -and purchased an email hosting service. - -I'd like to share my experience with hosting an email server -and what makes the process an absolute nightmare. - -#### - It's hard to find an affordable VPS provider that doesn't block port 25. - -If you don't know anything about email, you need the port 25 to be open to send mails but -most server providers block it to reduce spam and the ones that don't costs more than -the usual ones. - -#### - Getting a domain and IP that is not blacklisted. - -If you have already bought a domain it might be blacklisted meaning that -all the mails you'll send is going to go right into the spam folder of the receiver. -It's the same for IP but chaining it is a lot easier than getting a new domain on most -server providers. - -#### - Not enough documentation is available and some is outdated. - -There isn't that much documentation for setting up an email server, I think that is -partially because of the process being so tough that no one really wants to document it -and there are so many commands involved in the process -even just a small update on one program can make the documentation outdated. - -#### - It's very hard to set up. -Configuring an email server was perhaps the hardest thing that I'd ever done -(even after finding the proper documentation), I spent weeks on that. - -#### - Almost certainly, your mails won't be delivered. - -Even after going through the very difficult process of finding the correct server provider, -documentation and setting everything up (DKIM, SPF etc.) you'll still end up in spams, -you might be able to pass spam filters of some email services, but you'll never feel -confident of sending mails because big email services sometimes update their spam filters -and you got to keep up with those as well, so it doesn't just end there when you set it up. - -#### Summing it up - -I'd gladly host an email server, but I just can't make it work half as good as the paid -email service providers. In the future I might try to do it again -(though I don't think the results will be different) but now I'll stick to email services. diff --git a/posts/software.md b/posts/software.md deleted file mode 100644 index 7f165ad..0000000 --- a/posts/software.md +++ /dev/null @@ -1,74 +0,0 @@ - - -Here are some of the programs I use, recommend and some I dislike. -You can get my configuration for most of these programs [here](https://git.farajli.net/slcf.git). - -### Criteria -For software to be usable for me it has to be: -1. Free and Open-source -1. Uncomplicated, simple to use -1. Lightweight -1. Fast - -### Operating systems -* [Arch Linux](https://archlinux.org): The best linux distro for most people, since installing packages is very convenient using the AUR and has a great wiki. -* [Gentoo](https://gentoo.org): Unique operating system with a proper wiki, see my [post](../posts/gentoo.html) about it. -* [Void](https://voidlinux.org): Great linux distros free from filthy systemd and glibc. -* [Debian](https://www.debian.org/): Easy to install and use, the best distro for beginners. -* [FreeBSD](https://www.freebsd.org/): Simple operating system with a clean and elegant codebase. -* Ubuntu: Debian done wrong with snaps. -* Manjaro: Same as ubuntu except even worse doesn't even work properly. -* MacOS: BSD done wrong, with apple garbage. -* Windows: Graphical trash. - -### Programming languages -* C: Portable assembly, basically the default programming language for unix. -* Go: Modern version of C, very convenient and safe to write programs in. -* Posix Shell: Concise and convenient for scripts and small programs. -* C++: Bloated, not safe and a mess, literally every bad piece of software I've ever used was written in C++. - -### Window managers -* [DWM](https://dwm.suckless.org): At first a little hard to configure but at the end totally worth it. -* [BSPWM](https://github.com/baskerville/bspwm): Best static window manager, easy to configure with and an extraordinary tool called bspc. -* [i3wm](https://i3wm.org/): An average window manager, good for beginners. - -### Text editors -* vim and [nvim](https://neovim.io/): Just way too convenient to be real. -* JetBrains IDEs: Bloated, heavy, overcomplicated and costs money(?). - -### Browser -* [Qutebrowser](https://www.qutebrowser.org/): Has vim-keybinds making it very convenient to use. -* [Firefox](https://www.mozilla.org/en-GB/firefox/new/): Sometimes, you need a bloated browser to view bloated sites. - -### Terminal and terminal Utilities -* [st](https://st.suckless.org/): Terminal emulator though a little hard to configure. -* [alacritty](https://alacritty.org/): Terminal emulator which works perfectly fine without any configuration. -* [cmus](https://cmus.github.io/): Music player. -* [zsh](https://www.zsh.org/): Interactive shell. -* [dash](http://gondor.apana.org.au/~herbert/dash/): Shell script interpreter. -* [lf](https://github.com/gokcehan/lf): File manager. -* [translate-shell](https://github.com/soimort/translate-shell): Cli translator. - -### Xorg utilities -* [dmenu](https://tools.suckless.org/dmenu/): Interactive menu to select items. -* [slstatus](https://tools.suckless.org/slstatus/): Status monitor. -* [mpv](https://mpv.io/): Media player. -* [nsxiv](https://nsxiv.codeberg.page/): Image viewer. -* [zathura](https://pwmt.org/projects/zathura/): pdf viewer. - -### Other -* [pandoc](https://pandoc.org): Document converter. -* [git](https://git-scm.com/): Version control system. - -### About hardware -I don't really care about hardware because it is easily replacable and I am fine with whatever just works, -as long as it not overpriced. If you use proper software any hardware should get the job done. - -I am not going to shill thinkpads like everyone else, though I think they are fine, to me only 2 things -set apart thinkpads from all the other laptops, firstly, the fact that they are librebootable and, secondly, -they are really cheap. - -### See also -* [Suckless Rocks page](https://suckless.org/rocks/) -* [Cat-v harmful stuff](https://harmful.cat-v.org/software/) -* [Luke Smith's Post](https://lukesmith.xyz/programs/) diff --git a/posts/website_created.md b/posts/website_created.md deleted file mode 100644 index 14f4c3b..0000000 --- a/posts/website_created.md +++ /dev/null @@ -1,20 +0,0 @@ - - -### I have a website! - -As of June 13th 2024, the best website on the internet has officially been created. - -This site is not made by using one of those fancy and bloated site generators -or any garbage like that, it was created, quite surprisingly, by writing HTML and -CSS, as it is supposed to be, though it is a little inefficient, error-prone -and a pain writing HTML and adding boilerplate code to each file, -thus it's quite probable that I shall write a small program to do that automatically -for me in the future, but that program won't be the same as bloated site generators, -in fact, it'd basically be the same as manual way of writing HTML. -Here are some of the advantages of my website compared to a lot of contemporary ones. - -- Doesn't fill your entire ram. -- Doesn't have ads, tracker or unnecessary JavaScript. -- Loads **Fast**! - -As of now, there isn't that much of content here, but I will probably add a lot more. diff --git a/public/archive/slcf.tar.gz b/public/archive/slcf.tar.gz new file mode 100644 index 0000000..f41c026 Binary files /dev/null and b/public/archive/slcf.tar.gz differ diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..2720d38 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/keys/id_ed25519.pub b/public/keys/id_ed25519.pub new file mode 100644 index 0000000..923d50c --- /dev/null +++ b/public/keys/id_ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILPpdEyLRGs3GnlvL4aDR06dYCDv8Rag1d31oSDgkmC/ suleyman@farajli.net diff --git a/public/keys/pubkey.asc b/public/keys/pubkey.asc new file mode 100644 index 0000000..df2f9fb --- /dev/null +++ b/public/keys/pubkey.asc @@ -0,0 +1,86 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +58KbeUOtcSF5k/beMBAEFWpmN4NRZhg= +=z7yo +-----END PGP PUBLIC KEY BLOCK----- diff --git a/public/style.css b/public/style.css new file mode 100644 index 0000000..e23d743 --- /dev/null +++ b/public/style.css @@ -0,0 +1,88 @@ +/* +* Stylesheet of farajli.net +*/ + +/* FIXME: Don't use google fonts */ +@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@370&display=swap'); + +.jetbrains-mono { + font-family: "JetBrains Mono", serif; + font-optical-sizing: auto; + font-weight: 370; + font-style: normal; +} + +body { + font-family: "JetBrains Mono"; + font-size: 18px; + width: 60em; + display: block; + background-color: #1c1c1c; /* Almost Black */ + color: #ffffff; /* White */ + padding-left: 1em; + margin: auto; +} + +a { + text-decoration: none; + color: #5E81AC; /* Blue */ +} + +a:hover { + color: #B48EAD; /* Purple */ +} + +ul, ol { + margin: 0; + padding: 0; + list-style-position: inside; /* optional: keeps bullets/numbers inside */ +} + +li > ul, +li > ol { + margin-left: 1.2em; /* or adjust as needed */ + padding-left: 1em; +} + +.menu_item { + color: #BB6767; /* Red */ + /* font-weight: bold; */ + padding: 0.4em; + padding-right: 3em; + font-size: 20px; + margin-right: 0.2em; + margin-left: 0.2em; +} + +.right_menu_item { + float: right; + padding-right: 1em; +} + +#header-name { + text-align: left; + font-size: 25px; + padding-top: 20px; + color: #FFFFFF; /* White */ + font-weight: normal; +} + +#quote { + font-size: 20px; + text-align: right; + color: #C0C0C0; /* Darkish gray */ + padding-top: 20px; + font-weight: 430; +} + +#bar{ + width: 100%; + line-height: 35px; +} + +#copyleft { + color: #696969; /* Dark Gray */ + /* display: block; */ + margin-top: 2em; + margin-bottom: 1em; +} diff --git a/scripts/__pycache__/boiler.cpython-313.pyc b/scripts/__pycache__/boiler.cpython-313.pyc new file mode 100644 index 0000000..28bdca1 Binary files /dev/null and b/scripts/__pycache__/boiler.cpython-313.pyc differ diff --git a/scripts/__pycache__/parse_frontmatter.cpython-313.pyc b/scripts/__pycache__/parse_frontmatter.cpython-313.pyc new file mode 100644 index 0000000..3d7cd2e Binary files /dev/null and b/scripts/__pycache__/parse_frontmatter.cpython-313.pyc differ diff --git a/scripts/boiler.py b/scripts/boiler.py new file mode 100644 index 0000000..b5d75f4 --- /dev/null +++ b/scripts/boiler.py @@ -0,0 +1,55 @@ +import textwrap + +def print_html_head(title, style=None): + print(textwrap.dedent(f"""\ + + + + + + + + {title}""")) + + if style: + print(textwrap.dedent(f"""\ + """)) + + print(textwrap.dedent("""\ + + + + + + + +
Suleyman Farajli
+ + +
+ + +
""")) + +def print_html_tail(): + print(textwrap.dedent("""\ +
+

+ + copyleft (c) 2024-2025 Suleyman Farajli + +

+ + """)) diff --git a/scripts/build_page b/scripts/build_page new file mode 100755 index 0000000..51be92c --- /dev/null +++ b/scripts/build_page @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 + +import boiler +from parse_frontmatter import parse_frontmatter +from pathlib import Path +import subprocess +import sys + +script_dir = Path(__file__).resolve().parent +filepath = Path(sys.argv[1]).resolve() + +# Parse frontmatter and skip draft posts +frontmatter = parse_frontmatter(filepath) +if frontmatter.get("draft"): + print(f"{filepath}: is draft", file=sys.stderr) + sys.exit(1) + +if not frontmatter.get("title"): + print(f"{filepath}: title is missing", file=sys.stderr) + sys.exit(1) + +boiler.print_html_head(frontmatter["title"], frontmatter.get("css")) + +# Read file contents and strip frontmatter manually +inside_frontmatter = False +content = [] + +with open(filepath, encoding="utf-8") as f: + for line in f: + if line.strip() == "---": + inside_frontmatter = not inside_frontmatter + continue + if not inside_frontmatter: + content.append(line) + +# Convert Markdown to HTML using `smu` +html = subprocess.run( + ["smu"], + input="".join(content), + text=True, + capture_output=True +).stdout + +print(html, end="") +boiler.print_html_tail() diff --git a/scripts/filter_proper_md b/scripts/filter_proper_md new file mode 100755 index 0000000..ed1be7f --- /dev/null +++ b/scripts/filter_proper_md @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 + +import sys +from parse_frontmatter import parse_frontmatter +from pathlib import Path + +def isproper(file): + frontmatter = parse_frontmatter(file) + if not frontmatter.get("draft"): + print(file) + +script_dir = Path(__file__).resolve().parent +for arg in sys.argv[1:]: + isproper(arg) diff --git a/scripts/generate_post_index b/scripts/generate_post_index new file mode 100755 index 0000000..44aa756 --- /dev/null +++ b/scripts/generate_post_index @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 + +from parse_frontmatter import parse_frontmatter +from pathlib import Path + +def generate_post_index(): + script_dir = Path(__file__).parent.resolve() + posts_directory = script_dir / "../content/posts" + posts = [] + for file in posts_directory.iterdir(): + if file.is_file() and file.name != "index.md": + frontmatter=parse_frontmatter(file.resolve()) + frontmatter["filename"] = file.name + if frontmatter["draft"]: + continue + posts.append(frontmatter) + + sorted_posts = sorted(posts, key=lambda x: x["created"], reverse=True) + + for i in sorted_posts: + html_file = i['filename'].replace(".md", ".html") + print(f" [{i['title']}](/posts/{html_file})\n") + +print("""--- +title: "Posts" +slug: "posts" +css: | + time { + font-size: 16px; + color: #bbbbbb; + padding-right: 0.5em; + } +---""") + +generate_post_index() diff --git a/scripts/parse_frontmatter.py b/scripts/parse_frontmatter.py new file mode 100644 index 0000000..2d5c60e --- /dev/null +++ b/scripts/parse_frontmatter.py @@ -0,0 +1,19 @@ +import yaml + +def parse_frontmatter(filepath): + with open(filepath, 'r', encoding='utf-8') as f: + lines = f.readlines() + + if not lines or lines[0].strip() != '---': + return {} + + frontmatter_lines = [] + for line in lines[1:]: + if line.strip() == '---': + break + frontmatter_lines.append(line) + + frontmatter_str = ''.join(frontmatter_lines) + frontmatter = yaml.safe_load(frontmatter_str) or {} + + return frontmatter diff --git a/static/archive/JetBrainsMono.tar.gz b/static/archive/JetBrainsMono.tar.gz new file mode 100644 index 0000000..0847dc3 Binary files /dev/null and b/static/archive/JetBrainsMono.tar.gz differ diff --git a/static/archive/LiberationMono.tar.gz b/static/archive/LiberationMono.tar.gz new file mode 100644 index 0000000..8810a17 Binary files /dev/null and b/static/archive/LiberationMono.tar.gz differ diff --git a/static/archive/dmenu_farajli-5.3.0.tar.gz b/static/archive/dmenu_farajli-5.3.0.tar.gz new file mode 100644 index 0000000..28705a2 Binary files /dev/null and b/static/archive/dmenu_farajli-5.3.0.tar.gz differ diff --git a/static/archive/dwm_farajli-6.5.0.tar.gz b/static/archive/dwm_farajli-6.5.0.tar.gz new file mode 100644 index 0000000..14b8e8a Binary files /dev/null and b/static/archive/dwm_farajli-6.5.0.tar.gz differ diff --git a/static/archive/slcf.tar.gz b/static/archive/slcf.tar.gz new file mode 100644 index 0000000..f41c026 Binary files /dev/null and b/static/archive/slcf.tar.gz differ diff --git a/static/archive/slstatus_farajli-1.0.0.tar.gz b/static/archive/slstatus_farajli-1.0.0.tar.gz new file mode 100644 index 0000000..6e27da0 Binary files /dev/null and b/static/archive/slstatus_farajli-1.0.0.tar.gz differ diff --git a/static/archive/st_farajli-0.9.2.0.tar.gz b/static/archive/st_farajli-0.9.2.0.tar.gz new file mode 100644 index 0000000..a43a0f4 Binary files /dev/null and b/static/archive/st_farajli-0.9.2.0.tar.gz differ diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000..2720d38 Binary files /dev/null and b/static/favicon.ico differ diff --git a/static/keys/id_ed25519.pub b/static/keys/id_ed25519.pub new file mode 100644 index 0000000..923d50c --- /dev/null +++ b/static/keys/id_ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILPpdEyLRGs3GnlvL4aDR06dYCDv8Rag1d31oSDgkmC/ suleyman@farajli.net diff --git a/static/keys/pubkey.asc b/static/keys/pubkey.asc new file mode 100644 index 0000000..df2f9fb --- /dev/null +++ b/static/keys/pubkey.asc @@ -0,0 +1,86 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +58KbeUOtcSF5k/beMBAEFWpmN4NRZhg= +=z7yo +-----END PGP PUBLIC KEY BLOCK----- diff --git a/static/style.css b/static/style.css new file mode 100644 index 0000000..e23d743 --- /dev/null +++ b/static/style.css @@ -0,0 +1,88 @@ +/* +* Stylesheet of farajli.net +*/ + +/* FIXME: Don't use google fonts */ +@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@370&display=swap'); + +.jetbrains-mono { + font-family: "JetBrains Mono", serif; + font-optical-sizing: auto; + font-weight: 370; + font-style: normal; +} + +body { + font-family: "JetBrains Mono"; + font-size: 18px; + width: 60em; + display: block; + background-color: #1c1c1c; /* Almost Black */ + color: #ffffff; /* White */ + padding-left: 1em; + margin: auto; +} + +a { + text-decoration: none; + color: #5E81AC; /* Blue */ +} + +a:hover { + color: #B48EAD; /* Purple */ +} + +ul, ol { + margin: 0; + padding: 0; + list-style-position: inside; /* optional: keeps bullets/numbers inside */ +} + +li > ul, +li > ol { + margin-left: 1.2em; /* or adjust as needed */ + padding-left: 1em; +} + +.menu_item { + color: #BB6767; /* Red */ + /* font-weight: bold; */ + padding: 0.4em; + padding-right: 3em; + font-size: 20px; + margin-right: 0.2em; + margin-left: 0.2em; +} + +.right_menu_item { + float: right; + padding-right: 1em; +} + +#header-name { + text-align: left; + font-size: 25px; + padding-top: 20px; + color: #FFFFFF; /* White */ + font-weight: normal; +} + +#quote { + font-size: 20px; + text-align: right; + color: #C0C0C0; /* Darkish gray */ + padding-top: 20px; + font-weight: 430; +} + +#bar{ + width: 100%; + line-height: 35px; +} + +#copyleft { + color: #696969; /* Dark Gray */ + /* display: block; */ + margin-top: 2em; + margin-bottom: 1em; +} diff --git a/style.css b/style.css deleted file mode 100644 index 7ec141d..0000000 --- a/style.css +++ /dev/null @@ -1,73 +0,0 @@ -/* -* Stylesheet of farajli.net -*/ - -/* FIXME: Don't use google fonts */ -@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@370&display=swap'); - -.jetbrains-mono { - font-family: "JetBrains Mono", serif; - font-optical-sizing: auto; - font-weight: 370; - font-style: normal; -} - -body { - font-family: "JetBrains Mono"; - font-size: 18px; - width: 60em; - display: block; - background-color: #1c1c1c; /* Almost Black */ - color: #ffffff; /* White */ - padding-left: 1em; - margin: auto; -} - -a { - text-decoration: none; - color: #5E81AC; /* Blue */ -} - -a:hover { - color: #B48EAD; /* Purple */ -} - -.menu_item { - color: #BB6767; /* Red */ - /* font-weight: bold; */ - padding: 0.4em; - padding-right: 3em; - font-size: 20px; - margin-right: 0.2em; - margin-left: 0.2em; -} - -.right_menu_item { - float: right; - padding-right: 1em; -} - -#header-name { - text-align: left; - font-size: 25px; - padding-top: 20px; - color: #FFFFFF; /* White */ - font-weight: normal; -} - -#quote { - font-size: 20px; - text-align: right; - color: #C0C0C0; /* Darkish gray */ - padding-top: 20px; - font-weight: 430; -} - -#bar{ - width: 100%; - line-height: 35px; -} - -#copyleft { - color: #696969; /* Dark Gray */ -} -- cgit v1.2.3