diff --git a/public/404.html b/public/404.html index 247d846..52c426a 100644 --- a/public/404.html +++ b/public/404.html @@ -1 +1 @@ -404
404
Not Found
« back to home »
\ No newline at end of file +404
404
Not Found
« back to home »
\ No newline at end of file diff --git a/public/blog/hoaxes-overview/index.html b/public/blog/hoaxes-overview/index.html index bc5afd0..f02bab6 100644 --- a/public/blog/hoaxes-overview/index.html +++ b/public/blog/hoaxes-overview/index.html @@ -1 +1 @@ -An overview on hoaxes

An overview on hoaxes

2024-01-04

Introduction#

In recent times, hoaxes have become increasingly prevalent as the internet continues to expand and as more people use social media. Misinformation is on a rise - though this is information which isn't really new, the current state of things is horrible, and things really shouldn't be the way they are.

I aim for this to be a brief blog post detailing the effect of hoaxes on society, focusing on why they're so harmful.

What exactly is a hoax?#

Put simply, a hoax is made-up information, be it a story or something else. Hoaxes are created with the intent of spreading false information - for a immense variety of reasons, from jokes and causing embarrassment to provoking politic or social change1. I won't discuss the causes of hoaxes further in this blog post.

The effect of hoaxes#

Hoaxes can cause significant damage to their targets if formulated cleverly. For example:

The stock price of Apple Inc. fell significantly in October 2008 after a hoax story was submitted to CNN's user-generated news site iReport.com claiming that company CEO Steve Jobs had suffered a major heart attack. The source of the story was traced back to 4chan.

With the incredible presence of social media in our lives, spreading harmful misinformation like that above can be as simple as making a few posts - they don't even need to be very convincing! What makes matters worse is how gullible the general population is, even those educated in this sort of thing - this shows just how much influence the internet and it's contents have on us.

I would like to clarify that I'm not suggesting that people should avoid using the internet to gather information - while its reliability is incredibly questionable, the accessibility and openness it provides far beats traditional methods of gathering information (books and such). My suggestion is that people should be much more careful with how they interpret information on the internet, and perform their due diligence in their research into whatever they're aiming to learn; people should make sure that what they're reading is accurate before absorbing any information (here's your tl;dr).

That's about it for this blog post, as it was meant to be a brief way of expressing my thoughts on the matter. Thanks for reading!

\ No newline at end of file +An overview on hoaxes

An overview on hoaxes

2024-01-04

Introduction#

In recent times, hoaxes have become increasingly prevalent as the internet continues to expand and as more people use social media. Misinformation is on a rise - though this is information which isn't really new, the current state of things is horrible, and things really shouldn't be the way they are.

I aim for this to be a brief blog post detailing the effect of hoaxes on society, focusing on why they're so harmful.

What exactly is a hoax?#

Put simply, a hoax is made-up information, be it a story or something else. Hoaxes are created with the intent of spreading false information - for a immense variety of reasons, from jokes and causing embarrassment to provoking politic or social change1. I won't discuss the causes of hoaxes further in this blog post.

The effect of hoaxes#

Hoaxes can cause significant damage to their targets if formulated cleverly. For example:

The stock price of Apple Inc. fell significantly in October 2008 after a hoax story was submitted to CNN's user-generated news site iReport.com claiming that company CEO Steve Jobs had suffered a major heart attack. The source of the story was traced back to 4chan.

With the incredible presence of social media in our lives, spreading harmful misinformation like that above can be as simple as making a few posts - they don't even need to be very convincing! What makes matters worse is how gullible the general population is, even those educated in this sort of thing - this shows just how much influence the internet and it's contents have on us.

I would like to clarify that I'm not suggesting that people should avoid using the internet to gather information - while its reliability is incredibly questionable, the accessibility and openness it provides far beats traditional methods of gathering information (books and such). My suggestion is that people should be much more careful with how they interpret information on the internet, and perform their due diligence in their research into whatever they're aiming to learn; people should make sure that what they're reading is accurate before absorbing any information (here's your tl;dr).

That's about it for this blog post, as it was meant to be a brief way of expressing my thoughts on the matter. Thanks for reading!

\ No newline at end of file diff --git a/public/blog/home-server-security/index.html b/public/blog/home-server-security/index.html index e3e2a05..e7596df 100644 --- a/public/blog/home-server-security/index.html +++ b/public/blog/home-server-security/index.html @@ -1,4 +1,4 @@ -Home server security

Home server security

2024-03-28

Introduction#

Home server security is pretty often overlooked from what I can tell. Any device accessible from the internet has some degree of vulnerability in the current era of the internet. I aim for this document to detail methods to amend the contemporary cybersecurity challenges faced by most homelabbers.

Justification in Depth#

Of course, my statements about home servers needing some security measures put in place aren't baseless. My own experience, as well as that of a sizable number of people on the wonderful lemmy community at selfhosted@lemmy.world shows that home servers are endlessly 'knocked" on, and that login attempts to services like SSH are made. Here's a snippet from my fail2ban filter to verify this point:

Mar 29 14:38:13 icefall fail2ban.filter[1097]: INFO [...] Found 176.126.240.158 - 2024-03-29 14:38:13
+Home server security

Home server security

2024-03-28

Introduction#

Home server security is pretty often overlooked from what I can tell. Any device accessible from the internet has some degree of vulnerability in the current era of the internet. I aim for this document to detail methods to amend the contemporary cybersecurity challenges faced by most homelabbers.

Justification in Depth#

Of course, my statements about home servers needing some security measures put in place aren't baseless. My own experience, as well as that of a sizable number of people on the wonderful lemmy community at selfhosted@lemmy.world shows that home servers are endlessly 'knocked" on, and that login attempts to services like SSH are made. Here's a snippet from my fail2ban filter to verify this point:

Mar 29 14:38:13 icefall fail2ban.filter[1097]: INFO [...] Found 176.126.240.158 - 2024-03-29 14:38:13
 Mar 29 14:40:11 icefall fail2ban.filter[1097]: INFO [...] Found 176.126.240.158 - 2024-03-29 14:40:11
 Mar 29 14:40:29 icefall fail2ban.filter[1097]: INFO [...] Found 185.8.165.204 - 2024-03-29 14:40:29
 Mar 29 14:40:40 icefall fail2ban.filter[1097]: INFO [...] Found 162.212.154.58 - 2024-03-29 14:40:40
diff --git a/public/blog/index.html b/public/blog/index.html
index 03e4976..07f3ad9 100644
--- a/public/blog/index.html
+++ b/public/blog/index.html
@@ -1 +1 @@
-Blog Posts
\ No newline at end of file +Blog Posts
\ No newline at end of file diff --git a/public/blog/nfc-misconceptions/index.html b/public/blog/nfc-misconceptions/index.html index 95e15a1..508bffb 100644 --- a/public/blog/nfc-misconceptions/index.html +++ b/public/blog/nfc-misconceptions/index.html @@ -1 +1 @@ -Misconceptions about NFC

Misconceptions about NFC

2024-01-19

Alert

I made a mistake while writing this blog post - somehow forgetting that security isn't unambiguous. You can actually skim NFC chips from a certain distance (having a limited distance is still an important factor though!), and though I think some of what I said below still applies you're better off ignoring it all.

There are, of course, a whole range of problems with skimming NFC chips from a distance so my point - don't be so worried - would still stand.

Either way, I recommend you take this with a grain of salt.

Introduction#

NFC (short for Near-Field Communication) is the set of communication protocols which allow for near-field communication between two electronic devices. One of the most prominent uses of this technology are contactless transactions - this includes services like Google and Apple Pay as well as all of your contactless-enabled cards.

It's been a while since my last blog past, but this one will be brief too - I'm writing here for the sake of clearing up some misconceptions people have about NFC.

The Misconceptions#

Inspiration#

While talking with a friend on a WhatsApp group chat a few days ago about a program I found on my jailbroken iOS device - Aemulo - I was informed of 'subway skimmers'; devices that could supposedly read data from contactless-enabled devices (via NFC) and would be able to emulate them.

The idea behind the above example was that someone with malicious intent could place such a device in a public location and take their contactless devices for their malicious purposes. When I heard of this, my first thought was: hoax, and I think that it was rightfully so.

What exactly is wrong with this?#

Several things. I'm no expert in cybersecurity - everyone's a student in some way, but I was sure that NFC was, as it's name implies, for near-field communication. I'm repeating myself here, but that's kind of the point. Various reliable resources, including Wikipedia, show that NFC has a maximum range of only a few centimetres - which makes sense, no?

And yet, whatever source my friend had for 'subway skimmers' gave the impression, or otherwise stated, that it would work within a radius of a few feet, which is just impossible. Upon voicing my doubts, I was then told that 'with a powerful enough antenna, it's possible'. Hoaxes sure are convincing, aren't they? Unfortunately, I am not able to find the source of my friend's misinformation.

See, NFC only works within a few centimetres anyways. Even if it could magically work within a radius of a few feet, you've got to take in the electromagnetic interference that the clothes and wallets people have would bring to any malicious device. The point of electromagnetic interference is especially true over a huge area of a few feet (relatively), where you've got several NFC-enabled devices.

Where it's actually an issue#

Of course, that isn't to say there aren't any issues with NFC and malicious readers - I'm just saying that the word getting around is horribly unrealistic. For example, a realistic example of a malicious NFC reader would be one placed on the card slots in cash machines - you get:

  • The short range (< ~20 cm)
  • Only one device
  • Lots of devices to read!

And so, you've got someone so much more realistic that poses an actual threat!

Conclusion#

The information above, which I deem accurate, is there. What I suggest be taken away from this is pretty much the same as what is was for my blog post on hoaxes - do some fact-checking!

powered by zola and serene
\ No newline at end of file +Misconceptions about NFC

Misconceptions about NFC

2024-01-19

Alert

I made a mistake while writing this blog post - somehow forgetting that security isn't unambiguous. You can actually skim NFC chips from a certain distance (having a limited distance is still an important factor though!), and though I think some of what I said below still applies you're better off ignoring it all.

There are, of course, a whole range of problems with skimming NFC chips from a distance so my point - don't be so worried - would still stand.

Either way, I recommend you take this with a grain of salt.

Introduction#

NFC (short for Near-Field Communication) is the set of communication protocols which allow for near-field communication between two electronic devices. One of the most prominent uses of this technology are contactless transactions - this includes services like Google and Apple Pay as well as all of your contactless-enabled cards.

It's been a while since my last blog past, but this one will be brief too - I'm writing here for the sake of clearing up some misconceptions people have about NFC.

The Misconceptions#

Inspiration#

While talking with a friend on a WhatsApp group chat a few days ago about a program I found on my jailbroken iOS device - Aemulo - I was informed of 'subway skimmers'; devices that could supposedly read data from contactless-enabled devices (via NFC) and would be able to emulate them.

The idea behind the above example was that someone with malicious intent could place such a device in a public location and take their contactless devices for their malicious purposes. When I heard of this, my first thought was: hoax, and I think that it was rightfully so.

What exactly is wrong with this?#

Several things. I'm no expert in cybersecurity - everyone's a student in some way, but I was sure that NFC was, as it's name implies, for near-field communication. I'm repeating myself here, but that's kind of the point. Various reliable resources, including Wikipedia, show that NFC has a maximum range of only a few centimetres - which makes sense, no?

And yet, whatever source my friend had for 'subway skimmers' gave the impression, or otherwise stated, that it would work within a radius of a few feet, which is just impossible. Upon voicing my doubts, I was then told that 'with a powerful enough antenna, it's possible'. Hoaxes sure are convincing, aren't they? Unfortunately, I am not able to find the source of my friend's misinformation.

See, NFC only works within a few centimetres anyways. Even if it could magically work within a radius of a few feet, you've got to take in the electromagnetic interference that the clothes and wallets people have would bring to any malicious device. The point of electromagnetic interference is especially true over a huge area of a few feet (relatively), where you've got several NFC-enabled devices.

Where it's actually an issue#

Of course, that isn't to say there aren't any issues with NFC and malicious readers - I'm just saying that the word getting around is horribly unrealistic. For example, a realistic example of a malicious NFC reader would be one placed on the card slots in cash machines - you get:

  • The short range (< ~20 cm)
  • Only one device
  • Lots of devices to read!

And so, you've got someone so much more realistic that poses an actual threat!

Conclusion#

The information above, which I deem accurate, is there. What I suggest be taken away from this is pretty much the same as what is was for my blog post on hoaxes - do some fact-checking!

powered by zola and serene
\ No newline at end of file diff --git a/public/blog/selfhost-search-engine/index.html b/public/blog/selfhost-search-engine/index.html index 19d394e..24d7757 100644 --- a/public/blog/selfhost-search-engine/index.html +++ b/public/blog/selfhost-search-engine/index.html @@ -1,4 +1,4 @@ -Host your own private search engine with SearXNG

Host your own private search engine with SearXNG

2023-12-31

Introduction#

SearXNG, put in its own words, is a 'free internet metasearch engine'. Note that it describes itself as a metasearch engine specifically - unlike your traditional search engine like Google or Bing, SearXNG does things a little bit differently: It aggregrates the results produced by search services like those aforementioned, and feeds them back to you.

Because of this key detail and a great deal of effort by those who've helped shape it, SearXNG protects your privacy, and does so very well:

  • Private data from requests going to the search services it aggregrates results from is removed
  • It does not forward anything to any third parties through search services
  • Private data is also removed from requests going to the results pages

Furthermore, SearXNG can be configured to use Tor.

However, the aspect of privacy isn't the only great selling feature of the engine; from my use of the engine so far, it's also great at...searching (is that a surprise?). The fact that it's a metasearch engine plays a key role in this, as it provides SearXNG the ability to pull content more efficiently and gives you the ability to further tailor your experience.

Setting up SearXNG#

Installing the service#

As you may have expected if you've used NixOS for a while, searxng is packaged and has a service on NixOS. This makes setting it up just that much easier.

To get started, place somewhere in your system config the following:

{
+Host your own private search engine with SearXNG

Host your own private search engine with SearXNG

2023-12-31

Introduction#

SearXNG, put in its own words, is a 'free internet metasearch engine'. Note that it describes itself as a metasearch engine specifically - unlike your traditional search engine like Google or Bing, SearXNG does things a little bit differently: It aggregrates the results produced by search services like those aforementioned, and feeds them back to you.

Because of this key detail and a great deal of effort by those who've helped shape it, SearXNG protects your privacy, and does so very well:

  • Private data from requests going to the search services it aggregrates results from is removed
  • It does not forward anything to any third parties through search services
  • Private data is also removed from requests going to the results pages

Furthermore, SearXNG can be configured to use Tor.

However, the aspect of privacy isn't the only great selling feature of the engine; from my use of the engine so far, it's also great at...searching (is that a surprise?). The fact that it's a metasearch engine plays a key role in this, as it provides SearXNG the ability to pull content more efficiently and gives you the ability to further tailor your experience.

Setting up SearXNG#

Installing the service#

As you may have expected if you've used NixOS for a while, searxng is packaged and has a service on NixOS. This makes setting it up just that much easier.

To get started, place somewhere in your system config the following:

{
     # ...
     services.searx = {
     enable = true;
diff --git a/public/blog/selfhost-tailscale/index.html b/public/blog/selfhost-tailscale/index.html
index ed02ecb..d9a900a 100644
--- a/public/blog/selfhost-tailscale/index.html
+++ b/public/blog/selfhost-tailscale/index.html
@@ -1,4 +1,4 @@
-Take control of tailscale with headscale

Take control of tailscale with headscale

2024-01-10

Tailscale#

Tailscale is a modern tunnel VPN service based on WireGuard® which provides a 'free' and secure means of communication between devices within a tailnet - a private network which Tailscale provides its users.

Essentially, it provides a private and secure way of accessing any of your devices, no matter where you are in the world - a personal WAN encompassing the entire world.

And on top of this, Tailscale is completely free and open-source! At least, on the surface...

Not FOSS? What do you mean?#

There's a quite popular saying within the free and open-source software community, which goes along the lines of:

If you aren't paying for the product, then you are the product.

Which makes perfect sense. It's the modern era so anything significant is powered by some form of modern technology, data is the new oil, and so on. In exchange for offering you 'free' services, companies collect and use your data; while there supposedly are laws in place preventing the inconcensual collection of data in most countries around the world, your personal data may still be traded unethically and inconsensually.

I personally am of the opinion that these laws are worth absolutely nothing if people aren't educated in how their data is being used, and what specifically is being collected. But I digress, and that's a blog post for another time.

I also think it's quite unfortunate that users of paid services still have their personal data collected in the unethical manner outlined above, despite the fact that they are paying for the service...

In the context of Tailscale: while their clients are all open-source, their control server - the thing that's managing and rerouting everything going through what they advertise as your 'secure' VPN, isn't. You've got no idea what this thing is doing with the traffic it recieves.

Headscale#

For every problem, there's probably a solution somewhere. And luckily for this one (which may or may not actually be a problem for you), we've got Headscale as our solution. Headscale's a self-hostable, open-source alternative to the Tailscale control server, and aims to 'provide self-hosters and hobbyists with an open-source server they can use for their projects and labs'.

Installing on NixOS#

Moving on to installing and setting up Headscale on NixOS.

# ...
+Take control of tailscale with headscale

Take control of tailscale with headscale

2024-01-10

Tailscale#

Tailscale is a modern tunnel VPN service based on WireGuard® which provides a 'free' and secure means of communication between devices within a tailnet - a private network which Tailscale provides its users.

Essentially, it provides a private and secure way of accessing any of your devices, no matter where you are in the world - a personal WAN encompassing the entire world.

And on top of this, Tailscale is completely free and open-source! At least, on the surface...

Not FOSS? What do you mean?#

There's a quite popular saying within the free and open-source software community, which goes along the lines of:

If you aren't paying for the product, then you are the product.

Which makes perfect sense. It's the modern era so anything significant is powered by some form of modern technology, data is the new oil, and so on. In exchange for offering you 'free' services, companies collect and use your data; while there supposedly are laws in place preventing the inconcensual collection of data in most countries around the world, your personal data may still be traded unethically and inconsensually.

I personally am of the opinion that these laws are worth absolutely nothing if people aren't educated in how their data is being used, and what specifically is being collected. But I digress, and that's a blog post for another time.

I also think it's quite unfortunate that users of paid services still have their personal data collected in the unethical manner outlined above, despite the fact that they are paying for the service...

In the context of Tailscale: while their clients are all open-source, their control server - the thing that's managing and rerouting everything going through what they advertise as your 'secure' VPN, isn't. You've got no idea what this thing is doing with the traffic it recieves.

Headscale#

For every problem, there's probably a solution somewhere. And luckily for this one (which may or may not actually be a problem for you), we've got Headscale as our solution. Headscale's a self-hostable, open-source alternative to the Tailscale control server, and aims to 'provide self-hosters and hobbyists with an open-source server they can use for their projects and labs'.

Installing on NixOS#

Moving on to installing and setting up Headscale on NixOS.

# ...
 {
   # ...
   services.headscale = {
diff --git a/public/blog/server-hardware-selection/index.html b/public/blog/server-hardware-selection/index.html
index fe71b89..82bdf85 100644
--- a/public/blog/server-hardware-selection/index.html
+++ b/public/blog/server-hardware-selection/index.html
@@ -1 +1 @@
-Selecting hardware for a (home) server

Selecting hardware for a (home) server

2024-01-31

Introduction#

I see a lot of people worryingly mistaken about what a server needs (specifically, a home server). Some think that a bland and incredibly ignorant '20% budget for CPU, 30% for GPU, and the rest for the rest' plan for selecting hardware is good enough (at least, before choosing specific items) - you can't exactly be wrong when choosing hardware, but this is very, very far from right.

Requirements#

Server hardware needs to be low-power and resource-efficient - so as not to waste any money unnessarily, obviously. Your budget will strongly impact the specifications you can get your hands on, but I would think that even $200 is enough for a decent home server - depending on what you want to do with it. Keep in mind that you could always repurpose an old laptop or desktop lying around; it's cheap, and you get what may be a surprisingly decent machine.

Power consumption#

The difference between low peak and low idle power should be noted in particular. Running costs can get very high if you don't work to moderate power consumption, and probably wouldn't be something you would ignore when it comes to home servers.

Usage of the server#

Naturally, how a server will be used will affect pretty much everything about the hardware chosen for it. For example, if you're looking to stream games remotely, you'd go for a (perhaps powerful) dedicated GPU and would likely invest in some high-speed internet solution. As indicated by the above example of the GPU, you need to be very specific with what you choose - do you need a powerful GPU or do you not? After all, one of the last things you would want, ever, is money going to waste on something you don't need, or failing to buy something that meets your expectations.

Conclusion#

I only gave two points of interest when selecting a server - looking at the numbers alone, this might seem like hardly anything to consider at all. My reasons for this are:

  • Power comumption is one factor that people often forego thinking about, and an extremely important one at that.
  • Building on top of the previous point, you (probably) aren't stupid. Knowing (albeit at a very basic level) what to look out for should be enough.
  • It would be extremely difficult for me, or anyone else for that matter, to provide a truly complete solution to everyone's needs for a home server.

Well, that's it. I wish you luck in selecting your hardware.

powered by zola and serene
\ No newline at end of file +Selecting hardware for a (home) server

Selecting hardware for a (home) server

2024-01-31

Introduction#

I see a lot of people worryingly mistaken about what a server needs (specifically, a home server). Some think that a bland and incredibly ignorant '20% budget for CPU, 30% for GPU, and the rest for the rest' plan for selecting hardware is good enough (at least, before choosing specific items) - you can't exactly be wrong when choosing hardware, but this is very, very far from right.

Requirements#

Server hardware needs to be low-power and resource-efficient - so as not to waste any money unnessarily, obviously. Your budget will strongly impact the specifications you can get your hands on, but I would think that even $200 is enough for a decent home server - depending on what you want to do with it. Keep in mind that you could always repurpose an old laptop or desktop lying around; it's cheap, and you get what may be a surprisingly decent machine.

Power consumption#

The difference between low peak and low idle power should be noted in particular. Running costs can get very high if you don't work to moderate power consumption, and probably wouldn't be something you would ignore when it comes to home servers.

Usage of the server#

Naturally, how a server will be used will affect pretty much everything about the hardware chosen for it. For example, if you're looking to stream games remotely, you'd go for a (perhaps powerful) dedicated GPU and would likely invest in some high-speed internet solution. As indicated by the above example of the GPU, you need to be very specific with what you choose - do you need a powerful GPU or do you not? After all, one of the last things you would want, ever, is money going to waste on something you don't need, or failing to buy something that meets your expectations.

Conclusion#

I only gave two points of interest when selecting a server - looking at the numbers alone, this might seem like hardly anything to consider at all. My reasons for this are:

  • Power comumption is one factor that people often forego thinking about, and an extremely important one at that.
  • Building on top of the previous point, you (probably) aren't stupid. Knowing (albeit at a very basic level) what to look out for should be enough.
  • It would be extremely difficult for me, or anyone else for that matter, to provide a truly complete solution to everyone's needs for a home server.

Well, that's it. I wish you luck in selecting your hardware.

powered by zola and serene
\ No newline at end of file diff --git a/public/blog/setting-up-zola-nixos/index.html b/public/blog/setting-up-zola-nixos/index.html index fe54606..7348978 100644 --- a/public/blog/setting-up-zola-nixos/index.html +++ b/public/blog/setting-up-zola-nixos/index.html @@ -1,4 +1,4 @@ -Setting up Zola on NixOS

Setting up Zola on NixOS

2023-12-29

Introduction#

Zola is a static site generator (similarly to the infamous Hugo, which you may have already heard of) and is written in Rust. It also happens to be the framework that this site is built on!

This blog post is a guide on setting up the site engine on NixOS specifically.

Installation#

Installing the package#

zola is packaged in the nix package repository, so you just declaratively add the package to your configuration as usual: For the purposes of this guide, zola can be installed either as a system or user package.

  • As a system package:
{ pkgs, ... }: {
+Setting up Zola on NixOS

Setting up Zola on NixOS

2023-12-29

Introduction#

Zola is a static site generator (similarly to the infamous Hugo, which you may have already heard of) and is written in Rust. It also happens to be the framework that this site is built on!

This blog post is a guide on setting up the site engine on NixOS specifically.

Installation#

Installing the package#

zola is packaged in the nix package repository, so you just declaratively add the package to your configuration as usual: For the purposes of this guide, zola can be installed either as a system or user package.

  • As a system package:
{ pkgs, ... }: {
     # ...
     environment.systemPackages = with pkgs; [
         zola # Append the package name to the list
diff --git a/public/index.html b/public/index.html
index 50a07a7..4032a45 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1 +1 @@
-Devraza
avatar
Muhammad Nauman Raza@devraza
Programming and cybersecurity

I'm a moderately skilled programmer, beginner in the field of cybersecurity and aspiring graphic designer. NixOS is my operating system of choice, and radiant.nvim (my bespoke distribution of neovim) is my text editor.

I also happen to be a devoted rustacean and a devout follower of the self-hosted way of life.

My skills in programming and scripting languages I've used so far are as follows:

  • Advanced: Python, Nix
  • Intermediate: Rust, Go, E-Lisp
  • Beginner: Julia, Lua

However, I consider myself able to work to a reasonable degree with any modern programming language.

Other tools that I can work with include git, linux, inkscape, and GIMP.

\ No newline at end of file +Devraza
avatar
Muhammad Nauman Raza@devraza
Programming and cybersecurity

I'm a moderately skilled programmer, beginner in the field of cybersecurity and aspiring graphic designer. NixOS is my operating system of choice, and radiant.nvim (my bespoke distribution of neovim) is my text editor.

I also happen to be a devoted rustacean and a devout follower of the self-hosted way of life.

My skills in programming and scripting languages I've used so far are as follows:

  • Advanced: Python, Nix
  • Intermediate: Rust, Go, E-Lisp
  • Beginner: Julia, Lua

However, I consider myself able to work to a reasonable degree with any modern programming language.

Other tools that I can work with include git, linux, inkscape, and GIMP.

\ No newline at end of file diff --git a/public/main.css b/public/main.css index b38c108..0e31661 100644 --- a/public/main.css +++ b/public/main.css @@ -1 +1 @@ -*,*::before,*::after{box-sizing:border-box}body{min-height:100%;font-family:var(--main-font);background-color:var(--bg-color);color:var(--text-color)}html{scroll-behavior:smooth}button:focus-visible,a:focus-visible{outline:var(--primary-color) solid 3px}::selection{background-color:var(--primary-color);color:var(--bg-color)}@media screen and (min-width: 425px){body::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background:rgba(174,183,202,.631372549);border-radius:0px}::-webkit-scrollbar-thumb:hover{background:rgba(138,144,161,.631372549)}}.prose h1{font-size:1.5em;font-weight:bolder;margin:1em 0 .5em 0}.prose h2{font-size:1.3em;padding-top:65px;margin-top:-45px}.prose h3{font-size:1.1em;padding-top:65px;margin-top:-45px}.prose h4{font-size:1.05em;margin:30px 0 15px 0}.prose .zola-anchor{visibility:hidden;margin-left:.75em;font-size:.85em}.prose h1:hover a.zola-anchor,.prose h2:hover a.zola-anchor,.prose h3:hover a.zola-anchor,.prose h4:hover a.zola-anchor,.prose h5:hover a.zola-anchor,.prose h6:hover a.zola-anchor{visibility:visible}.prose p{font-size:1em;line-height:inherit;word-wrap:break-word}.prose a{color:var(--primary-color);text-decoration-color:var(--primary-pale-color);text-decoration-thickness:1.5px}.prose a:hover{text-decoration-color:var(--primary-color)}@media (max-width: 425px){.prose a{text-decoration-color:unset;text-decoration-thickness:auto}}.prose img{max-width:100%;display:block;margin:0 auto;border-radius:var(--img-border-radius)}.prose figure{margin:0 auto}.prose figcaption{width:100%;text-align:center;margin:5px auto}.prose blockquote{border-left:3px var(--primary-pale-color) solid;padding-left:16px;margin:0 0 24px 0;color:var(--text-pale-color)}.prose li::marker{color:var(--primary-color)}.prose hr{border:none;background-color:var(--primary-pale-color);height:3px;margin:36px 0}.prose table{width:100%;border-spacing:0;border:1px solid var(--primary-pale-color)}.prose thead{background-color:var(--primary-pale-color)}.prose th,.prose td{line-height:2;text-align:center;border:1px solid var(--primary-pale-color);padding:1px 10px}.prose p>code,.prose li>code,.prose td>code,.prose th>code{font-family:var(--code-font);font-size:.8em;padding:1px 6px;margin:0 2px;color:var(--primary-color);background-color:var(--primary-pale-color);border-radius:var(--inline-code-border-radius)}.prose pre{font-size:.8em;margin:1.25em 0;padding:12px 48px 12px 16px;line-height:1.5;border:1.5px solid var(--primary-color);overflow:auto}.prose pre code{font-family:var(--code-font)}.prose pre[data-linenos]{padding:12px 48px 12px 8px}.prose pre table{width:100%;border-collapse:collapse;border:none}.prose pre table th,.prose pre table td{line-height:1.5}.prose pre table tr td:first-of-type{color:var(--text-pale-color)}.prose pre table td{padding:0;padding-right:48px;text-align:initial;border:initial}.prose pre table td:nth-of-type(1){text-align:right;user-select:none;padding-right:1em}.prose pre table td:nth-of-type(1) mark::before{left:-8px;width:calc(100% + 1em + 8px)}.prose pre mark{display:block;color:inherit;background-color:rgba(0,0,0,0);position:relative;overflow:visible}.prose pre mark::before{pointer-events:none;content:"";position:absolute;top:0;bottom:0;width:calc(100% + 48px + 48px);background-color:var(--highlight-mark-color)}.prose pre.mermaid{border:none}.prose pre>code>mark::before{width:calc(100% + 48px + 16px);left:-16px}.prose .codeblock{margin:1em 0;position:relative;overflow:auto}.prose .codeblock pre{margin:0}.prose .codeblock .copy{z-index:9;position:absolute;right:.6em;top:.6em;width:24px;height:24px;padding:2px;cursor:pointer;background:rgba(0,0,0,0);border:none;color:var(--text-pale-color)}.prose .codeblock .copy.copied,.prose .codeblock .copy:hover{color:var(--primary-color)}.prose .codeblock .copy svg{width:20px;height:20px}.prose .codeblock-with-filename{margin-top:calc(0px - 1.2em - 24px - 1em - 1.5px)}.prose .codeblock-with-filename .filename{z-index:1;position:relative;top:calc(1.2em + 24px + 1em + 1.5px);padding:12px 16px;line-height:1.2;color:var(--text-pale-color);border-bottom:1.5px solid var(--primary-pale-color)}.prose .codeblock-with-filename pre>code{display:inline-block;min-width:100%;margin-top:3.2em}.prose .footnote-definition{display:flex}.prose .footnote-definition .footnote-definition-label{position:static;font-size:1em;line-height:inherit;vertical-align:auto;margin-right:.5em}.prose .footnote-definition .footnote-definition-label::after{content:"."}.prose .footnote-definition p{margin:0}.prose .footnote-definition button.backlink{border:none;background:none;display:flex;align-items:center;margin-left:.5em;color:var(--primary-color);cursor:pointer}.prose .callout{line-height:inherit;margin-bottom:20px;border:1.5px solid var(--primary-color);padding:6px 12px;display:flex;gap:12px}.prose .callout .icon{height:1.75em;display:flex;align-items:center}.prose .callout .content p{margin:0}.prose .callout .content p+p{margin:.2em 0 .5em}.prose .callout.note{color:var(--callout-note-color);border-color:var(--callout-note-color)}.prose .callout.important{color:var(--callout-important-color);border-color:var(--callout-important-color)}.prose .callout.warning{color:var(--callout-warning-color);border-color:var(--callout-warning-color)}.prose .callout.alert{color:var(--callout-alert-color);border-color:var(--callout-alert-color)}.prose .callout.question{color:var(--callout-question-color);border-color:var(--callout-question-color)}.prose .callout.tip{color:var(--callout-tip-color);border-color:var(--callout-tip-color)}.prose .mermaid{background:#fff}body.prose-page main{font-size:var(--paragraph-font-size);min-height:100vh;padding-top:45px;margin:0 auto;max-width:var(--main-max-width);display:flex;flex-direction:column;justify-content:space-between}body.prose-page article{padding:45px 15px 30px;font-size:var(--paragraph-font-size);line-height:var(--paragraph-line-height)}body.prose-page .giscus{padding:0 15px}.layout-list .category{font-size:1.3em;margin:2em 15px 1em}.layout-list .post-list{margin-top:25px}.layout-list .post{display:flex;justify-content:space-between;align-items:flex-end;gap:5px;padding:6px 15px;margin:1px 0;border-radius:2px;font-size:1.1em;text-decoration:none;color:var(--primary-color);-webkit-tap-highlight-color:rgba(0,0,0,0)}.layout-list .post:hover{background-color:var(--primary-pale-color)}@media (max-width: 768px){.layout-list .post{font-size:1em;margin:2.5px 5px;padding:5px 10px}}.layout-list .post .date{white-space:nowrap}body.homepage #wrapper{width:100%;min-height:100vh;display:flex;justify-content:center;align-items:center}body.homepage main{width:100%;max-width:var(--homepage-max-width);padding:3em 0 6em}body.homepage #info{padding:0 15px;display:flex;gap:1em}body.homepage #info img{height:var(--avatar-size);width:var(--avatar-size);border-radius:50%}body.homepage #info #text{font-size:1.25em;display:flex;flex-direction:column;justify-content:space-around}body.homepage #info #id{margin-left:.5em;color:var(--primary-color)}body.homepage #info #bio{font-size:.85em}body.homepage #links{padding:0 15px;margin:1.25em 0 1.75em;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5em 1em;font-size:1.25em}body.homepage #links a,body.homepage #links button{text-decoration:none;color:var(--text-color)}body.homepage #links a:hover,body.homepage #links button:hover{color:var(--primary-color)}body.homepage #links #left{display:flex;flex-wrap:wrap;gap:1em}body.homepage #links #left a{border-bottom:1.5px solid var(--primary-color);line-height:24px}body.homepage #links #right{display:flex;gap:.5em;margin-left:auto}body.homepage #links #right a,body.homepage #links #right button{width:24px;height:24px}body.homepage #links #right button{padding:0;border:none;background-color:rgba(0,0,0,0);cursor:pointer}@media (max-width: 425px){body.homepage #links #left{gap:.75em}}body.homepage #brief{padding:0 15px;font-size:1.15em;line-height:1.5}header{z-index:99;position:fixed;top:0;width:100%;height:45px;background-color:var(--bg-color);border-bottom:1.5px solid var(--primary-color)}@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none){header.blur{background-color:initial;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}header #header-wrapper{height:100%;max-width:var(--main-max-width);margin:0 auto;padding:0 15px;display:flex;justify-content:space-between;align-items:center;position:relative}header nav{font-size:1.4em;display:flex;align-items:center}header nav a{color:var(--text-color);text-decoration:none}header nav a:hover{color:var(--primary-color)}header nav .separator{width:24px;text-align:center;line-height:1;cursor:pointer;border:none;padding:0;background:rgba(0,0,0,0);margin:0 .1em;color:var(--text-color);-webkit-tap-highlight-color:rgba(0,0,0,0)}header nav .wrap.left{margin:0 .3em 0 -.1em}header nav .wrap.right{margin:0 0 0 .3em}header nav .wrap-separator{margin:0 .5em 0 .1em}header nav .fold{display:none}header nav .fold.shown{display:initial}header #btns{display:flex;gap:1em;align-items:center;padding-top:1.5px}header #btns a,header #btns button{width:24px;height:24px;border:none;background-color:rgba(0,0,0,0);padding:0;text-decoration:none;color:var(--text-color);cursor:pointer}@media (hover: hover){header #btns a:hover,header #btns button:hover{color:var(--primary-color)}}header #toc-toggle{display:none}@media (max-width: 1024px){header #toc-toggle{display:inline-block}header #toc-toggle.active{color:var(--primary-color)}}footer{font-size:.95rem;padding:15px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:15px;color:var(--text-pale-color)}footer .copyright{margin-right:auto}footer .credits{margin-left:auto}footer a{color:var(--text-pale-color)}@media (max-width: 374px){footer{flex-direction:column;gap:0}footer .copyright,footer .credits{margin:0}}body.blog #wrapper{margin:0 auto;max-width:var(--main-max-width);min-height:100vh;display:flex;flex-direction:column;justify-content:space-between}body.blog main{margin:60px 0}body.post #wrapper{display:flex;justify-content:space-between;font-size:18px}body.post #blank{order:1;position:sticky;width:calc((100% - var(--main-max-width))/2)}body.post main{order:2;width:100%;margin:0 auto;padding-top:45px;max-width:var(--main-max-width);min-height:100vh;display:flex;flex-direction:column;justify-content:space-between}body.post article{padding:0 15px 30px;font-size:var(--paragraph-font-size);line-height:var(--paragraph-line-height)}body.post article #post-info{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:1em}body.post article #date{color:var(--text-pale-color);margin-bottom:1em}body.post article #date #publish,body.post article #date #updated{margin-right:20px}body.post article #tags{margin-bottom:1em;display:flex;gap:1em;flex-wrap:wrap}body.post article #tags a{color:var(--primary-color);text-decoration:none}body.post article #tags a span{font-size:.95em;margin-right:2px}body.post article #outdate_alert.hidden{display:none}body.post .mermaid{background:#fff}body.post .giscus{padding:0 15px}body.post aside{order:3;width:calc((100% - var(--main-max-width))/2);position:sticky;margin-top:195px;top:60px;height:min-content;font-size:var(--aside-font-size)}body.post aside nav{padding:5px 15px 5px 2em;min-width:60%;overflow-y:auto;max-height:calc(100vh - 50px - 5em);scrollbar-width:none}body.post aside nav::-webkit-scrollbar{width:0}body.post aside nav:hover::-webkit-scrollbar{width:4px}body.post aside ul{list-style-type:none;padding:0;line-height:2;margin:0}body.post aside a{text-decoration:none;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-pale-color);position:relative;padding:0 1em}body.post aside a.h3{padding-left:2.5em;font-size:.95em}body.post aside a::before{display:block;content:"";width:2px;position:absolute;top:.6em;bottom:.7em;left:0em;background:rgba(0,0,0,0)}body.post aside a:hover,body.post aside a.active{color:var(--primary-color)}body.post aside a:hover::before{background-color:var(--primary-color)}body.post aside #back-to-top{z-index:99;height:28px;padding:0;position:fixed;bottom:1.5em;margin-left:3em;color:var(--text-pale-color);background:rgba(0,0,0,0);border:none;cursor:pointer;transform:translateY(-5px) scale(0);transition:transform .2s}body.post aside #back-to-top svg{width:28px;height:28px}body.post aside #back-to-top.shown{transform:translateY(0px) scale(1)}body.post aside #back-to-top:hover{color:var(--primary-color)}@media screen and (max-width: 1024px){body.post aside{position:fixed;right:-100%;top:45px;margin-top:0;min-width:260px;height:100%;background-color:var(--bg-color);box-shadow:rgba(0,0,0,.08) -2px 8px 8px 0px}body.post aside.shown{right:0}body.post aside nav{padding:1em 0}body.post aside ul{padding-left:10px}body.post aside #back-to-top{display:none}@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none){body.post aside.blur{background-color:fade(var(--bg-color), 75%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}body.post #blank{display:none}body.post main{margin:0 auto}}body.tag-list #wrapper{margin:0 auto;max-width:var(--main-max-width);min-height:100vh;display:flex;flex-direction:column;justify-content:space-between}body.tag-list main{margin:85px auto 60px}body.tag-list .title{width:min-content;font-size:1.3em;margin:0 auto}body.tag-list .tags{margin-top:40px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;font-size:1.1em}body.tag-list .tags a{color:var(--primary-color);text-decoration:none;margin:2em}body.tag-single #wrapper{margin:0 auto;max-width:var(--main-max-width);min-height:100vh;display:flex;flex-direction:column;justify-content:space-between}body.tag-single main{width:100%;margin:85px auto 60px}body.tag-single .title{width:min-content;white-space:nowrap;color:var(--text-color);font-size:1.3em;margin:0 auto;margin-bottom:40px;padding:0 0 0 60px}body.tag-single .title a{margin-left:30px;font-size:.5em;color:var(--primary-color)}body.tag-single .post{display:flex;justify-content:space-between;align-items:flex-end;gap:5px;padding:6px 15px;margin:1px 0;border-radius:2px;font-size:1.1em;text-decoration:none;color:var(--primary-color);-webkit-tap-highlight-color:rgba(0,0,0,0)}body.tag-single .post:hover{background-color:var(--primary-pale-color)}body.tag-single .post .date{white-space:nowrap}@media screen and (max-width: 768px){body.tag-single .post{font-size:1em;margin:2.5px 5px;padding:5px 10px}}body.projects #wrapper{margin:0 auto;max-width:var(--main-max-width);min-height:100vh;display:flex;flex-direction:column;justify-content:space-between}body.projects main{width:100%;margin:90px auto 40px}body.projects .proj{margin:0px 15px 45px}body.projects .proj .name{font-size:1.2em;margin:0 0 15px 0;color:var(--primary-color)}body.projects .proj .desc{line-height:1.5;margin:0 0 10px 0}body.projects .proj .desc a{color:var(--primary-color);text-decoration:underline var(--primary-pale-color) 2px}body.projects .proj .desc a:hover{text-decoration-color:var(--primary-color)}body.projects .proj .desc p>code{font-family:var(--code-font);font-size:.8em;padding:1px 6px;color:var(--primary-color);background-color:var(--primary-pale-color);border-radius:4px}body.projects .proj .more{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1em}body.projects .proj .more .tags{font-size:.9em;display:flex;gap:.5em 1em;flex-wrap:wrap}body.projects .proj .more .tags div{color:var(--text-pale-color)}body.projects .proj .more .tags div span{font-size:.9em;margin-right:1.5px}body.projects .proj .more .links{margin-left:auto;display:flex;justify-content:end;gap:.5em 1em}body.projects .proj .more .links a{text-decoration:none;border-bottom:1.5px solid var(--primary-color);padding:0 2px;cursor:pointer;color:inherit}body.projects .proj .more .links a:visited{color:inherit}body.projects .proj .more .links a:hover{color:var(--primary-color)}body.not-found{height:100vh;height:100dvh;display:flex;justify-content:center;align-items:center}body.not-found .wrapper{display:flex;flex-direction:column;align-items:center;gap:3em}body.not-found .error{display:flex;align-items:center;font-size:2em;color:var(--text-pale-color)}body.not-found .spacer{background:var(--text-pale-color);width:2px;height:.75em;margin:0 .5em}body.not-found .text{font-size:.85em}body.not-found a{color:var(--primary-color);text-decoration-color:var(--primary-pale-color)}body.not-found a:hover,body.not-found a:active{text-decoration-color:var(--primary-color)}html{line-height:1.15;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none} \ No newline at end of file +*,*::before,*::after{box-sizing:border-box}body{min-height:100%;font-family:var(--main-font);background-color:var(--bg-color);color:var(--text-color)}html{scroll-behavior:smooth}button:focus-visible,a:focus-visible{outline:var(--primary-color) solid 3px}::selection{background-color:var(--primary-color);color:var(--bg-color)}@media screen and (min-width: 425px){body::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background:rgba(174,183,202,.631372549);border-radius:0px}::-webkit-scrollbar-thumb:hover{background:rgba(138,144,161,.631372549)}}.prose h1{font-size:1.5em;font-weight:bolder;margin:1em 0 .5em 0}.prose h2{font-size:1.3em;padding-top:65px;margin-top:-45px}.prose h3{font-size:1.1em;padding-top:65px;margin-top:-45px}.prose h4{font-size:1.05em;margin:30px 0 15px 0}.prose .zola-anchor{visibility:hidden;margin-left:.75em;font-size:.85em}.prose h1:hover a.zola-anchor,.prose h2:hover a.zola-anchor,.prose h3:hover a.zola-anchor,.prose h4:hover a.zola-anchor,.prose h5:hover a.zola-anchor,.prose h6:hover a.zola-anchor{visibility:visible}.prose p{font-size:1em;line-height:inherit;word-wrap:break-word}.prose a{color:var(--primary-color);text-decoration-color:var(--primary-pale-color);text-decoration-thickness:1.5px}.prose a:hover{text-decoration-color:var(--primary-color)}@media (max-width: 425px){.prose a{text-decoration-color:unset;text-decoration-thickness:auto}}.prose img{max-width:100%;display:block;margin:0 auto;border-radius:var(--img-border-radius)}.prose figure{margin:0 auto}.prose figcaption{width:100%;text-align:center;margin:5px auto}.prose blockquote{border-left:3px var(--primary-pale-color) solid;padding-left:16px;margin:0 0 24px 0;color:var(--text-pale-color)}.prose li::marker{color:var(--primary-color)}.prose hr{border:none;background-color:var(--primary-pale-color);height:3px;margin:36px 0}.prose table{width:100%;border-spacing:0;border:1px solid var(--primary-pale-color)}.prose thead{background-color:var(--primary-pale-color)}.prose th,.prose td{line-height:2;text-align:center;border:1px solid var(--primary-pale-color);padding:1px 10px}.prose p>code,.prose li>code,.prose td>code,.prose th>code{font-family:var(--code-font);font-size:.8em;padding:1px 6px;margin:0 2px;color:var(--primary-color);background-color:var(--primary-pale-color);border-radius:var(--inline-code-border-radius)}.prose pre{font-size:.8em;margin:1.25em 0;padding:12px 48px 12px 16px;line-height:1.5;border:1.5px solid var(--primary-color);overflow:auto}.prose pre code{font-family:var(--code-font)}.prose pre[data-linenos]{padding:12px 48px 12px 8px}.prose pre table{width:100%;border-collapse:collapse;border:none}.prose pre table th,.prose pre table td{line-height:1.5}.prose pre table tr td:first-of-type{color:var(--text-pale-color)}.prose pre table td{padding:0;padding-right:48px;text-align:initial;border:initial}.prose pre table td:nth-of-type(1){text-align:right;user-select:none;padding-right:1em}.prose pre table td:nth-of-type(1) mark::before{left:-8px;width:calc(100% + 1em + 8px)}.prose pre mark{display:block;color:inherit;background-color:rgba(0,0,0,0);position:relative;overflow:visible}.prose pre mark::before{pointer-events:none;content:"";position:absolute;top:0;bottom:0;width:calc(100% + 48px + 48px);background-color:var(--highlight-mark-color)}.prose pre.mermaid{border:none}.prose pre>code>mark::before{width:calc(100% + 48px + 16px);left:-16px}.prose .codeblock{margin:1em 0;position:relative;overflow:auto}.prose .codeblock pre{margin:0}.prose .codeblock .copy{z-index:9;position:absolute;right:.6em;top:.6em;width:24px;height:24px;padding:2px;cursor:pointer;background:rgba(0,0,0,0);border:none;color:var(--text-pale-color)}.prose .codeblock .copy.copied,.prose .codeblock .copy:hover{color:var(--primary-color)}.prose .codeblock .copy svg{width:20px;height:20px}.prose .codeblock-with-filename{margin-top:calc(0px - 1.2em - 24px - 1em - 1.5px)}.prose .codeblock-with-filename .filename{z-index:1;position:relative;top:calc(1.2em + 24px + 1em + 1.5px);padding:12px 16px;line-height:1.2;color:var(--text-pale-color);border-bottom:1.5px solid var(--primary-pale-color)}.prose .codeblock-with-filename pre>code{display:inline-block;min-width:100%;margin-top:3.2em}.prose .footnote-definition{display:flex}.prose .footnote-definition .footnote-definition-label{position:static;font-size:1em;line-height:inherit;vertical-align:auto;margin-right:.5em}.prose .footnote-definition .footnote-definition-label::after{content:"."}.prose .footnote-definition p{margin:0}.prose .footnote-definition button.backlink{border:none;background:none;display:flex;align-items:center;margin-left:.5em;color:var(--primary-color);cursor:pointer}.prose .callout{line-height:inherit;margin-bottom:20px;border:1.5px solid var(--primary-color);padding:6px 12px;display:flex;gap:12px}.prose .callout .icon{height:1.75em;display:flex;align-items:center}.prose .callout .content p{margin:0}.prose .callout .content p+p{margin:.2em 0 .5em}.prose .callout.note{color:var(--callout-note-color);border-color:var(--callout-note-color)}.prose .callout.important{color:var(--callout-important-color);border-color:var(--callout-important-color)}.prose .callout.warning{color:var(--callout-warning-color);border-color:var(--callout-warning-color)}.prose .callout.alert{color:var(--callout-alert-color);border-color:var(--callout-alert-color)}.prose .callout.question{color:var(--callout-question-color);border-color:var(--callout-question-color)}.prose .callout.tip{color:var(--callout-tip-color);border-color:var(--callout-tip-color)}.prose .mermaid{background:#fff}body.prose-page main{font-size:var(--paragraph-font-size);min-height:100vh;padding-top:45px;margin:0 auto;max-width:var(--main-max-width);display:flex;flex-direction:column;justify-content:space-between}body.prose-page article{padding:45px 15px 30px;font-size:var(--paragraph-font-size);line-height:var(--paragraph-line-height)}body.prose-page .giscus{padding:0 15px}.layout-list .category{font-size:1.3em;margin:2em 15px 1em}.layout-list .post-list{margin-top:25px}.layout-list .post{display:flex;justify-content:space-between;align-items:flex-end;gap:5px;padding:6px 15px;margin:1px 0;border-radius:2px;font-size:1.1em;text-decoration:none;color:var(--primary-color);-webkit-tap-highlight-color:rgba(0,0,0,0)}.layout-list .post:hover{background-color:var(--primary-pale-color)}@media (max-width: 768px){.layout-list .post{font-size:1em;margin:2.5px 5px;padding:5px 10px}}.layout-list .post .date{white-space:nowrap}body.homepage #wrapper{width:100%;min-height:100vh;display:flex;justify-content:center;align-items:center}body.homepage main{width:100%;max-width:var(--homepage-max-width);padding:3em 0 6em}body.homepage #info{padding:0 15px;display:flex;gap:1em}body.homepage #info img{height:var(--avatar-size);width:var(--avatar-size);border-radius:var(--avatar-radius)}body.homepage #info #text{font-size:1.25em;display:flex;flex-direction:column;justify-content:space-around}body.homepage #info #id{margin-left:.5em;color:var(--primary-color)}body.homepage #info #bio{font-size:.85em}body.homepage #links{padding:0 15px;margin:1.25em 0 1.75em;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5em 1em;font-size:1.25em}body.homepage #links a,body.homepage #links button{text-decoration:none;color:var(--text-color)}body.homepage #links a:hover,body.homepage #links button:hover{color:var(--primary-color)}body.homepage #links #left{display:flex;flex-wrap:wrap;gap:1em}body.homepage #links #left a{border-bottom:1.5px solid var(--primary-color);line-height:24px}body.homepage #links #right{display:flex;gap:.5em;margin-left:auto}body.homepage #links #right a,body.homepage #links #right button{width:24px;height:24px}body.homepage #links #right button{padding:0;border:none;background-color:rgba(0,0,0,0);cursor:pointer}@media (max-width: 425px){body.homepage #links #left{gap:.75em}}body.homepage #brief{padding:0 15px;font-size:1.15em;line-height:1.5}header{z-index:99;position:fixed;top:0;width:100%;height:45px;background-color:var(--bg-color);border-bottom:1.5px solid var(--primary-color)}@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none){header.blur{background-color:initial;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}header #header-wrapper{height:100%;max-width:var(--main-max-width);margin:0 auto;padding:0 15px;display:flex;justify-content:space-between;align-items:center;position:relative}header nav{font-size:1.4em;display:flex;align-items:center}header nav a{color:var(--text-color);text-decoration:none}header nav a:hover{color:var(--primary-color)}header nav .separator{width:24px;text-align:center;line-height:1;cursor:pointer;border:none;padding:0;background:rgba(0,0,0,0);margin:0 .1em;color:var(--text-color);-webkit-tap-highlight-color:rgba(0,0,0,0)}header nav .wrap.left{margin:0 .3em 0 -.1em}header nav .wrap.right{margin:0 0 0 .3em}header nav .wrap-separator{margin:0 .5em 0 .1em}header nav .fold{display:none}header nav .fold.shown{display:initial}header #btns{display:flex;gap:1em;align-items:center;padding-top:1.5px}header #btns a,header #btns button{width:24px;height:24px;border:none;background-color:rgba(0,0,0,0);padding:0;text-decoration:none;color:var(--text-color);cursor:pointer}@media (hover: hover){header #btns a:hover,header #btns button:hover{color:var(--primary-color)}}header #toc-toggle{display:none}@media (max-width: 1024px){header #toc-toggle{display:inline-block}header #toc-toggle.active{color:var(--primary-color)}}footer{font-size:.95rem;padding:15px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:15px;color:var(--text-pale-color)}footer .copyright{margin-right:auto}footer .credits{margin-left:auto}footer a{color:var(--text-pale-color)}@media (max-width: 374px){footer{flex-direction:column;gap:0}footer .copyright,footer .credits{margin:0}}body.blog #wrapper{margin:0 auto;max-width:var(--main-max-width);min-height:100vh;display:flex;flex-direction:column;justify-content:space-between}body.blog main{margin:60px 0}body.post #wrapper{display:flex;justify-content:space-between;font-size:18px}body.post #blank{order:1;position:sticky;width:calc((100% - var(--main-max-width))/2)}body.post main{order:2;width:100%;margin:0 auto;padding-top:45px;max-width:var(--main-max-width);min-height:100vh;display:flex;flex-direction:column;justify-content:space-between}body.post article{padding:0 15px 30px;font-size:var(--paragraph-font-size);line-height:var(--paragraph-line-height)}body.post article #post-info{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:1em}body.post article #date{color:var(--text-pale-color);margin-bottom:1em}body.post article #date #publish,body.post article #date #updated{margin-right:20px}body.post article #tags{margin-bottom:1em;display:flex;gap:1em;flex-wrap:wrap}body.post article #tags a{color:var(--primary-color);text-decoration:none}body.post article #tags a span{font-size:.95em;margin-right:2px}body.post article #outdate_alert.hidden{display:none}body.post .mermaid{background:#fff}body.post .giscus{padding:0 15px}body.post aside{order:3;width:calc((100% - var(--main-max-width))/2);position:sticky;margin-top:195px;top:60px;height:min-content;font-size:var(--aside-font-size)}body.post aside nav{padding:5px 15px 5px 2em;min-width:60%;overflow-y:auto;max-height:calc(100vh - 50px - 5em);scrollbar-width:none}body.post aside nav::-webkit-scrollbar{width:0}body.post aside nav:hover::-webkit-scrollbar{width:4px}body.post aside ul{list-style-type:none;padding:0;line-height:2;margin:0}body.post aside a{text-decoration:none;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-pale-color);position:relative;padding:0 1em}body.post aside a.h3{padding-left:2.5em;font-size:.95em}body.post aside a::before{display:block;content:"";width:2px;position:absolute;top:.6em;bottom:.7em;left:0em;background:rgba(0,0,0,0)}body.post aside a:hover,body.post aside a.active{color:var(--primary-color)}body.post aside a:hover::before{background-color:var(--primary-color)}body.post aside #back-to-top{z-index:99;height:28px;padding:0;position:fixed;bottom:1.5em;margin-left:3em;color:var(--text-pale-color);background:rgba(0,0,0,0);border:none;cursor:pointer;transform:translateY(-5px) scale(0);transition:transform .2s}body.post aside #back-to-top svg{width:28px;height:28px}body.post aside #back-to-top.shown{transform:translateY(0px) scale(1)}body.post aside #back-to-top:hover{color:var(--primary-color)}@media screen and (max-width: 1024px){body.post aside{position:fixed;right:-100%;top:45px;margin-top:0;min-width:260px;height:100%;background-color:var(--bg-color);box-shadow:rgba(0,0,0,.08) -2px 8px 8px 0px}body.post aside.shown{right:0}body.post aside nav{padding:1em 0}body.post aside ul{padding-left:10px}body.post aside #back-to-top{display:none}@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none){body.post aside.blur{background-color:fade(var(--bg-color), 75%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}body.post #blank{display:none}body.post main{margin:0 auto}}body.tag-list #wrapper{margin:0 auto;max-width:var(--main-max-width);min-height:100vh;display:flex;flex-direction:column;justify-content:space-between}body.tag-list main{margin:85px auto 60px}body.tag-list .title{width:min-content;font-size:1.3em;margin:0 auto}body.tag-list .tags{margin-top:40px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;font-size:1.1em}body.tag-list .tags a{color:var(--primary-color);text-decoration:none;margin:2em}body.tag-single #wrapper{margin:0 auto;max-width:var(--main-max-width);min-height:100vh;display:flex;flex-direction:column;justify-content:space-between}body.tag-single main{width:100%;margin:85px auto 60px}body.tag-single .title{width:min-content;white-space:nowrap;color:var(--text-color);font-size:1.3em;margin:0 auto;margin-bottom:40px;padding:0 0 0 60px}body.tag-single .title a{margin-left:30px;font-size:.5em;color:var(--primary-color)}body.tag-single .post{display:flex;justify-content:space-between;align-items:flex-end;gap:5px;padding:6px 15px;margin:1px 0;border-radius:2px;font-size:1.1em;text-decoration:none;color:var(--primary-color);-webkit-tap-highlight-color:rgba(0,0,0,0)}body.tag-single .post:hover{background-color:var(--primary-pale-color)}body.tag-single .post .date{white-space:nowrap}@media screen and (max-width: 768px){body.tag-single .post{font-size:1em;margin:2.5px 5px;padding:5px 10px}}body.projects #wrapper{margin:0 auto;max-width:var(--main-max-width);min-height:100vh;display:flex;flex-direction:column;justify-content:space-between}body.projects main{width:100%;margin:90px auto 40px}body.projects .proj{margin:0px 15px 45px}body.projects .proj .name{font-size:1.2em;margin:0 0 15px 0;color:var(--primary-color)}body.projects .proj .desc{line-height:1.5;margin:0 0 10px 0}body.projects .proj .desc a{color:var(--primary-color);text-decoration:underline var(--primary-pale-color) 2px}body.projects .proj .desc a:hover{text-decoration-color:var(--primary-color)}body.projects .proj .desc p>code{font-family:var(--code-font);font-size:.8em;padding:1px 6px;color:var(--primary-color);background-color:var(--primary-pale-color);border-radius:4px}body.projects .proj .more{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1em}body.projects .proj .more .tags{font-size:.9em;display:flex;gap:.5em 1em;flex-wrap:wrap}body.projects .proj .more .tags div{color:var(--text-pale-color)}body.projects .proj .more .tags div span{font-size:.9em;margin-right:1.5px}body.projects .proj .more .links{margin-left:auto;display:flex;justify-content:end;gap:.5em 1em}body.projects .proj .more .links a{text-decoration:none;border-bottom:1.5px solid var(--primary-color);padding:0 2px;cursor:pointer;color:inherit}body.projects .proj .more .links a:visited{color:inherit}body.projects .proj .more .links a:hover{color:var(--primary-color)}body.not-found{height:100vh;height:100dvh;display:flex;justify-content:center;align-items:center}body.not-found .wrapper{display:flex;flex-direction:column;align-items:center;gap:3em}body.not-found .error{display:flex;align-items:center;font-size:2em;color:var(--text-pale-color)}body.not-found .spacer{background:var(--text-pale-color);width:2px;height:.75em;margin:0 .5em}body.not-found .text{font-size:.85em}body.not-found a{color:var(--primary-color);text-decoration-color:var(--primary-pale-color)}body.not-found a:hover,body.not-found a:active{text-decoration-color:var(--primary-color)}html{line-height:1.15;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none} \ No newline at end of file diff --git a/public/projects/index.html b/public/projects/index.html index 1021768..3a301fa 100644 --- a/public/projects/index.html +++ b/public/projects/index.html @@ -1 +1 @@ -Projects

bunbun

A simple and adorable sysinfo utility written in Rust.

#sysinfo
#neofetch
#rust
#cli

vaporise

A simple, featureful and blazingly fast memory-safe alternative to rm written in Rust.

#rm
#rust
#alternative
#cli

Ambition

A textual fast-paced 2D MMORPG written in Rust.

#rust
#bevy
#mmorpg

radiant.nvim

A fast and minimal Neovim configuration framework.

#neovim

kagayaki.nvim

A gorgeously soft colorscheme for Neovim.

#neovim
#colorscheme

DianciEmacs

A minimal and elegant Emacs configuration framework. [Deprecated]

#emacs
#config
#diancie

Kagayaki for Emacs

A gorgeously soft colorscheme for Emacs. [Deprecated]

#emacs
#colorscheme
#theme
#dark
powered by zola and serene
\ No newline at end of file +Projects

bunbun

A simple and adorable sysinfo utility written in Rust.

#sysinfo
#neofetch
#rust
#cli

vaporise

A simple, featureful and blazingly fast memory-safe alternative to rm written in Rust.

#rm
#rust
#alternative
#cli

Ambition

A textual fast-paced 2D MMORPG written in Rust.

#rust
#bevy
#mmorpg

radiant.nvim

A fast and minimal Neovim configuration framework.

#neovim

kagayaki.nvim

A gorgeously soft colorscheme for Neovim.

#neovim
#colorscheme

DianciEmacs

A minimal and elegant Emacs configuration framework. [Deprecated]

#emacs
#config
#diancie

Kagayaki for Emacs

A gorgeously soft colorscheme for Emacs. [Deprecated]

#emacs
#colorscheme
#theme
#dark
powered by zola and serene
\ No newline at end of file diff --git a/public/tags/hacking/index.html b/public/tags/hacking/index.html index 79ff9d2..b17935c 100644 --- a/public/tags/hacking/index.html +++ b/public/tags/hacking/index.html @@ -1,3 +1,3 @@ Blog Posts
# hackingAll Tags
Misconceptions about NFC 2024-01-19
powered by zola and serene
\ No newline at end of file +en">Blog Posts
# hackingAll Tags
Misconceptions about NFC 2024-01-19
powered by zola and serene
\ No newline at end of file diff --git a/public/tags/hardening/index.html b/public/tags/hardening/index.html index dd6814c..dfcae36 100644 --- a/public/tags/hardening/index.html +++ b/public/tags/hardening/index.html @@ -1,3 +1,3 @@ Blog Posts
# hardeningAll Tags
Home server security 2024-03-28
powered by zola and serene
\ No newline at end of file +en">Blog Posts
# hardeningAll Tags
Home server security 2024-03-28
powered by zola and serene
\ No newline at end of file diff --git a/public/tags/hardware/index.html b/public/tags/hardware/index.html index e4d8721..a9bba24 100644 --- a/public/tags/hardware/index.html +++ b/public/tags/hardware/index.html @@ -1,3 +1,3 @@ Blog Posts
# hardwareAll Tags
Selecting hardware for a (home) server 2024-01-31
powered by zola and serene
\ No newline at end of file +en">Blog Posts
# hardwareAll Tags
Selecting hardware for a (home) server 2024-01-31
powered by zola and serene
\ No newline at end of file diff --git a/public/tags/headscale/index.html b/public/tags/headscale/index.html index 4ae5ff5..bad8299 100644 --- a/public/tags/headscale/index.html +++ b/public/tags/headscale/index.html @@ -1,3 +1,3 @@ Blog Posts
# headscaleAll Tags
Take control of tailscale with headscale 2024-01-10
powered by zola and serene
\ No newline at end of file +en">Blog Posts
# headscaleAll Tags
Take control of tailscale with headscale 2024-01-10
powered by zola and serene
\ No newline at end of file diff --git a/public/tags/hoax/index.html b/public/tags/hoax/index.html index 823b840..df1505a 100644 --- a/public/tags/hoax/index.html +++ b/public/tags/hoax/index.html @@ -1,3 +1,3 @@ Blog Posts
# hoaxAll Tags
An overview on hoaxes 2024-01-04
powered by zola and serene
\ No newline at end of file +en">Blog Posts
# hoaxAll Tags
An overview on hoaxes 2024-01-04
powered by zola and serene
\ No newline at end of file diff --git a/public/tags/home-lab/index.html b/public/tags/home-lab/index.html index 0e54fe3..dedfe09 100644 --- a/public/tags/home-lab/index.html +++ b/public/tags/home-lab/index.html @@ -1,3 +1,3 @@ Blog Posts
# home labAll Tags
Selecting hardware for a (home) server 2024-01-31
powered by zola and serene
\ No newline at end of file +en">Blog Posts
# home labAll Tags
Selecting hardware for a (home) server 2024-01-31
powered by zola and serene
\ No newline at end of file diff --git a/public/tags/homelab/index.html b/public/tags/homelab/index.html index ca67e70..a3218c2 100644 --- a/public/tags/homelab/index.html +++ b/public/tags/homelab/index.html @@ -1,3 +1,3 @@ Blog Posts
# homelabAll Tags
Home server security 2024-03-28
powered by zola and serene
\ No newline at end of file +en">Blog Posts
# homelabAll Tags
Home server security 2024-03-28
powered by zola and serene
\ No newline at end of file diff --git a/public/tags/index.html b/public/tags/index.html index 4e8e91d..821fbc7 100644 --- a/public/tags/index.html +++ b/public/tags/index.html @@ -1,3 +1,3 @@ Tags
\ No newline at end of file +en">Tags
\ No newline at end of file diff --git a/public/tags/nfc/index.html b/public/tags/nfc/index.html index 52c0f29..2384d13 100644 --- a/public/tags/nfc/index.html +++ b/public/tags/nfc/index.html @@ -1,3 +1,3 @@ Blog Posts
Misconceptions about NFC 2024-01-19
powered by zola and serene
\ No newline at end of file +en">Blog Posts
Misconceptions about NFC 2024-01-19
powered by zola and serene
\ No newline at end of file diff --git a/public/tags/nixos/index.html b/public/tags/nixos/index.html index 9957d72..13f5eab 100644 --- a/public/tags/nixos/index.html +++ b/public/tags/nixos/index.html @@ -1,3 +1,3 @@ Blog Posts
\ No newline at end of file +en">Blog Posts
\ No newline at end of file diff --git a/public/tags/privacy/index.html b/public/tags/privacy/index.html index 946967b..3a019fb 100644 --- a/public/tags/privacy/index.html +++ b/public/tags/privacy/index.html @@ -1,3 +1,3 @@ Blog Posts
\ No newline at end of file +en">Blog Posts
\ No newline at end of file diff --git a/public/tags/searxng/index.html b/public/tags/searxng/index.html index 56c8e16..640205d 100644 --- a/public/tags/searxng/index.html +++ b/public/tags/searxng/index.html @@ -1,3 +1,3 @@ Blog Posts
# searxngAll Tags
Host your own private search engine with SearXNG 2023-12-31
powered by zola and serene
\ No newline at end of file +en">Blog Posts
# searxngAll Tags
Host your own private search engine with SearXNG 2023-12-31
powered by zola and serene
\ No newline at end of file diff --git a/public/tags/selfhosted/index.html b/public/tags/selfhosted/index.html index 0e65cf4..b36b125 100644 --- a/public/tags/selfhosted/index.html +++ b/public/tags/selfhosted/index.html @@ -1,3 +1,3 @@ Blog Posts
\ No newline at end of file +en">Blog Posts
\ No newline at end of file diff --git a/public/tags/social-engineering/index.html b/public/tags/social-engineering/index.html index 29b71af..a4a94b6 100644 --- a/public/tags/social-engineering/index.html +++ b/public/tags/social-engineering/index.html @@ -1,3 +1,3 @@ Blog Posts
# social engineeringAll Tags
Misconceptions about NFC 2024-01-19 An overview on hoaxes 2024-01-04
powered by zola and serene
\ No newline at end of file +en">Blog Posts
# social engineeringAll Tags
Misconceptions about NFC 2024-01-19 An overview on hoaxes 2024-01-04
powered by zola and serene
\ No newline at end of file diff --git a/public/tags/sysadmin/index.html b/public/tags/sysadmin/index.html index 8ee1049..9c21357 100644 --- a/public/tags/sysadmin/index.html +++ b/public/tags/sysadmin/index.html @@ -1,3 +1,3 @@ Blog Posts
# sysadminAll Tags
Selecting hardware for a (home) server 2024-01-31
powered by zola and serene
\ No newline at end of file +en">Blog Posts
# sysadminAll Tags
Selecting hardware for a (home) server 2024-01-31
powered by zola and serene
\ No newline at end of file diff --git a/public/tags/tailscale/index.html b/public/tags/tailscale/index.html index e62c88c..acfe2f0 100644 --- a/public/tags/tailscale/index.html +++ b/public/tags/tailscale/index.html @@ -1,3 +1,3 @@ Blog Posts
# tailscaleAll Tags
Take control of tailscale with headscale 2024-01-10
powered by zola and serene
\ No newline at end of file +en">Blog Posts
# tailscaleAll Tags
Take control of tailscale with headscale 2024-01-10
powered by zola and serene
\ No newline at end of file diff --git a/public/tags/zola/index.html b/public/tags/zola/index.html index d411586..9c4b7b4 100644 --- a/public/tags/zola/index.html +++ b/public/tags/zola/index.html @@ -1,3 +1,3 @@ Blog Posts
# zolaAll Tags
Setting up Zola on NixOS 2023-12-29
powered by zola and serene
\ No newline at end of file +en">Blog Posts
# zolaAll Tags
Setting up Zola on NixOS 2023-12-29
powered by zola and serene
\ No newline at end of file diff --git a/templates/_custom_css.html b/templates/_custom_css.html index 1284cbf..31df815 100644 --- a/templates/_custom_css.html +++ b/templates/_custom_css.html @@ -44,6 +44,7 @@ --homepage-max-width: 750px; --main-max-width: 750px; --avatar-size: 70px; + --avatar-radius: 0; --paragraph-font-size: 18px; --paragraph-line-height: 1.75; --aside-font-size: 16px; diff --git a/themes/serene/sass/main.scss b/themes/serene/sass/main.scss index e6cf8d6..d904bcf 100644 --- a/themes/serene/sass/main.scss +++ b/themes/serene/sass/main.scss @@ -492,7 +492,7 @@ body.homepage { img { height: var(--avatar-size); width: var(--avatar-size); - border-radius: 50%; + border-radius: var(--avatar-radius); } #text {