diff --git a/.gitattributes b/.gitattributes index af16aa5..20dce5f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,7 +1,5 @@ # SPDX-FileCopyrightText: 2025 Ncam Gnrvngu # # SPDX-License-Identifier: AGPL-3.0-or-later + *.mp3 filter=lfs diff=lfs merge=lfs -text -*.png filter=lfs diff=lfs merge=lfs -text -*.ase filter=lfs diff=lfs merge=lfs -text -*.tiff filter=lfs diff=lfs merge=lfs -text diff --git a/config.toml b/config.toml index f9f6985..b9417f8 100644 --- a/config.toml +++ b/config.toml @@ -26,7 +26,5 @@ highlight_theme = "Catpuccin Mocha" [extra] # Put all your custom variables here -mastodon_url = "https://nerdculture.de/@NcamGnrvngu" -mastodon_user = "@NcamGnrvngu@nerdculture.de" -matrix_user = "@ncamgnrvngu:stratum0.org" -bookwyrm_url = "https://bookrastinating.com/user/NcamGnrvngu" +mastodon_url = "https://mstdn.social/@Ncamgnrvngu" +matrix_user = "@ncamgnrvngu:matrix.org" diff --git a/content/post/about-my-name.md b/content/post/about-my-name.md deleted file mode 100644 index a7ab3dc..0000000 --- a/content/post/about-my-name.md +++ /dev/null @@ -1,31 +0,0 @@ -+++ -title = "About my name" -date = "2025-11-26" -+++ -As you probably know since you landed here I have a really weird name. Naturally this confuses a lot of beings so heres the looong explanation of what's up with my name. - -# How it all began -In the summer of 2021 younger me made a new Discord account. As younger me always did with new accounts I wanted to give it a new unique name. But not just any boring name. It had to be something special. Something meaningful. Younger me had an idea: How about I take this very sophisticated makeshift encryption I thought of (It really was makeshift and it really isn't sophisticated) and encrypt something as my username. So younger me did that. I threw *something* through that encryption cypher and out popped this abomination: "Ncam Gnrvngu". - -# The consequences -Being cyphertext it really looks like I hit my head a little too hard on the keyboard. While it might have looked cool in the begining this username does have some downsides that I discovered since I started using it more and more: - -1. Nobody can pronounce it (Including me lol) -1. It regularly confuses other beings -1. Nobody can remember it - -Even though this username is confusing and complicated it's still very near and dear to my heart. It's something I've lived with for a relatively long time and its cleartext is also still relevant to me (and weirdly getting more relevant). - -# The solutions -So as I don't want to get rid of this name anytime soon, I (and others) had to come up with some solutions -### Nobody can pronounce it -This is one of the most common questions I get about this name: *How the heck do I pronounce that?* I genuinely had no real answer to this for a long time. But then I registered an account on [schenklradio.de](https://schenklradio.de), a web radio station with lots of community involvment, mostly consisting of community members voting on what songs should be played next. That presented a relatively hard problem for the hosts on Schenklradio: When a song gets played, the hosts usually read out the names of the users that whished fo it. That of course gets quite complicated with a username like mine. However being a really kind and welcoming community, I was presented with a very creative solution: If you ignore the first part of my name, throw in ungodly amounts of imagination and gently stir you could see "Guru" in there. Which is great. It's short. Everybody knows how to pronounce it. Sure its kind of complicated to get from "Ncam Gnrvngu" to "Guru" but hey: It does its job. - -**Disclaimer:** "Guru" is not supposed to mean that I claim to be a guru at anything. It simply is the best solution I have found for pronouncing my name. -### It regularly confuses other beings -You're reading the solution to this problem right now! Having a blog gives me the opportunity to create this article as a reference that I can point people to in case of confusion. A comprehensive ressource covering everything from how I got here to how to use it. Being a webpage I also have the option to update this article to improve it: So if this thing needs aditional context, clarification or leaves a question unanswered: Do hit me up so I can improve it! -### Nobody can remember it -This honestly is the hardest problem to solve. I don't think theres a real solution for it. I can however make life less cumbersome for everyone by making, again, this webpage. It provides a central hub from which I can link to all socials and whatnot so you just have to click a link and don't have to type in everything. Of course you also have to get here. To make that easier I will try to link to this page from as many places as possible so you can just click on it and voila: You're here. - -# So what does it mean? -Having already written down a lot of things I still haven't answered the most important question: *But what does it mean??* Now of course I could just write it down here and call it a day. But where's the fun in that? The encryption really isn't hard to break so I present you with an offer: If you manage to decrypt whatever the heck young me encrypted in my name, I will tell you what it means. So if you manage to decrypt it, text me on Matrix, Fedi or Signal! I just have one demand: Please don't spoil the fun for other beings and tell them what it means. diff --git a/content/post/links-in-emails.md b/content/post/links-in-emails.md new file mode 100644 index 0000000..d3bb284 --- /dev/null +++ b/content/post/links-in-emails.md @@ -0,0 +1,31 @@ ++++ +title = "Rant: Links in Emails" +date = "2025-06-02" ++++ + + +# Phishing +A phishing attack requires two steps. + +1. Bring users onto a fake website +2. Ask for their credentials + +This means there are two ways of stopping phishing for your service. You can either implement secure, phishing resistent 2FA like FIDO-2 or Passkeys or you can prevent useres from getting onto fake websites. +There are of course a lot of ways how an individual can be phished. The more obvious ones are for example typosquatting, where malicious actors register common typos of popular domain names. A phisher would for example register aamazon.com and hope someone mistypes amazon.com. +This is of course a very inefficient way of aquiring targets and can be easily prevented by just registering these typos yourself. gooogle.com for example redirects to google.com. +There is however another highly efficient way of getting people onto your phishing website: E-Mails. Just send the user a fake security alert with a nice little "More info" button et voila: You have a victim. + +# Why this works +This method, of course, only works because the users are used to the pattern of links in E-Mails. For years companys have been sending email confirmations, 2FA mails and security alerts with a link that contains a long token and that users can just conveniently click on. +From a security standpoint this is great. Links allow you to use really long tokens because there is no need to type them into your website. Users can just click and go. Links can however be faked. The link text has no relationship with the actual URL it points to. +"But E-Mail clients show the URL when you hover over a link". Yes they do. Do you always check the link?. And is live.com an official Microsoft domain? Yes you should always check the links you click on. This can however be difficult, especially in the stress situations that spam mails seek to create. +So how could this be prevented. + +# How can we fix it +There are of course multiple solutions to this problem. You could just stop sending E-Mails in favour of more secure communication channels or 2FA methods. This solution would be nice in a utopia where everything is secure and everyone cares about security, but is not possible in our current world. +We can however fix this with another pattern that is commonly used for 2FA: Codes in E-Mails. Security codes require the user to navigate to the website the're for manually. Sure you could send someone a fake code via E-Mail. But if they enter that code on the official website you gain nothing. +This pattern is nowadays mostly used for 2FA. That does not have to be so. Instead of sending a link with a token in your security warning you could then just ask the user to log in and ask for a code that is then sent to their inbox. +Of course these codes are shorter and therefore eaier to bruteforce than long tokens in links. This can however be circumvented by expiring the token after a couple of minutes. As a bonus the expiration also minimises the amount of time that a sensitive token is stored on an unencrypted E-Mail server. +Paired with a warning that " will never send you links in E-Mails" this could irradicate most phishing scams. + +I think thats enough gramatically questionable screaming into the void for now. I hope you enjoyed my first little blog post. Let me know on Mastodon what you think of it. diff --git a/content/project/pixel-pride/Pride-12-non-nb.png b/content/project/pixel-pride/Pride-12-non-nb.png deleted file mode 100644 index 7ed0f79..0000000 --- a/content/project/pixel-pride/Pride-12-non-nb.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9d63376d27d1f142a072efda0e30fdce801b1d6cfd4e1a0ea3b4c4da4cf6e597 -size 234 diff --git a/content/project/pixel-pride/Pride-12.ase b/content/project/pixel-pride/Pride-12.ase deleted file mode 100644 index 0a843c4..0000000 --- a/content/project/pixel-pride/Pride-12.ase +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5a2201fe8f5249228a9374e6533369232958d0fc7e5de8d7de9c6f8f6f0c2256 -size 674 diff --git a/content/project/pixel-pride/Pride-12.png b/content/project/pixel-pride/Pride-12.png deleted file mode 100644 index 1f2359b..0000000 --- a/content/project/pixel-pride/Pride-12.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:36a0a9297618f776fd30d48dd2de3aab60c5da4c97fa738c1e0955f5f5fa8937 -size 264 diff --git a/content/project/pixel-pride/Pride-24-non-nb.png b/content/project/pixel-pride/Pride-24-non-nb.png deleted file mode 100644 index 34671ca..0000000 --- a/content/project/pixel-pride/Pride-24-non-nb.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9cd8b5389cc7a7fc608c28c3006c76ce5a418e80896ba22549bcc0ba3186d10c -size 351 diff --git a/content/project/pixel-pride/Pride-24.ase b/content/project/pixel-pride/Pride-24.ase deleted file mode 100644 index 0a6c4ac..0000000 --- a/content/project/pixel-pride/Pride-24.ase +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea25d3532065479d5bc32688ccbf3e16e1b4dd8aa5dc57bd710d07d4721cb61d -size 828 diff --git a/content/project/pixel-pride/Pride-24.png b/content/project/pixel-pride/Pride-24.png deleted file mode 100644 index 7d6af90..0000000 --- a/content/project/pixel-pride/Pride-24.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0ca802de3f1aad1ac9ef08d0d7dfbddf6ed5d1f6242a18484d37755a78fd523d -size 374 diff --git a/content/project/pixel-pride/Pride-30-a8.tiff b/content/project/pixel-pride/Pride-30-a8.tiff deleted file mode 100644 index 893a818..0000000 --- a/content/project/pixel-pride/Pride-30-a8.tiff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f5a3562ad10124dea5a59353dbca83ab4bf0ded8b45b1d4ee41bcecd2905115b -size 1883990 diff --git a/content/project/pixel-pride/Pride-30-extended.ase b/content/project/pixel-pride/Pride-30-extended.ase deleted file mode 100644 index 88a5356..0000000 --- a/content/project/pixel-pride/Pride-30-extended.ase +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:260c2c0393234508b4b235fbc2cf0d6a2ea1d539dd375213b23457c7ff58e895 -size 924 diff --git a/content/project/pixel-pride/Pride-30-non-nb-a8.png.bak b/content/project/pixel-pride/Pride-30-non-nb-a8.png.bak deleted file mode 100644 index 8165e7a..0000000 Binary files a/content/project/pixel-pride/Pride-30-non-nb-a8.png.bak and /dev/null differ diff --git a/content/project/pixel-pride/Pride-30-non-nb.png b/content/project/pixel-pride/Pride-30-non-nb.png deleted file mode 100644 index 5053dc1..0000000 --- a/content/project/pixel-pride/Pride-30-non-nb.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:07029b39d9aea927982caedf5d9a3b3e18381f577244abbadb64de017690368b -size 1664 diff --git a/content/project/pixel-pride/Pride-30.ase b/content/project/pixel-pride/Pride-30.ase deleted file mode 100644 index 6abbcf3..0000000 --- a/content/project/pixel-pride/Pride-30.ase +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0ffa88bebf8db459a6fbac47e474fa914ea2267d6a11211d802e0de46f77ecdb -size 877 diff --git a/content/project/pixel-pride/Pride-30.png b/content/project/pixel-pride/Pride-30.png deleted file mode 100644 index 9833616..0000000 --- a/content/project/pixel-pride/Pride-30.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:367a734f669750d7c0315df0f631e6086ecfb5624d99794074eee8cad410bc23 -size 1689 diff --git a/content/project/pixel-pride/Pride-42-non-nb.png b/content/project/pixel-pride/Pride-42-non-nb.png deleted file mode 100644 index d4d94cd..0000000 --- a/content/project/pixel-pride/Pride-42-non-nb.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f59da7535852ce489a9ce3dd4042f0a6cfb1a382a5bdb7b76aac2922ce3a2afd -size 491 diff --git a/content/project/pixel-pride/Pride-42.ase b/content/project/pixel-pride/Pride-42.ase deleted file mode 100644 index 3fca379..0000000 --- a/content/project/pixel-pride/Pride-42.ase +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:30105f8ab2f6bca50a27d2299f901b70ecebf88addee7b9b2616977600b7b7c2 -size 888 diff --git a/content/project/pixel-pride/Pride-42.png b/content/project/pixel-pride/Pride-42.png deleted file mode 100644 index dbb68cf..0000000 --- a/content/project/pixel-pride/Pride-42.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:44d9b6da5b949258f058fb9b10a0a1edd28f939fb873677a4ffcfa27e394097f -size 518 diff --git a/content/project/pixel-pride/index.md b/content/project/pixel-pride/index.md deleted file mode 100644 index 0f419e2..0000000 --- a/content/project/pixel-pride/index.md +++ /dev/null @@ -1,50 +0,0 @@ -+++ -title = "Pixel Art Prideflags" -date = "2025-09-15" -updated = "2025-10-26" -[extra] -image = "sticker-box.webp" -+++ - -As you can maybe guess from my magnificent profile picture I really like pride flags. I also really like pixel art. So why not throw these two together, gently stir and create some beautiful images in different resolutions (12, 24 (*new!*), 30 and 42 pixels high) for you and me to use and enjoy. - -So I did that. - -Here are the original .ase files I created using [Libresprite](https://libresprite.github.io) (Which is awesome btw; Go check it out!). The files are organized in 4 layers: A basic rainbow flag, the progress "arrow", the intersex circle and a try to include the non-binary flag in the intersex arrow (credits to [Gender Transition For Dummies](https://www.dummies.com/book/body-mind-spirit/relationships-family/sex-gender/gender-transition-for-dummies-302707/) for the idea!). - -Click on the images to download them. - - - - - - - - - - - - - - -You can also download these images as a png: - -12px (with non-binary) -12px (without non-binary) - -24px (with non-binary) -24px (without non-binary) - -30px (with non-binary) -30px (without non-binary) - -42px (with non-binary) -42px (without non-binary) - -If the CC BY-NC-SA license on these images would prohibit your use of them, do hit me up so we can find a solution for your specific use. - -On a related note: I also really like stickers. So I made some! - - - -I will bring these to the next chaos events I'm attending so feel free to ask me for some! You can download the file I used to order these stickers (CMYK colors; DIN A8 600dpi; includes 3mm margin on all sides) here diff --git a/content/project/pixel-pride/sticker-box.webp b/content/project/pixel-pride/sticker-box.webp deleted file mode 100644 index 06e5a44..0000000 Binary files a/content/project/pixel-pride/sticker-box.webp and /dev/null differ diff --git a/content/project/pixel-pride/sticker-table.webp b/content/project/pixel-pride/sticker-table.webp deleted file mode 100644 index f7daaa1..0000000 Binary files a/content/project/pixel-pride/sticker-table.webp and /dev/null differ diff --git a/sass/_base.scss b/sass/_base.scss index a239247..81924fc 100644 --- a/sass/_base.scss +++ b/sass/_base.scss @@ -129,7 +129,3 @@ code { #license a { margin: 0; } - -.pixelart { - image-rendering: pixelated -} diff --git a/sass/post/page.scss b/sass/post/page.scss index 764dcee..81f8e3a 100644 --- a/sass/post/page.scss +++ b/sass/post/page.scss @@ -14,9 +14,3 @@ font-size: 40pt; margin-bottom: 10px; } - -img { - width: 600px; - max-width: 90%; - margin-bottom: 10px; -} diff --git a/sass/style.scss b/sass/style.scss index 0545b88..301ecdb 100644 --- a/sass/style.scss +++ b/sass/style.scss @@ -24,7 +24,6 @@ } #greeter img { - image-rendering: crisp-edges; width: 20%; height: auto; margin: auto; @@ -42,7 +41,7 @@ margin-bottom: 5px; } #greeter div h2 { - font-size: min(2.7cqw, 18pt); + font-size: min(2.9cqw, 20pt); font-weight: 600; color: c.$subtext1; margin-top: 5px; diff --git a/static/android-chrome-192x192.png b/static/android-chrome-192x192.png new file mode 100644 index 0000000..79f6ed8 Binary files /dev/null and b/static/android-chrome-192x192.png differ diff --git a/static/android-chrome-512x512.png b/static/android-chrome-512x512.png new file mode 100644 index 0000000..b6da66e Binary files /dev/null and b/static/android-chrome-512x512.png differ diff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png new file mode 100644 index 0000000..45b16a9 Binary files /dev/null and b/static/apple-touch-icon.png differ diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png new file mode 100644 index 0000000..fc62a64 Binary files /dev/null and b/static/favicon-16x16.png differ diff --git a/static/favicon-32x32.png b/static/favicon-32x32.png new file mode 100644 index 0000000..635e8f1 Binary files /dev/null and b/static/favicon-32x32.png differ diff --git a/static/favicon.ico b/static/favicon.ico index 39334c4..8b2a9e6 100644 Binary files a/static/favicon.ico and b/static/favicon.ico differ diff --git a/static/logo.jpg b/static/logo.jpg new file mode 100644 index 0000000..6eb360d Binary files /dev/null and b/static/logo.jpg differ diff --git a/static/logo.png b/static/logo.png index f20ec1e..da1767f 100644 Binary files a/static/logo.png and b/static/logo.png differ diff --git a/templates/base.html b/templates/base.html index 23f06a8..c62c1a2 100644 --- a/templates/base.html +++ b/templates/base.html @@ -36,9 +36,6 @@ {% if config.extra.matrix_user %} Matrix {% endif %} - {% if config.extra.bookwyrm_url %} - Bookwyrm - {% endif %}

Except where otherwise noted, the content on this site is licensed under CC BY-NC-SA 4.0

diff --git a/templates/index.html b/templates/index.html index cbbaaaf..bc9a8dc 100644 --- a/templates/index.html +++ b/templates/index.html @@ -2,10 +2,10 @@ {% block title %}Ncam Gnrvngu{% endblock title %} {% block content %}
- +

Hey I'm Ncam Gnrvngu

-

I cosplay as a programmer and musician

+

I'm a programmer and musician

diff --git a/templates/post.html b/templates/post.html index 9f0dd04..30eb4bf 100644 --- a/templates/post.html +++ b/templates/post.html @@ -13,23 +13,4 @@
{{ page.content | safe }}
- -{% if config.extra.mastodon_user %} - -{% endif %} - - - -{% if page.updated %} - -{% endif %} -{% if page.authors[0] %} - -{% elif config.author %} - -{% endif %} - -{% if page.extra.image %} - -{% endif %} {% endblock content %}